د 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 وسیله جوړه شوې.

د خپلواک بلاک وسیلو سره چلند په کلستر کې د ځای غوره کارولو ته اجازه ورکوي، او یو شمیر اضافي ځانګړتیاوې هم اضافه کوي. د مثال په توګه، د هر داسې وسیلې لپاره تاسو کولی شئ د عکسونو شمیر، د دوی موقعیت او انفرادي ترتیبات وټاکئ. دوی په اسانۍ سره رامینځته کول / حذف کول ، سنیپ شاټونه اخیستل ، اندازه کول ، د کوډ کولو وړ کول او نور ډیر څه دي. دا د یادولو وړ ده چې DRBD9 د کورم ملاتړ هم کوي، کوم چې تاسو ته اجازه درکوي چې د ویشل شوي دماغ حالتونو څخه مخنیوی وکړئ.

سرچینې او پس منظرونه

کله چې د نوي بلاک وسیله رامینځته کړئ ، لینسټر په کلستر کې په مختلف نوډونو کې د اړتیا وړ شمیرې نقلونه ځای په ځای کوي. موږ به هر یو ورته نقل ته د DRBD سرچینه وایو.

دوه ډوله سرچینې شتون لري:

  • د معلوماتو سرچینې - د DRBD وسیله ده چې په LVM یا ZFS پول کې په نوډ کې موقعیت لري.
    دا مهال د څو ملاتړو ملاتړ شتون لري او د دوی شمیر په دوامداره توګه وده کوي. د LVM، ThinLVM او ZFS لپاره ملاتړ شتون لري. وروستي دوه تاسو ته اجازه درکوي چې سنیپ شاټونه جوړ او وکاروئ.
  • بې ډیسک سرچینه - د DRBD وسیله ده چې په نوډ کې پرته له بیک انډ پرته ځای په ځای شوي ، مګر اجازه ورکوي چې د منظم بلاک وسیلې په توګه چلند وشي؛ د لوستلو / لیکلو ټول عملیات به د معلوماتو سرچینو ته واستول شي. بې ډیسک سرچینو ته نږدې انلاګ iSCSI LUN دی.

هره DRBD سرچینه کولی شي تر 8 پورې نقلونه ولري، او یوازې یو یې د ډیفالټ لخوا فعال کیدی شي - لومړنۍ، نور هرڅوک به وي ثانوي او د دوی کارول به ناممکن وي تر هغه چې لږ تر لږه یو ابتدايي وي، دا دی، دوی به په ساده ډول د خپل منځ کې ډاټا نقل کړي.

په سیسټم کې د DRBD وسیلې په نصبولو سره ، دا په اوتومات ډول کیږي لومړنۍپه دې توګه حتی د ډیسک پرته سرچینه، د DRBD په اصطلاح کې، لومړنۍ کیدی شي.

نو ولې تاسو Linstor ته اړتیا لرئ؟

کرنل ته د ټولو سرچینو ژورو دندو په سپارلو سره، Linstor په اصل کې د جاوا یو منظم غوښتنلیک دی چې تاسو ته اجازه درکوي په اسانۍ سره د DRBD سرچینو رامینځته کول اتومات کړئ.
سربیره پردې ، د هغه لخوا رامینځته شوې هره سرچینه به د DRBD یو خپلواک کلستر وي چې په خپلواکه توګه کار کوي ، پرته لدې چې د کنټرول الوتکې حالت او د DRBD نورو سرچینو حالت ته په پام سره.

Linstor یوازې دوه برخې لري:

  • Linstor-کنټرولر - اصلي کنټرولر ، کوم چې د سرچینو رامینځته کولو او اداره کولو لپاره API چمتو کوي. دا د سپوږمکۍ سره هم اړیکه نیسي، په دوی کې وړیا ځای ګوري، او د نویو سرچینو د جوړولو او حذف کولو لپاره دندې لیږي. دا په یوه بیلګه کې چلیږي او ډیټابیس کاروي، کوم چې کیدای شي داخلي (H2) یا بهرنی (PostgreSQL، MySQL، MariaDB) وي.
  • Linstor- سپوږمکۍ - په ټولو ذخیرې نوډونو کې نصب شوی او کنټرولر ته د خالي ځای په اړه معلومات چمتو کوي ، او همدارنګه د کنټرولر څخه ترلاسه شوي دندې ترسره کوي ترڅو نوي حجمونه او DRBD وسیلې رامینځته او حذف کړي.

Linstor د لاندې کلیدي مفکورو سره کار کوي:

  • نوډ - یو فزیکي سرور په کوم کې چې د DRBD سرچینې به رامینځته او کارول کیږي.
  • د ذخیره کولو حوض — LVM یا ZFS پول په نوډ کې رامینځته شوی چیرې چې د DRBD سرچینې به موقعیت ولري. بې ډیسک حوض هم ممکن دی - دا یو حوض دی چې یوازې بې ډیسک سرچینې به پکې موقعیت ولري.
  • د سرچینې تعریف - د سرچینې تعریف په اصل کې یو پروټوټایپ دی چې نوم او د هغې ټول ملکیتونه بیانوي.
  • د حجم تعریف - د حجم تعریف. هره سرچینه کیدای شي څو حجمونه ولري، هر حجم باید اندازه ولري.
  • سرچینه - د بلاک وسیلې رامینځته شوی مثال ، هره سرچینه باید په ځانګړي نوډ او ځینې ذخیره کولو حوض کې ځای په ځای شي.

د Linstor نصب کول

زه د سیسټم په توګه د اوبنټو کارولو وړاندیز کوم ، ځکه چې ... د هغې لپاره شتون لري چمتو 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

د ذخیره کولو نوډونه

د لینکس کرنل اوس مهال د ونې د کرنل ماډل سره لیږل کیږي 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ځکه دا ترټولو ساده دی او د سنیپ شاټونو ملاتړ کوي.
سیټ 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

که هرڅه په سمه توګه ترسره شي، نو موږ باید یو څه وګورو لکه:

+---------------------------------------------------------------- ------------------------------------------------------------------ -----+ | د ذخیره کولو پول | نوډ | چلوونکی | د پول نوم | وړیا وړتیا | Total Capacity | Snapshots ملاتړ کوي | |---------------------------------------------------------------- ---------------------------------------------------------------------------------- ---| | ډاټا | نوډ1 | 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 | د وسیلې نوم | تخصیص شوی | InUse | ایالت | |---------------------------------------------------------------- ---------------------------------------------------------------------------------- --| | نوډ1 | myres | ډاټا | 0 | ۱۰۸۴ | /dev/drbd1084 | 1084 KiB | نه کارول شوی | UpToDate | | node52 | myres | ډاټا | 2 | ۱۰۸۴ | /dev/drbd0 | 1084 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 بازار ځای او له دې څخه مجازی ماشینونه جوړ کړئ.

د پروژې لینک:
https://github.com/OpenNebula/addon-linstor_un

سرچینه: www.habr.com

Add a comment