Ħażna LINSTOR u l-integrazzjoni tagħha ma 'OpenNebula

Ħażna LINSTOR u l-integrazzjoni tagħha ma 'OpenNebula

Ftit ilu, il-guys minn LINBIT ippreżentaw is-soluzzjoni SDS ġdida tagħhom - Linstor. Din hija ħażna kompletament bla ħlas ibbażata fuq teknoloġiji ppruvati: DRBD, LVM, ZFS. Linstor jgħaqqad is-sempliċità u l-arkitettura mfassla tajjeb, li tippermettilek tikseb stabbiltà u riżultati pjuttost impressjonanti.

Illum nixtieq nitkellem dwarha fi ftit aktar dettall u nuri kemm jista' jiġi integrat faċilment ma' OpenNebula bl-użu ta' linstor_un - driver ġdid li żviluppajt speċifikament għal dan il-għan.

Linstor flimkien ma 'OpenNebula jippermettilek tibni sħaba veloċi u affidabbli li tista' tiġi skjerata faċilment fuq l-infrastruttura tiegħek stess.

arkitettura Linstor

Linstor la hija sistema ta 'fajls u lanqas ħażna ta' blokki per se, Linstor huwa orkestratur li jipprovdi saff ta 'estrazzjoni li jippermettilek li awtomatizza l-ħolqien ta' volumi f'LVM jew ZFS u tirreplikahom bl-użu ta 'DRBD9.

Tkissir tal-isterjotipi

Imma stenna, DRBD? — Għaliex awtomatha u kif tista 'saħansitra taħdem?

Ejja niftakru l-passat, meta DRBD8 kien popolari ħafna. L-użu standard tiegħu kien jinvolvi l-ħolqien ta 'apparat wieħed ta' blokka kbira u qtugħ f'ħafna biċċiet żgħar, bl-użu tal-istess LVM. Tip ta 'mdadm RAID-1 iżda b'replikazzjoni fuq in-netwerk.

Dan l-approċċ mhuwiex mingħajr l-iżvantaġġi tiegħu, u għalhekk, bil-miġja tad-DRBD9, il-prinċipji tad-disinn tal-ħażna nbidlu; issa jinħoloq apparat DRBD separat għal kull magna virtwali.

L-approċċ b'apparati ta 'blokk indipendenti jippermetti utilizzazzjoni aħjar tal-ispazju fil-cluster, u jżid ukoll għadd ta' karatteristiċi addizzjonali. Pereżempju, għal kull apparat bħal dan tista 'tiddetermina n-numru ta' repliki, il-post tagħhom u s-settings individwali. Huma faċli biex toħloq/tħassar, tieħu snapshots, tibdel id-daqs, tippermetti l-encryption u ħafna aktar. Ta 'min jinnota li DRBD9 jappoġġja wkoll kworum, li jippermettilek tevita sitwazzjonijiet ta' split-brain.

Riżorsi u backends

Meta toħloq apparat ta 'blokk ġdid, Linstor ipoġġi n-numru meħtieġ ta' repliki fuq nodi differenti fil-cluster. Se nsejħu kull replika bħal din riżorsa DRBD.

Hemm żewġ tipi ta’ riżorsi:

  • Riżors tad-dejta — huma apparat DRBD li jinsab fuq node f'pool LVM jew ZFS.
    Bħalissa hemm appoġġ għal diversi backends u n-numru tagħhom qiegħed dejjem jikber. Hemm appoġġ għal LVM, ThinLVM u ZFS. L-aħħar tnejn jippermettulek toħloq u tuża snapshots.
  • Riżors bla disk — huwa apparat DRBD imqiegħed fuq node mingħajr backend, iżda li jippermettilu li jiġi ttrattat bħala apparat ta’ blokk regolari; l-operazzjonijiet kollha ta’ qari/kitba se jiġu ridiretti lejn riżorsi tad-dejta. L-eqreb analogu għar-riżorsi mingħajr disk huwa iSCSI LUN.

Kull riżorsa DRBD jista' jkollha sa 8 repliki, u waħda biss minnhom tista' tkun attiva awtomatikament - primarja, kulħadd se jkun Sekondarja u l-użu tagħhom se jkun impossibbli sakemm ikun hemm mill-inqas Primarja waħda, jiġifieri, huma sempliċement jirreplikaw id-dejta bejniethom.

Billi tinstalla apparat DRBD fis-sistema, dan isir awtomatikament primarja, għalhekk anke riżorsa Diskless, fit-terminoloġija DRBD, tista' tkun Primarja.

