Panyimpenan LINSTOR lan integrasi karo OpenNebula

Panyimpenan LINSTOR lan integrasi karo OpenNebula

Ora suwe, wong lanang saka LINBIT nampilake solusi SDS anyar - Linstor. Iki minangka panyimpenan gratis adhedhasar teknologi sing wis kabukten: DRBD, LVM, ZFS. Linstor nggabungake kesederhanaan lan arsitektur sing dirancang kanthi apik, sing ngidini sampeyan entuk stabilitas lan asil sing apik banget.

Dina iki aku arep ngomong babagan iki kanthi luwih rinci lan nuduhake carane gampang bisa digabungake karo OpenNebula nggunakake linstor_un - pembalap anyar sing dikembangake khusus kanggo tujuan iki.

Linstor kanthi kombinasi OpenNebula ngidini sampeyan nggawe awan sing cepet lan dipercaya sing bisa gampang dipasang ing infrastruktur sampeyan dhewe.

arsitektur Linstor

Linstor dudu sistem file utawa panyimpenan blok, Linstor minangka orkestra sing nyedhiyakake lapisan abstraksi sing ngidini sampeyan ngotomatisasi nggawe volume ing LVM utawa ZFS lan niru nggunakake DRBD9.

Ngrusak stereotip

Nanging ngenteni, DRBD? β€” Napa ngotomatisasi lan kepiye carane bisa digunakake?

Ayo dadi elinga kepungkur, nalika DRBD8 populer banget. Panggunaan standar kasebut nggawe piranti blok gedhe lan dipotong dadi pirang-pirang potongan cilik, nggunakake LVM sing padha. A jenis mdadm RAID-1 nanging karo rΓ©plikasi liwat jaringan.

Pendekatan iki ora tanpa kekurangan, lan mulane, kanthi tekane DRBD9, prinsip desain panyimpenan wis diganti; saiki piranti DRBD sing kapisah digawe kanggo saben mesin virtual.

Pendekatan karo piranti pamblokiran independen ngidini kanggo nggunakake luwih saka papan ing kluster, lan uga nambah sawetara fitur tambahan. Contone, kanggo saben piranti sampeyan bisa nemtokake jumlah replika, lokasi lan setelan individu. Iku gampang kanggo nggawe / mbusak, njupuk jepretan, ngowahi ukuran, ngaktifake enkripsi lan akeh liyane. Wigati dicathet yen DRBD9 uga ndhukung kuorum, sing ngidini sampeyan ngindhari kahanan pamisah-otak.

Resources lan backends

Nalika nggawe piranti pemblokiran anyar, Linstor nempatno jumlah replika sing dibutuhake ing macem-macem kelenjar ing kluster. Kita bakal nyebut saben replika kasebut minangka sumber DRBD.

Ana rong jinis sumber daya:

  • Sumber data - minangka piranti DRBD sing ana ing simpul ing blumbang LVM utawa ZFS.
    Saiki ana dhukungan kanggo sawetara backend lan jumlahe saya tambah akeh. Ana dhukungan kanggo LVM, ThinLVM lan ZFS. Loro pungkasan ngidini sampeyan nggawe lan nggunakake jepretan.
  • Sumber daya tanpa disk - minangka piranti DRBD sing diselehake ing simpul tanpa backend, nanging ngidini bisa dianggep minangka piranti pamblokiran biasa; kabeh operasi maca / nulis bakal dialihake menyang sumber data. Analog paling cedhak karo sumber daya tanpa disk yaiku iSCSI LUN.

Saben sumber DRBD bisa duwe nganti 8 replika, lan mung siji sing bisa aktif kanthi standar - utama, wong liya bakal dadi secondary lan nggunakake bakal mokal anggere ana paling siji Primary, sing, padha mung bakal nurun data antarane piyambak.

Kanthi nginstal piranti DRBD menyang sistem, kanthi otomatis dadi utama, saengga malah sumber Diskless, ing terminologi DRBD, bisa dadi Utama.

