LINSTOR kuchengetedza uye kubatanidzwa kwayo neOpenNebula

LINSTOR kuchengetedza uye kubatanidzwa kwayo neOpenNebula

Munguva pfupi yapfuura, vakomana veLINBIT vakaratidza yavo itsva SDS mhinduro - Linstor. Iyi ichengetedzo yemahara yakavakirwa patekinoroji yakasimbiswa: DRBD, LVM, ZFS. Linstor inosanganisa kureruka uye yakanyatsogadzirwa zvivakwa, izvo zvinokutendera iwe kuti uwane kugadzikana uye zvinokatyamadza mhedzisiro.

Nhasi ndinoda kutaura nezvazvo mune zvishoma uye kuratidza kuti inogona kusanganiswa nyore sei neOpenNebula uchishandisa linstor_un - mutyairi mutsva wandakagadzira kuitira chinangwa ichi.

Linstor yakabatana neOpenNebula inokutendera iwe kuti uvake gore rinokurumidza uye rakavimbika iro rinogona kuiswa zviri nyore pane yako wega zvivakwa.

Linstor architecture

Linstor haisi iyo faira system kana yekuvharira kuchengetedza pase, Linstor ndeye orchestrator inopa yekubvisa layer iyo inokutendera kuti uite otomatiki kusikwa kwemavhoriyamu muLVM kana ZFS uye woadzokorora uchishandisa DRBD9.

Kuputsa mafungiro

Asi kumirira, DRBD? - Nei uchiita otomatiki uye ingatoshanda sei?

Ngatirangarirei zvakapfuura, apo DRBD8 yaive yakakurumbira. Kushandiswa kwayo kwakajairwa kwaisanganisira kugadzira imwe hombe block mudziyo nekuicheka kuita zvidimbu zvidiki zvakawanda, uchishandisa iyo LVM imwechete. Mhando ye mdadm RAID-1 asi nekudzokorora pamusoro pe network.

Iyi nzira haina zvipingamupinyi zvayo, uye nekudaro, nekuuya kweDRBD9, misimboti yekuchengetera dhizaini yachinja; ikozvino yakaparadzana DRBD mudziyo inogadzirwa kune yega yega muchina.

Iyo nzira ine yakazvimirira block zvishandiso inobvumira kushandiswa zviri nani kwenzvimbo musumbu, uye zvakare inowedzera akati wandei mamwe maficha. Semuenzaniso, kune imwe neimwe mudziyo wakadaro unogona kuona nhamba yezvinyorwa, nzvimbo yavo uye zvigadziro zvega. Izvo zviri nyore kugadzira / kudzima, tora zvidhori, resize, gonesa encryption uye zvimwe zvakawanda. Zvakakosha kucherechedza kuti DRBD9 inotsigirawo quorum, iyo inokutendera kuti udzivise kupatsanura-uropi mamiriro.

Zvishandiso uye backends

Paunenge uchigadzira mudziyo mutsva weblock, Linstor anoisa iyo nhamba inodiwa yezvinyorwa pane dzakasiyana node musumbu. Tichadaidza imwe neimwe replica yakadai DRBD sosi.

Kune marudzi maviri ezviwanikwa:

  • Data resource - mudziyo weDRBD uri pane node muLVM kana ZFS dziva.
    Parizvino pane kutsigirwa kwemashure akati wandei uye nhamba yavo iri kuramba ichikura. Kune rutsigiro rweLVM, ThinLVM uye ZFS. Iwo maviri ekupedzisira anobvumidza iwe kugadzira uye kushandisa mapikicha.
  • Diskless resource - mudziyo weDRBD wakaiswa pane node isina backend, asi uchiibvumira kuti ibatirwe seyakajairwa block mudziyo; ese ekuverenga / kunyora mashandiro anozoendeswa kune data zviwanikwa. Iyo yepedyo analogue kune diskless zviwanikwa iSCSI LUN.

Imwe neimwe DRBD sosi inogona kusvika 8 replicas, uye imwe chete yadzo inogona kushanda nekukasira - Primary, vamwe vose vachava Secondary uye kushandisa kwavo kuchave kusingabviri chero paine kana imwe Yepuraimari, ndiko kuti, ivo vanongodzokorora data pakati pavo.