Allura għaliex għandek bżonn Linstor?

Billi tafda l-kompiti kollha li jużaw ħafna riżorsi lill-qalba, Linstor hija essenzjalment applikazzjoni Java regolari li tippermettilek awtomat faċilment il-ħolqien tar-riżorsi DRBD.
Barra minn hekk, kull riżors maħluq minnu se jkun cluster DRBD indipendenti li jopera b'mod indipendenti, irrispettivament mill-istat tal-pjan ta 'kontroll u riżorsi DRBD oħra.

Linstor jikkonsisti biss f'żewġ komponenti:

  • Linstor-kontrollur - Il-kontrollur prinċipali, li jipprovdi API għall-ħolqien u l-ġestjoni tar-riżorsi. Jikkomunika wkoll mas-satelliti, jiċċekkja l-ispazju ħieles fuqhom, u jibgħat kompiti biex joħloq u jħassar riżorsi ġodda. Hija taħdem f'istanza waħda u tuża database, li tista 'tkun jew interna (H2) jew esterna (PostgreSQL, MySQL, MariaDB)
  • Linstor-satellita — Installat fuq in-nodi kollha tal-ħażna u jipprovdi lill-kontrollur b'informazzjoni dwar l-ispazju ħieles, u jwettaq ukoll kompiti riċevuti mill-kontrollur biex joħloq u jħassar volumi ġodda u apparat DRBD fuqhom.

Linstor topera bil-kunċetti ewlenin li ġejjin:

  • nodu — server fiżiku li fuqu se jinħolqu u jintużaw ir-riżorsi DRBD.
  • Pool tal-Ħażna — LVM jew ZFS pool maħluqa fuq in-nodu li fih se jkunu jinsabu r-riżorsi DRBD. A pool bla disk huwa wkoll possibbli - dan huwa pool li fih biss se jkunu jinsabu riżorsi mingħajr disk.
  • Definizzjoni tar-Riżorsi — Id-definizzjoni ta' riżorsa hija essenzjalment prototip li jiddeskrivi l-isem u l-proprjetajiet kollha tiegħu.
  • Definizzjoni tal-Volum — Definizzjoni tal-volum. Kull riżorsa tista 'tikkonsisti f'diversi volumi, kull volum għandu jkollu daqs.
  • Riżorsi — Istanza maħluqa ta’ apparat ta’ blokk, kull riżorsa trid titqiegħed fuq nodu speċifiku u f’xi pool ta’ ħażna.

Installazzjoni Linstor

Nirrakkomanda li tuża Ubuntu bħala sistema, għax... teżisti għaliha PPA lest:

add-apt-repository ppa:linbit/linbit-drbd9-stack
apt-get update

Jew Debian, fejn Linstor jista' jiġi installat mir-repożitorju uffiċjali għal 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

Kontrollur

Hawnhekk kollox huwa sempliċi:

apt-get install linstor-controller linstor-client
systemctl enable linstor-controller
systemctl start linstor-controller

Nodi tal-ħażna

Il-qalba tal-Linux bħalissa tintbagħat b'modulu tal-qalba fis-siġra DRBD8, sfortunatament ma jaqbilx lilna u għandna bżonn ninstallaw DRBD9:

apt-get install drbd-dkms

Kif turi l-prattika, il-biċċa l-kbira tad-diffikultajiet jinqalgħu preċiżament minħabba li l-modulu DRBD8 jitgħabba fis-sistema, u mhux DRBD9. Fortunatament, dan huwa faċli biex tiċċekkja billi taħdem:

modprobe drbd
cat /proc/drbd

Jekk tara verżjoni: 9 - ifisser kollox tajjeb jekk verżjoni: 8 - ifisser li xi ħaġa marret ħażin u trid tieħu passi addizzjonali biex issir taf ir-raġunijiet.

Issa ejja ninstallaw Linstor-satellita и drbd-utils:

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

Oħloq cluster

Pixxini tal-ħażna u nodi

Bħala backend se nieħdu ThinLVM, għax huwa l-aktar sempliċi u jappoġġja snapshots.
Set lvm2, jekk ma tkunx diġà għamilt dan, ejja noħolqu pool ThinLVM fuq in-nodi kollha tal-ħażna tagħna:

sudo vgcreate drbdpool /dev/sdb
sudo lvcreate -L 800G -T drbdpool/thinpool

L-azzjonijiet oħra kollha jistgħu jitwettqu direttament fuq il-kontrollur:

Ejja nżidu n-nodi tagħna:

linstor node create node1 127.0.0.11
linstor node create node2 127.0.0.12
linstor node create node3 127.0.0.13

