๋‘ ๊ฐœ์˜ CentOS 7 ์„œ๋ฒ„์—์„œ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ๋ฅผ ์œ„ํ•œ DRBD ์„ค์ •

๊ธฐ์‚ฌ์˜ ๋ฒˆ์—ญ์€ ๊ณผ์ • ์‹œ์ž‘ ์ „๋‚ ์— ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "๋ฆฌ๋ˆ…์Šค ๊ด€๋ฆฌ์ž. ๊ฐ€์ƒํ™” ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ง".

DRBD(Distributed Replicated Block Device)๋Š” ์œ ์—ฐํ•˜๊ณ  ๋ณดํŽธ์ ์œผ๋กœ ๋ณต์ œ ๊ฐ€๋Šฅํ•œ ๋ถ„์‚ฐํ˜• Linux์šฉ ์Šคํ† ๋ฆฌ์ง€ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ, ํŒŒํ‹ฐ์…˜, ๋…ผ๋ฆฌ ๋ณผ๋ฅจ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ธ”๋ก ์žฅ์น˜์˜ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๊ฐ„. ๋‘ ๊ฐœ์˜ ์ €์žฅ ์žฅ์น˜์— ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋‘ ๋ฒˆ์งธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ๊ทธ๊ฒƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๋„คํŠธ์›Œํฌ RAID ๊ตฌ์„ฑ 1๊ฐœ์˜ ๋””์Šคํฌ๊ฐ€ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ๋งคํ•‘๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” RAID(๋„คํŠธ์›Œํฌ RAID ํฌํ•จ)์™€ ์™„์ „ํžˆ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” DRBD๋ฅผ ๊ณ ๊ฐ€์šฉ์„ฑ(HA) ์ปดํ“จํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ๋ฒ„์ „ XNUMX๋ถ€ํ„ฐ๋Š” ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์†”๋ฃจ์…˜ ๋ฐฐํฌ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ์‚ฌ์—์„œ๋Š” CentOS์— DRBD๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์„œ๋ฒ„ ๊ฐ„์— ์Šคํ† ๋ฆฌ์ง€(ํŒŒํ‹ฐ์…˜)๋ฅผ ๋ณต์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋žตํ•˜๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Linux์—์„œ DRBD๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์™„๋ฒฝํ•œ ๊ธฐ์‚ฌ์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ

์ด ์„ค์ •์—๋Š” XNUMX๋…ธ๋“œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋…ธ๋“œ 1: 192.168.56.101 โ€“ tecmint.tecmint.lan
  • ๋…ธ๋“œ 2: 192.168.56.102 โ€“ server1.tecmint.lan

1๋‹จ๊ณ„: DRBD ํŒจํ‚ค์ง€ ์„ค์น˜

DRBD๋Š” Linux ์ปค๋„ ๋ชจ๋“ˆ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋ธ”๋ก ์žฅ์น˜์šฉ ๋“œ๋ผ์ด๋ฒ„์ด๋ฏ€๋กœ ์‹œ์Šคํ…œ์˜ I/O ์Šคํƒ ๋งจ ์•„๋ž˜์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

DRBD๋Š” ELRepo ๋˜๋Š” EPEL์—์„œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ELRepo ํŒจํ‚ค์ง€ ์„œ๋ช… ํ‚ค๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋‘ ๋…ธ๋“œ์˜ ์ €์žฅ์†Œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๋…ธ๋“œ ๋ชจ๋‘์— DRBD ์ปค๋„ ๋ชจ๋“ˆ๊ณผ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# yum install -y kmod-drbd84 drbd84-utils

SELinux๋ฅผ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ SELinux ์ œ์–ด์—์„œ DRBD ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ์™ธํ•˜๋„๋ก ์ •์ฑ…์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# semanage permissive -a drbd_t

