LINSTOR اسٽوريج ۽ ان جي انضمام OpenNebula سان

LINSTOR اسٽوريج ۽ ان جي انضمام OpenNebula سان

گهڻو وقت اڳ، LINBIT کان ماڻهو پنهنجو نئون SDS حل پيش ڪيو - Linstor. اهو هڪ مڪمل طور تي مفت اسٽوريج آهي جيڪو ثابت ڪيل ٽيڪنالاجيز تي ٻڌل آهي: DRBD، LVM، ZFS. Linstor سادگي ۽ چڱي طرح ٺهيل فن تعمير کي گڏ ڪري ٿو، جيڪا توهان کي استحڪام حاصل ڪرڻ جي اجازت ڏئي ٿي ۽ ڪافي شاندار نتيجا.

اڄ مان ان جي باري ۾ ٿورو وڌيڪ تفصيل سان ڳالهائڻ چاهيان ٿو ۽ ڏيکاريان ٿو ته ڪيئن آساني سان OpenNebula سان linstor_un استعمال ڪندي ضم ٿي سگهي ٿو - هڪ نئون ڊرائيور جيڪو مون خاص طور تي هن مقصد لاء تيار ڪيو آهي.

OpenNebula سان ميلاپ ۾ Linstor توهان کي هڪ تيز ۽ قابل اعتماد بادل ٺاهڻ جي اجازت ڏئي ٿو جيڪا توهان جي پنهنجي انفراسٽرڪچر تي آساني سان ترتيب ڏئي سگهجي ٿي.

Linstor فن تعمير

Linstor نه ته هڪ فائيل سسٽم آهي ۽ نه ئي بلاڪ اسٽوريج في سي، Linstor هڪ آرڪيسٽرٽر آهي جيڪو هڪ تجزياتي پرت مهيا ڪري ٿو جيڪو توهان کي LVM يا ZFS ۾ حجم جي تخليق کي خودڪار ڪرڻ ۽ DRBD9 استعمال ڪندي انهن کي نقل ڪرڻ جي اجازت ڏئي ٿو.

اسٽريٽائپائپ کي ٽوڙڻ

پر انتظار ڪريو، DRBD؟ - ڇو ان کي خودڪار ڪيو ۽ اهو ڪيئن ڪم ڪري سگهي ٿو؟

اچو ته ماضي ياد رکون، جڏهن DRBD8 تمام گهڻو مشهور هو. ان جي معياري استعمال ۾ ھڪڙي وڏي بلاڪ ڊيوائس ٺاھڻ ۽ ان کي ڪيترن ئي ننڍڙن ٽڪرن ۾ ڪٽڻ شامل آھي، ساڳئي LVM استعمال ڪندي. mdadm RAID-1 جو هڪ قسم پر نيٽ ورڪ تي نقل سان.

اهو طريقو ان جي خرابين کان سواء ناهي، ۽ تنهن ڪري، DRBD9 جي اچڻ سان، اسٽوريج ڊيزائن جا اصول تبديل ٿي ويا آهن؛ هاڻي هر مجازي مشين لاء هڪ الڳ DRBD ڊوائيس ٺاهي وئي آهي.

آزاد بلاڪ ڊوائيسز سان طريقه ڪار ڪلستر ۾ جاء جي بهتر استعمال جي اجازت ڏئي ٿو، ۽ پڻ اضافي خاصيتون شامل ڪري ٿو. مثال طور، هر اهڙي ڊوائيس لاء، توهان replicas جو تعداد، انهن جي مقام ۽ انفرادي سيٽنگن جو اندازو لڳائي سگهو ٿا. اهي ٺاهڻ/ڊيٽ ڪرڻ، سنيپ شاٽ وٺڻ، ري سائز ڪرڻ، انڪريپشن کي فعال ڪرڻ ۽ گهڻو ڪجهه ڪرڻ آسان آهن. اهو نوٽ ڪرڻ جي قابل آهي ته DRBD9 پڻ ڪورم کي سپورٽ ڪري ٿو، جيڪا توهان کي تقسيم دماغ جي حالتن کان بچڻ جي اجازت ڏئي ٿي.

وسيلا ۽ پس منظر

جڏهن هڪ نئون بلاڪ ڊيوائس ٺاهيندي، Linstor رکي ٿو گهربل تعداد جي نقلن کي ڪلستر ۾ مختلف نوڊس تي. اسان هر هڪ اهڙي نقل کي DRBD وسيلو سڏينداسين.

