LINSTOR ආචයනය සහ OpenNebula සමඟ එය ඒකාබද්ධ කිරීම

LINSTOR ආචයනය සහ OpenNebula සමඟ එය ඒකාබද්ධ කිරීම

බොහෝ කලකට පෙර, LINBIT හි පිරිමි ළමයින් ඔවුන්ගේ නව SDS විසඳුම - ලින්ස්ටර් ඉදිරිපත් කළහ. මෙය ඔප්පු කරන ලද තාක්ෂණයන් මත පදනම් වූ සම්පූර්ණයෙන්ම නොමිලේ ගබඩා කිරීමකි: DRBD, LVM, ZFS. Linstor සරල බව සහ හොඳින් සැලසුම් කරන ලද ගෘහ නිර්මාණ ශිල්පය ඒකාබද්ධ කරයි, එමඟින් ඔබට ස්ථාවරත්වය සහ ඉතා ආකර්ෂණීය ප්රතිඵල ලබා ගැනීමට ඉඩ සලසයි.

අද මම ඒ ගැන ටිකක් විස්තරාත්මකව කතා කරන්න කැමතියි සහ linstor_un භාවිතා කරමින් OpenNebula සමඟ එය කෙතරම් පහසුවෙන් ඒකාබද්ධ කළ හැකිද යන්න පෙන්වීමට මම විශේෂයෙන් නිර්මාණය කළ නව ධාවකයකි.

OpenNebula සමඟ ඒකාබද්ධව Linstor ඔබට ඔබේම යටිතල පහසුකම් මත පහසුවෙන් යෙදවිය හැකි වේගවත් සහ විශ්වාසනීය වලාකුළක් තැනීමට ඉඩ සලසයි.

ලින්ස්ටර් ගෘහ නිර්මාණ ශිල්පය

Linstor යනු ගොනු පද්ධතියක් හෝ අවහිර ගබඩාවක් නොවේ, Linstor යනු ඔබට LVM හෝ ZFS හි වෙළුම් සෑදීම ස්වයංක්‍රීය කිරීමට සහ DRBD9 භාවිතයෙන් ඒවා ප්‍රතිවර්තනය කිරීමට ඉඩ සලසන වියුක්ත ස්තරයක් සපයන වාද්‍ය වෘන්දයකි.

ඒකාකෘති බිඳ දැමීම

නමුත් ඉන්න, DRBD? - එය ස්වයංක්‍රීය කරන්නේ ඇයි සහ එය ක්‍රියා කරන්නේ කෙසේද?

DRBD8 ඉතා ජනප්‍රිය වූ අතීතය සිහිපත් කරමු. එහි සම්මත භාවිතය සඳහා එක් විශාල බ්ලොක් උපාංගයක් නිර්මාණය කිරීම සහ එම LVM භාවිතා කරමින් එය කුඩා කැබලි කිහිපයකට කැපීම ඇතුළත් විය. mdadm RAID-1 වර්ගයක් නමුත් ජාලය හරහා අනුකරණයක් ඇත.

මෙම ප්‍රවේශය එහි අඩුපාඩු නොමැතිව නොවේ, එබැවින්, DRBD9 පැමිණීමත් සමඟ, ගබඩා සැලසුම් කිරීමේ මූලධර්ම වෙනස් වී ඇත; දැන් එක් එක් අථත්‍ය යන්ත්‍රය සඳහා වෙනම DRBD උපාංගයක් නිර්මාණය කර ඇත.

ස්වාධීන බ්ලොක් උපාංග සමඟ ප්රවේශය පොකුරේ අවකාශය වඩා හොඳින් භාවිතා කිරීමට ඉඩ සලසයි, තවද අමතර විශේෂාංග ගණනාවක් එකතු කරයි. උදාහරණයක් ලෙස, එවැනි එක් එක් උපාංගය සඳහා ඔබට අනුරූ ගණන, ඒවායේ පිහිටීම සහ තනි සැකසුම් තීරණය කළ හැකිය. ඒවා සෑදීමට/මැකීමට, ස්නැප්ෂොට් ගැනීමට, ප්‍රමාණය වෙනස් කිරීමට, සංකේතනය සක්‍රීය කිරීමට සහ තවත් බොහෝ දේ කිරීමට පහසුය. DRBD9 ගණපූරණයට ද සහය දක්වන බව සඳහන් කිරීම වටී, එමඟින් මොළයේ බෙදීම් තත්වයන් වළක්වා ගැනීමට ඔබට ඉඩ සලසයි.

සම්පත් සහ පසුපෙළ

නව බ්ලොක් උපාංගයක් නිර්මාණය කරන විට, Linstor විසින් පොකුරේ විවිධ නෝඩ් මත අවශ්‍ය අනුරූ ගණන තබයි. අපි එවැනි සෑම අනුරුවක්ම DRBD සම්පතක් ලෙස හඳුන්වමු.

