Hilberîna LINSTOR û yekbûna wê bi OpenNebula re

Hilberîna LINSTOR û yekbûna wê bi OpenNebula re

Demek berê, xortên ji LINBIT çareseriya xweya nû ya SDS - Linstor pêşkêş kirin. Ev hilanînek bi tevahî belaş e ku li ser bingeha teknolojiyên pejirandî ye: DRBD, LVM, ZFS. Linstor sadebûn û mîmariya xweş-sêwirandî tevlihev dike, ku dihêle hûn aramî û encamên pir balkêş bi dest bixin.

Îro ez dixwazim bi hûrgulî li ser wê biaxivim û nîşan bidim ka ew çiqas bi hêsanî dikare bi OpenNebula re bi karanîna linstor_un - ajokerek nû ya ku min bi taybetî ji bo vê armancê pêşxistiye, were yek kirin.

Linstor bi hev re bi OpenNebula re dihêle hûn ewrek bilez û pêbawer ku bi hêsanî li ser binesaziya xwe were bicîh kirin ava bikin.

mîmariya Linstor

Linstor ne pergalek pelan e û ne jî hilanînek blokê ye, Linstor orkestratorek e ku qatek abstraksiyonê peyda dike ku dihêle hûn çêkirina cildên di LVM an ZFS de otomatîk bikin û wan bi karanîna DRBD9 dubare bikin.

Şikandina qalibên

Lê bisekinin, DRBD? - Çima wê bixweber bike û çawa dikare ew jî bixebite?

Werin em berê bi bîr bînin, dema ku DRBD8 pir populer bû. Bikaranîna wê ya standard bi afirandina yek amûrek blokek mezin û jêkirina wê li gelek perçeyên piçûk, bi karanîna heman LVM-ê ve girêdayî ye. Cûreyek mdadm RAID-1 lê bi dubarekirina li ser torê.

Ev nêzîkatî ne bê kêmasiyên xwe ye, û ji ber vê yekê, bi hatina DRBD9 re, prensîbên sêwirana hilanînê guherî; naha ji bo her makîneyek virtual amûrek DRBD-ya cihê tê afirandin.

Nêzîkatiya bi amûrên bloka serbixwe re dihêle ku cîhê di komê de çêtir were bikar anîn, û her weha hejmarek taybetmendiyên din jî zêde dike. Mînakî, ji bo her amûrek wusa hûn dikarin hejmara kopiyan, cîhê wan û mîhengên kesane diyar bikin. Ew bi hêsanî têne çêkirin / jêbirin, kişandina wêneyan, mezinbûnê, şîfrekirinê çalak bikin û hêj bêtir. Hêjayî gotinê ye ku DRBD9 di heman demê de quorumê jî piştgirî dike, ku dihêle hûn ji rewşên mejiyê perçebûyî dûr bikevin.

Çavkanî û paşperdeya

Dema ku amûrek blokê ya nû diafirîne, Linstor hejmara pêwîst a kopiyan li ser girêkên cihêreng ên di komê de cîh dike. Em ê her kopiyek weha wekî çavkaniyek DRBD bi nav bikin.

Du celeb çavkaniyan hene:

  • Çavkaniya daneyê - amûrek DRBD-ê ye ku li ser nodek di hewza LVM an ZFS de ye.
    Heya niha piştgirî ji bo çend piştgiran heye û hejmara wan her ku diçe zêde dibe. Ji bo LVM, ThinLVM û ZFS piştgirî heye. Du yên paşîn dihêlin hûn wêneyan biafirînin û bikar bînin.
  • Çavkaniya bê dîskê - Amûrek DRBD ye ku li ser girêkek bêyî paşverû tête danîn, lê dihêle ku ew wekî amûrek bloka birêkûpêk were derman kirin; hemî karûbarên xwendin / nivîsandinê dê berbi çavkaniyên daneyê ve werin rêve kirin. Analoga herî nêzîk a çavkaniyên bê dîsk iSCSI LUN e.

Her çavkaniyek DRBD dikare heya 8 kopiyan hebe, û tenê yek ji wan dikare ji hêla xwerû ve çalak be - bingehîn, her kesê din dê bibe navîn û karanîna wan dê ne gengaz be heya ku bi kêmanî yek Seretayî hebe, ango ew ê bi tenê daneyan di navbera xwe de dubare bikin.

Bi sazkirina amûrek DRBD di pergalê de, ew bixweber dibe bingehîn, bi vî rengî çavkaniyek Diskless jî, di termînolojiya DRBD de, dikare bibe Seretayî.

