¥¹¥Ý¥ó¥µ¡¼¥µ¥¤¥È

¾åµ­¤Î¹­¹ð¤Ï£±¥ö·î°Ê¾å¹¹¿·¤Î¤Ê¤¤¥Ö¥í¥°¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¿·¤·¤¤µ­»ö¤ò½ñ¤¯»ö¤Ç¹­¹ð¤¬¾Ã¤»¤Þ¤¹¡£

PHP¤ÇExcel¤ÎÅý·×´Ø¿ô¤ò¼ÂÁõ¤¹¤ë

PHP¤ÇÅý·×´Ø¿ô¤ò»È¤¤¤¿¤«¤Ã¤¿¤Î¤À¤¬¡¢Ãµ¤·¤Æ¤âõ¤·¤Æ¤â¸ºß¤·¤Ê¤¤¤Î¤Ç¡¢¼«Á°¤Ç¼ÂÁõ¤·¤Þ¤·¤¿¡£
¤ï¤«¤ê¤ä¤¹¤¯¡¢Excel¤ÎÅý·×´Ø¿ô¤Ë[s_]¤òÉÕ¤±¤ì¤Ð¡¢°ú¿ô¤âƱÍͤ˻Ȥ¨¤ëÍͤˤʤäƤ¤¤Þ¤¹¡£
[s_]¤òÉÕ¤±¤¿Íýͳ¤Ï¡¢var´Ø¿ô¤¬PHP¤Ç¤ÏͽÌó¸ì¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£


¢­¢­Æ±¤¸¶­¶ø¤Î¿Í¤Î°Ù¤Ë¸ø³«¡Ê¤´¼«Í³¤Ë¤É¤¦¤¾¡Ë¢­¢­
¢­¢­¡Ê»È¤Ã¤Æ¤â¤é¤¨¤ëºÝ¤Ë¤Ï¡¢¥³¥á¥ó¥È¤â¤é¤¨¤ë¤È´ò¤·¤¤¤Ç¤¹¡Ë¢­¢­

¡Ú´Ø¿ô̾°ìÍ÷¡Û¡á¡á¡á¡á¡á
´Ø¿ô̾ÀâÌÀ
s_averageñ½ãÊ¿¶Ñ¤ò¼èÆÀ¤¹¤ë
s_harmeanÄ´ÏÂÊ¿¶Ñ¤ò¼èÆÀ¤¹¤ë
s_varpʬ»¶¤ò¼èÆÀ¤¹¤ë
(°ú¿ô¤òÊ콸ÃÄÁ´ÂΤǤ¢¤ë¤È²¾Äꤷ¤Æ¡¢Ê콸ÃĤÎʬ»¶¤òÊÖ¤¹)
s_stdevpɸ½àÊк¹¤ò¼èÆÀ¤¹¤ë
s_devpÊк¹Ãͤò¼èÆÀ¤¹¤ë
s_correlÁê´Ø·¸¿ô¤ò¼èÆÀ¤¹¤ë
s_intercept²óµ¢Ä¾Àþ¤Î£ùÀÚÊÒ¤òµá¤á¤ë
¡Ê[y = a * x + b]¤Î[b]¤òµá¤á¤ë¡Ë
s_slope²óµ¢Ä¾Àþ¤Î·¹¤­¤òµá¤á¤ë
¡Ê[y = a * x + b]¤Î[a]¤òµá¤á¤ë¡Ë
s_forecast²óµ¢Ä¾Àþ¾å¤Ç£ø¤ËÂбþ¤¹¤ë£ù¤òµá¤á¤ë
s_trend¡Ê¡ö¶õ¼ÂÁõ¡Ë¡Ú¸½ºß̤Âбþ¡Û
ľÀþ£ù¡áa£ø¡Ü£â¤Î£ù¤ÎÃͤòµá¤á¤ë
s_var¡Ê¡ö¶õ¼ÂÁõ¡Ë¡Ú¸½ºß̤Âбþ¡Û
ʬ»¶¤ò¼èÆÀ¤¹¤ë¡ÊÉÔÊÐʬ»¶¡Ë
(°ú¿ô¤òÊ콸ÃĤÎɸËܤǤ¢¤ë¤È¸«¤Ê¤·¤Æ¡¢Ê콸ÃĤËÂФ¹¤ëʬ»¶¤òÊÖ¤¹)
s_stdev¡Ê¡ö¶õ¼ÂÁõ¡Ë¡Ú¸½ºß̤Âбþ¡Û
ɸ½àÊк¹¤ò¼èÆÀ¤¹¤ë¡ÊÉÔÊÐʬ»¶¡Ë