සම්පත් වර්ග දෙකක් තිබේ:

  • දත්ත සම්පත — යනු LVM හෝ ZFS සංචිතයක නෝඩයක් මත පිහිටා ඇති DRBD උපාංගයකි.
    මේ මොහොතේ පසුබිම් කිහිපයක් සඳහා ආධාරකයක් ඇති අතර ඔවුන්ගේ සංඛ්යාව නිරන්තරයෙන් වර්ධනය වේ. LVM, ThinLVM සහ ZFS සඳහා සහය ඇත. අවසාන දෙක ඔබට ස්නැප්ෂොට් සෑදීමට සහ භාවිතා කිරීමට ඉඩ සලසයි.
  • තැටි රහිත සම්පත - DRBD උපාංගයක් පසුබිමක් නොමැතිව නෝඩයක් මත තබා ඇත, නමුත් එය සාමාන්‍ය වාරණ උපාංගයක් ලෙස සැලකීමට ඉඩ සලසයි; සියලුම කියවීම්/ලිවීම මෙහෙයුම් දත්ත සම්පත් වෙත හරවා යවනු ලැබේ. තැටි රහිත සම්පත් වලට ආසන්නතම ප්‍රතිසමය iSCSI LUN වේ.

සෑම DRBD සම්පතකටම අනුරූ 8ක් දක්වා තිබිය හැකි අතර, ඒවායින් එකක් පමණක් පෙරනිමියෙන් සක්‍රිය විය හැක - ප්රාථමික, අනෙක් සියල්ලන්ම වනු ඇත ද්විතීයික සහ අවම වශයෙන් එක් ප්‍රාථමිකයක් ඇති තාක් ඒවායේ භාවිතය කළ නොහැකි වනු ඇත, එනම්, ඔවුන් තමන් අතර දත්ත ප්‍රතිනිර්මාණය කරනු ඇත.

පද්ධතියට DRBD උපාංගයක් ස්ථාපනය කිරීමෙන්, එය ස්වයංක්රීයව බවට පත් වේ ප්රාථමික, DRBD පාරිභාෂිතය තුළ තැටි රහිත සම්පතක් පවා ප්‍රාථමික විය හැක.

ඉතින් ඔබට Linstor අවශ්ය වන්නේ ඇයි?

සියලුම සම්පත්-දැඩි කාර්යයන් කර්නලය වෙත පැවරීමෙන්, Linstor යනු DRBD සම්පත් නිර්මාණය කිරීම පහසුවෙන් ස්වයංක්‍රීය කිරීමට ඔබට ඉඩ සලසන සාමාන්‍ය ජාවා යෙදුමකි.
එපමනක් නොව, ඔහු විසින් නිර්මාණය කරන ලද සෑම සම්පතක්ම පාලන තලයේ සහ අනෙකුත් DRBD සම්පත්වල තත්වය කුමක් වුවත් ස්වාධීනව ක්‍රියාත්මක වන ස්වාධීන DRBD පොකුරක් වනු ඇත.

Linstor සමන්විත වන්නේ සංරචක දෙකකින් පමණි:

  • ලින්ස්ටර්-පාලකය - සම්පත් නිර්මාණය කිරීම සහ කළමනාකරණය කිරීම සඳහා API සපයන ප්‍රධාන පාලකය. එය චන්ද්‍රිකා සමඟ සන්නිවේදනය කරයි, ඒවා මත ඇති නිදහස් ඉඩ පරීක්ෂා කරයි, සහ නව සම්පත් සෑදීමට සහ මකා දැමීමට කාර්යයන් යවයි. එය එක් අවස්ථාවක ක්‍රියාත්මක වන අතර දත්ත සමුදායක් භාවිතා කරයි, එය අභ්‍යන්තර (H2) හෝ බාහිර (PostgreSQL, MySQL, MariaDB) විය හැක.
  • Linstor-satellite — සියලුම ගබඩා නෝඩ් මත ස්ථාපනය කර ඇති අතර පාලකයට නිදහස් ඉඩ පිළිබඳ තොරතුරු සපයන අතර, ඒවා මත නව වෙළුම් සහ DRBD උපාංග සෑදීමට සහ මකා දැමීමට පාලකයෙන් ලැබෙන කාර්යයන් ද සිදු කරයි.

Linstor පහත සඳහන් ප්‍රධාන සංකල්ප සමඟ ක්‍රියා කරයි:

  • node එකක් මතම ඊට අදාල - DRBD සම්පත් නිර්මාණය කර භාවිතා කරන භෞතික සේවාදායකයක්.
  • ගබඩා තටාකය — LVM හෝ ZFS සංචිතය DRBD සම්පත් ඇති නෝඩය මත සාදන ලදී. තැටි රහිත සංචිතයක් ද කළ හැකිය - මෙය තැටි රහිත සම්පත් පමණක් පිහිටා ඇති තටාකයකි.
  • සම්පත් අර්ථ දැක්වීම - සම්පතක නිර්වචනය මූලික වශයෙන් නම සහ එහි සියලු ගුණාංග විස්තර කරන මූලාකෘතියකි.
  • පරිමාව අර්ථ දැක්වීම - පරිමාව අර්ථ දැක්වීම. සෑම සම්පතක්ම බහු වෙළුම් වලින් සමන්විත විය හැක, සෑම වෙළුමකටම විශාලත්වය තිබිය යුතුය.
  • සම්පත් — බ්ලොක් උපාංගයක් නිර්මාණය කළ අවස්ථාවක්, සෑම සම්පතක්ම නිශ්චිත නෝඩයක් මත සහ යම් ගබඩා තටාකයක තැබිය යුතුය.