Ji ber vê yekê çima hûn hewceyê Linstor in?

Bi spartina hemî peywirên çavkaniyê-dijwar ji kernelê re, Linstor bi bingehîn serîlêdanek Java-ya birêkûpêk e ku dihêle hûn bi hêsanî çêkirina çavkaniyên DRBD otomatîk bikin.
Wekî din, her çavkaniyek ku ji hêla wî ve hatî afirandin dê bibe komek DRBD ya serbixwe ku serbixwe tevdigere, bêyî ku rewşa balafir-kontrol û çavkaniyên din ên DRBD bigire.

Linstor tenê ji du beşan pêk tê:

  • Linstor-kontroller - Kontrolkerê sereke, ku ji bo afirandin û birêvebirina çavkaniyan API peyda dike. Di heman demê de ew bi satelaytan re jî danûstendinê dike, cîhê belaş li ser wan kontrol dike, û peywiran dişîne da ku çavkaniyên nû çêbikin û jêbirin. Ew di yek nimûneyê de dimeşe û databasek bikar tîne, ku dikare hundurîn (H2) an derveyî be (PostgreSQL, MySQL, MariaDB)
  • Linstor-satellite - Li ser hemî girêkên hilanînê tê saz kirin û agahdariya di derheqê cîhê belaş de ji kontrolkerê re peyda dike, û di heman demê de peywirên ku ji kontrolkerê hatine wergirtin jî pêk tîne da ku cildên nû û amûrên DRBD li ser wan biafirîne û jê bibe.

Linstor bi têgehên sereke yên jêrîn re dixebite:

  • Node - serverek fizîkî ya ku dê çavkaniyên DRBD li ser were afirandin û bikar anîn.
  • Storage Pool - Hewza LVM an ZFS li ser girêka ku dê çavkaniyên DRBD tê de cih bigirin hatî çêkirin. Hewzek bê dîsk jî gengaz e - ev hewzek e ku tenê çavkaniyên bê dîskê dê tê de cih bigirin.
  • Çavkaniyê pênase - Pênaseya çavkaniyekê bi bingehîn prototîpek e ku nav û hemî taybetmendiyên wê vedibêje.
  • Volume Definition - Danasîna cildê. Her çavkanî dikare ji gelek cildan pêk were, divê her cild xwedî pîvanek be.
  • Kanî - Nimûneyek çêkirî ya amûrek blokê, divê her çavkanî li ser girêkek taybetî û di hin hewza hilanînê de were danîn.

Sazkirina Linstor

Ez pêşniyar dikim ku Ubuntu wekî pergalê bikar bînin, ji ber ku ... ji bo wê heye amade PPA:

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

An jî Debian, ku Linstor dikare ji depoya fermî ya Proxmox were saz kirin:

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

Rêveber:

Li vir her tişt hêsan e:

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

Girêdanên hilanînê

Kernel Linux-ê niha bi modulek kernelê ya nav-darê ve tê şandin DRBD8, mixabin ew ne li gorî me ye û pêdivî ye ku em saz bikin DRBD9:

apt-get install drbd-dkms

Wekî ku pratîk destnîşan dike, pir zehmetî bi rastî ji ber ku modula DRBD8 di pergalê de tê barkirin, û ne DRBD9. Bi bextewarî, ev bi xebitandinê hêsan e ku meriv kontrol bike:

modprobe drbd
cat /proc/drbd

Ger hûn bibînin guhertoya: 9 - ev tê wê wateyê ku heke her tişt baş e guhertoya: 8 - ev tê wê wateyê ku tiştek xelet derket û hûn hewce ne ku gavên din bavêjin da ku sedeman bibînin.

Niha em saz bikin linstor-satellite и drbd-utils:

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

Komek ava bikin

Storage pool û nodes

Weke paşverû em ê bigirin ThinLVM, ji ber ew herî hêsan e û wêneyan piştgirî dike.
Lêkirin lvm2, heke we jixwe wiya nekiriye, bila em li ser hemî girêkên hilanîna me hewzek ThinLVM biafirînin:

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

Hemî kiryarên din dikarin rasterast li ser kontrolkerê bêne kirin:

Ka em girêkên xwe lê zêde bikin:

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

Ka em hewzên hilanînê biafirînin:

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

Naha em hewzên hatine afirandin kontrol bikin:

linstor storage-pool list

