ืื ืืืื ืืฆืืื ืืืืจ'ื ื-LINBIT ืืช ืคืชืจืื ื-SDS ืืืืฉ ืฉืืื - Linstor. ืืื ืืืกืื ืืื ืื ืืืืืืื ืืืืืกืก ืขื ืืื ืืืืืืืช ืืืืืืช: DRBD, LVM, ZFS. ืืื ืกืืืจ ืืฉืืืช ืคืฉืืืช ืืืจืืืืงืืืจื ืืขืืฆืืช, ืื ืฉืืืคืฉืจ ืืืืืข ืืืฆืืืืช ืืชืืฆืืืช ืืจืฉืืืืช ืืืื.
ืืืื ืื ื ืจืืฆื ืืืืจ ืขื ืื ืงืฆืช ืืืชืจ ืืคืืจืื ืืืืจืืืช ืืืืื ืงืืืช ืืคืฉืจ ืืฉืื ืืืชื ืขื OpenNebula ืืืืฆืขืืช linstor_un - ืืจืืืืจ ืืืฉ ืฉืคืืชืืชื ืืืืืื ืืืืจื ืื.
Linstor ืืฉืืืื ืขื OpenNebula ืืืคืฉืจ ืื ืืื ืืช ืขื ื ืืืืจ ืืืืื ืฉื ืืชื ืืคืจืืก ืืงืืืช ืขื ืืชืฉืชืืช ืฉืื.
ืืืจืืืืืช ืืื ืกืืืจ
Linstor ืืื ืื ืืขืจืืช ืงืืฆืื ืืื ืื ืืืกืื ืืืืง ืืฉืืขืฆืื, Linstor ืืื ืืชืืืจ ืืืกืคืง ืฉืืืช ืืคืฉืื ืืืืคืฉืจืช ืื ืืืคืื ืืช ืืืฆืืจื ืฉื ืืืฆืขื ืืืกืื ื-LVM ืื ZFS ืืืืืืืืืื ืืืฉืืคื ืืืชื ืืืืฆืขืืช DRBD9.
ืฉืืืจืช ืกืืจืืืืืืคืื
ืืื ืจืืข, DRBD? - ืืื ืืืคืื ืืช ืื ืืืืืืืื ืืืื ืื ืืืื ืืืื ืืขืืื?
ืืืื ื ืืืืจ ืืช ืืขืืจ, ืืืฉืจ DRBD8 ืืื ืืืื ืคืืคืืืจื. ืืฉืืืืฉ ืืกืื ืืจืื ืฉืื ืืื ืืฆืืจืช ืืชืงื ืืืืง ืืื ืืืื ืืืืชืื ืืืชื ืืืชืืืืช ืงืื ืืช ืจืืืช, ืชืื ืฉืืืืฉ ืืืืชื LVM. ืกืื ืฉื mdadm RAID-1 ืืื ืขื ืฉืืคืื ืขื ืืจืฉืช.
ืืืฉื ืื ืืื ื ืืคื ืืืกืจืื ืืชืื, ืืืื, ืขื ืืืคืขืช DRBD9, ืขืงืจืื ืืช ืขืืฆืื ืืืืกืื ืืฉืชื ื; ืืขืช ื ืืฆืจ ืืืฉืืจ DRBD ื ืคืจื ืขืืืจ ืื ืืืื ื ืืืจืืืืืืช.
ืืืืฉื ืขื ืืชืงื ื ืืืืง ืขืฆืืืืื ืืืคืฉืจืช ื ืืฆืื ืืื ืืืชืจ ืฉื ืืืื ืืืฉืืื, ืืืืกืืคื ืื ืืกืคืจ ืชืืื ืืช ื ืืกืคืืช. ืืืืืื, ืขืืืจ ืื ืืืฉืืจ ืืื ืืชื ืืืื ืืงืืืข ืืช ืืกืคืจ ืืืขืชืงืื, ืืืงืืื ืืืืืจืืช ืืืืืืช. ืงื ืืืฆืืจ/ืืืืืง ืืืชื, ืืฆืื ืชืืื ืืช, ืืฉื ืืช ืืืื, ืืืคืฉืจ ืืฆืคื ื ืืขืื ืืจืื ืืืชืจ. ืจืืื ืืฆืืื ืื DRBD9 ืชืืื ืื ืืงืืืจืื, ืืืืคืฉืจ ืืืืื ืข ืืืฆืืื ืฉื ืืื ืืคืืฆื.
ืืฉืืืื ืืืืืจืืื
ืืขืช ืืฆืืจืช ืืชืงื ืืืืง ืืืฉ, Linstor ืืืงื ืืช ืืืกืคืจ ืื ืืจืฉ ืฉื ืืขืชืงืื ืืฆืืชืื ืฉืื ืื ืืืฉืืื. ืื ื ื ืงืจื ืืื ืืขืชืง ืืื ืืฉืื DRBD.
ืืฉื ื ืฉื ื ืกืืืื ืฉื ืืฉืืืื:
- ืืฉืื ื ืชืื ืื - ืื ืืชืงื DRBD ืืืืืงื ืขื ืฆืืืช ืืืืืจ LVM ืื ZFS.
ืืจืืข ืืฉ ืชืืืื ืืืื ืืขืจืืืช ืืืืจืืืช ืืืกืคืจื ืืื ืื ืืืื. ืืฉ ืชืืืื ื-LVM, ThinLVM ื-ZFS. ืฉื ื ืืืืจืื ืื ืืืคืฉืจืื ืื ืืืฆืืจ ืฆืืืืื ืืฆื ืืืืฉืชืืฉ ืืื. - ืืฉืื ืืื ืืืกืง - ืืื ืืชืงื DRBD ืืืืฆื ืขื ืฆืืืช ืืื ืงืฆื ืืืืจื, ืื ืืืคืฉืจ ืืืชืืืืก ืืืื ืืื ืืชืงื ืืกืืื ืจืืื; ืื ืคืขืืืืช ืืงืจืืื/ืืชืืื ืืืคื ื ืืืฉืืื ื ืชืื ืื. ืืืฉืืืื ืืื ืืืืืื ืืงืจืืืื ืืืืชืจ ืืืฉืืืื ืืื ืืืกืง ืืื iSCSI LUN.
ืื ืืฉืื DRBD ืืืื ืืืืื ืขื 8 ืืขืชืงืื, ืืจืง ืืื ืืื ืืืื ืืืืืช ืคืขืื ืืืจืืจืช ืืืื - ืจืืฉื, ืื ืืฉืืจ ืืืื ืืืฉื ื ืืืฉืืืืฉ ืืื ืืืื ืืืชื ืืคืฉืจื ืื ืขืื ืืฉ Primary ืืื ืืคืืืช, ืืืืืจ, ืื ืคืฉืื ืืฉืืคืื ื ืชืื ืื ืืื ืืื.
ืขื ืืื ืืชืงื ืช ืืชืงื DRBD ืืืขืจืืช, ืืื ืืืคื ืืืืืืืืช ืจืืฉื, ืืืื ืืคืืื ืืฉืื ืืื ืืืกืง, ืืืจืืื ืืืืืื ืฉื DRBD, ืืืื ืืืืืช ืจืืฉื.
ืื ืืื ืืชื ืฆืจืื ืืื ืกืืืจ?
ืขื ืืื ืืคืงืืช ืื ืืืฉืืืืช ืขืชืืจืืช ืืืฉืืืื ืืงืจื ื, Linstor ืืื ืืขืฆื ืืคืืืงืฆืืืช Java ืจืืืื ืืืืคืฉืจืช ืื ืืืคืื ืืงืืืช ืืช ืืืฆืืจื ืฉื ืืฉืืื DRBD ืืืืืืืืืื.
ืืชืจื ืืื, ืื ืืฉืื ืฉื ืืฆืจ ืขื ืืื ืืืื ืืฉืืื DRBD ืขืฆืืื ืืคืืขื ืืืืคื ืขืฆืืื, ืืื ืชืืืช ืืืฆื ืฉื ืืืฉืืจ ืืืงืจื ืืืฉืืื DRBD ืืืจืื.
Linstor ืืืจืื ืืฉื ื ืืจืืืืื ืืืื:
- ืืื ืกืืืจ-ืืงืจ - ืืืงืจ ืืจืืฉื, ืืืกืคืง API ืืืฆืืจื ืื ืืืื ืืฉืืืื. ืืื ืื ืืชืงืฉืจ ืขื ืืืืืื ืื, ืืืืง ืืช ืืืงืื ืืคื ืื ืืื ืืฉืืื ืืฉืืืืช ืืืฆืืจื ืืืืืงื ืฉื ืืฉืืืื ืืืฉืื. ืื ืคืืขื ืืืืคืข ืืืื ืืืฉืชืืฉ ืืืกื ื ืชืื ืื, ืฉืืืื ืืืืืช ืคื ืืื (H2) ืื ืืืฆืื ื (PostgreSQL, MySQL, MariaDB)
- ืืื ืกืืืจ-ืืืืืื - ืืืชืงื ืืื ืฆืืชื ืืืืกืื ืืืกืคืง ืืืงืจ ืืืืข ืขื ืืงืื ืคื ืื, ืืื ืืืฆืข ืืฉืืืืช ืืืชืงืืืืช ืืืืงืจ ืืืฆืืจื ืืืืืงื ืฉื ืืืฆืขื ืืืกืื ืืืฉืื ืืืชืงื ื DRBD ืืขืืืื.
ืืื ืกืืืจ ืคืืขืืช ืขื ืืืฉืื ืืืคืชื ืืืืื:
- ืฆืืืช - ืฉืจืช ืคืืื ืฉืื ืืืฆืจื ืืฉืืื DRBD ืืืฉืชืืฉื ืื.
- ืืจืืืช ืืืกืื - ืืืืจ LVM ืื ZFS ื ืืฆืจ ืืฆืืืช ืฉืื ืืืืงื ืืฉืืื DRBD. ืืคืฉืจ ืื ืืืืจ ืืื ืืืกืงืื - ืืื ืืืืจ ืื ืืืฆืื ืืฉืืืื ืืื ืืืกืง ืืืื.
- ืืืืจืช ืืฉืื - ืืืืืจื ืฉื ืืฉืื ืืื ืืขืฆื ืื ืืืคืืก ืืืชืืจ ืืช ืืฉื ืืืช ืื ืชืืื ืืชืื.
- ืืืืจืช ื ืคื - ืืืืจืช ื ืคื. ืื ืืฉืื ืืืื ืืืืืช ืืืจืื ืื ืคืืื ืืจืืืื, ืืื ืืืฆืขื ืืืกืื ืืืื ืืืืืช ืืืื.
- ืืฉืื - ืืืคืข ืฉื ืืฆืจ ืฉื ืืชืงื ืืืืง, ืื ืืฉืื ืืืื ืืืืืช ืืืืงื ืืฆืืืช ืกืคืฆืืคื ืืืืจืืืช ืืืกืื ืืืฉืื.
ืืชืงื ืช ืืื ืกืืืจ
ืื ื ืืืืืฅ ืืืฉืชืืฉ ืืืืืื ืื ืืืขืจืืช, ืื... ืงืืื ืขืืืจื
add-apt-repository ppa:linbit/linbit-drbd9-stack
apt-get update
ืื ืืืืื, ืฉื ื ืืชื ืืืชืงืื ืืช Linstor ืืืืืืจ ืืจืฉืื ืฉื Proxmox:
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
ืฆืืชื ืืืกืื
ืืืืช ืืื ืืงืก ื ืฉืืืช ืืขืช ืขื ืืืืื ืืืื ืืชืื ืืขืฅ DRBD8, ืืฆืขืจื ื ืื ืื ืืชืืื ืื ื ืืื ืื ื ืฆืจืืืื ืืืชืงืื DRBD9:
apt-get install drbd-dkms
ืืคื ืฉืืจืื ืืคืืขื, ืจืื ืืงืฉืืื ืืชืขืืจืจืื ืืืืงื ืืืื ืฉืืืืื DRBD8 ื ืืขื ืืืขืจืืช, ืืื DRBD9. ืืืจืื ืืืื, ืงื ืืืืืง ืืืช ืขื ืืื ืืคืขืืช:
modprobe drbd
cat /proc/drbd
ืื ืืชื ืจืืื ืืจืกื: 9 - ืื ืืืืจ ืฉืืื ืืกืืจ ืื ืืจืกื: 8 - ืื ืืืืจ ืฉืืฉืื ืืฉืชืืฉ ืืืชื ืฆืจืื ืื ืงืื ืืฆืขืืื ื ืืกืคืื ืืื ืืืจืจ ืืช ืืกืืืืช.
ืขืืฉืื ืืืื ื ืชืงืื linstor-ืืืืืื ะธ drbd-utils:
apt-get install linstor-satellite drbd-utils
systemctl enable linstor-satellite
systemctl start linstor-satellite
ืฆืืจ ืืฉืืื
ืืจืืืืช ืืืกืื ืืฆืืชืื
ืืชืืจ backend ื ืืงื 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
ืื ืืื ื ืขืฉื ืืืืื, ืื ืื ื ืืืืจืื ืืจืืืช ืืฉืื ืืื:
+-------------------------------------------------------- -------------------------------------------------- ----+ | StoragePool | ืฆืืืช | ื ืื | ืฉื ืืืจืืื | FreeCapacity | TotalCapacity | ืชืืื ืืชืืื ืืช | |------------------------------------------------ - -------------------------------------------------- - ---| | ื ืชืื ืื | node1 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | ื ืืื | | ื ืชืื ืื | node2 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | ื ืืื | | ื ืชืื ืื | node3 | LVM_THIN | drbdpool/thinpool | 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
+-------------------------------------------------------- -------------------------------------------------- ---+ | ืฆืืืช | ืืฉืื | StoragePool | VolumeNr | MinorNr | ืฉื ืืืฉืืจ | ืืืงืฆื | InUse | ืืืื ื | |------------------------------------------------ - -------------------------------------------------- - --| | node1 | myres | ื ืชืื ืื | 0 | 1084 | /dev/drbd1084 | 52 KiB | ืื ืืฉืืืืฉ | UpToDate | | node2 | myres | ื ืชืื ืื | 0 | 1084 | /dev/drbd1084 | 52 KiB | ืื ืืฉืืืืฉ | UpToDate | +-------------------------------------------------------- -------------------------------------------------- ---+
ืืืื! - ืื ื ืจืืืื ืฉืืืฉืื ื ืืฆืจ ืืฉื ื ืืฆืืชืื ืืจืืฉืื ืื, ืื ื ืืืืืื ืื ืื ืกืืช ืืืฆืืจ ืืฉืื ืืื ืืืกืง ืขื ืืฉืืืฉื:
linstor resource create --diskless node3 myres
ืืฆืืชืื ืชืืื ืชืืฆื ืืช ืืืืฉืืจ ืืื ื /dev/drbd1084
ืื /dev/drbd/by-res/myres/0
ืื ืืื ืกืืืจ ืขืืื, ืืชื ืืืื ืืงืื ืืืืข ื ืืกืฃ
ืขืืฉืื ืื ื ืืืื ืื ืืื ืืฉืื ืืช ืื ืขื 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
ืืืืืฅ ืืฆืืื ืืช ืื ืืฆืืชืื ืฉืืฉืืฉื ืืืืฆืืข ืคืขืืืืช ืฉืืืื ืชืืื ื.
ืืจืฉืืื ืืืื ืฉื ืคืจืืืจืื ื ืชืืืื, ืจืื
ืื ืืฉืืื ืืช ืืืืืจื, ืขืืฉืื ืืชื ืืืื ืืืืจืื ืืืฉืืจ ืืืฉืื ืืืจืฉืื
ืงืืฉืืจ ืืคืจืืืงื:
ืืงืืจ: www.habr.com