= DRBD/QuickStart = [[TableOfContents]] == Notice == ÀÛ¼º ½ÃÀÛ : 2008-04-18 ¸¶°¨ ¿¹Á¤ÀÏ : 2008-05-29 == ¼Ò°³ == ÀÛ¼ºÀÚ : ±è¼®¿ø (swkim (at) worldwinmedia.co.kr) µÎ°³ÀÇ ¼­¹ö¸¦ °¡Áö°í HA-Cluster ½Ã½ºÅÛÀ» ¸¸µé°í ½Í¾ú´Ù. HA-Cluster ½Ã½ºÅÛÀ» ¸¸µé¸é¼­ ¹®Á¦´Â µ¥ÀÌÅÍ µ¿±âÈ­¿´´Ù. ¾ç ³ëµå¿¡¼­ °¡Áö°í ÀÖ´Â µ¥ÀÌÅÍ´Â ³×Æ®¿öÅ©·Î ¿¬°á ÇÏ¿© µ¿±âÈ­°¡ ÇÊ¿äÇѵ¥ ±×¿¡ ´ëÇØ Ã£¾Æº» ¼ÒÇÁÆ®¿þ¾î°¡ "DRBD" ¿´´Ù. 2007³â ÃÊÂë¿¡ »ìÆì º¸±ä ÇßÁö¸¸ ¹öÀüÀÌ ¿Ã¶ó°¡¸é¼­ ´Ù¸¥ ÆÄÀϽýºÅÛ¿¡ ´ëÇؼ­µµ Áö¿øÀÌ Çâ»ó µÇ¾ú´Ù. ÀÌ¹Ì ¿À·¡Àü ºÎÅÍ ¸¹Àº Ä¿¹Â´ÏƼ »çÀÌÆ®³ª ±¸±Û¸µÀ¸·Î ÀÚ·á´Â ã¾Æ º¼ ¼ö ÀÖ¾úÁö¸¸ ÃÖ±Ù¿¡´Â µ¿ÇâÀÌ ¾ø¾î¼­ À̱⵵ ÇÏ°í, °³ÀÎÀûÀ¸·Î User-Guide Çü½ÄÀ¸·Î ¹®¼­¸¦ ¸¸µé°í ½Í±âµµ Çß´Ù. ---- ºñ·Ï ½Ç·ÂÀÌ ¾ø°í, ±Û ÀçÁÖ°¡ ¾ø´õ¶óµµ ´©±º°¡ÀÇ µµ¿òÀ¸·Î ¹®¼­°¡ ¸¸µé¾îÁö±â ¿øÇÏ¸ç ¹®¼­Áß¿¡ Ʋ¸° ºÎºÐ¿¡ À־´Â ¸¹Àº ÁöÀû ºÎŹÇÕ´Ï´Ù. == DRBD ¶õ == DRBD(''Distributed Replicated Block Device'')´Â HA cluster ±¸Ãà Çϱâ À§ÇØ µðÀÚÀÎµÈ ºí·° µð¹ÙÀ̽º ÀÌ´Ù. ÀÌ ¹æ½ÄÀº Network Raid-1À¸·Î µ¿ÀÛÀ» ÇÏ°Ô µÈ´Ù. Raid-1ÀÇ ÀϹÝÀûÀÎ ±¸¼ºÀº µ¥ÀÌÅÍ ¹é¾÷(½Ç½Ã°£) ¹Ì·¯¸µÇÏ´Â ±¸¼ºÀÌÁö¸¸ ¿©±â¼­´Â NetworkÀ¸·Î ÅëÇÑ ¹Ì·¯¸µ ÇÏ°Ô µÈ´Ù. º¸Åë DRBD´Â HA-Cluster ½Ã½ºÅÛÀÇ HeartBeatÀ» ÅëÇØ Á¦¾î µÇ´Â °ÍÀÌ ÀϹÝÀû »ç¿ë ¹æ¹ýÀÌÁö¸¸ 8.0.x´ë ¹öÀüÀ¸·Î ³Ñ¾î ¿À¸é¼­ OCFS2, GFS,...µî HA-Cluster¿¡¼­ÀÇ È®ÀåµÈ ±â´ÉÀÌ Ãß°¡ µÇ¾ú´Ù. À̹®¼­¿¡¼­´Â ´Ù·çÁø ¾Ê°ÚÁö¸¸ ÃßÈÄ¿¡ DRBD+OCFS2-HOWTO¹®¼­¸¦ ¸¸µé °ÍÀÌ´Ù. == Áغñ == === ±¸Çö ȯ°æ === 1. ¼­¹ö * vmware * redhat enterprise 4 (update5) Linux Kernel 2.6.9 2. vmware À» ÀÌ¿ëÇÑ ¸®´ª½º ¼³Ä¡ * vmwareÀ» ÀÌ¿ëÇÏ¿© RHEL-4.5À» µÎ¹ø ¼³Ä¡ÇÑ´Ù.(Çѹø ¼³Ä¡ ÈÄ º¹»çÇÏ¿© »ç¿ëÇصµ ¹¹...) * ÁÖÀÇ ÇÒ Á¡Àº ÄÄÆÄÀÏ ÇÒ ¼ö Àִ ȯ°æ°ú, LVM À» »ç¿ë ÇÏ¿©µµ ¹«°ü ÇÏÁö¸¸, ÇÊÀÚÀÇ °æ¿ì ¹Ì·¯¸µ ÇÒ HDDÀåÄ¡¸¦ º°µµ Ãß°¡ ÇÏ¿´´Ù. ±×°ÍÀÌ ÆíÇϹǷÎ.. 3. ¼­¹ö ȯ°æ {{{ =============================================================== | | | 192.168.0.10:eth0 eth0:192.168.0.11 | | /-------------\ | | ==================== ==================== | | | Linux Box Master | | Linux Box Slave | | | | | | | | | | | | | | | | | | | | | ==================== ==================== | | \-------------/ | | 10.1.1.0.31:eth1 eth1:10.1.1.32 | | hosts: cnode1 hosts: cnode2 | | | =============================================================== }}} * À§ ȯ°æÀº µÎ°³ÀÇ ³×Æ®¿öÅ© µð¹ÙÀ̽º¸¦ »ç¿ëÇÑ´Ù. ¹°·Ð VIP¸¦ »ç¿ëÇصµ ¹«°üÇÏ´Ù. ÇÏÁö¸¸ Á¤È®ÇÑ Å×½ºÆ®¸¦ À§Çؼ± ³×Æ®¿öÅ© Ä«µå¸¦ Ãß°¡ÇÏ´Â ÆíÀÌ ÁÁ´Ù. * À§ ±¸Á¶´Â HeartBeatÀ» Áö¿ø Çϱâ À§ÇÑ ±¸¼º°ú, ÃßÈÄ Ãß°¡µÉ OCFS2¿¡ ´ëÇؼ­µµ µ¿ÀÏÇÑ ±¸¼ºÀÌ´Ù. ±×·¯¹Ç·Î vmware·Î À§ ó·³ ±¸¼ºÀÌ µÇ¾ú´Ù¸é SnapshotÀ» ÇÏ´Â°Ô ÁÁ´Ù. * eth1Àº DRBD°¡ »ç¿ëµÉ µ¥ÀÌÅÍ Åë·Î¶ó »ý°¢ÇÏ¸é µÈ´Ù. === ¼ÒÇÁÆ®¿þ¾î ´Ù¿î·Îµå === 1. °ø½Ä ´Ù¿î·Îµå »çÀÌÆ® * DRBD : http://www.drbd.org/download.html * Browse the list : http://www.linbit.com/support/ * User-guide : http://www.drbd.org/users-guide/index.html 2. »ç¿ë ÆÐÅ°Áö * ¹öÀü : 8.2.4 ¹öÀü * ´Ù¿î·Îµå : http://oss.linbit.com/drbd/8.2/drbd-8.2.4.tar.gz * ¡Ø 8.x.x´ë ¹öÀüÀ» »ìÆì º¼¶§ ¾÷µ¥ÀÌÆ®°¡ µÇ¸é¼­ ±â´ÉÀÌ Ãß°¡µÇ´Â °ÍÀÌ ÀÖ´Ù. À̹öÀü¿¡¼­´Â °£´ÜÇÑ Å×½ºÆ® ¸ñÀûÀ̹ǷΠµðÅ×ÀÏÇÑ »çÇ׿¡ ´ëÇؼ± À¥»çÀÌÆ®¸¦ ÂüÁ¶ ¹Ù¶õ´Ù. == ¼³Ä¡ == 1. ¼Ò½º ºôµå * ÇÊÀÚ´Â ¼Ò½º¸¦ °¡Áö°í rpmÀ¸·Î ¸¸µé¾ú´Ù. À§ "Browser the list"Ç׸ñ¿¡ rpm ¼Ò½º¸¦ Á÷Á¢ ´Ù¿îµé ¹Þ¾Æµµ »ó°ü¾ø°í, rpmºôµå ÀÛ¾÷ÀÌ ¾ÈµÈ ¸®´ª½º°°Àº °æ¿ì´Â ÄÄÆÄÀÏÀ» ÇÏ¸é µÈ´Ù. * ¾Æ·¡ '''["ÀÛ¾÷ ¼­¹ö [Master & Slave]"]''' À̶õ Ç¥½Ã´Â À§¿¡ ±¸¼ºµÈ ¼­¹ö µÑ´Ù ÀÛ¾÷À» ÇØ¾ß µÈ´Ù´Â °ÍÀÌ´Ù. * {{{ ÀÛ¾÷ ¼­¹ö [Master & Slave] =================================================================================== [root@localhost ~]# cd /tmp [root@localhost tmp]# wget http://oss.linbit.com/drbd/8.2/drbd-8.2.4.tar.gz ./ [root@localhost tmp]# tar zxvf drbd-8.2.4.tar.gz -C /usr/local/src [root@localhost tmp]# cd /usr/local/src/drbd-8.2.4/ [root@localhost src]# make rpm ... (if completed)... [root@localhost src]# cd dist/RPMS/i386/ [root@localhost i386]# ls -all -rw-r--r-- 1 root root 136485 Mar 17 09:40 drbd-8.2.4-3.i386.rpm -rw-r--r-- 1 root root 225904 Mar 17 09:40 drbd-debuginfo-8.2.4-3.i386.rpm -rw-r--r-- 1 root root 829769 Mar 17 09:40 drbd-km-2.6.9_55.ELsmp-8.2.4-3.i386.rpm [root@localhost i386]# rpm -ivh drbd-* }}} 2. ȯ°æ ¼³Á¤ * DRBD°¡ »ç¿ëÇϴ ȯ°æ ¼³Á¤ ÆÄÀÏÀº /etc/drbd.conf ÀÌ´Ù.(man 5 drbd.conf) * ÇÊÀÚ´Â ¿ì¼± man 5 drbd.confÀÇ »ùÇà config ÆÄÀÏÀ» »ç¿ëÇÏ°Ú´Ù.(¹«¼öÈ÷ ¸¹Àº ¿É¼ÇµéÀº ¹Ù·Î ¹Ù·Î ÁÂÀý·Î µ¹¾Æ¿Ã ¼ö ÀÖÀ¸´Ï ±âº» ±â´ÉÀ» ¸ÀÀ» º¸°í ³Ñ¾î°¡ÀÚ :-) ) * ȯ°æ ¼³Á¤ ÆÄÀÏ ¸¸µé±â * {{{ ÀÛ¾÷ ¼­¹ö [Master & Slave] =================================================================================== [root@localhost ~]# vi /etc/drbd.conf global { usage-count yes; } common { syncer { rate 10M; } } resource r0 { protocol C; net { cram-hmac-alg sha1; } on cnode1 { device /dev/drbd0; disk /dev/sdb1; address 10.1.1.31:7789; meta-disk internal; } on cnode2 { device /dev/drbd0; disk /dev/sdb1; address 10.1.1.32:7789; meta-disk internal; } } [root@localhost ~]# _ }}} * HOSTNAME º¯°æ * drbd.confÀÇ r0ÀÇ "cnode1"Àº "uname -n"À» ÇßÀ» °æ¿ìÀÇ °ª°ú µ¿ÀÏ ÇØ¾ß µÈ´Ù. * {{{ ÀÛ¾÷ ¼­¹ö [Master] =================================================================================== [root@localhost ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=cnode1 GATEWAY=192.168.0.250 [root@localhost ~]# reboot ... [root@cnode1 ~]# _ }}} * {{{ ÀÛ¾÷ ¼­¹ö [Slave] =================================================================================== [root@localhost ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=cnode2 GATEWAY=192.168.0.250 [root@localhost ~]# reboot ... [root@cnode2 ~]# _ }}} 3. È£½ºÆ® µî·Ï * cnode1 ¿Í cnode2¸¦ °¢ /etc/hosts¿¡ µî·ÏÇÑ´Ù. * {{{ ÀÛ¾÷ ¼­¹ö [Master & Slave] =================================================================================== [root@cnode ~]# vi /etc/host 127.0.0.1 localhost.localdomain localhost 10.1.1.31 cnode1 10.1.1.32 cnode2 [root@cnode ~]# _ }}} 4. ¹æÈ­º® ¼³Á¤ * À§ ȯ°æ ¼³Á¤¿¡ º¸¸é 7789ÀÇ Æ÷Æ®¸¦ cnode1,cnode2 »ç¿ëÇÏ°Ô µÈ´Ù. ¹æÈ­º®ÀÌ ¼³Á¤ µÇ¾î ÀÖ´Ù¸é ¾Æ·¡ ¿Í °°ÀÌ iptables ¼öÁ¤ÇÑ´Ù. * {{{ ÀÛ¾÷ ¼­¹ö [Master] =================================================================================== [root@cnode1 ~]# vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -s cnode2 -p tcp --dport 7789 -j ACCEPT [root@cnode1 ~]# _ }}} * {{{ ÀÛ¾÷ ¼­¹ö [Slave] =================================================================================== [root@cnode2 ~]# vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -s cnode1 -p tcp --dport 7789 -j ACCEPT [root@cnode2 ~]# _ }}} 3. Meta-data »ý¼º * ¾ç ³ëµå°£ÀÇ HDDÀÇ ¸ÞŸÁ¤º¸¸¦ °¡Áö°í ÀÖ´Ù. ÇÁ·Î±×·¥ ½ÇÇàÇϱâ Àü¿¡ ¸ÞŸÆÄÀÏÀ» »ý¼ºÇØ¾ß µÈ´Ù. * {{{ ÀÛ¾÷ ¼­¹ö [Master & Slave] =================================================================================== [root@cnode ~]# drbdadm --create-md r0 ... Create meta-data....success [root@cnode ~]# server drbd start }}} 4. DRBD ext3 ÆÄÀÏ ½Ã½ºÅÛ »ý¼º * {{{ ÀÛ¾÷ ¼­¹ö [Master] =================================================================================== [root@cnode1 ~]# service drbd start ....... »ó´ë ³ëµå(cnode2)¸¦ ¹«ÇÑÀ¸·Î ±â´Ù¸°´Ù. ¹«½ÃÇÏ°í "yes"¸¦ ÀÔ·ÂÇÏ¿© ºüÁ®³ª¿Â´Ù. [root@cnode1 ~]# drbdsetup /dev/drbd0 primary (-o) [root@cnode1 ~]# mkfs.ext3 /dev/drbd0 }}} 5. Slave DRBD ½ÇÇà * {{{ ÀÛ¾÷ ¼­¹ö [Slave] =================================================================================== [root@cnode2 ~]# service drbd start [root@cnode2 ~]# cat /proc/drbd version: 8.2.4 (api:88/proto:86-88) GIT-hash: fc00c6e00a1b6039bfcebe37afa3e7e28dbd92fa build by root@localhost.localdomain, 2008-04-11 16:23:59 0: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r--- ns:596 nr:404 dw:1000 dr:2809 al:0 bm:8 lo:0 pe:0 ua:0 ap:0 [>...................] sync'ed: 0.3% (523443/961240)M finish: 14:30:08 speed: 50,236 (50,096) K/sec [root@cnode2 ~]# _ }}} * À§ ½ÇÇà »óÅ´ cnode1, cnode2¿¡¼­ ¸ðµÎ È®ÀÎ ÇÒ ¼ö ÀÖ´Ù. ½ÌÅ©¸¦ ¸ÂÃß´Â ÀÛ¾÷ÇÏ´Â µ¿¾È ½¬ÀÚ. :-) == Å×½ºÆ® ==