Ejja noħolqu pools tal-ħażna:

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

Issa ejja niċċekkjaw il-pools maħluqa:

linstor storage-pool list

Jekk kollox isir b'mod korrett, allura għandna naraw xi ħaġa bħal:

+------------------------------------------------ ------------------------------------------------- ----+ | StoragePool | Nodu | Sewwieq | PoolName | Kapaċità Ħielsa | Kapaċità Totali | Jappoġġja Snapshots | |------------------------------------------------ ------------------------------------------------- ---| | data | node1 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | veru | | data | node2 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | veru | | data | node3 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | veru | +------------------------------------------------ ------------------------------------------------- ----+

riżorsi DRBD

Issa ejja nippruvaw noħolqu r-riżors DRBD il-ġdid tagħna:

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

Ejja niċċekkjaw ir-riżorsi maħluqa:

linstor resource list 

+------------------------------------------------ ------------------------------------------------- ---+ | Nodu | Riżorsi | StoragePool | VolumNr | MinorNr | DeviceName | Allokati | InUżu | Stat | |------------------------------------------------ ------------------------------------------------- --| | node1 | myres | data | 0 | 1084 | /dev/drbd1084 | 52 KiB | Mhux użat | Aġġornata | | node2 | myres | data | 0 | 1084 | /dev/drbd1084 | 52 KiB | Mhux użat | Aġġornata | +------------------------------------------------ ------------------------------------------------- ---+

Kbir! — naraw li r-riżors inħoloq fuq l-ewwel żewġ nodi, nistgħu wkoll nippruvaw noħolqu riżors mingħajr disk fit-tielet:

linstor resource create --diskless node3 myres

Fuq in-nodi dejjem issib dan l-apparat bħala /dev/drbd1084 jew /dev/drbd/by-res/myres/0

Dan huwa kif jaħdem Linstor, tista 'tikseb aktar informazzjoni minn dokumentazzjoni uffiċjali.

Issa ngħidlek kif tintegraha ma' OpenNebula

Twaqqif ta' OpenNebula

Mhux se nidħol fil-fond wisq fil-proċess tas-setup ta’ OpenNebula, għax... il-passi kollha huma deskritti fid-dettall fi dokumentazzjoni uffiċjali, li nirrakkomandalek tikkuntattja, jien ngħidlek biss dwar l-integrazzjoni ta 'OpenNebula ma' Linstor.

linstor_un

Biex issolvi din il-problema, ktibt is-sewwieq tiegħi stess - linstor_un, bħalissa huwa disponibbli bħala plugin u għandu jiġi installat separatament.

L-installazzjoni kollha titwettaq fuq in-nodi OpenNebula ta 'frontend u ma teħtieġx azzjonijiet addizzjonali fuq in-nodi tal-komputazzjoni.

L-ewwelnett, irridu niżguraw li għandna jq и linstor-klijent:

apt-get install jq linstor-client

Team linstor node list għandu juri lista ta’ nodi. In-nodi kollha tal-komputazzjoni OpenNebula għandhom jiġu miżjuda mal-cluster Linstor.

Niżżel u installa l-plugin:

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

Issa rridu nżiduha mal-konfigurazzjoni tal-OpenNebula, biex nagħmlu dan aħna nsegwu l-passi sempliċi deskritti hawn.

Imbagħad erġa ibda OpenNebula:

systemctl restart opennebula

U żid id-datastores tagħna, is-sistema:

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

U l-maħżen tal-immaġni:

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

  • Parametru AUTO_PLACE juri n-numru ta' repliki tad-dejta li se jinħolqu għal kull immaġini ġdida f'OpenNebula.
  • Parametru CLONE_MODE jindika eżattament kif l-immaġini se jiġu kklonati meta jinħolqu magni virtwali ġodda, snapshot — se toħloq stampa tal-immaġni u tuża magna virtwali mill-istampa, copy — se tagħmel kopja sħiħa tal-immaġni għal kull magna virtwali.
  • В BRIDGE_LIST Huwa rakkomandat li jiġu speċifikati n-nodi kollha li se jintużaw biex iwettqu operazzjonijiet ta 'klonazzjoni ta' l-immaġni.

Għal lista sħiħa ta 'parametri appoġġjati, ara README proġett.

Dan itemm is-setup, issa tista 'tniżżel xi apparat mill-uffiċjal Suq OpenNebula u toħloq magni virtwali minnha.

Link tal-proġett:
https://github.com/OpenNebula/addon-linstor_un

Sors: www.habr.com

Żid kumment