¡Ú¥½¡¼¥¹¡Û¡á¡á¡á¡á¡á¡á¡á

/**
 * ñ½ãÊ¿¶Ñ¤ò¼èÆÀ¤¹¤ë
 */

function s_average($list) {
    if(count($list) < 2 || !is_array($list)){
        return false;
    }
    $count = count($list);
    for ($i = 0; $i < $count; $i++) {
        $sum += $list[$i];
    }
    return $sum / $count;
}

/**
 * Ä´ÏÂÊ¿¶Ñ¤ò¼èÆÀ¤¹¤ë
 */
function s_harmean($list) {
    if(count($list) < 2 || !is_array($list)){
        return false;
    }
    $count = count($list);
    for ($i = 0; $i < $count; $i++) {
        $sum += 1 / $list[$i];
    }
    return $count / $sum;
}

/**
 * ʬ»¶¤ò¼èÆÀ¤¹¤ë
 * (°ú¿ô¤òÊ콸ÃÄÁ´ÂΤǤ¢¤ë¤È²¾Äꤷ¤Æ¡¢Ê콸ÃĤÎʬ»¶¤òÊÖ¤¹)
 */

function s_varp($list) {
    if(count($list) < 2 || !is_array($list)){
        return false;
    }
    $avg = s_average($list);
    $dec = 0;
    $count = count($list);
    for($i = 0; $i < $count; $i++){
        $dec += pow($avg - $list[$i], 2);
    }
    return $dec / $count;
}

/**
 * ɸ½àÊк¹¤ò¼èÆÀ¤¹¤ë
 */

function s_stdevp($list) {
    if(count($list) < 2 || !is_array($list)){
        return false;
    }
    return sqrt(s_varp($list));
}

/**
 * Êк¹Ãͤò¼èÆÀ¤¹¤ë
 */

function s_devp($list, $val) {
    if(count($list) < 2 || !is_array($list)){
        return false;
    }
    return 10 * ($val - s_average($list)) / s_stdevp($list) + 50;
}

/**
 * Áê´Ø·¸¿ô¤ò¼èÆÀ¤¹¤ë
 */

function s_correl($list_y, $list_x){
    if(count($list_x) < 2 || count($list_y) < 2 || count($list_x) != count($list_y)){
        return false;
    }
    $avg_x = s_average($list_x);
    $stdevp_x = s_stdevp($list_x);
    $avg_y = s_average($list_y);
    $stdevp_y = s_stdevp($list_y);
   
    $count = count($list_x);
    for($i = 0; $i < $count; $i++){
        $x = $list_x[$i] - $avg_x;
        $y = $list_y[$i] - $avg_y;
        $devsum[$i] = $x * $y;
    }
   
    $avg_devsum = s_average($devsum);
    return $avg_devsum / ($stdevp_x * $stdevp_y);
}

/**
 * ²óµ¢Ä¾Àþ¤Î£ùÀÚÊÒ¤òµá¤á¤ë
 * ¡Ê[y = a * x + b]¤Î[b]¤òµá¤á¤ë¡Ë
 */

function s_intercept($list_y, $list_x){
    if(count($list_x) < 2 || count($list_y) < 2 || count($list_x) != count($list_y)){
        return false;
    }
    $count = count($list_x);
    for ($i = 0; $i < $count; $i++) {
        $x = $list_x[$i];
        $y = $list_y[$i];
        $x_sum += $x;
        $y_sum += $y;
        $xx_sum += $x * $x;
        $xy_sum += $x * $y;
    }
    $a = ($count * $xy_sum - $x_sum * $y_sum)/($count * $xx_sum - $x_sum * $x_sum);
    $b = ($y_sum - $a * $x_sum)/$count;
   
    return $b;
}

/**
 * ²óµ¢Ä¾Àþ¤Î·¹¤­¤òµá¤á¤ë
 * ¡Ê[y = a * x + b]¤Î[a]¤òµá¤á¤ë¡Ë
 */