๋˜ํ•œ ์‹œ์Šคํ…œ์ด ๋ฐฉํ™”๋ฒฝ(firewalld)์„ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ๋‘ ๋…ธ๋“œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ํ—ˆ์šฉํ•˜๋ ค๋ฉด DRBD ํฌํŠธ 7789๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ์— ๋Œ€ํ•ด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‘ ๋ฒˆ์งธ ๋…ธ๋“œ์— ๋Œ€ํ•ด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

2๋‹จ๊ณ„: ๋‚ฎ์€ ์ˆ˜์ค€์˜ ์ €์žฅ์†Œ ์ค€๋น„

์ด์ œ ๋‘ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ ๋ชจ๋‘์— DRBD๋ฅผ ์„ค์น˜ํ–ˆ์œผ๋ฏ€๋กœ ๋Œ€๋žต ๋™์ผํ•œ ํฌ๊ธฐ์˜ ์Šคํ† ๋ฆฌ์ง€ ์˜์—ญ์„ ํ”„๋กœ๋น„์ €๋‹ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ ํŒŒํ‹ฐ์…˜(๋˜๋Š” ์ „์ฒด ๋ฌผ๋ฆฌ์  ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ), ์†Œํ”„ํŠธ์›จ์–ด RAID ์žฅ์น˜, LVM ๋…ผ๋ฆฌ ๋ณผ๋ฅจ ๋˜๋Š” ์‹œ์Šคํ…œ์—์„œ ๋ฐœ๊ฒฌ๋œ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ๋ธ”๋ก ์žฅ์น˜.

์ด ๊ธฐ์‚ฌ์—์„œ๋Š” dd ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ 2GB ํ…Œ์ŠคํŠธ ๋ธ”๋ก ์žฅ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

์ด๊ฒƒ์ด ๋‘ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ๋‘ ๋ฒˆ์งธ ๋ธ”๋ก ์žฅ์น˜(/dev/sdb)์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŒŒํ‹ฐ์…˜(/dev/sdb1)์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

3๋‹จ๊ณ„. DRBD ๊ตฌ์„ฑ

DRBD ๊ธฐ๋ณธ ๊ตฌ์„ฑ ํŒŒ์ผ - /etc/drbd.conf, ์ถ”๊ฐ€ ๊ตฌ์„ฑ ํŒŒ์ผ์€ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. /etc/drbd.d.

์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋ณต์ œํ•˜๋ ค๋ฉด ํŒŒ์ผ์— ํ•„์š”ํ•œ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. /etc/drbd.d/global_common.conf์—๋Š” DRBD ๊ตฌ์„ฑ์˜ ์ „์—ญ ๋ฐ ์ผ๋ฐ˜ ์„น์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ .res ํŒŒ์ผ.

๋‘ ๋…ธ๋“œ ๋ชจ๋‘์— ์›๋ณธ ํŒŒ์ผ์˜ ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“  ๋‹ค์Œ ํŽธ์ง‘์„ ์œ„ํ•ด ์ƒˆ ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค(์›ํ•˜๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ์‚ฌ์šฉ).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

๋‘ ํŒŒ์ผ์— ๋‹ค์Œ ์ค„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