Dadi kenapa sampeyan butuh Linstor?

Kanthi ngandelake kabeh tugas intensif sumber daya menyang kernel, Linstor sejatine minangka aplikasi Java biasa sing ngidini sampeyan ngotomatisasi kanthi gampang nggawe sumber daya DRBD.
Menapa malih, saben sumber digawe dening dheweke bakal dadi kluster DRBD independen sing makaryakke independen, preduli saka negara kontrol-pesawat lan sumber DRBD liyane.

Linstor mung kasusun saka rong komponen:

  • Linstor-kontroler - Controller utama, sing nyedhiyakake API kanggo nggawe lan ngatur sumber daya. Uga sesambungan karo satelit, mriksa papan sing kosong, lan ngirim tugas kanggo nggawe lan mbusak sumber daya anyar. Mlaku ing siji conto lan nggunakake database, sing bisa internal (H2) utawa eksternal (PostgreSQL, MySQL, MariaDB)
  • Linstor-satelit - Diinstal ing kabeh kelenjar panyimpenan lan menehi controller karo informasi bab papan free, lan uga nindakake tugas ditampa saka controller kanggo nggawe lan mbusak volume anyar lan piranti DRBD ing ndhuwur mau.

Linstor ngoperasikake konsep kunci ing ngisor iki:

  • Node - server fisik sing sumber daya DRBD bakal digawe lan digunakake.
  • Kolam Panyimpenan - Kolam LVM utawa ZFS digawe ing simpul ing ngendi sumber daya DRBD bakal ana. Kolam tanpa disk bisa uga - iki minangka blumbang sing mung ana sumber daya tanpa disk.
  • Definisi Sumber Daya - DhΓ©finisi sumber daya minangka prototipe sing nggambarake jeneng lan kabeh sifate.
  • Definisi Volume - Definisi volume. Saben sumber bisa dumadi saka pirang-pirang volume, saben volume kudu ukuran.
  • sumber - Kayata digawe saka piranti pemblokiran, saben sumber kudu diselehake ing simpul tartamtu lan ing sawetara blumbang panyimpenan.

Instalasi Linstor

Aku nyaranake nggunakake Ubuntu minangka sistem, amarga ... ana kanggo dheweke siap PPA:

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

Utawa Debian, ing ngendi Linstor bisa diinstal saka repositori resmi kanggo 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

controller

Kabeh iku prasaja ing kene:

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

Node panyimpenan

Kernel Linux saiki dikirim nganggo modul kernel in-tree DRBD8, sayangΓ© ora cocog karo kita lan kita kudu nginstal DRBD9:

apt-get install drbd-dkms

Minangka laku nuduhake, paling kangelan njedhul sabenere amarga modul DRBD8 dimuat menyang sistem, lan ora DRBD9. Untunge, iki gampang dipriksa kanthi mlaku:

modprobe drbd
cat /proc/drbd

Yen sampeyan ndeleng versi: 9 - iku tegese kabeh iku nggoleki yen versi: 8 - tegese ana sing salah lan sampeyan kudu njupuk langkah tambahan kanggo ngerteni alasane.

Saiki ayo nginstal linstor-satelit ΠΈ drbd-utils:

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

Nggawe kluster

Kolam panyimpenan lan kelenjar

Minangka backend kita bakal njupuk ThinLVM, amarga iku sing paling gampang lan ndhukung jepretan.
Instal lvm2, yen sampeyan durung nindakake, ayo nggawe blumbang ThinLVM ing kabeh simpul panyimpenan:

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

Kabeh tumindak luwih bisa ditindakake langsung ing pengontrol:

Ayo nambahake simpul kita:

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

Ayo nggawe blumbang panyimpenan:

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

Saiki ayo mriksa pools sing digawe:

linstor storage-pool list

Yen kabeh wis rampung kanthi bener, mula kita bakal weruh kaya:

+------------------------------------------------ --------------------------------------------------- ----+ | StoragePool | Node | sopir | Jeneng Pool | Kapasitas Gratis | TotalKapasitas | NdhukungSnapshots | |------------------------------------------------ - ------------------------------------------------- - ---| | data | simpul 1 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | bener | | data | simpul 2 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | bener | | data | node3 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | bener | +------------------------------------------------ --------------------------------------------------- ----+

sumber daya DRBD

Saiki ayo nyoba nggawe sumber DRBD anyar:

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

Ayo priksa sumber daya sing digawe:

linstor resource list 

+------------------------------------------------ --------------------------------------------------- ---+ | Node | sumber daya | StoragePool | VolumeNr | MinorNr | Jeneng Piranti | Dialokasikan | Digunakake | negara | |------------------------------------------------ - ------------------------------------------------- - --| | simpul 1 | myres | data | 0 | 1084 | /dev/drbd1084 | 52 KiB | Ora dienggo | UpToDate | | simpul 2 | myres | data | 0 | 1084 | /dev/drbd1084 | 52 KiB | Ora dienggo | UpToDate | +------------------------------------------------ --------------------------------------------------- ---+

apik tenan! - kita weruh manawa sumber kasebut digawe ing rong simpul pisanan, kita uga bisa nyoba nggawe sumber tanpa disk ing katelu:

linstor resource create --diskless node3 myres

Ing kelenjar sampeyan bakal tansah nemokake piranti iki minangka /dev/drbd1084 utawa /dev/drbd/by-res/myres/0

Iki carane Linstor dianggo, sampeyan bisa njaluk informasi luwih saka dokumentasi resmi.

Saiki aku bakal pitutur marang kowe carane nggabungake OpenNebula

Nggawe OpenNebula

Aku ora bakal jero banget menyang proses persiyapan OpenNebula, amarga ... kabeh langkah diterangake ing rinci ing dokumentasi resmi, Aku nyaranake sampeyan hubungi, Aku mung bakal pitutur marang kowe bab integrasi OpenNebula karo Linstor.

linstor_un

Kanggo ngatasi masalah iki, aku nulis driverku dhewe - linstor_un, saiki kasedhiya minangka plugin lan kudu diinstal kanthi kapisah.

Instalasi kabeh ditindakake ing node OpenNebula frontend lan ora mbutuhake tindakan tambahan ing node komputasi.

Kaping pisanan, kita kudu nggawe manawa kita duwe jq ΠΈ linstor-klien:

apt-get install jq linstor-client

tim linstor node list kudu nampilake dhaptar simpul. Kabeh simpul komputasi OpenNebula kudu ditambahake menyang kluster Linstor.

Ngundhuh lan nginstal 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

Saiki kita kudu ditambahake menyang konfigurasi OpenNebula, kanggo nindakake iki, tindakake langkah-langkah prasaja sing diterangake kene.

Banjur miwiti maneh OpenNebula:

systemctl restart opennebula

Lan tambahake datastore, sistem:

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

Lan nyimpen gambar:

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 nampilake jumlah replika data sing bakal digawe kanggo saben gambar anyar ing OpenNebula.
  • Parameter CLONE_MODE nuduhake persis carane gambar bakal dikloning nalika nggawe mesin virtual anyar, snapshot - bakal nggawe snapshot gambar lan masang mesin virtual saka gambar asli, copy - bakal nggawe salinan lengkap gambar kanggo saben mesin virtual.
  • Π’ BRIDGE_LIST Disaranake kanggo nemtokake kabeh simpul sing bakal digunakake kanggo nindakake operasi kloning gambar.

Kanggo dhaptar lengkap paramèter sing didhukung, waca README proyek.

Iki ngrampungake persiyapan, saiki sampeyan bisa ndownload sawetara piranti saka resmi Pasar OpenNebula lan nggawe mesin virtual saka iku.

Link proyek:
https://github.com/OpenNebula/addon-linstor_un

Source: www.habr.com

Add a comment