function s_slope($list_y, $list_x){
    if(count($list_x) < 2 || count($list_y) < 2 || count($list_x) != count($list_y)){
        return false;
    }
    $count = count($list_x);
    for ($i = 0; $i < $count; $i++) {
        $x = $list_x[$i];
        $y = $list_y[$i];
        $x_sum += $x;
        $y_sum += $y;
        $xx_sum += $x * $x;
        $xy_sum += $x * $y;
    }
    $a = ($count * $xy_sum - $x_sum * $y_sum)/($count * $xx_sum - $x_sum * $x_sum);
    $b = ($y_sum - $a * $x_sum)/$count;
   
    return $a;
}

/**
 * ²óµ¢Ä¾Àþ¾å¤Ç£ø¤ËÂбþ¤¹¤ë£ù¤òµá¤á¤ë
 */
function s_forecast($target_x, $list_y, $list_x){
    if(count($list_x) < 2 || count($list_y) < 2 || count($list_x) != count($list_y)){
        return false;
    }
    $a = s_slope($list_y, $list_x);
    $b = s_intercept($list_y, $list_x);
   
    return $a * $target_x + $b;
}

/**
 * ²óµ¢Ä¾Àþ¾å¤Î¾å¾ºÎ¨¤òµá¤á¤ë
 */

function s_rate($list_y, $list_x){
    if(count($list_x) < 2 || count($list_y) < 2 || count($list_x) != count($list_y)){
        return false;
    }
    $a = s_slope($list_y, $list_x);
    $b = s_intercept($list_y, $list_x);
   
    return ($a * $list_x[count($list_x) - 1] + $b) / ($a * $list_x[count($list_x) - 2] + $b);
}

/**
 * ¡Ú¸½ºß̤Âбþ¡Û
 * ľÀþ£ù¡áa£ø¡Ü£â¤Î£ù¤ÎÃͤòµá¤á¤ë
 */
function s_trend($list_y, $list_x, $target_x, $flg=true){
}

/**
 * ¡Ú¸½ºß̤Âбþ¡Û
 * ʬ»¶¤ò¼èÆÀ¤¹¤ë¡ÊÉÔÊÐʬ»¶¡Ë
 * (°ú¿ô¤òÊ콸ÃĤÎɸËܤǤ¢¤ë¤È¸«¤Ê¤·¤Æ¡¢Ê콸ÃĤËÂФ¹¤ëʬ»¶¤òÊÖ¤¹)
 */
function s_var(){
}

/**
 * ¡Ú¸½ºß̤Âбþ¡Û
 * ɸ½àÊк¹¤ò¼èÆÀ¤¹¤ë¡ÊÉÔÊÐʬ»¶¡Ë
 */
function s_stdev($list) {
    //return sqrt(var($list));
}


»²¹Í¡§
http://noraphp.blog73.fc2.com/blog-entry-7.html
http://q.hatena.ne.jp/1084333525
http://kogolab.jp/elearn/icecream/chap2/sec2.html
http://www.geocities.co.jp/Technopolis/2890/tool/Excel/regression.html


¥Æ¡¼¥Þ : ¥×¥í¥°¥é¥ß¥ó¥°
¥¸¥ã¥ó¥ë : ¥³¥ó¥Ô¥å¡¼¥¿

tag : PHP ¥×¥í¥°¥é¥ß¥ó¥° Åý·× Excel

¾¡¼ê¤Ë¥á¥â

°úÍѤµ¤»¤ÆÄº¤¤¤¿³§ÍͤØ
¤Þ¤º¤Ï¡¢ÁÇÀ²¤é¤·¤¤¾ðÊó¤òÍ­Æñ¤¦¸æºÂ¤¤¤Þ¤¹¡£
¼«Ê¬ÍѤ˥á¥â¡¢¥È¥é¥Ã¥¯¥Ð¥Ã¥¯Å½¤é¤»¤ÆÄº¤­¤Þ¤·¤¿m(_ _)m
¤´ÌÂÏǤǤ·¤¿¤é¡¢ºï½ü¤¤¤¿¤·¤Þ¤¹¤Î¤Ç¡¢¤´Ï¢Íí失¤ì¤Ð¹¬¤¤¤Ç¤¹¡£

¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Î¤ß¤Ø¤Î chmod ¥³¥Þ¥ó¥É