Nekuisa mudziyo weDRBD musystem, inongoerekana yava Primary, nekudaro kunyangwe Diskless sosi, muDRBD terminology, inogona kuve Yekutanga.

Saka nei uchida Linstor?

Nekupa mabasa ese akasimba-akasimba ku kernel, Linstor ndeye yakajairwa Java application iyo inokutendera iwe kuti uite otomatiki kusikwa kweDRBD zviwanikwa.
Uyezve, imwe neimwe sosi yakagadzirwa naye ichave yakazvimirira DRBD cluster inoshanda yakazvimiririra, zvisinei nemamiriro ekutonga-ndege uye zvimwe zviwanikwa zveDRBD.

Linstor ine zvikamu zviviri chete:

  • Linstor-controller -Mutongi mukuru, anopa API yekugadzira nekugadzirisa zviwanikwa. Iyo zvakare inotaurirana nema satellite, inotarisa nzvimbo yemahara pavari, uye inotumira mabasa kugadzira uye kudzima zviwanikwa zvitsva. Inomhanya mune imwechete muenzaniso uye inoshandisa dhatabhesi, inogona kunge iri yemukati (H2) kana yekunze (PostgreSQL, MySQL, MariaDB)
  • Linstor-satellite - Yakaiswa pane ese ekuchengetedza node uye inopa mutongi ruzivo nezve nzvimbo yemahara, uye zvakare anoita mabasa anogamuchirwa kubva kune controller kugadzira uye kudzima mavhoriyamu matsva uye DRBD zvishandiso pamusoro pazvo.

Linstor inoshanda neanotevera akakosha pfungwa:

  • Node - sevha yemuviri iyo DRBD zviwanikwa zvichagadzirwa uye kushandiswa.
  • Storage Dziva - LVM kana ZFS dziva rakagadzirwa pane node umo DRBD zviwanikwa zvichawanikwa. Dhisiki isina dziva zvakare inogoneka - iri dziva umo chete diskless zviwanikwa zvichawanikwa.
  • Resource Definition - Tsanangudzo yechishandiso inonyanya kufananidzira inotsanangura zita uye zvese zvaro.
  • Volume Definition - Tsanangudzo yevhoriyamu. Imwe neimwe sosi inogona kuve nemavhoriyamu akawanda, vhoriyamu yega yega inofanirwa kunge iine saizi.
  • Resource - Chiitiko chakasikwa chemudziyo wekuvhara, imwe neimwe sosi inofanira kuiswa pane imwe node uye mune imwe dziva rekuchengetedza.

Kuiswa kweLinstor

Ini ndinokurudzira kushandisa Ubuntu sehurongwa, nekuti... huripo nokuda kwake yakagadzirira PPA:

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

Kana Debian, uko Linstor inogona kuiswa kubva kune yepamutemo repository yeProxmox:

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

Controller

Zvese zviri nyore pano:

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

Manodhi ekuchengetedza

Iyo Linux kernel parizvino inotakura ine mu-muti kernel module DRBD8, zvinosuruvarisa kuti hazvienderani nesu uye tinoda kuisa DRBD9:

apt-get install drbd-dkms

Sezvinoratidzwa nemaitiro, matambudziko mazhinji anomuka chaizvo nekuti iyo DRBD8 module inorodha muhurongwa, uye kwete DRBD9. Neraki, izvi zviri nyore kutarisa nekumhanya:

modprobe drbd
cat /proc/drbd

Kana uchiona shanduro: 9 - zvinoreva kuti zvese zvakanaka kana shanduro: 8 - zvinoreva kuti pane chakashata uye iwe unofanirwa kutora mamwe matanho kuti uwane zvikonzero.

Zvino ngatiisei linstor-satellite ΠΈ drbd-utils:

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

Gadzira sumbu

Madziva ekuchengetera uye node

Sekumashure isu tichatora ThinLVM, nokuti ndiyo yakapfava uye inotsigira snapshots.
Set lvm2, kana usati watoita kudaro, ngatigadzire dziva reThinLVM pane edu ese ekuchengetedza node:

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

Zvese zvimwe zviito zvinogona kuitwa zvakananga pane controller:

Ngatiwedzere node dzedu:

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

Ngatigadzire madziva ekuchengetera:

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

Zvino ngatitarisei madziva akagadzirwa:

linstor storage-pool list

