Isitoreji se-LINSTOR nokuhlanganiswa kwayo ne-OpenNebula

Isitoreji se-LINSTOR nokuhlanganiswa kwayo ne-OpenNebula

Kungekudala, abafana abavela e-LINBIT bethule isisombululo sabo esisha se-SDS - uLinstor. Lesi isitoreji samahhala esisekelwe kubuchwepheshe obufakazelwe: DRBD, LVM, ZFS. I-Linstor ihlanganisa ubulula kanye nezakhiwo eziklanywe kahle, ezikuvumela ukuba uzuze ukuzinza nemiphumela emangalisa ngempela.

Namuhla ngithanda ukukhuluma ngayo ngokuningiliziwe okwengeziwe futhi ngibonise ukuthi ingahlanganiswa kalula kanjani ne-OpenNebula isebenzisa i-linstor_un - umshayeli omusha engiwuthuthukisele le njongo.

I-Linstor ngokuhlanganiswa ne-OpenNebula ikuvumela ukuthi wakhe ifu elisheshayo nelithembekile elingasatshalaliswa kalula kwingqalasizinda yakho.

I-Linstor Architecture

I-Linstor ayilona uhlelo lwefayela noma i-block storage per se-se, i-Linstor iyi-orchestrator enikeza isendlalelo esikhiphayo esikuvumela ukuthi wenze ngokuzenzakalelayo ukwakhiwa kwamavolumu ku-LVM noma i-ZFS futhi uwaphindaphinde usebenzisa i-DRBD9.

Ukugqashula ama-stereotypes

Kodwa linda, DRBD? - Kungani uyishintsha ngokuzenzakalelayo futhi ingasebenza kanjani?

Masikhumbule okwedlule, lapho i-DRBD8 yayidume kakhulu. Ukusetshenziswa kwayo okujwayelekile kwakuhilela ukudala idivayisi eyodwa enkulu yebhulokhi nokuyisika ibe yizicucu eziningi ezincane, kusetshenziswa i-LVM efanayo. Uhlobo lwe-mdadm RAID-1 kodwa ngokuphindaphinda ngenethiwekhi.

Le ndlela inezihibe zayo, ngakho-ke, ngokufika kwe-DRBD9, izimiso zokuklama isitoreji sezishintshile; manje kwakhiwa idivayisi ehlukile ye-DRBD emshinini ngamunye obonakalayo.

Indlela enamadivayisi we-block ezimele ivumela ukusetshenziswa okungcono kwesikhala ku-cluster, futhi ingeza izici ezengeziwe ezengeziwe. Isibonelo, kudivayisi ngayinye enjalo ungakwazi ukunquma inombolo ye-replica, indawo yazo kanye nezilungiselelo ngazinye. Kulula ukwenza/ukusula, ukuthatha izifinyezo, ukukhulisa usayizi, ukunika amandla ukubethela nokunye okuningi. Kuyaqapheleka ukuthi i-DRBD9 iphinde isekele ikhoramu, ekuvumela ukuthi ugweme izimo zobuchopho obuhlukene.

Izinsiza nezingemuva

Lapho udala idivayisi entsha ye-block, i-Linstor ibeka inombolo edingekayo yama-replicas kumanodi ahlukene kuqoqo. Sizobiza umfanekiso ngamunye onjalo ngesisetshenziswa se-DRBD.

Kunezinhlobo ezimbili zezinsiza:

  • Insiza yedatha - ziyidivayisi ye-DRBD etholakala endaweni eyi-LVM noma ye-ZFS pool.
    Okwamanje kukhona ukusekelwa kwama-backends amaningana futhi isibalo sabo sikhula njalo. Kukhona ukusekelwa kwe-LVM, ThinLVM kanye ne-ZFS. Okubili kokugcina kukuvumela ukuthi udale futhi usebenzise izifinyezo.
  • Insiza engenadiski - iyidivayisi ye-DRBD ebekwe endaweni ngaphandle kwe-backend, kodwa evumela ukuthi iphathwe njengedivayisi evamile yokuvimba; yonke imisebenzi yokufunda/ukubhala izoqondiswa kabusha kuzinsiza zedatha. I-analogue eseduze kuzinsiza ezingenadiski yi-iSCSI LUN.

Insiza ngayinye ye-DRBD ingaba nezifanekiselo ezingafika kweziyi-8, futhi eyodwa kuphela yazo engakwazi ukusebenza ngokuzenzakalelayo - Okuyinhloko, bonke abanye bayoba Secondary futhi ukusetshenziswa kwazo ngeke kwenzeke inqobo nje uma kukhona okungenani eyodwa Primary, okungukuthi, bayomane baphindaphinde idatha phakathi kwabo.