ÆÃÄê¤Î¥æ¡¼¥¶¡¼¡Ê¥¢¥«¥¦¥ó¥È¡Ë¤Ë¡Ö¥Ñ¥¹¥ï¡¼¥É̵¤·¡×¤Çsudo¥³¥Þ¥ó¥ÉÁàºî¤òµö¤·¤¿¤¤

¥Æ¡¼¥Þ : CentOS
¥¸¥ã¥ó¥ë : ¥³¥ó¥Ô¥å¡¼¥¿

VMWare¤Ç¥Í¥Ã¥È¥ï¡¼¥¯¤ËÀܳ½ÐÍè¤Ê¤¤¾ì¹ç¤ÎÂбþ

¤Á¤ç¤Ã¤È¡¢VMware¤Ç¡Ö¡©¡×¤Ê¸½¾Ý¤¬È¯À¸¤·¤¿¤Î¤Ç¡¢¥á¥â

VMWare¤ÇÆÍÁ³¥Í¥Ã¥È¥ï¡¼¥¯¤ËÀܳ½ÐÍè¤Ê¤¯¤Ê¤Ã¤¿¡£
⤷¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÀßÄê¤ÏÊѹ¹¤·¤Æ¤¤¤Ê¤¤¡£
¸µ¡¹Àܳ¤Ï¤Ç¤­¤Æ¤ª¤ê¡¢¤¢¤ë¥ß¥É¥ë¥¦¥§¥¢¤òÆþ¤ì¤¿¤éÆÍÁ³ÄÌ¿®ÉÔǽ¤Ë¤Ê¤Ã¤¿¡£

´Êñ¤Ê³Îǧ¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¥²¡¼¥È¥¦¥§¥¤¤Ëping¤òÂǤäƤߤ¿¤é¡¢Ä̤é¤Ê¤¤¡£
»î¤·¤Ë¡¢³°Éô¤«¤éVMware¤Î¥²¥¹¥ÈOS¤Ëping¤òÂǤäƤߤ¿¤¬¡¢¤ä¤Ï¤êÄ̤é¤Ê¤¤¡£
»î¤·¤Ë¡¢service network restart ¤ò¤ä¤Ã¤Æ¤ß¤¿¤¬¡¢¤ä¤Ï¤êÄ̤é¤Ê¤¤¡£

¤Ê¤ó¤Ç¤À¡©¡©
¤È»×¤¤¡¢¿§¡¹Ä´¤Ù¤Æ¤ß¤¿½ê¡¦¡¦¡¦¡¦¸¶°øÉÔÌÀ£÷£÷

¤È¤ê¤¢¤¨¤º¡¢°ìö¥²¥¹¥ÈOS¤ò»ß¤á¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÀßÄê¤Ç¡¢
¥é¥¸¥ª¥Ü¥¿¥ó¤Î¤È¤³¤í¤Î¡¢Briged¤òCustom¤ËÊѹ¹¤·¤¿¤é²ò·è¤·¤¿¡£
²¿¤Ç¤³¤ÎÀßÄê¤Çľ¤Ã¤¿¤ó¤À¡©¤³¤ÎÊѹ¹¤Ï¡¢ÆÃÃÊÀßÄê¤ÎÆâÍÆ¤ËÊѹ¹¤Ï¤Ê¤¤¤Ï¤º¤À¤¬¡©

¤È¤Ë¤«¤¯¡¢¤è¤¯Ê¬¤«¤é¤Ê¤¤¤¬¤³¤ì¤Ç²ò·è¤·¤¿¡£
¡Ê¹Í»¡¤¹¤ë¤Ë¡¢VMWareÆâ¤Î¥Ç¥Õ¥©¥ë¥È¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÀßÄê¤Î¤É¤³¤«¤¬²õ¤ì¤¿¤Î¤«¤Ê¡©¡Ë

¡ÚÉ®¼Ô¤¬´«¤á¤ë´ØÏ¢½ñÀÒ¡Û
¢­VMWare¤ò»ÈÍѤ·¤Æ¤¤¤ë¿Í¤ÏÀ§Èó°ìÆÉ¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£»äŪ¤Ë¤Ï¤«¤Ê¤ê¥Ò¥Ã¥È¤Ç¤·¤¿¡£

