LINSTOR storage ug ang integration niini sa OpenNebula

LINSTOR storage ug ang integration niini sa OpenNebula

Dili pa lang dugay, gipresentar sa mga lalaki gikan sa LINBIT ang ilang bag-ong solusyon sa SDS - Linstor. Kini usa ka hingpit nga libre nga pagtipig base sa napamatud-an nga mga teknolohiya: DRBD, LVM, ZFS. Gihiusa ni Linstor ang kayano ug maayo nga pagkadisenyo nga arkitektura, nga nagtugot kanimo nga makab-ot ang kalig-on ug impresibo nga mga sangputanan.

Karon gusto nako nga hisgutan kini sa usa ka gamay nga dugang nga detalye ug ipakita kung unsa kadali kini ma-integrate sa OpenNebula gamit ang linstor_un - usa ka bag-ong drayber nga akong gipalambo alang niini nga katuyoan.

Ang Linstor sa kombinasyon sa OpenNebula nagtugot kanimo sa paghimo sa usa ka paspas ug kasaligan nga panganod nga dali nga ma-deploy sa imong kaugalingon nga imprastraktura.

Linstor nga arkitektura

Ang Linstor dili usa ka file system o block storage per se, ang Linstor usa ka orkestra nga naghatag og abstraction layer nga nagtugot kanimo sa pag-automate sa paghimo sa mga volume sa LVM o ZFS ug pagkopya niini gamit ang DRBD9.

Pagbungkag sa mga stereotype

Apan paghulat, DRBD? β€” Ngano nga awtomatiko kini ug sa unsang paagi kini molihok?

Atong hinumduman ang nangagi, sa dihang sikat kaayo ang DRBD8. Ang standard nga paggamit niini naglakip sa paghimo og usa ka dako nga block device ug pagputol niini ngadto sa daghang gagmay nga mga piraso, gamit ang samang LVM. Usa ka matang sa mdadm RAID-1 apan adunay replikasyon sa network.

Kini nga pamaagi dili kung wala ang mga kakulangan niini, ug busa, sa pag-abut sa DRBD9, ang mga prinsipyo sa disenyo sa pagtipig nausab; karon usa ka bulag nga aparato sa DRBD ang gihimo alang sa matag virtual nga makina.

Ang pamaagi nga adunay mga independente nga block device nagtugot alang sa mas maayo nga paggamit sa wanang sa cluster, ug nagdugang usab og daghang dugang nga mga bahin. Pananglitan, alang sa matag ingon nga aparato mahimo nimong mahibal-an ang gidaghanon sa mga replika, ang ilang lokasyon ug indibidwal nga mga setting. Sayon sila sa paghimo / pagtangtang, pagkuha mga snapshot, pagbag-o sa laki, pag-encode sa pag-encrypt ug daghan pa. Angay nga hinumdoman nga ang DRBD9 nagsuporta usab sa korum, nga nagtugot kanimo nga malikayan ang mga sitwasyon sa split-brain.

Mga kapanguhaan ug mga backend

Sa paghimo og bag-ong block device, gibutang ni Linstor ang gikinahanglan nga gidaghanon sa mga replika sa lain-laing mga node sa cluster. Tawgon namo ang matag usa sa ingon nga replika nga usa ka kapanguhaan sa DRBD.

Adunay duha ka matang sa mga kapanguhaan:

  • Kapanguhaan sa datos - usa ka DRBD device nga nahimutang sa usa ka node sa LVM o ZFS pool.
    Sa pagkakaron adunay suporta alang sa daghang mga backend ug ang ilang gidaghanon kanunay nga nagtubo. Adunay suporta alang sa LVM, ThinLVM ug ZFS. Ang katapusan nga duha nagtugot kanimo sa paghimo ug paggamit sa mga snapshot.
  • Diskless nga kapanguhaan β€” mao ang usa ka DRBD device nga gibutang sa usa ka node nga walay backend, apan gitugotan kini nga isipon nga usa ka regular nga block device; ang tanan nga pagbasa/pagsulat nga mga operasyon i-redirect ngadto sa mga kapanguhaan sa datos. Ang labing duol nga analogue sa diskless resources mao ang iSCSI LUN.

Ang matag kapanguhaan sa DRBD mahimong adunay hangtod sa 8 nga mga kopya, ug usa ra niini ang mahimong aktibo sa default - Primary, ang tanan mahimong secondary ug ang ilang paggamit dili mahimo basta adunay labing menos usa ka Primary, nga mao, sila yano nga magsundog sa datos tali sa ilang kaugalingon.