Ngokufaka idivayisi ye-DRBD ohlelweni, iba ngokuzenzakalelayo Okuyinhloko, ngaleyo ndlela ngisho nensiza ye-Diskless, kumatemu e-DRBD, ingaba Okuyinhloko.

Ngakho-ke kungani udinga i-Linstor?

Ngokuphathisa yonke imisebenzi edinga izinsiza ku-kernel, i-Linstor iwuhlelo lokusebenza olujwayelekile lwe-Java olukuvumela ukuthi wenze ngokuzenzakalelayo ukudalwa kwezinsiza ze-DRBD.
Ngaphezu kwalokho, insiza ngayinye edalwe nguye izoba yiqoqo elizimele le-DRBD elisebenza ngokuzimela, kungakhathaliseki ukuthi isimo sendiza yokulawula kanye nezinye izinsiza ze-DRBD.

I-Linstor iqukethe izingxenye ezimbili kuphela:

  • Isilawuli se-linstor - Isilawuli esikhulu, esihlinzeka nge-API yokudala nokuphatha izinsiza. Iphinde ixhumane namasathelayithi, ibheka indawo yamahhala kuwo, futhi ithumele imisebenzi ukuze idale futhi isuse izinsiza ezintsha. Isebenza esimeni esisodwa futhi isebenzisa isizindalwazi, esingaba sangaphakathi (H2) noma sangaphandle (PostgreSQL, MySQL, MariaDB)
  • I-Linstor-satellite — Ifakwe kuwo wonke amanodi okugcina futhi inikeze isilawuli ulwazi mayelana nesikhala esikhululekile, futhi yenza nemisebenzi etholwe kusilawuli ukuze idale futhi isuse amavolumu amasha namadivayisi e-DRBD phezu kwawo.

I-Linstor isebenza nemiqondo esemqoka elandelayo:

  • I-Node - iseva ebonakalayo lapho kuzokwakhiwa futhi kusetshenziswe izinsiza ze-DRBD.
  • Ichibi Lokugcina - Ichibi le-LVM noma le-ZFS elidalwe endaweni lapho izinsiza ze-DRBD zizotholakala khona. I-diskless pool nayo ingenzeka - leli yichibi lapho kuzotholakala khona izinsiza ze-diskless kuphela.
  • Incazelo Yensiza - Incazelo yensiza empeleni iyisibonelo esichaza igama nazo zonke izici zayo.
  • Incazelo Yevolumu - Incazelo yevolumu. Insiza ngayinye ingaba namavolumu amaningi, ivolumu ngayinye kufanele ibe nosayizi.
  • Imithombo - Isibonelo esidaliwe sedivayisi yokuvimba, insiza ngayinye kufanele ibekwe endaweni ethile kanye nakwenye indawo yokugcina amanzi.

Ukufakwa kwe-linstor

Ngincoma ukusebenzisa Ubuntu njengohlelo, ngoba... ikhona ngenxa yakhe i-PPA elungile:

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

Noma i-Debian, lapho i-Linstor ingafakwa khona endaweni esemthethweni ye-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

isilawuli

Konke kulula lapha:

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

Amanodi esitoreji

I-Linux kernel okwamanje ithunyelwa ngemojula ye-kernel esemthini I-DRBD8, ngeshwa ayihambisani nathi futhi sidinga ukuyifaka I-DRBD9:

apt-get install drbd-dkms

Njengoba umkhuba ubonisa, ubunzima obuningi buvela ngokuqondile ngoba imojula ye-DRBD8 ilayishwe ohlelweni, hhayi i-DRBD9. Ngenhlanhla, lokhu kulula ukukuhlola ngokuqalisa:

modprobe drbd
cat /proc/drbd

Uma ubona inguqulo: 9 - kusho ukuthi konke kuhamba kahle uma inguqulo: 8 - kusho ukuthi kukhona okungahambanga kahle futhi udinga ukuthatha izinyathelo ezengeziwe ukuze uthole izizathu.

Manje masifake i-linstor-satellite и drbd-utils:

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

Dala iqoqo

Amachibi okugcina namanodi

Njenge-backend sizoyithatha I-ThinLVM, ngoba ilula kakhulu futhi isekela izifinyezo.
Faka lvm2, uma ungakenzi kanjalo, masidale ichibi le-ThinLVM kuwo wonke amanodi ethu okugcina:

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

Zonke ezinye izenzo zingenziwa ngokuqondile kusilawuli:

Masingeze amanodi ethu:

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

Masidale amachibi okugcina:

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

Manje ake sihlole amachibi adaliwe:

linstor storage-pool list

Uma konke kwenziwa ngendlela efanele, kufanele sibone okufana nalokhu:

+------------------------------------------------ ------------------------------------------------- ----+ | IsitorejiIphuli | Node | Umshayeli | PoolName | I-FreeCapacity | IngqikithiAmandla | Isekela izifinyezo | |---------------------------------------------- - ----------------------------------------------- - ---| | idatha | node1 | LVM_THIN | drbdpool/thinpool | 64 Gib | 64 Gib | iqiniso | | idatha | node2 | LVM_THIN | drbdpool/thinpool | 64 Gib | 64 Gib | iqiniso | | idatha | node3 | LVM_THIN | drbdpool/thinpool | 64 Gib | 64 Gib | iqiniso | +------------------------------------------------ ------------------------------------------------- ----+

Izinsiza ze-DRBD

Manje ake sizame ukwakha insiza yethu entsha ye-DRBD:

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

Ake sihlole izinsiza ezidaliwe:

linstor resource list 

+------------------------------------------------ ------------------------------------------------- ---+ | Node | Insiza | IsitorejiIphuli | IvolumuNr | I-MinorNr | I-DeviceName | Kwabiwe | Sebenzisa | Izwe | |---------------------------------------------- - ----------------------------------------------- - --| | node1 | imila | idatha | 0 | 1084 | /dev/drbd1084 | 52KiB | Engasetshenzisiwe | UpToDate | | node2 | imila | idatha | 0 | 1084 | /dev/drbd1084 | 52KiB | Engasetshenzisiwe | I-upToDate | +------------------------------------------------ ------------------------------------------------- ---+

Kuhle! - sibona ukuthi insiza idalwe ezindaweni ezimbili zokuqala, singazama futhi ukudala insiza engenadiski okwesithathu:

linstor resource create --diskless node3 myres

Kumanodi uzohlala uthola le divayisi njenge /dev/drbd1084 noma /dev/drbd/by-res/myres/0

Lena yindlela i-Linstor esebenza ngayo, ungathola ulwazi olwengeziwe imibhalo esemthethweni.

Manje ngizokutshela ukuthi ungayihlanganisa kanjani ne-OpenNebula

Isetha i-OpenNebula

Ngeke ngingene ngijule kakhulu kwinqubo yokusetha ye-OpenNebula, ngoba... zonke izinyathelo zichazwe ngokuningiliziwe ku imibhalo esemthethweni, engincoma ukuthi uxhumane nayo, ngizokutshela kuphela mayelana nokuhlanganiswa kwe-OpenNebula ne-Linstor.

linstor_un

Ukuxazulula le nkinga, ngibhalele umshayeli wami - linstor_un, okwamanje iyatholakala njenge-plugin futhi kufanele ifakwe ngokuhlukile.

Konke ukufakwa kwenziwa ezindaweni ezingaphambili ze-OpenNebula futhi akudingi izenzo ezengeziwe kumanodi wokubala.

Okokuqala, kudingeka siqiniseke ukuthi sinakho jq и linstor-iklayenti:

apt-get install jq linstor-client

Ithimba linstor node list kufanele ibonise uhlu lwama-node. Wonke ama-compute nodes e-OpenNebula kufanele engezwe kuqoqo le-Linstor.

Landa futhi ufake i-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

Manje sidinga ukuyengeza ku-OpenNebula config, ukwenza lokhu silandela izinyathelo ezilula ezichazwe lapha.

Bese uqala kabusha i-OpenNebula:

systemctl restart opennebula

Futhi engeza izitolo zethu zolwazi, isistimu:

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

Futhi isitolo sezithombe:

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

  • Ipharamitha AUTO_PLACE ibonisa inani lemininingwane yedatha ezodalelwa isithombe esisha ngasinye ku-OpenNebula.
  • Ipharamitha CLONE_MODE ikhombisa kahle ukuthi izithombe zizokwenziwa kanjani uma kwakhiwa imishini emisha ebonakalayo, snapshot - izodala isifinyezo sesithombe futhi ikhiphe umshini obonakalayo ovela kusifinyezo, copy - izokwenza ikhophi ephelele yesithombe ngomshini ngamunye we-virtual.
  • В BRIDGE_LIST Kunconywa ukuthi ucacise wonke amanodi azosetshenziswa ukwenza imisebenzi yokuhlanganisa izithombe.

Ukuze uthole uhlu oluphelele lwamapharamitha asekelwe, bheka README iphrojekthi.

Lokhu kuqeda ukusetha, manje ungadawuniloda umshini othile osemthethweni I-OpenNebula Marketplace futhi udale imishini ebonakalayo kuyo.

Isixhumanisi sephrojekthi:
https://github.com/OpenNebula/addon-linstor_un

Source: www.habr.com

Engeza amazwana