¥Æ¡¼¥Þ : VMware
¥¸¥ã¥ó¥ë : ¥³¥ó¥Ô¥å¡¼¥¿

¡ÚÏ¢ºÜ¡ÛDRBD+HeartBeat¤Ç¥¯¥é¥¹¥¿¤ò¹½ÃÛ¤¹¤ë­¤

¤µ¤Æ¡¢º£²ó¤Ï¡¢
¢£¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¢£
£±¡¢CentOS¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
£²¡¢DRBD¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
£³¡¢PostgreSQL¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
£´¡¢Apache¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
£µ¡¢HeartBeat¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
¢£¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¢£
¤Î¡¢
¡Ö£²¡¢DRBD¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê¡×
¤ò¤´¾Ò²ð¤·¤Þ¤¹¡£

#OS¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËºîÀ®¤·¤¿¼«Æ°¥Þ¥¦¥ó¥È¤ò²ò½ü¤¹¤ë
ºî¶ÈÂоݡ§ha_active¡¢ha_stanby
vi /etc/fstab
¡¡¡¡/var/lib/pgsql¤Î¹Ô¤òºï½ü
¡¡¡¡/var/lib/php/session¤Î¹Ô¤òºï½ü
¡¡¡¡/var/www/html¤Î¹Ô¤òºï½ü

#¸½ºß¤Î¥Þ¥¦¥ó¥È¤ò²ò½ü¤¹¤ë
ºî¶ÈÂоݡ§ha_active¡¢ha_stanby
umount /var/lib/pgsql
umount /var/lib/php/session
umount /var/www/html

#̾Á°²ò·èÍѤËhosts¤ËÅÐÏ¿
ºî¶ÈÂоݡ§ha_active
vi /etc/hosts
¡¡¡¡# Do not remove the following line, or various programs
¡¡¡¡# that require network functionality will fail.
¡¡¡¡127.0.0.1                ha_active localhost.localdomain localhost
¡¡¡¡192.168.0.12         ha_stanby
ºî¶ÈÂоݡ§ha_stanby
vi /etc/hosts
¡¡¡¡# Do not remove the following line, or various programs
¡¡¡¡# that require network functionality will fail.
¡¡¡¡127.0.0.1                ha_stanby localhost.localdomain localhost
¡¡¡¡192.168.0.11         ha_active

#############
# drbd.conf  - DRBD¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¥Õ¥¡¥¤¥ë
# drbd    - DRBD¤òµ¯Æ°/Ää»ß¤¹¤ë¤¿¤á¤Î¥¹¥¯¥ê¥×¥È
# drbdadm   - DRBD¤Î´ÉÍý¥Ä¡¼¥ë
# drbddisk   - ¥Ç¥Ð¥¤¥¹¤ò¥×¥é¥¤¥Þ¥ê¤ËÀÚ¤êÂØ¤¨¤Æ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤¹¤ë
# drbdmeta   - DRBD¤Î¥á¥¿¥Ç¡¼¥¿´ÉÍý¥Ä¡¼¥ë
# drbdsetup  - DRBD¤Î¥»¥Ã¥È¥¢¥Ã¥×¥Ä¡¼¥ë
#############

ºî¶ÈÂоݡ§ha_active¡¢ha_stanby
yum -y install drbd83 kmod-drbd83
chkconfig drbd on
vi /etc/drbd.conf
#
# please have a a look at the example configuration file in
# /usr/share/doc/drbd83/drbd.conf
#
global {
  usage-count yes;
}
common {
  protocol C;
}
resource r0 {
  on ha_active {
    device /dev/drbd0;
    disk /dev/mapper/VolGroup01-LogVol00;
    address 172.16.0.11:7789;
    meta-disk internal;
  }
  on ha_stanby {
    device /dev/drbd0;
    disk /dev/mapper/VolGroup01-LogVol00;
    address 172.16.0.12:7789;
    meta-disk internal;
  }
}
resource r1 {
  on clsact.itoparts-net.st.wakwak.ne.jp {
    device /dev/drbd1;
    disk /dev/mapper/VolGroup01-LogVol01;
    address 172.16.0.11:7790;
    meta-disk internal;
  }
  on clsstn.itoparts-net.st.wakwak.ne.jp {
    device /dev/drbd1;
    disk /dev/mapper/VolGroup01-LogVol01;
    address 172.16.0.12:7790;
    meta-disk internal;
  }
}
resource r2 {
  on clsact.itoparts-net.st.wakwak.ne.jp {
    device /dev/drbd2;
    disk /dev/mapper/VolGroup01-LogVol02;
    address 172.16.0.11:7791;
    meta-disk internal;
  }
  on clsstn.itoparts-net.st.wakwak.ne.jp {
    device /dev/drbd2;
    disk /dev/mapper/VolGroup01-LogVol02;
    address 172.16.0.12:7791;
    meta-disk internal;
  }
}