Ger her tişt rast hatî çêkirin, wê hingê divê em tiştek wekî bibînin:

+----------------------------------------------- ------------------------------------------------ ----+ | StoragePool | Node | Şofêr | Navê hewzê | Kapasîteya Azad | Tevahiya Kapasîteya | SupportsSnapshots | |----------------------------------------------- --------------------------------------------- ---| | data | node1 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | rast | | data | node2 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | rast | | data | node3 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | rast | +----------------------------------------------- ------------------------------------------------ ----+

çavkaniyên DRBD

Naha em hewl bidin ku çavkaniya xweya nû ya DRBD biafirînin:

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

Ka em çavkaniyên hatine afirandin kontrol bikin:

linstor resource list 

+----------------------------------------------- ------------------------------------------------ ---+ | Node | Çavkanî | StoragePool | VolumeNr | MinorNr | DeviceName | Veqetandin | InUse | Dewlet | |----------------------------------------------- ---------------------------------------------- --| | node1 | myres | data | 0 | 1084 | /dev/drbd1084 | 52 KiB | Unused | UpToDate | | node2 | myres | data | 0 | 1084 | /dev/drbd1084 | 52 KiB | Unused | UpToDate | +----------------------------------------------- ------------------------------------------------ ---+

Ecêb! - em dibînin ku çavkanî li ser her du girêkên yekem hatî afirandin, em dikarin li ser ya sêyemîn jî çavkaniyek bê dîsk biafirînin:

linstor resource create --diskless node3 myres

Li ser girêkan hûn ê her gav vê cîhazê wekî bibînin /dev/drbd1084 an /dev/drbd/by-res/myres/0

Bi vî rengî Linstor dixebite, hûn dikarin bêtir agahdarî jê bistînin belgeyên fermî.

Naha ez ê ji we re vebêjim ka meriv wê çawa bi OpenNebula re entegre bike

Sazkirina OpenNebula

Ez ê pir kûr neçim nav pêvajoya sazkirina OpenNebula, ji ber ... hemî gav bi hûrgulî têne şirove kirin belgeyên fermî, ku ez ji we re pêşniyar dikim ku hûn pêwendiyê bikin, ez ê tenê li ser yekbûna OpenNebula bi Linstor re bibêjim.

linstor_un

Ji bo çareserkirina vê pirsgirêkê, min ajokarê xwe nivîsand - linstor_un, ew niha wekî pêvek heye û divê ji hev cuda were saz kirin.

Tevahiya sazkirinê li ser girêkên OpenNebula-ya pêşiyê tête kirin û li ser girêkên hesabkirinê hewcedarî kiryarên zêde nake.

Berî her tiştî, divê em piştrast bikin ku em hene jq и linstor-muwekîlê:

apt-get install jq linstor-client

tîma linstor node list divê navnîşek girêkan nîşan bide. Pêdivî ye ku hemî girêkên hesabker ên OpenNebula li koma Linstor werin zêdekirin.

Pluginê dakêşin û saz bikin:

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

Naha divê em wê li veavakirina OpenNebula zêde bikin, ji bo vê yekê em gavên hêsan ên ku hatine destnîşan kirin bişopînin vir.

Dûv re OpenNebula ji nû ve bidin destpêkirin:

systemctl restart opennebula

Û daneyên me, pergala me zêde bike:

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

Û dikana wêneyê:

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

  • Parîsê AUTO_PLACE hejmara kopiyên daneyê yên ku dê ji bo her wêneyek nû di OpenNebula de werin çêkirin nîşan dide.
  • Parîsê CLONE_MODE tam destnîşan dike ka wêne dê çawa werin klon kirin dema ku makîneyên nû yên virtual çêbikin, snapshot - dê wêneyek wêneyê biafirîne û makîneyek virtual ji wêneyê vebike, copy - dê ji bo her makîneya virtual kopiyek bêkêmasî ya wêneyê çêbike.
  • В BRIDGE_LIST Tê pêşniyar kirin ku hemî girêkên ku dê ji bo pêkanîna karûbarên klonkirina wêneyê werin bikar anîn diyar bikin.

Ji bo navnîşek bêkêmasî ya parametreyên piştgirî, binêre BIXWÎNE rêvename.

Ev sazkirinê temam dike, naha hûn dikarin hin amûrek ji fermî dakêşin OpenNebula Marketplace û ji wê makîneyên virtual biafirînin.

Girêdana projeyê:
https://github.com/OpenNebula/addon-linstor_un

Source: www.habr.com

Add a comment