ํŒŒ์ผ์„ ์ €์žฅํ•œ ๋‹ค์Œ ํŽธ์ง‘๊ธฐ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์ž ์‹œ ํ”„๋กœํ† ์ฝœ C ๋ผ์ธ์„ ์‚ดํŽด๋ณด๋ฉด DRBD๋Š” ์„ธ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ณต์ œ ๋ชจ๋“œ(์ฆ‰, ์„ธ ๊ฐ€์ง€ ์ˆ˜์ค€์˜ ๋ณต์ œ ๋™๊ธฐํ™”)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋กœํ† ์ฝœ A: ๋น„๋™๊ธฐ ๋ณต์ œ ํ”„๋กœํ† ์ฝœ; ์žฅ๊ฑฐ๋ฆฌ ๋ณต์ œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœํ† ์ฝœ B: ๋ฐ˜๋™๊ธฐ ๋ณต์ œ ํ”„๋กœํ† ์ฝœ ๋˜๋Š” ๋™๊ธฐ ๋ฉ”๋ชจ๋ฆฌ ํ”„๋กœํ† ์ฝœ.
  • ํ”„๋กœํ† ์ฝœ C: ์ผ๋ฐ˜์ ์œผ๋กœ ์งง์€ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ๋„คํŠธ์›Œํฌ์˜ ๋…ธ๋“œ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” DRBD ์„ค์ •์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ณต์ œ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ ์ผ์ด์•ผ: ๋ณต์ œ ํ”„๋กœํ† ์ฝœ ์„ ํƒ์€ ๋ณด์•ˆ๊ณผ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฐํฌ ์š”์†Œ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ด์™€ ๋Œ€์กฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋Ÿ‰์€ ์„ ํƒํ•œ ๋ณต์ œ ํ”„๋กœํ† ์ฝœ์— ํฌ๊ฒŒ ์ขŒ์šฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

4๋‹จ๊ณ„: ๋ฆฌ์†Œ์Šค ์ถ”๊ฐ€

๋ฆฌ์†Œ์Šค๋Š” ํŠน์ • ๋ณต์ œ ๋ฐ์ดํ„ฐ์„ธํŠธ์˜ ๋ชจ๋“  ์ธก๋ฉด์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ๊ด„์ ์ธ ์šฉ์–ด์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ์— ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. /etc/drbd.d/test.res.

๋‘ ๋…ธ๋“œ์˜ ํŒŒ์ผ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(๋ณ€์ˆ˜๋ฅผ ํ•ด๋‹น ํ™˜๊ฒฝ์˜ ์‹ค์ œ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”).

ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์— ์ฃผ์˜ํ•˜์„ธ์š”. uname ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. -n.

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

์ง€์—ญ :

  • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์—: ์ค‘์ฒฉ๋œ ๊ตฌ์„ฑ ๋ฌธ์ด ์ ์šฉ๋˜๋Š” on ์„น์…˜์ž…๋‹ˆ๋‹ค.
  • test: ์ƒˆ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  • ์žฅ์น˜ /dev/drbd0: DRBD๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ฐ€์ƒ ๋ธ”๋ก ์žฅ์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ๋””์Šคํฌ /dev/sdb1: DRBD ์žฅ์น˜์˜ ๋ฐฑ์—… ์žฅ์น˜์ธ ๋ธ”๋ก ์žฅ์น˜ ํŒŒํ‹ฐ์…˜์ž…๋‹ˆ๋‹ค.
  • ๋ฉ”ํƒ€๋””์Šคํฌ: DRBD๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์œ„์น˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€๋ž€ DRBD๊ฐ€ ํ”„๋กœ๋•์…˜์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ์™€ ๋™์ผํ•œ ๋ฌผ๋ฆฌ์  ํ•˜์œ„ ์ˆ˜์ค€ ์žฅ์น˜์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
  • ์ฃผ์†Œ: ํ•ด๋‹น ๋…ธ๋“œ์˜ IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๋˜ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋‘ ํ˜ธ์ŠคํŠธ ๋ชจ๋‘์—์„œ ๋™์ผํ•œ ๊ฒฝ์šฐ ๋ฆฌ์†Œ์Šค ์„น์…˜์—์„œ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์œ„ ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์žฌ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

resource test {
	device /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk internal;	
        	on tecmint.tecmint.lan {
 		address 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		address 192.168.56.102:7789;
        		}
}

5๋‹จ๊ณ„. ๋ฆฌ์†Œ์Šค ์ดˆ๊ธฐํ™” ๋ฐ ์‹คํ–‰