#OS¥¤¥ó¥¹¥È»þ¤ËÎΰè¤òºîÀ®¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿°Ù¡¢DRBDÍѤΥǥХ¤¥¹¤òÇ˲õ¤¹¤ë
ºî¶ÈÂоݡ§ha_active¡¢ha_stanby
dd if=/dev/zero bs=1M count=1 of=/dev/mapper/VolGroup01-LogVol00; sync
dd if=/dev/zero bs=1M count=1 of=/dev/mapper/VolGroup01-LogVol01; sync
dd if=/dev/zero bs=1M count=1 of=/dev/mapper/VolGroup01-LogVol02; sync

#DRBD´ÉÍýÍѤΥ᥿¥Ç¡¼¥¿¤òƱ°ì¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾å¤ËºîÀ®¤¹¤ë¡ÊÊ̥ѡ¼¥Æ¥£¥·¥ç¥ó¤Ë¤¹¤ëÀßÄê¤â¤¢¤ë¡Ë
ºî¶ÈÂоݡ§ha_active¡¢ha_stanby
drbdadm create-md r0
¡¡¡¡yes
drbdadm create-md r1
drbdadm create-md r2

#DRBD¤Î¼Â¹Ô
ºî¶ÈÂоݡ§ha_active¡¢ha_stanby
/etc/init.d/drbd start

# DRBD¥Ç¥£¥¹¥¯¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¡õƱ´ü¤¹¤ë
ºî¶ÈÂоݡ§ha_active
drbdsetup /dev/drbd0 primary --overwrite-data-of-peer
drbdsetup /dev/drbd1 primary --overwrite-data-of-peer
drbdsetup /dev/drbd2 primary --overwrite-data-of-peer
mkfs.ext3 /dev/drbd0
mkfs.ext3 /dev/drbd1
mkfs.ext3 /dev/drbd2

##### Ʊ´ü¤¬´°Î»¤¹¤ë¤Þ¤Ç¤Ë3~10»þ´Ö¤«¤«¤ê¤Þ¤¹ #####
##### ↓↓↓↓↓ÂԤƤʤ¤¿Í¸þ¤±↓↓↓↓↓↓ #####
¡¡¡¡#Ʊ´ü®Å٤ΰì»þŪ¤Ê®ÅÙÊѹ¹
¡¡¡¡#ÀßÄê(Gigabit Eath¤Î¾ì¹ç)
¡¡¡¡drbdsetup /dev/drbd0 syncer -r 3M
¡¡¡¡drbdsetup /dev/drbd1 syncer -r 1M
¡¡¡¡drbdsetup /dev/drbd2 syncer -r 2M
¡¡¡¡#¸µ¤ËÌ᤹
¡¡¡¡drbdadm adjust r0
¡¡¡¡drbdadm adjust r1
¡¡¡¡drbdadm adjust r2
##### ↑↑↑↑↑↑↑ÂԤƤʤ¤¿Í¸þ¤±↑↑↑↑↑↑↑ #####

#Ʊ´ü¾õÂ֤γÎǧ
cat /proc/drbd
##### ↓↓↓↓↓Ʊ´ü³Îǧ¤¬¥á¥ó¥É¥¯¥µ¥¤¿Í¸þ¤±↓↓↓↓↓↓ #####
#!/bin/bash
while :
do
        clear;
        cat /proc/drbd;
        sleep 0.5;
done
##### ↑↑↑↑↑↑↑Ʊ´ü³Îǧ¤¬¥á¥ó¥É¥¯¥µ¥¤¿Í¸þ¤±↑↑↑↑↑↑↑ #####


#ưºî³Îǧ
ºî¶ÈÂоݡ§ha_active
mount /dev/drbd0 /var/lib/pgsql/
mount /dev/drbd1 /var/lib/php/session/
mount /dev/drbd2 /var/www/html/
df