وسيلن جا ٻه قسم آهن:

  • ڊيٽا وسيلن - هڪ DRBD ڊيوائس آهن جيڪي هڪ LVM يا ZFS پول ۾ نوڊ تي واقع آهن.
    هن وقت ڪيترن ئي پٺاڻن جي حمايت آهي ۽ انهن جو تعداد مسلسل وڌي رهيو آهي. LVM، ThinLVM ۽ ZFS لاءِ سپورٽ آھي. آخري ٻه توهان کي سنيپ شاٽ ٺاهڻ ۽ استعمال ڪرڻ جي اجازت ڏين ٿا.
  • ڊسڪ بي وسيلو - هڪ DRBD ڊيوائس آهي جيڪو هڪ نوڊ تي رکيل آهي بغير ڪنهن پسمنظر جي، پر ان کي اجازت ڏئي ٿي ته جيئن هڪ باقاعده بلاڪ ڊيوائس سمجهيو وڃي؛ سڀ پڙهڻ/لکڻ جا عمل ڊيٽا وسيلن ڏانهن منتقل ڪيا ويندا. diskless وسيلن جي ويجھو analogue iSCSI LUN آهي.

هر DRBD وسيلن کي 8 نقلن تائين ٿي سگهي ٿو، ۽ انهن مان صرف هڪ ڊفالٽ طور تي فعال ٿي سگهي ٿو - پرائمري، ٻيا سڀ هوندا ثانوي ۽ انھن جو استعمال ناممڪن ھوندو جيستائين گھٽ ۾ گھٽ ھڪڙو پرائمري آھي، يعني اھي رڳو پنھنجي وچ ۾ ڊيٽا کي نقل ڪندا.

سسٽم ۾ DRBD ڊوائيس نصب ڪرڻ سان، اهو خودڪار ٿي ويندو پرائمري, اهڙيء طرح هڪ Diskless وسيلو، DRBD اصطلاح ۾، پرائمري ٿي سگهي ٿو.

پوء ڇو توهان Linstor جي ضرورت آهي؟

سڀني وسيلن جي گھڻائي واري ڪمن کي ڪرنل کي سونپڻ سان، Linstor بنيادي طور تي هڪ باقاعده جاوا ايپليڪيشن آهي جيڪا توهان کي آساني سان DRBD وسيلن جي تخليق کي خودڪار ڪرڻ جي اجازت ڏئي ٿي.
ان کان علاوه، هن پاران ٺاهيل هر وسيلا هڪ آزاد DRBD ڪلستر هوندو جيڪو آزاد طور تي هلندو آهي، ڪنٽرول جهاز جي حالت ۽ ٻين DRBD وسيلن جي پرواهه ڪرڻ کان سواء.

Linstor صرف ٻن حصن تي مشتمل آهي:

  • Linstor-ڪنٽرولر - مکيه ڪنٽرولر، جيڪو وسيلن کي ٺاهڻ ۽ انتظام ڪرڻ لاءِ API مهيا ڪري ٿو. اهو پڻ سيٽلائيٽ سان رابطو ڪري ٿو، انهن تي خالي جاء چيڪ ڪري ٿو، ۽ نوان وسيلا ٺاهڻ ۽ حذف ڪرڻ لاء ڪم موڪلي ٿو. اهو هڪ واحد مثال ۾ هلندو آهي ۽ هڪ ڊيٽابيس استعمال ڪري ٿو، جيڪو ٿي سگهي ٿو اندروني (H2) يا خارجي (PostgreSQL، MySQL، MariaDB)
  • Linstor- سيٽلائيٽ - سڀني اسٽوريج نوڊس تي انسٽال ٿيل آهي ۽ ڪنٽرولر کي مفت جاءِ بابت معلومات فراهم ڪري ٿي، ۽ ڪنٽرولر کان وصول ڪيل ڪمن کي پڻ انجام ڏئي ٿو ۽ انهن جي مٿان نوان حجم ۽ ڊي آر بي ڊي ڊيوائسز ٺاهڻ ۽ حذف ڪرڻ لاءِ.

Linstor هيٺ ڏنل اهم تصورن سان هلندي آهي:

  • نوڊ - هڪ جسماني سرور جنهن تي DRBD وسيلا ٺاهيا ۽ استعمال ڪيا ويندا.
  • اسٽوريج پول - LVM يا ZFS پول نوڊ تي ٺاھيو ويو جنھن ۾ DRBD وسيلا واقع ھوندا. هڪ ڊسڪ بيس پول پڻ ممڪن آهي - هي هڪ تلاء آهي جنهن ۾ صرف ڊسڪ وسيلا واقع هوندا.
  • وسيلن جي تعريف - وسيلن جي وصف بنيادي طور تي ھڪڙو پروٽوٽائپ آھي جيڪو نالو ۽ ان جي سڀني ملڪيتن کي بيان ڪري ٿو.
  • حجم جي تعريف - حجم جي تعريف. هر وسيلو ڪيترن ئي حجمن تي مشتمل ٿي سگهي ٿو، هر حجم کي هڪ سائيز هجڻ گهرجي.
  • سرچورس - هڪ بلاڪ ڊيوائس جو ٺهيل مثال، هر وسيلن کي هڪ مخصوص نوڊ ۽ ڪجهه اسٽوريج پول ۾ رکڻ گهرجي.

