å°ãåã«ãLINBIT ã®æ åœè ãæ°ãã SDS ãœãªã¥ãŒã·ã§ã³ã§ãã Linstor ãçºè¡šããŸããã ããã¯ãDRBDãLVMãZFS ãªã©ã®å®èšŒæžã¿ã®ãã¯ãããžãŒã«åºã¥ããå®å šã«ç¡æã®ã¹ãã¬ãŒãžã§ãã Linstor ã¯ã·ã³ãã«ããšé©åã«èšèšãããã¢ãŒããã¯ãã£ãçµã¿åãããŠãããå®å®æ§ãšéåžžã«å°è±¡çãªçµæãéæã§ããŸãã
ä»æ¥ã¯ããã«ã€ããŠããå°ã詳ãã説æããlinstor_un (ãã®ç®çã®ããã«ç¹å¥ã«éçºããæ°ãããã©ã€ããŒ) ã䜿çšã㊠OpenNebula ãšããã«ç°¡åã«çµ±åã§ãããã瀺ããããšæããŸãã
Linstor ãš OpenNebula ãçµã¿åããããšãç¬èªã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«ç°¡åã«å±éã§ãããé«éã§ä¿¡é Œæ§ã®é«ãã¯ã©ãŠããæ§ç¯ã§ããŸãã
ãªã³ã¹ã¿ãŒã®ã¢ãŒããã¯ãã£
Linstor ã¯ãããèªäœã¯ãã¡ã€ã« ã·ã¹ãã ã§ãããã㯠ã¹ãã¬ãŒãžã§ããããŸãããLinstor ã¯ãLVM ãŸã㯠ZFS ã§ã®ããªã¥ãŒã ã®äœæãèªååããDRBD9 ã䜿çšããŠããããã¬ããªã±ãŒãã§ããæœè±¡åã¬ã€ã€ãŒãæäŸãããªãŒã±ã¹ãã¬ãŒã¿ãŒã§ãã
åºå®èŠ³å¿µãæã¡ç Žã
ã§ãåŸ ã£ãŠãã ãããDRBD? â ãªãèªååããã®ã§ãããã?ãŸããã©ã®ããã«ããŠæ©èœããã®ã§ãããã?
DRBD8 ãéåžžã«äººæ°ã ã£ãéå»ãæãåºããŠã¿ãŸãããã ãã®æšæºçãªäœ¿çšæ³ã«ã¯ãåã LVM ã䜿çšã㊠1 ã€ã®å€§ããªããã㯠ããã€ã¹ãäœæãããããå€æ°ã®å°ããªéšåã«åå²ããããšãå«ãŸããŸãã mdadm RAID-XNUMX ã®äžçš®ã§ããããããã¯ãŒã¯äžã§ã¬ããªã±ãŒã·ã§ã³ãè¡ããŸãã
ãã®ã¢ãããŒãã«ã¯æ¬ ç¹ããªãããã§ã¯ãªããããDRBD9 ã®ç»å Žã«ããã¹ãã¬ãŒãžèšèšã®ååãå€ãããçŸåšã§ã¯ä»®æ³ãã·ã³ããšã«åå¥ã® DRBD ããã€ã¹ãäœæãããŸãã
ç¬ç«ããããã㯠ããã€ã¹ã䜿çšããã¢ãããŒãã«ãããã¯ã©ã¹ã¿ãŒå ã®ã¹ããŒã¹ãããå¹ççã«å©çšã§ããããã«ãªããå€ãã®è¿œå æ©èœãè¿œå ãããŸãã ããšãã°ããã®ãããªããã€ã¹ããšã«ãã¬ããªã«ã®æ°ããã®å Žæãããã³åå¥ã®èšå®ã決å®ã§ããŸãã äœæ/åé€ãã¹ãããã·ã§ããã®ååŸããµã€ãºå€æŽãæå·åã®æå¹åãªã©ãç°¡åã«è¡ããŸãã DRBD9 ã¯ã¯ã©ãŒã©ã ããµããŒãããŠãããããã¹ããªãã ãã¬ã€ã³ç¶æ³ãåé¿ã§ããããšã¯æ³šç®ã«å€ããŸãã
ãªãœãŒã¹ãšããã¯ãšã³ã
æ°ããããã㯠ããã€ã¹ãäœæãããšããLinstor ã¯ã¯ã©ã¹ã¿ãŒå ã®ç°ãªãããŒãã«å¿ èŠãªæ°ã®ã¬ããªã«ãé 眮ããŸãã ãã®ãããªåã¬ããªã«ã DRBD ãªãœãŒã¹ãšåŒã³ãŸãã
ãªãœãŒã¹ã«ã¯æ¬¡ã® XNUMX çš®é¡ããããŸãã
- ããŒã¿ãªãœãŒã¹ â LVM ãŸã㯠ZFS ããŒã«å
ã®ããŒãã«ãã DRBD ããã€ã¹ã§ãã
çŸæç¹ã§ã¯ãããã€ãã®ããã¯ãšã³ãããµããŒããããŠããããã®æ°ã¯å¢ãç¶ããŠããŸãã LVMãThinLVMãZFS ããµããŒããããŠããŸãã æåŸã® XNUMX ã€ã§ã¯ãã¹ãããã·ã§ãããäœæããŠäœ¿çšã§ããŸãã - ãã£ã¹ã¯ã¬ã¹ãªãœãŒã¹ â ããã¯ãšã³ãã®ãªãããŒãã«é 眮ããã DRBD ããã€ã¹ã§ãããéåžžã®ããã㯠ããã€ã¹ãšããŠæ±ãããšãã§ãããã¹ãŠã®èªã¿åã/æžã蟌ã¿æäœãããŒã¿ ãªãœãŒã¹ã«ãªãã€ã¬ã¯ããããŸãã ãã£ã¹ã¯ã¬ã¹ ãªãœãŒã¹ã«æãè¿ããã®ã¯ iSCSI LUN ã§ãã
å DRBD ãªãœãŒã¹ã«ã¯æ倧 8 ã€ã®ã¬ããªã«ãå«ããããšãã§ããããã©ã«ãã§ã¯ãã®ãã¡ã® XNUMX ã€ã ããã¢ã¯ãã£ãã«ã§ããŸãã ãã©ã€ããªãŒãä»ã®äººã¯ã¿ããªãããªãã ãã äºæ¬¡ å°ãªããšã XNUMX ã€ã®ãã©ã€ããªãååšããéãããããã®äœ¿çšã¯äžå¯èœã§ããã€ãŸãããã©ã€ããªéã§ããŒã¿ãè€è£œãããã ãã§ãã
DRBD ããã€ã¹ãã·ã¹ãã ã«ã€ã³ã¹ããŒã«ãããšãèªåçã« ãã©ã€ããªãŒãããã£ãŠãDRBD çšèªã§ã¯ãã£ã¹ã¯ã¬ã¹ ãªãœãŒã¹ããã©ã€ããªã«ãªãå¯èœæ§ããããŸãã
ã§ã¯ããªããªã³ã¹ã¿ãŒãå¿ èŠãªã®ã§ãããã?
ãªãœãŒã¹ã倧éã«æ¶è²»ããã¿ã¹ã¯ããã¹ãŠã«ãŒãã«ã«ä»»ããããšã«ãããLinstor ã¯åºæ¬çã«éåžžã® Java ã¢ããªã±ãŒã·ã§ã³ãšãªããDRBD ãªãœãŒã¹ã®äœæãç°¡åã«èªååã§ããŸãã
ããã«ã圌ã«ãã£ãŠäœæãããåãªãœãŒã¹ã¯ãã³ã³ãããŒã« ãã¬ãŒã³ãä»ã® DRBD ãªãœãŒã¹ã®ç¶æ
ã«é¢ä¿ãªããç¬ç«ããŠåäœããç¬ç«ãã DRBD ã¯ã©ã¹ã¿ãŒã«ãªããŸãã
Linstor 㯠XNUMX ã€ã®ã³ã³ããŒãã³ãã®ã¿ã§æ§æãããŠããŸãã
- ãªã³ã¹ã¿ãŒã³ã³ãããŒã©ãŒ - ã¡ã€ã³ ã³ã³ãããŒã©ãŒããªãœãŒã¹ãäœæããã³ç®¡çããããã® API ãæäŸããŸãã ãŸããè¡æãšéä¿¡ããŠè¡æã®ç©ºãé åã確èªããæ°ãããªãœãŒã¹ãäœæããã³åé€ããã¿ã¹ã¯ãéä¿¡ããŸãã åäžã€ã³ã¹ã¿ã³ã¹ã§å®è¡ãããå éš (H2) ãŸãã¯å€éš (PostgreSQLãMySQLãMariaDB) ã®ããŒã¿ããŒã¹ã䜿çšããŸãã
- ãªã³ã¹ã¿ãŒè¡æ â ãã¹ãŠã®ã¹ãã¬ãŒãž ããŒãã«ã€ã³ã¹ããŒã«ããã空ãé åã«é¢ããæ å ±ãã³ã³ãããŒã©ãŒã«æäŸããã³ã³ãããŒã©ãŒããåãåã£ãã¿ã¹ã¯ãå®è¡ããŠããã®äžã«æ°ããããªã¥ãŒã ãš DRBD ããã€ã¹ãäœæããã³åé€ããŸãã
ãªã³ã¹ã¿ãŒã¯æ¬¡ã®äž»èŠãªæŠå¿µã«åºã¥ããŠåäœããŸãã
- Node â DRBD ãªãœãŒã¹ãäœæããã³äœ¿çšãããç©çãµãŒããŒã
- ã¹ãã¬ãŒãžããŒã« â DRBD ãªãœãŒã¹ãé 眮ãããããŒãäžã«äœæããã LVM ãŸã㯠ZFS ããŒã«ã ãã£ã¹ã¯ã¬ã¹ ããŒã«ãå¯èœã§ããããã¯ããã£ã¹ã¯ã¬ã¹ ãªãœãŒã¹ã®ã¿ãé 眮ãããããŒã«ã§ãã
- ãªãœãŒã¹ã®å®çŸ© â ãªãœãŒã¹ã®å®çŸ©ã¯åºæ¬çã«ãååãšãã®ãã¹ãŠã®ããããã£ãèšè¿°ãããããã¿ã€ãã§ãã
- ããªã¥ãŒã ã®å®çŸ© â ããªã¥ãŒã å®çŸ©ã åãªãœãŒã¹ã¯è€æ°ã®ããªã¥ãŒã ã§æ§æã§ããåããªã¥ãŒã ã«ã¯ãµã€ãºãå¿ èŠã§ãã
- ãªãœãŒã¹ â ãããã¯ããã€ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæãããšãåãªãœãŒã¹ã¯ç¹å®ã®ããŒããšã¹ãã¬ãŒãžããŒã«ã«é 眮ãããå¿ èŠããããŸãã
ãªã³ã¹ã¿ãŒã®ã€ã³ã¹ããŒã«
ã·ã¹ãã ãšã㊠Ubuntu ã䜿çšããããšããå§ãããŸãã 圌女ã®ããã«ååšãã
add-apt-repository ppa:linbit/linbit-drbd9-stack
apt-get update
ãŸã㯠Debian ã§ã¯ãProxmox ã®å ¬åŒãªããžããªãã Linstor ãã€ã³ã¹ããŒã«ã§ããŸãã
wget -O- https://packages.linbit.com/package-signing-pubkey.asc | apt-key add -
PVERS=5 && echo "deb http://packages.linbit.com/proxmox/ proxmox-$PVERS drbd-9.0" >
/etc/apt/sources.list.d/linbit.list
apt-get update
ã³ã³ãããŒã©ãŒ
ããã§ã¯ãã¹ãŠãç°¡åã§ãïŒ
apt-get install linstor-controller linstor-client
systemctl enable linstor-controller
systemctl start linstor-controller
ã¹ãã¬ãŒãžããŒã
Linux ã«ãŒãã«ã«ã¯çŸåšãããªãŒå ã«ãŒãã« ã¢ãžã¥ãŒã«ãå梱ãããŠããŸãã DRBD8ãæ®å¿µãªããç§ãã¡ã«ã¯åããªãã®ã§ã€ã³ã¹ããŒã«ããå¿ èŠããããŸã DRBD9:
apt-get install drbd-dkms
å®è·µã瀺ãããã«ãã»ãšãã©ã®åé¡ã¯ãDRBD8 ã§ã¯ãªã DRBD9 ã¢ãžã¥ãŒã«ãã·ã¹ãã ã«ããŒããããŠããããã«çºçããŸãã 幞ããªããšã«ãããã¯æ¬¡ãå®è¡ããããšã§ç°¡åã«ç¢ºèªã§ããŸãã
modprobe drbd
cat /proc/drbd
èŠãã ããŒãžã§ã³ïŒ9 - 次ã®å Žåã¯ãã¹ãŠåé¡ãªãããšãæå³ããŸã ããŒãžã§ã³ïŒ8 - ããã¯ãäœãåé¡ãçºçãããã®çç±ã調ã¹ãããã«è¿œå ã®æé ãå®è¡ããå¿ èŠãããããšãæå³ããŸãã
ã§ã¯ãã€ã³ã¹ããŒã«ããŸããã ãªã³ã¹ã¿ãŒè¡æ О drbd-utils:
apt-get install linstor-satellite drbd-utils
systemctl enable linstor-satellite
systemctl start linstor-satellite
ã¯ã©ã¹ã¿ãŒãäœæãã
ã¹ãã¬ãŒãžããŒã«ãšããŒã
ããã¯ãšã³ããšããŠã ThinLVMã ãªããªãããã¯æãåçŽã§ãã¹ãããã·ã§ããããµããŒãããŸãã
ã»ãã LVM2ãŸã äœæããŠããªãå Žåã¯ããã¹ãŠã®ã¹ãã¬ãŒãž ããŒãã« ThinLVM ããŒã«ãäœæããŸãããã
sudo vgcreate drbdpool /dev/sdb
sudo lvcreate -L 800G -T drbdpool/thinpool
以éã®ã¢ã¯ã·ã§ã³ã¯ãã¹ãŠã³ã³ãããŒã©ãŒäžã§çŽæ¥å®è¡ã§ããŸãã
ããŒããè¿œå ããŠã¿ãŸãããã
linstor node create node1 127.0.0.11
linstor node create node2 127.0.0.12
linstor node create node3 127.0.0.13
ã¹ãã¬ãŒãž ããŒã«ãäœæããŸãããã
linstor storage-pool create lvmthin node1 data drbdpool/thinpool
linstor storage-pool create lvmthin node2 data drbdpool/thinpool
linstor storage-pool create lvmthin node3 data drbdpool/thinpool
次ã«ãäœæãããããŒã«ã確èªããŠã¿ãŸãããã
linstor storage-pool list
ãã¹ãŠãæ£ããè¡ãããŠããã°ã次ã®ãããªãã®ã衚瀺ãããã¯ãã§ãã
+------------------------------------------------ -------------------------------------------------- ----+ | ã¹ãã¬ãŒãžããŒã« | ããŒã | ãã©ã€ã㌠| ããŒã«å | 空ã容é | ç·å®¹é | ãµããŒãã¹ãããã·ã§ãã | |------------------------------------------------ - ------------------------------------------------- - ---| | ããŒã¿ | ããŒã1 | LVM_THIN | drbdpool/ã·ã³ããŒã« | 64 GiB | 64 GiB | æ¬åœ | | ããŒã¿ | ããŒã2 | LVM_THIN | drbdpool/ã·ã³ããŒã« | 64 GiB | 64 GiB | æ¬åœ | | ããŒã¿ | ããŒã3 | LVM_THIN | drbdpool/ã·ã³ããŒã« | 64 GiB | 64 GiB | æ¬åœ | +------------------------------------------------ -------------------------------------------------- ----+
DRBD ãªãœãŒã¹
次ã«ãæ°ãã DRBD ãªãœãŒã¹ãäœæããŠã¿ãŸãããã
linstor resource-definition create myres
linstor volume-definition create myres 1G
linstor resource create myres --auto-place 2
äœæããããªãœãŒã¹ã確èªããŠã¿ãŸãããã
linstor resource list
+------------------------------------------------ -------------------------------------------------- ---+ | ããŒã | ãªãœãŒã¹ | ã¹ãã¬ãŒãžããŒã« | ããªã¥ãŒã çªå· | ãã€ããŒçªå· | ããã€ã¹å | å²ãåœãŠæžã¿ | 䜿çšäž | ç¶æ | |------------------------------------------------ - ------------------------------------------------- - --| | ããŒã1 | ãã€ã¬ã¹ | ããŒã¿ | 0 | 1084 | /dev/drbd1084 | 52 KiB | æªäœ¿çš | ææ°æ å ± | | ããŒã2 | ãã€ã¬ã¹ | ããŒã¿ | 0 | 1084 | /dev/drbd1084 | 52 KiB | æªäœ¿çš | ææ°æ å ± | +------------------------------------------------ -------------------------------------------------- ---+
çŽ æŽãããïŒ â ãªãœãŒã¹ãæåã® XNUMX ã€ã®ããŒãã§äœæãããããšãããããŸããXNUMX çªç®ã®ããŒãã§ãã£ã¹ã¯ã¬ã¹ ãªãœãŒã¹ã®äœæãè©Šã¿ãããšãã§ããŸãã
linstor resource create --diskless node3 myres
ããŒãäžã§ã¯ããã®ããã€ã¹ã¯åžžã«æ¬¡ã®ããã«è¡šç€ºãããŸãã /dev/drbd1084
ãŸã㯠/dev/drbd/by-res/myres/0
ããã Linstor ã®ä»çµã¿ã§ãã詳现ã«ã€ããŠã¯ã次ã®ãµã€ãããå
¥æã§ããŸãã
次ã«ãOpenNebula ãšçµ±åããæ¹æ³ã説æããŸãã
OpenNebula ã®ã»ããã¢ãã
OpenNebula ã®ã»ããã¢ãã ããã»ã¹ã«ã€ããŠã¯ããŸã詳ãã説æããŸããããªããªã... ãã¹ãŠã®æé ã«ã€ããŠã¯ã以äžã§è©³ãã説æããŸãã
linstor_un
ãã®åé¡ã解決ããããã«ãç§ã¯ç¬èªã®ãã©ã€ããŒãäœæããŸããã
ã€ã³ã¹ããŒã«å šäœã¯ããã³ããšã³ãã® OpenNebula ããŒãã§å®è¡ãããèšç®ããŒãã§è¿œå ã®ã¢ã¯ã·ã§ã³ãè¡ãå¿ èŠã¯ãããŸããã
ãŸã第äžã«ã次ã®ããšã確èªããå¿ èŠããããŸãã jq О ãªã³ã¹ã¿ãŒã¯ã©ã€ã¢ã³ã:
apt-get install jq linstor-client
ããŒã linstor node list
ããŒãã®ãªã¹ãã衚瀺ãããã¯ãã§ãã ãã¹ãŠã® OpenNebula èšç®ããŒãã Linstor ã¯ã©ã¹ã¿ãŒã«è¿œå ããå¿
èŠããããŸãã
ãã©ã°ã€ã³ãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŸãã
curl -L https://github.com/OpenNebula/addon-linstor_un/archive/master.tar.gz | tar -xzvf - -C /tmp
mv /tmp/addon-linstor_un-master/vmm/kvm/* /var/lib/one/remotes/vmm/kvm/
mkdir -p /var/lib/one/remotes/etc/datastore/linstor_un
mv /tmp/addon-linstor_un-master/datastore/linstor_un/linstor_un.conf /var/lib/one/remotes/etc/datastore/linstor_un/linstor_un.conf
mv /tmp/addon-linstor_un-master/datastore/linstor_un /var/lib/one/remotes/datastore/linstor_un
mv /tmp/addon-linstor_un-master/tm/linstor_un /var/lib/one/remotes/tm/linstor_un
rm -rf /tmp/addon-linstor_un-master
次ã«ãããã OpenNebula æ§æã«è¿œå ããå¿
èŠããããŸãããããè¡ãã«ã¯ã説æãããŠããç°¡åãªæé ã«åŸããŸãã
次ã«ãOpenNebula ãåèµ·åããŸãã
systemctl restart opennebula
ããŒã¿ã¹ãã¢ãšã·ã¹ãã ãè¿œå ããŸãã
cat > system-ds.conf <<EOT
NAME="linstor-system"
TYPE="SYSTEM_DS"
STORAGE_POOL="data"
AUTO_PLACE="2"
CLONE_MODE="snapshot"
CHECKPOINT_AUTO_PLACE="1"
BRIDGE_LIST="node1 node2 node3"
TM_MAD="linstor_un"
EOT
onedatastore create system-ds.conf
ãããŠç»åã¹ãã¢:
cat > images-ds.conf <<EOT
NAME="linstor-images"
TYPE="IMAGE_DS"
STORAGE_POOL="data"
AUTO_PLACE="2"
BRIDGE_LIST="node1 node2 node3"
DISK_TYPE="BLOCK"
DS_MAD="linstor_un"
TM_MAD="linstor_un"
EOT
onedatastore create images-ds.conf
- ãã©ã¡ãŒã¿ãŒ
AUTO_PLACE
OpenNebula ã®æ°ããã€ã¡ãŒãžããšã«äœæãããããŒã¿ ã¬ããªã«ã®æ°ã衚瀺ããŸãã - ãã©ã¡ãŒã¿ãŒ
CLONE_MODE
æ°ããä»®æ³ãã·ã³ãäœæãããšãã«ã€ã¡ãŒãžãã©ã®ããã«è€è£œãããããæ£ç¢ºã«ç€ºããŸããsnapshot
â ã€ã¡ãŒãžã®ã¹ãããã·ã§ãããäœæãããã®ã¹ãããã·ã§ããããä»®æ³ãã·ã³ããããã€ããŸããcopy
â åä»®æ³ãã·ã³ã®ã€ã¡ãŒãžã®å®å šãªã³ããŒãäœæããŸãã - Ð
BRIDGE_LIST
ã€ã¡ãŒãžã®ã¯ããŒã³äœææäœãå®è¡ããããã«äœ¿çšããããã¹ãŠã®ããŒããæå®ããããšããå§ãããŸãã
ãµããŒããããŠãããã©ã¡ãŒã¿ã®å®å
šãªãªã¹ãã«ã€ããŠã¯ããåç
§ããŠãã ããã
ããã§ã»ããã¢ããã¯å®äºã§ããå
¬åŒããã¢ãã©ã€ã¢ã³ã¹ãããŠã³ããŒãã§ããããã«ãªããŸãã
ãããžã§ã¯ããªã³ã¯:
åºæïŒ habr.com