#¥µ¥ó¥×¥ë¥Õ¥¡¥¤¥ë¤ÎºîÀ®
ºî¶ÈÂоݡ§ha_active
echo "test" > /var/lib/pgsql/test
echo "test" > /var/lib/php/session/test
echo "test" > /var/www/html/test

#ÀÚ¤êÂØ¤¨
ºî¶ÈÂоݡ§ha_active
umount /var/lib/pgsql/
umount /var/lib/php/session/
umount /var/www/html/
df
drbdadm secondary all

# Secondary¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«³Îǧ
ºî¶ÈÂоݡ§ha_active
cat /proc/drbd

#¥»¥«¥ó¥À¥ê¤Ç¼Â¹Ô
ºî¶ÈÂоݡ§ha_stanby
drbdadm primary all

#¥×¥é¥¤¥Þ¥ê¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«³Îǧ
ºî¶ÈÂоݡ§ha_stanby
cat /proc/drbd

#ÀÚ¤êÂØ¤¨¸å¤Î¥×¥é¥¤¥Þ¥ê¤Ç¥Þ¥¦¥ó¥È
ºî¶ÈÂоݡ§ha_stanby
mount /dev/drbd0 /var/lib/pgsql/
mount /dev/drbd1 /var/lib/php/session/
mount /dev/drbd2 /var/www/html/
df

# ºîÀ®¤·¤¿¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤«¤É¤¦¤«³Îǧ
ºî¶ÈÂоݡ§ha_stanby
ls /var/lib/pgsql/test
ls /var/lib/php/session/test
ls /var/www/html/test

#¤â¤È¤ËÌ᤹

 




¡ÚÉ®¼Ô¤¬´«¤á¤ë´ØÏ¢½ñÀÒ¡Û



¥Æ¡¼¥Þ : CentOS
¥¸¥ã¥ó¥ë : ¥³¥ó¥Ô¥å¡¼¥¿

tag : CentOS ¥¯¥é¥¹¥¿¥ê¥ó¥° HEARTBEAT DRBD

¡ÚÏ¢ºÜ¡ÛDRBD+HeartBeat¤Ç¥¯¥é¥¹¥¿¤ò¹½ÃÛ¤¹¤ë­£

¤µ¤Æ¡¢º£²ó¤Ï¡¢
¢£¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¢£
£±¡¢CentOS¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
£²¡¢DRBD¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
£³¡¢PostgreSQL¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
£´¡¢Apache¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
£µ¡¢HeartBeat¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê
¢£¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¢£
¤Î¡¢
¡Ö£±¡¢CentOS¤Î¥¤¥ó¥¹¥È¡¼¥ë¡õÀßÄê¡×
¤ò¤´¾Ò²ð¤·¤Þ¤¹¡£

¡ö¥Ç¥£¥¹¥¯¤ÎÀßÄê¤Ï³Æ¡¹¤Î´Ä¶­¤Ë¹ç¤ï¤»¤ÆÆÉ¤ßÂØ¤¨¤Æ¤¤¤¿¤À¤­¤¿¤¤¡£