Linstor تنصيب

آئون Ubuntu کي سسٽم طور استعمال ڪرڻ جي صلاح ڏيان ٿو، ڇاڪاڻ ته ... هن لاء موجود آهي تيار PPA:

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

اسٽوريج نوڊس

لينڪس ڪرنل في الحال هڪ ان-ٽري ڪنيل ماڊل سان گڏ ٻيڙيون موڪلي ٿو ڊي آر بي ڊي 8، بدقسمتي سان اهو اسان کي مناسب ناهي ۽ اسان کي انسٽال ڪرڻ جي ضرورت آهي ڊي آر بي ڊي 9:

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

هڪ ڪلستر ٺاهيو

اسٽوريج پول ۽ نوڊس

هڪ پس منظر جي طور تي اسان کي وٺي ويندي پتلي ايل وي ايم، ڇاڪاڻ ته اهو سڀ کان آسان آهي ۽ سنيپ شاٽ کي سپورٽ ڪري ٿو.
سيٽ ايل ايم 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

جيڪڏهن سڀ ڪجهه صحيح طريقي سان ڪيو وڃي، پوء اسان کي ڪجهه ڏسڻ گهرجي:

+---------------------------------------------------------------- ----------------------------------- ----+ | اسٽوريج پول | نوڊ | ڊرائيور | تلاءَ جو نالو | مفت گنجائش | ڪل گنجائش | سپورٽ اسنيپ شاٽ | |---------------------------------------------------------------- ------------------------------------------------------------------- ---| | ڊيٽا | node1 | LVM_THIN | drbdpool/thinpool | 64 جي بي | 64 جي بي | سچ | | ڊيٽا | node2 | LVM_THIN | drbdpool/thinpool | 64 جي بي | 64 جي بي | سچ | | ڊيٽا | node3 | LVM_THIN | drbdpool/thinpool | 64 جي بي | 64 جي بي | سچ | +---------------------------------------------------------------- ----------------------------------- ----+

DRBD وسيلن

هاڻي اچو ته اسان جو نئون DRBD وسيلو ٺاهڻ جي ڪوشش ڪريون:

linstor resource-definition create myres
linstor volume-definition create myres 1G
linstor resource create myres --auto-place 2

اچو ته پيدا ڪيل وسيلن جي جانچ ڪريو:

linstor resource list 

+---------------------------------------------------------------- ----------------------------------- ---+ | نوڊ | وسيلو | اسٽوريج پول | حجم اين آر | MinorNr | ڊوائيس جو نالو | مختص ٿيل | InUse | رياست | |---------------------------------------------------------------- ------------------------------------------------------------------- ---| | node1 | ميرس | ڊيٽا | 0 | 1084 | /dev/drbd1084 | 52 KiB | غير استعمال ٿيل | UpToDate | | node2 | ميرس | ڊيٽا | 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 nodes تي ڪئي ويندي آهي ۽ ڪمپيوٽ نوڊس تي اضافي عملن جي ضرورت نه هوندي آهي.

سڀ کان پهريان، اسان کي پڪ ڪرڻ جي ضرورت آهي ته اسان وٽ آهي jq и linstor-ڪلائنٽ:

apt-get install jq linstor-client

ٽيم linstor node list نوڊس جي هڪ فهرست ڏيکارڻ گهرجي. سڀ OpenNebula compute nodes کي 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 اهو سڀني نوڊس جي وضاحت ڪرڻ جي سفارش ڪئي وئي آهي جيڪي تصوير ڪلوننگ آپريشن کي انجام ڏيڻ لاء استعمال ڪيا ويندا.

سپورٽ ٿيل پيٽرولن جي مڪمل فهرست لاءِ، ڏسو ريڊيو پروجيڪٽ.

ھي سيٽ اپ مڪمل ڪري ٿو، ھاڻي توھان ڊائون لوڊ ڪري سگھوٿا ڪجھ اوزار سرڪاري کان OpenNebula Marketplace ۽ ان مان ورچوئل مشينون ٺاھيو.

پروجيڪٽ لنڪ:
https://github.com/OpenNebula/addon-linstor_un

جو ذريعو: www.habr.com

تبصرو شامل ڪريو