DRBD์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(DRBD ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋„ ๋ชจ๋“ˆ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•จ).

  • drbdadm: DRBD ๊ณ ๊ธ‰ ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • drbd์„ค์ •: DRBD ์žฅ์น˜๋ฅผ ๋ฐฑ์—… ์žฅ์น˜์— ์—ฐ๊ฒฐํ•˜๊ณ , ๋ฐฑ์—… ์žฅ์น˜๋ฅผ ๋ฐ˜์˜ํ•˜๋„๋ก DRBD ์žฅ์น˜ ์Œ์„ ๊ตฌ์„ฑํ•˜๊ณ , ์‹คํ–‰ ์ค‘์ธ DRBD ์žฅ์น˜์˜ ๊ตฌ์„ฑ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ํ•˜์œ„ ์ˆ˜์ค€ ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • Drbdmeta: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ์ดˆ๊ธฐ ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•œ ํ›„ ๋‘ ๋…ธ๋“œ ๋ชจ๋‘์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# drbdadm create-md test

๋‘ ๊ฐœ์˜ CentOS 7 ์„œ๋ฒ„์—์„œ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ๋ฅผ ์œ„ํ•œ DRBD ์„ค์ •
๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์ดˆ๊ธฐํ™”

๋‹ค์Œ์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฑ์—… ์žฅ์น˜์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ณต์ œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ํ”ผ์–ด์— ์—ฐ๊ฒฐํ•˜๋Š” ์ด๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# drbdadm up test

์ด์ œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด lsblk, DRBD ์žฅ์น˜/๋ณผ๋ฅจ drbd0์ด ๋ฐฑ์—… ์žฅ์น˜์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. /dev/sdb1:

# lsblk

๋‘ ๊ฐœ์˜ CentOS 7 ์„œ๋ฒ„์—์„œ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ๋ฅผ ์œ„ํ•œ DRBD ์„ค์ •
๋ธ”๋ก ์žฅ์น˜ ๋ชฉ๋ก

๋ฆฌ์†Œ์Šค๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

# drbdadm down test

๋ฆฌ์†Œ์Šค ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค(์ด ์‹œ์ ์—์„œ๋Š” ๋””์Šคํฌ ์ƒํƒœ๊ฐ€ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค). ๋ถˆ์ผ์น˜/์ผ๊ด€๋˜์ง€ ์•Š์Œ):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

๋‘ ๊ฐœ์˜ CentOS 7 ์„œ๋ฒ„์—์„œ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ๋ฅผ ์œ„ํ•œ DRBD ์„ค์ •
๋ฆฌ์†Œ์Šค ์ƒํƒœ ํ™•์ธ ์ค‘
์‚ฌ์•…ํ•œ

6๋‹จ๊ณ„: ๊ธฐ๋ณธ ๋ฆฌ์†Œ์Šค/์ดˆ๊ธฐ ์žฅ์น˜ ๋™๊ธฐํ™” ์†Œ์Šค ์„ค์ •

์ด ๋‹จ๊ณ„์—์„œ DRBD๋ฅผ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ดˆ๊ธฐ ์žฅ์น˜ ๋™๊ธฐํ™”์˜ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•  ๋…ธ๋“œ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ์ „์ฒด ๋™๊ธฐํ™”๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ๋งŒ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

# drbdadm primary --force test
# drbdadm status test

๋‘ ๊ฐœ์˜ CentOS 7 ์„œ๋ฒ„์—์„œ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ๋ฅผ ์œ„ํ•œ DRBD ์„ค์ •
๊ธฐ๋ณธ ๋…ธ๋“œ๋ฅผ ์ดˆ๊ธฐ ์žฅ์น˜๋กœ ์„ค์ •
๋™๊ธฐํ™”๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋‘ ๋“œ๋ผ์ด๋ธŒ์˜ ์ƒํƒœ๋Š” UpToDate๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

7๋‹จ๊ณ„: DRBD ์„ค์ • ํ…Œ์ŠคํŠธ