¥¤¥ó¥¹¥È¡¼¥ëÊý¼°
¡¡¡¡GUI¥¤¥ó¥¹¥È¡¼¥ë
¸À¸ì
¡¡¡¡Japanese(ÆüËܸì)
¥­¡¼¥Ü¡¼¥É
¡¡¡¡ÆüËܸì
¥Ñ¡¼¥Æ¥£¥·¥ç¥ó
¡¡¡¡¥«¥¹¥¿¥à¥ì¥¤¥¢¥¦¥È
¡¡¡¡¡Êº£²ó¤Ï¡¢DRBD¤Ç¶¦Í­¤¹¤ë¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÀè¤ËÀڤäƤª¤­¤Þ¤¹¡£¡Ë
¡¡¡¡¡ÊÍýͳ¤È¤·¤Æ¤Ï¡¢¸å¤«¤é¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤òÄɲäȤ«¤¹¤ë¤Î¤¬¥á¥ó¥É¥¯¥µ¥¤¤«¤é¤Ç¤¹£÷¡Ë
¹½À®FSÍÆÎÌ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥ÈÈ÷¹Í
/dev/sda    
¡¡¡¡/dev/sda1ext3101MB/boot¥Ö¡¼¥ÈÎΰè
¡¡¡¡/dev/sda2¡½¡½  
¡¡¡¡/dev/sda3¡½¡½  
LVMFSÍÆÎÌ¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥ÈÈ÷¹Í
VolGroup00   VG
¡¡¡¡LogVol00¡½4096MBswap¥¹¥ï¥Ã¥×Îΰè¡Ê¥á¥â¥êÎ̤Î2ÇÜ¡Ë
¡¡¡¡LogVol01ext361440MB/¤½¤Î¾Á´¤Æ
VolGroup01   VG
¡¡¡¡LogVol00ext361440MB/var/lib/pgsqlPostgreSQL¤Î¥Ç¡¼¥¿Îΰè
¡¡¡¡LogVol01ext36144MB/bar/lib/php/sessionPHP¤Î¥»¥Ã¥·¥ç¥ó¥Õ¥¡¥¤¥ë³ÊǼÀè
¡¡¡¡LogVol02ext315360MB/var/www/htmlApache¤Î¥³¥ó¥Æ¥ó¥ÄÎΰè

¥Ö¡¼¥È¥í¡¼¥À
¡¡¡¡/dev/sda

¥Û¥¹¥È¡¦¥Í¥Ã¥È¥ï¡¼¥¯

¥Û¥¹¥È̾È÷¹ÍEthernet¼«Æ°µ¯Æ°IP¥¢¥É¥ì¥¹È÷¹Í
ha_active¥¯¥é¥¹¥¿¤Î²Ôư¦ifcfg-eth0on192.168.0.11

¥ë¡¼¥¿¤ÈÀܳ
Ä̾ï¤ÎÄÌ¿®ÍÑ
HeartBeat¡ÊICMP¡ËÄÌ¿®ÍÑ

  ifcfg-eth1on172.16.0.11

ha_stanby¤ÈľÀÜÀܳ
DRBDÄÌ¿®ÍÑ
HeartBeat¡ÊUDP¡ËÄÌ¿®ÍÑ

ha_stanby¥¯¥é¥¹¥¿¤ÎÂÔµ¡Â¦ifcfg-eth0on192.168.0.12¥ë¡¼¥¿¤ÈÀܳ
  ifcfg-eth1on172.16.0.12ha_active¤ÈľÀÜÀܳ
DRBDÄÌ¿®ÍÑ
HEARTBEAT¡ÊUDP¡ËÄÌ¿®ÍÑ


¥²¡¼¥È¥¦¥§¥¤¡¦DNS

¹àÌÜ̾IP¥¢¥É¥ì¥¹
¥Ç¥Õ¥©¥ë¥È¥²¡¼¥È¥¦¥§¥¤192.168.0.1
DNS£±111.111.111.111
DNS£²222.222.222.222

»þ´Ö
¡¡¡¡¥¢¥¸¥¢/Åìµþ
¡¡¡¡UTC»ÈÍѤ¹¤ë

¥Ñ¥¹¥ï¡¼¥É
¡¡¡¡tekitou

¥Ñ¥Ã¥±¡¼¥¸

¸À¸ì
¡¡¡¡ÆüËܸì¤Î¥µ¥Ý¡¼¥È
¥Ù¡¼¥¹¥·¥¹¥Æ¥à
¡¡¡¡¥Ù¡¼¥¹
¥¢¥×¥ê¥±¡¼¥·¥ç¥ó
¡¡¡¡¥¨¥Ç¥£¥¿
¡¡¡¡¥Æ¥­¥¹¥È¥Ù¡¼¥¹¤Î¥¤¥ó¥¿¡¼¥Í¥Ã¥È
³«È¯
¡¡¡¡³«È¯¥Ä¡¼¥ë

¡ö¾åµ­°Ê³°¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤¤

 

³¤­¤Ï¼¡²ó



¡ÚÉ®¼Ô¤¬´«¤á¤ë´ØÏ¢½ñÀÒ¡Û



¥Æ¡¼¥Þ : CentOS
¥¸¥ã¥ó¥ë : ¥³¥ó¥Ô¥å¡¼¥¿

tag : CentOS ¥¯¥é¥¹¥¿¥ê¥ó¥° HEARTBEAT DRBD