ලින්ස්ටර් ස්ථාපනය

මම උබුන්ටු පද්ධතියක් ලෙස භාවිතා කිරීම නිර්දේශ කරමි, මන්ද... ඇය වෙනුවෙන් පවතී සූදානම් PPA:

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 - එයින් අදහස් වන්නේ යම් දෙයක් වැරදී ඇති අතර හේතු සොයා ගැනීමට ඔබ අමතර පියවර ගත යුතු බවයි.

දැන් අපි ස්ථාපනය කරමු linstor-satellite и drbd-utils:

apt-get install linstor-satellite drbd-utils
systemctl enable linstor-satellite
systemctl start linstor-satellite

පොකුරක් සාදන්න

ගබඩා තටාක සහ නෝඩ්

පසුබිමක් ලෙස අපි ගන්නෙමු ThinLVM, නිසා එය සරලම වන අතර ස්නැප්ෂොට් සඳහා සහය දක්වයි.
සකසන්න එල්වීඑම් 2, ඔබ දැනටමත් එසේ කර නොමැති නම්, අපගේ සියලුම ගබඩා නෝඩ් මත 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

සෑම දෙයක්ම නිවැරදිව සිදු කර ඇත්නම්, අපි එවැනි දෙයක් දැකිය යුතුය:

+------------------------------------------------ ---------------------------------------------- ----+ | ගබඩා තටාකය | නෝඩය | රියදුරු | තටාක නාමය | නිදහස් ධාරිතාව | සම්පූර්ණ ධාරිතාව | ආධාරකSnapshots | |------------------------------------------------ ------------------------------------------------- ---| | දත්ත | 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 

+------------------------------------------------ ---------------------------------------------- ---+ | නෝඩය | සම්පත | ගබඩා තටාකය | VolumeNr | MinorNr | උපාංගයේ නම | වෙන් කරන ලද | භාවිතය | රාජ්ය | |------------------------------------------------ ------------------------------------------------- --| | 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

Linstor ක්‍රියා කරන්නේ මේ ආකාරයටයි, ඔබට වැඩිදුර තොරතුරු ලබා ගත හැක නිල ලියකියවිලි.

දැන් මම කියන්නම් OpenNebula සමඟ එය ඒකාබද්ධ කරන්නේ කෙසේද කියා

OpenNebula පිහිටුවීම

මම OpenNebula සැකසුම් ක්‍රියාවලියට ගැඹුරට නොයමි, මන්ද... සියලුම පියවර විස්තරාත්මකව විස්තර කර ඇත නිල ලියකියවිලි, මම ඔබට සම්බන්ධ කර ගැනීමට නිර්දේශ කරන, මම ඔබට කියන්නේ Linstor සමඟ OpenNebula ඒකාබද්ධ කිරීම ගැන පමණි.

linstor_un

මෙම ගැටළුව විසඳීම සඳහා, මම මගේම රියදුරු ලිව්වෙමි - linstor_un, එය දැනට ප්ලගිනයක් ලෙස ලබා ගත හැකි අතර වෙන වෙනම ස්ථාපනය කළ යුතුය.

සම්පූර්ණ ස්ථාපනය සිදු කරනු ලබන්නේ ඉදිරිපස OpenNebula නෝඩ් මත වන අතර පරිගණක නෝඩ් මත අමතර ක්‍රියා අවශ්‍ය නොවේ.

පළමුවෙන්ම, අප සතුව ඇති බවට වග බලා ගත යුතුය jq и linstor-සේවාලාභියා:

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 config එකට එකතු කළ යුතුයි, මෙය සිදු කිරීම සඳහා අපි විස්තර කර ඇති සරල පියවර අනුගමනය කරමු මෙහි.

ඉන්පසු 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 රූප ක්ලෝනකරණ මෙහෙයුම් සිදු කිරීමට භාවිතා කරන සියලුම නෝඩ් සඳහන් කිරීම නිර්දේශ කෙරේ.

සහාය දක්වන පරාමිතිවල සම්පූර්ණ ලැයිස්තුවක් සඳහා, බලන්න README ව්යාපෘතිය.

මෙය සැකසුම සම්පූර්ණ කරයි, දැන් ඔබට නිලයෙන් යම් උපකරණයක් බාගත කළ හැකිය OpenNebula Marketplace සහ එයින් virtual machines නිර්මාණය කරන්න.

ව්යාපෘති සබැඳිය:
https://github.com/OpenNebula/addon-linstor_un

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න