Kana zvinhu zvose zvikaitwa nemazvo, saka tinofanira kuona chimwe chinhu chakadai:

+------------------------------------------------ ------------------------------------------------- ----+ | StoragePool | Node | Mutyairi | PoolName | FreeCapacity | TotalCapacity | InotsigiraSnapshots | |---------------------------------------------- - ------------------------------------------------ - ---| | data | node1 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | chokwadi | | data | node2 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | chokwadi | | data | node3 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | chokwadi | +------------------------------------------------ ------------------------------------------------- ----+

DRBD zviwanikwa

Zvino ngatiedzei kugadzira yedu itsva DRBD sosi:

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

Ngatitarisei zviwanikwa zvakagadzirwa:

linstor resource list 

+------------------------------------------------ ------------------------------------------------- ---+ | Node | Resource | StoragePool | VolumeNr | MinorNr | DeviceName | Allocated | InUse | State | |---------------------------------------------- - ------------------------------------------------ - --| | node1 | myres | data | 0 | 1084 | /dev/drbd1084 | 52KiB | Zvisina Kushandiswa | UpToDate | | node2 | myres | data | 0 | 1084 | /dev/drbd1084 | 52KiB | Zvisina Kushandiswa | UpToDate | +------------------------------------------------ ------------------------------------------------- ---+

Hukuru! - tinoona kuti sosi yakagadzirwa pamanodhi maviri ekutanga, isu tinogona zvakare kuedza kugadzira diskless sosi pane yechitatu:

linstor resource create --diskless node3 myres

Pamanodhi iwe unogara uchiwana mudziyo uyu se /dev/drbd1084 kana /dev/drbd/by-res/myres/0

Aya ndiwo mashandiro anoita Linstor, unogona kuwana rumwe ruzivo kubva zvinyorwa zvepamutemo.

Iye zvino ini ndichakuudza nzira yekuibatanidza neOpenNebula

Kugadzira OpenNebula

Ini handisi kuzopinda zvakadzika muOpenNebula setup process, nekuti... matanho ose anotsanangurwa zvakadzama mu zvinyorwa zvepamutemo, iyo yandinokurudzira kuti ubate, ini ndinokuudza chete nezve kubatanidzwa kweOpenNebula neLinstor.

linstor_un

Kugadzirisa dambudziko iri, ndakanyora mutyairi wangu - linstor_un, ikozvino inowanikwa se plugin uye inofanira kuiswa zvakasiyana.

Kuisirwa kwese kunoitwa kumberi OpenNebula node uye haidi zvimwe zviito pane compute node.

Chokutanga, tinofanira kuva nechokwadi chokuti tawana jq ΠΈ linstor-client:

apt-get install jq linstor-client

chikwata linstor node list inofanira kuratidza rondedzero yemanodhi. Ese OpenNebula compute node anofanirwa kuwedzerwa kuLinstor cluster.

Dhawunirodha uye isa iyo 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

Iye zvino tinoda kuiwedzera kune OpenNebula config, kuti tiite izvi tinotevera matanho akareruka anotsanangurwa pano.

Wobva watangazve OpenNebula:

systemctl restart opennebula

Uye wedzera zvitoro zvedu, system:

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

Uye chitoro chemifananidzo:

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

  • Parameter AUTO_PLACE inoratidza nhamba yedata replicas iyo ichagadzirwa kune yega yega mufananidzo mutsva muOpenNebula.
  • Parameter CLONE_MODE inonyatsoratidza kuti mifananidzo ichagadzirwa sei pakugadzira michina mitsva, snapshot - ichagadzira mufananidzo wemufananidzo uye kutumira muchina chaiwo kubva pamufananidzo, copy - ichaita kopi yakazara yemufananidzo kune yega yega muchina.
  • Π’ BRIDGE_LIST Zvinokurudzirwa kudoma node dzese dzinozoshandiswa kuita mufananidzo cloning mashandiro.

Kuti uwane runyoro rwakakwana rwemaparamita anotsigirwa, ona README project.

Izvi zvinopedzisa kuseta, ikozvino unogona kudhawunirodha imwe mudziyo kubva kune mukuru OpenNebula Marketplace uye gadzira chaiwo michina kubva mairi.

Project link:
https://github.com/OpenNebula/addon-linstor_un

Source: www.habr.com

Voeg