LINSTOR Stockage a seng Integratioun mat OpenNebula

LINSTOR Stockage a seng Integratioun mat OpenNebula

Virun net laanger Zäit hunn d'Jongen vum LINBIT hir nei SDS-Léisung presentéiert - Linstor. Dëst ass eng komplett gratis Späichere baséiert op bewährten Technologien: DRBD, LVM, ZFS. Linstor kombinéiert Einfachheet a gutt entworf Architektur, déi Iech erlaabt Stabilitéit an zimlech beandrockend Resultater z'erreechen.

Haut wëll ech e bësse méi detailléiert doriwwer schwätzen a weisen wéi einfach et mat OpenNebula integréiert ka ginn mat linstor_un - en neie Chauffer deen ech speziell fir dësen Zweck entwéckelt hunn.

Linstor a Kombinatioun mat OpenNebula erlaabt Iech eng séier an zouverlässeg Wollek ze bauen déi einfach op Ärer eegener Infrastruktur agesat ka ginn.

Linstor Architektur

Linstor ass weder e Dateiesystem nach Blocklagerung per se, Linstor ass en Orchester deen eng Abstraktiounsschicht ubitt, déi Iech erlaabt d'Schafung vu Bänn an LVM oder ZFS ze automatiséieren an se mat DRBD9 ze replizéieren.

Stereotypen briechen

Awer waart, DRBD? - Firwat et automatiséieren a wéi kann et iwwerhaapt funktionnéieren?

Loosst eis un d'Vergaangenheet erënneren, wéi DRBD8 ganz populär war. Seng Standardnotzung involvéiert e grousst Blockapparat ze kreéieren an et a vill kleng Stécker ze schneiden, mat deemselwechte LVM. Eng Zort mdadm RAID-1 awer mat Replikatioun iwwer dem Netz.

Dës Approche ass net ouni seng Nodeeler, an dofir, mam Advent vun DRBD9, hunn d'Prinzipien vum Späicherdesign geännert; elo gëtt en separaten DRBD Apparat fir all virtuell Maschinn erstallt.

D'Approche mat onofhängege Block-Apparater erlaabt eng besser Notzung vum Raum am Cluster, a füügt och eng Rei zousätzlech Funktiounen un. Zum Beispill, fir all esou Apparat kënnt Dir d'Zuel vun de Repliken bestëmmen, hir Plaz an individuell Astellungen. Si sinn einfach ze kreéieren / ze läschen, Snapshots ze huelen, d'Gréisst änneren, d'Verschlësselung aktivéieren a vill méi. Et ass derwäert ze notéieren datt DRBD9 och Quorum ënnerstëtzt, wat Iech erlaabt Split-Gehir Situatiounen ze vermeiden.

Ressourcen a Backends

Wann Dir en neie Blockapparat erstellt, setzt Linstor déi erfuerderlech Unzuel vun Repliken op verschidden Noden am Cluster. Mir nennen all sou Replik eng DRBD Ressource.

Et ginn zwou Zorte vu Ressourcen:

  • Daten Ressource - sinn en DRBD Apparat op engem Node an engem LVM oder ZFS Pool.
    Am Moment gëtt et Ënnerstëtzung fir verschidde Backends an hir Zuel wiisst konstant. Et gëtt Ënnerstëtzung fir LVM, ThinLVM an ZFS. Déi lescht zwee erlaben Iech Snapshots ze kreéieren an ze benotzen.
  • Diskless Ressource - ass en DRBD Apparat, deen op engem Node ouni Backend plazéiert ass, awer erlaabt et als e reguläre Blockapparat behandelt ze ginn; all Lies- / Schreifoperatioune ginn op Datenressourcen ëmgeleet. Den nootsten Analog zu disklosen Ressourcen ass iSCSI LUN.

All DRBD Ressource ka bis zu 8 Repliken hunn, an nëmmen ee vun hinnen kann als Standard aktiv sinn - Primärschoul, all aner wäert Secondaire an hir Notzung wäert onméiglech sinn soulaang et op d'mannst ee Primär ass, dat heescht, si wäerten einfach Daten tëscht sech selwer replizéieren.

Andeems Dir en DRBD Apparat an de System installéiert, gëtt et automatesch Primärschoul, also och eng Diskless Ressource, an der DRBD Terminologie, kann Primär sinn.