๋งˆ์ง€๋ง‰์œผ๋กœ DRBD ์žฅ์น˜๊ฐ€ ๋ณต์ œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋นˆ ๋””์Šคํฌ ๋ณผ๋ฅจ์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์žฅ์น˜์— ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๋งˆ์šดํŠธํ•˜์—ฌ ๋ณต์ œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ์ „์ฒด ๋™๊ธฐํ™”๋ฅผ ์‹œ์ž‘ํ•œ ๋…ธ๋“œ(๊ธฐ๋ณธ ์—ญํ• ์˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์Œ)์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฅ์น˜์— ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# mkfs -t ext4 /dev/drbd0

๋‘ ๊ฐœ์˜ CentOS 7 ์„œ๋ฒ„์—์„œ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ๋ฅผ ์œ„ํ•œ DRBD ์„ค์ •
Drbd ๋ณผ๋ฅจ์— ํŒŒ์ผ ์‹œ์Šคํ…œ ์ƒ์„ฑ

๊ทธ๋Ÿฐ ๋‹ค์Œ ํ‘œ์‹œ๋œ ๋Œ€๋กœ ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๋‹ค(๋งˆ์šดํŠธ ์ง€์ ์— ์ ์ ˆํ•œ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

์ด์ œ ์œ„์˜ ๋งˆ์šดํŠธ ์ง€์ ์—์„œ ์ผ๋ถ€ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธด ๋ชฉ๋ก์„ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. ls ๋ช…๋ น:

# cd /mnt/DRDB_PRI/
# ls -l 

๋‘ ๊ฐœ์˜ CentOS 7 ์„œ๋ฒ„์—์„œ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ๋ฅผ ์œ„ํ•œ DRBD ์„ค์ •
๊ธฐ๋ณธ Drbd ๋ณผ๋ฅจ์˜ ๋‚ด์šฉ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์žฅ์น˜๋ฅผ ๋งˆ์šดํŠธ ํ•ด์ œํ•˜๊ณ (๋งˆ์šดํŠธ๊ฐ€ ์—ด๋ ค ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋งˆ์šดํŠธ ํ•ด์ œํ•œ ํ›„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝ) ๋…ธ๋“œ ์—ญํ• ์„ ๊ธฐ๋ณธ์—์„œ ๋ณด์กฐ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

๋‹ค๋ฅธ ๋…ธ๋“œ(๋ณด์กฐ ์—ญํ• ์˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์Œ)๋ฅผ ๊ธฐ๋ณธ ๋…ธ๋“œ๋กœ ๋งŒ๋“  ๋‹ค์Œ ์—ฌ๊ธฐ์— ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๊ธด ๋งˆ์šดํŠธ ์ง€์  ๋ชฉ๋ก์„ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ฉด ๋ณผ๋ฅจ์— ์ €์žฅ๋œ ๋ชจ๋“  ํŒŒ์ผ์ด ๋‹ค์Œ ์œ„์น˜์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

๋‘ ๊ฐœ์˜ CentOS 7 ์„œ๋ฒ„์—์„œ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ๋ฅผ ์œ„ํ•œ DRBD ์„ค์ •
๋ณด์กฐ ๋…ธ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ DRBD ์„ค์ •์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ด€๋ฆฌ ๋„๊ตฌ ๋„์›€๋ง ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

# man drbdadm
# man drbdsetup
# man drbdmeta

FAQ : DRBD ์‚ฌ์šฉ์ž ๋งค๋‰ด์–ผ.

๊ฐœ์š”

DRBD๋Š” ๋งค์šฐ ์œ ์—ฐํ•˜๊ณ  ๋‹ค์žฌ๋‹ค๋Šฅํ•˜๋ฏ€๋กœ ๊ฑฐ์˜ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— HA๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” CentOS 7์— DRBD๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ด๋ฅผ ์Šคํ† ๋ฆฌ์ง€ ๋ณต์ œ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ํ”ผ๋“œ๋ฐฑ ์–‘์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ƒ๊ฐ์„ ์ž์œ ๋กญ๊ฒŒ ๊ณต์œ ํ•ด ์ฃผ์„ธ์š”.

๊ณผ์ •์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€