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
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
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
linstor_un
Biex issolvi din il-problema, ktibt is-sewwieq tiegħi stess -
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
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
Dan itemm is-setup, issa tista 'tniżżel xi apparat mill-uffiċjal
Link tal-proġett:
Sors: www.habr.com