Also firwat braucht Dir Linstor?

Andeems Dir all Ressourceintensiv Aufgaben dem Kernel uvertraut, ass Linstor am Wesentlechen eng regulär Java Applikatioun déi Iech erlaabt d'Schafung vun DRBD Ressourcen einfach ze automatiséieren.
Desweideren, wäert all Ressource vun him geschaf en onofhängege DRBD Stärekoup ginn, datt onofhängeg bedreift, onofhängeg vun der Staat Kontroll-Fliger an aner DRBD Ressourcen.

Linstor besteet aus nëmmen zwee Komponenten:

  • Linstor-Controller - Den Haaptcontroller, deen eng API ubitt fir Ressourcen ze kreéieren an ze managen. Et kommunizéiert och mat Satelliten, kontrolléiert de fräie Raum op hinnen, a schéckt Aufgaben fir nei Ressourcen ze kreéieren an ze läschen. Et leeft an enger eenzeger Instanz a benotzt eng Datebank, déi entweder intern (H2) oder extern (PostgreSQL, MySQL, MariaDB) ka sinn.
  • Linstor-satellit - Installéiert op all Späicherknäppchen a liwwert dem Controller Informatioun iwwer fräi Plaz, a mécht och Aufgaben, déi vum Controller kritt goufen, fir nei Bänn an DRBD-Geräter uewen op hinnen ze kreéieren an ze läschen.

Linstor operéiert mat de folgende Schlësselkonzepter:

  • Node sinn - e kierperleche Server op deem DRBD Ressourcen erstallt a benotzt ginn.
  • Stockage Pool - LVM oder ZFS Pool erstallt um Node an deem DRBD Ressourcen lokaliséiert ginn. E Diskless Pool ass och méiglech - dëst ass e Pool an deem nëmmen diskless Ressourcen wäerte sinn.
  • Ressource Definitioun - D'Definitioun vun enger Ressource ass wesentlech e Prototyp deen den Numm an all seng Eegeschafte beschreift.
  • Volume Definitioun - Volume Definitioun. All Ressource kann aus multiple Bänn besteet, all Volume muss eng Gréisst hunn.
  • Ressource - Eng erstallt Instanz vun engem Blockapparat, all Ressource muss op e spezifesche Node an an e puer Späicherpool plazéiert ginn.

Linstor Installatioun

Ech recommandéieren Ubuntu als System ze benotzen, well ... existéiert fir hir prett PPA:

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

Oder Debian, wou Linstor aus dem offiziellen Repository fir Proxmox installéiert ka ginn:

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

spiller

Alles ass einfach hei:

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

Späicherknäppchen

De Linux Kernel verschéckt de Moment mat engem In-Baum Kernel Modul DRBD8, leider passt et eis net a mir mussen installéieren DRBD9:

apt-get install drbd-dkms

Wéi d'Praxis weist, entstinn déi meescht Schwieregkeeten genee well den DRBD8 Modul an de System gelueden ass, an net DRBD9. Glécklecherweis ass dëst einfach ze kontrolléieren andeems Dir leeft:

modprobe drbd
cat /proc/drbd

Wann Dir gesitt Versioun: 9 - et heescht datt alles gutt ass wann Versioun: 8 - et heescht datt eppes falsch gaang ass an Dir musst zousätzlech Schrëtt huelen fir d'Grënn erauszefannen.

Loosst eis elo installéieren linstor-satellit и drbd-utils:

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

Schafen e Cluster

Stockage Poolen an Wirbelen

Als Backend wäerte mir huelen Dënn LVM, well et ass am einfachsten an ënnerstëtzt Schnappschëss.
Installéieren lvm 2, Wann Dir dat nach net gemaach hutt, loosst eis en ThinLVM Pool op all eise Späicherknäppchen erstellen:

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

All weider Aktiounen kënnen direkt um Controller ausgefouert ginn:

Loosst eis eis Noden addéieren:

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

Loosst eis Späicherpools erstellen:

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

Loosst eis elo déi erstallt Poole kucken:

linstor storage-pool list

Wann alles richteg gemaach gëtt, da sollte mir eppes gesinn wéi:

+-------------------------------------------------------- -------------------------------------------------- ----+ | StoragePool | Node | Chauffeur | PoolName | Fräi Kapazitéit | Gesamtkapazitéit | Ënnerstëtzt Snapshots | |-------------------------------------------------------- -------------------------------------------------- - ---| | daten | node1 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | wouer | | daten | node 2 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | wouer | | daten | node3 | LVM_THIN | drbdpool/thinpool | 64 GiB | 64 GiB | wouer | +-------------------------------------------------------- -------------------------------------------------- ----+

DRBD Ressourcen

Loosst eis elo probéieren eis nei DRBD Ressource ze kreéieren:

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

Loosst eis déi erstallt Ressourcen iwwerpréiwen:

linstor resource list 

+-------------------------------------------------------- -------------------------------------------------- ---+ | Node | Ressource | StoragePool | VolumeNr | MinorNr | ApparatName | Verdeelt | InUse | Staat | |-------------------------------------------------------- -------------------------------------------------- - --| | node1 | mir | daten | 0 | 1084 | /dev/drbd1084 | 52 KiB | Onbenotzt | UpToDate | | node 2 | mir | daten | 0 | 1084 | /dev/drbd1084 | 52 KiB | Onbenotzt | UpToDate | +-------------------------------------------------------- -------------------------------------------------- ---+

Super! - mir gesinn datt d'Ressource op den éischten zwee Wirbelen erstallt gouf, mir kënnen och probéieren eng disklos Ressource op der drëtter ze kreéieren:

linstor resource create --diskless node3 myres

Op Wirbelen fannt Dir ëmmer dësen Apparat als /dev/drbd1084 oder /dev/drbd/by-res/myres/0

Dëst ass wéi Linstor funktionnéiert, Dir kënnt méi Informatioun kréien offiziell Dokumentatioun.

Elo wäert ech Iech soen wéi Dir et mat OpenNebula integréiert

Opriichten OpenNebula

Ech wäert net ze déif an den OpenNebula Setup Prozess goen, well ... all Schrëtt sinn am Detail beschriwwen an offiziell Dokumentatioun, déi ech recommandéieren Iech ze kontaktéieren, ech soen Iech nëmmen iwwer d'Integratioun vun OpenNebula mat Linstor.

linstor_un

Fir dëse Problem ze léisen, hunn ech mäin eegene Chauffer geschriwwen - linstor_un, et ass de Moment als Plugin verfügbar a muss separat installéiert ginn.

Déi ganz Installatioun gëtt op de Frontend OpenNebula Wirbelen duerchgefouert an erfuerdert keng zousätzlech Aktiounen op de Rechenknäppchen.

Éischt vun all, musse mir sécherstellen, datt mir hunn jq и linstor-client:

apt-get install jq linstor-client

Equipe linstor node list soll eng Lëscht vun Noden weisen. All OpenNebula Rechenknäppchen mussen an de Linstor-Cluster bäigefüügt ginn.

Download an installéiert de 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

Elo musse mir et an d'OpenNebula Config addéieren, fir dëst ze maachen, befollege mir déi einfache Schrëtt beschriwwen hei.

Da starten OpenNebula nei:

systemctl restart opennebula

A füügt eis Datastore, System derbäi:

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

An de Bildgeschäft:

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 weist d'Zuel vun den Daterepliken déi fir all neit Bild am OpenNebula erstallt ginn.
  • Parameter CLONE_MODE weist genau un wéi d'Biller gekloont ginn wann Dir nei virtuelle Maschinnen erstellt, snapshot - wäert e Snapshot vum Bild erstellen an eng virtuell Maschinn aus dem Snapshot ofsetzen, copy - wäert eng komplett Kopie vum Bild fir all virtuell Maschinn maachen.
  • В BRIDGE_LIST Et ass recommandéiert all Noden ze spezifizéieren déi benotzt gi fir Bildklonen Operatiounen auszeféieren.

Fir eng komplett Lëscht vun ënnerstëtzte Parameteren, kuckt README Projet.

Dëst fäerdeg de Setup, elo kënnt Dir e puer Apparat vum offiziellen eroflueden OpenNebula Maartplaz a schafen virtuell Maschinnen aus et.

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

Source: will.com

Setzt e Commentaire