Pinaagi sa pag-instalar sa usa ka DRBD device ngadto sa sistema, kini awtomatiko nga mahimong Primary, busa bisan ang Diskless nga kapanguhaan, sa terminolohiya sa DRBD, mahimong Primary.

Busa nganong kinahanglan nimo ang Linstor?

Pinaagi sa pagtugyan sa tanang resource-intensive nga buluhaton ngadto sa kernel, ang Linstor usa ka regular nga Java nga aplikasyon nga nagtugot kanimo nga daling ma-automate ang paghimo sa DRBD resources.
Dugang pa, ang matag kahinguhaan nga gihimo niya mahimong usa ka independente nga DRBD cluster nga naglihok nga independente, bisan unsa pa ang kahimtang sa control-plane ug uban pang mga kapanguhaan sa DRBD.

Ang Linstor naglangkob lamang sa duha ka mga sangkap:

  • Linstor-controller - Ang nag-unang tigkontrol, nga naghatag usa ka API alang sa paghimo ug pagdumala sa mga kapanguhaan. Nakigkomunikar usab kini sa mga satelayt, nagsusi sa libre nga luna niini, ug nagpadalag mga buluhaton sa paghimo ug pagtangtang sa bag-ong mga kahinguhaan. Nagdagan kini sa usa ka higayon ug naggamit usa ka database, nga mahimo nga internal (H2) o eksternal (PostgreSQL, MySQL, MariaDB)
  • Linstor-satellite β€” Gi-install sa tanan nga mga node sa pagtipig ug gihatagan ang tigkontrol sa kasayuran bahin sa libre nga wanang, ug naghimo usab mga buluhaton nga nadawat gikan sa controller aron makamugna ug matangtang ang mga bag-ong volume ug mga aparato sa DRBD sa ibabaw nila.

Linstor naglihok uban sa mosunod nga importante nga mga konsepto:

  • binurotan, hubag β€” usa ka pisikal nga server diin ang mga kahinguhaan sa DRBD pagabuhaton ug gamiton.
  • Pool sa Pagtipig β€” LVM o ZFS pool nga gihimo sa node diin mahimutang ang mga kapanguhaan sa DRBD. Posible usab ang diskless pool - kini usa ka pool diin makit-an ra ang diskless nga mga kapanguhaan.
  • Kahubitan sa Kapanguhaan β€” Ang kahulugan sa usa ka kapanguhaan usa ka prototype nga naghulagway sa ngalan ug sa tanan nga mga kabtangan niini.
  • Kahulugan sa Tomo - Kahubitan sa volume. Ang matag kapanguhaan mahimong maglangkob sa daghang mga volume, ang matag volume kinahanglan adunay usa ka gidak-on.
  • Resource β€” Usa ka gibuhat nga pananglitan sa usa ka block device, ang matag kapanguhaan kinahanglan ibutang sa usa ka piho nga node ug sa pipila ka storage pool.

Pag-instalar sa Linstor

Girekomenda nako ang paggamit sa Ubuntu ingon usa ka sistema, tungod kay ... anaa alang kaniya andam PPA:

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

O Debian, diin ang Linstor mahimong ma-install gikan sa opisyal nga repository alang sa 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

pagmando, pagdumala

Ang tanan yano dinhi:

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

Mga node sa pagtipig

Ang Linux kernel karon gipadala uban ang in-tree kernel module DRBD8, sa kasubo dili kini angay kanamo ug kinahanglan namon nga i-install DRBD9:

apt-get install drbd-dkms

Ingon sa gipakita sa praktis, kadaghanan sa mga kalisud mitungha tungod kay ang DRBD8 module gikarga sa sistema, ug dili DRBD9. Maayo na lang, kini dali nga susihon pinaagi sa pagdagan:

modprobe drbd
cat /proc/drbd

Kung makakita ka nga bersyon: 9 - kini nagpasabut nga ang tanan maayo kung nga bersyon: 8 - kini nagpasabut nga adunay nahitabo nga sayup ug kinahanglan nimo nga maghimo dugang nga mga lakang aron mahibal-an ang mga hinungdan.

Karon atong i-install linstor-satellite ΠΈ drbd-utils:

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

Paghimo og cluster

Mga pool ug mga node sa pagtipig

Isip backend atong kuhaon ThinLVM, kay kini ang pinakasimple ug nagsuporta sa mga snapshot.
Pagpahimutang lvm2, kung wala pa nimo mahimo, maghimo ta ug ThinLVM pool sa tanan namong mga storage node:

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

Ang tanan nga dugang nga mga aksyon mahimong ipahigayon direkta sa controller:

Atong idugang ang atong mga node:

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

Maghimo kita og mga storage pool:

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

Karon atong susihon ang gibuhat nga mga pool:

linstor storage-pool list

Kung ang tanan nahimo sa husto, nan kinahanglan naton makita ang usa ka butang sama sa:

+------------------------------------------------- ------------------------------------------------- ----+
| StoragePool | Node | drayber | Ngalan sa Pool | Libre nga Kapasidad | Kinatibuk-ang Kapasidad | Nagsuporta sa mgaSnapshot |
|------------------------------------------------ - ------------------------------------------------- - ---|
| datus | node1 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | tinuod |
| datus | node2 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | tinuod |
| datus | node3 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | tinuod |
+------------------------------------------------- ------------------------------------------------- ----+

Mga kapanguhaan sa DRBD

Karon atong sulayan paghimo ang atong bag-ong kapanguhaan sa DRBD:

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

Atong susihon ang gibuhat nga mga kapanguhaan:

linstor resource list 

+------------------------------------------------- ------------------------------------------------- ---+
| Node | Kapanguhaan | StoragePool | VolumeNr | MinorNr | Ngalan sa Device | Gigahin | InUse | Estado |
|------------------------------------------------ - ------------------------------------------------- - --|
| node1 | myres | datus | 0 | 1084 | /dev/drbd1084 | 52 KiB | Wala magamit | UpToDate |
| node2 | myres | datus | 0 | 1084 | /dev/drbd1084 | 52 KiB | Wala magamit | UpToDate |
+------------------------------------------------- ------------------------------------------------- ---+

Nindot! β€” atong makita nga ang kahinguhaan gihimo sa unang duha ka node, mahimo usab natong sulayan ang paghimo ug diskless nga kahinguhaan sa ikatulo:

linstor resource create --diskless node3 myres

Sa mga node kanunay nimong makit-an kini nga aparato ingon /dev/drbd1084 o /dev/drbd/by-res/myres/0

Ingon niini ang pagtrabaho ni Linstor, makakuha ka dugang nga kasayuran gikan sa opisyal nga dokumentasyon.

Karon isulti ko kanimo kung giunsa kini i-integrate sa OpenNebula

Pag-set up sa OpenNebula

Dili ako moadto sa lawom nga proseso sa pag-setup sa OpenNebula, tungod kay... ang tanan nga mga lakang gihulagway sa detalye sa opisyal nga dokumentasyon, nga akong girekomendar nga imong kontakon, isulti ko lang kanimo ang bahin sa panagsama sa OpenNebula sa Linstor.

linstor_un

Aron masulbad kini nga problema, nagsulat ako sa akong kaugalingon nga drayber - linstor_un, kini anaa karon isip usa ka plugin ug kinahanglang i-install nga gilain.

Ang tibuok nga pag-instalar gihimo sa frontend nga OpenNebula nodes ug wala magkinahanglan og dugang nga mga aksyon sa mga compute nodes.

Una sa tanan, kinahanglan natong sigurohon nga aduna kita jq ΠΈ linstor-kliyente:

apt-get install jq linstor-client

team linstor node list kinahanglan magpakita ug lista sa mga node. Ang tanang OpenNebula compute node kinahanglang idugang sa Linstor cluster.

I-download ug i-install ang 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

Karon kinahanglan namon nga idugang kini sa OpenNebula config, aron mahimo kini gisunod namon ang yano nga mga lakang nga gihulagway dinhi.

Dayon i-restart ang OpenNebula:

systemctl restart opennebula

Ug idugang ang among mga datastore, 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

Ug ang tindahan sa imahe:

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 nagpakita sa gidaghanon sa mga replika sa datos nga pagabuhaton alang sa matag bag-ong hulagway sa OpenNebula.
  • Parameter CLONE_MODE nagpaila sa eksakto kung giunsa ang pag-clone sa mga imahe sa paghimo og bag-ong mga virtual machine, snapshot β€” maghimo og snapshot sa imahe ug mag-deploy og virtual machine gikan sa snapshot, copy β€” maghimo ug kompletong kopya sa hulagway para sa matag virtual machine.
  • Π’ BRIDGE_LIST Girekomenda nga ipiho ang tanan nga mga node nga gamiton sa paghimo sa mga operasyon sa pag-clone sa imahe.

Alang sa usa ka kompleto nga lista sa gisuportahan nga mga parameter, tan-awa README proyekto.

Nakompleto niini ang pag-setup, karon mahimo nimong i-download ang pipila ka appliance gikan sa opisyal OpenNebula Marketplace ug paghimo og mga virtual machine gikan niini.

Link sa proyekto:
https://github.com/OpenNebula/addon-linstor_un

Source: www.habr.com

Idugang sa usa ka comment