Ibi ipamọ LINSTOR ati iṣọpọ rẹ pẹlu OpenNebula

Ibi ipamọ LINSTOR ati iṣọpọ rẹ pẹlu OpenNebula

Laipẹ sẹhin, awọn eniyan lati LINBIT ṣafihan ojutu SDS tuntun wọn - Linstor. Eyi jẹ ibi ipamọ ọfẹ patapata ti o da lori awọn imọ-ẹrọ ti a fihan: DRBD, LVM, ZFS. Linstor ṣajọpọ ayedero ati faaji ti a ṣe daradara, eyiti o fun ọ laaye lati ṣaṣeyọri iduroṣinṣin ati awọn abajade iwunilori pupọ.

Loni Emi yoo fẹ lati sọrọ nipa rẹ ni awọn alaye diẹ sii ati ṣafihan bi o ṣe le ni irọrun ti o le ṣepọ pẹlu OpenNebula nipa lilo linstor_un - awakọ tuntun ti Mo ni idagbasoke pataki fun idi eyi.

Linstor ni apapo pẹlu OpenNebula ngbanilaaye lati kọ awọsanma ti o yara ati igbẹkẹle ti o le ni irọrun gbe lọ sori awọn amayederun tirẹ.

Linstor faaji

Linstor kii ṣe eto faili tabi ibi ipamọ idilọwọ fun ẹyọkan, Linstor jẹ akọrin ti o pese Layer abstraction ti o fun ọ laaye lati ṣe adaṣe awọn ẹda ti awọn ipele ni LVM tabi ZFS ki o tun ṣe wọn ni lilo DRBD9.

Kikan stereotypes

Ṣugbọn duro, DRBD? - Kini idi ti o ṣe adaṣe ati bawo ni o ṣe le ṣiṣẹ paapaa?

Jẹ ki a ranti ohun ti o ti kọja, nigbati DRBD8 jẹ olokiki pupọ. Lilo boṣewa rẹ pẹlu ṣiṣẹda ohun elo bulọọki nla kan ati gige sinu ọpọlọpọ awọn ege kekere, ni lilo LVM kanna. Iru mdadm RAID-1 ṣugbọn pẹlu ẹda lori nẹtiwọki.

Ọna yii kii ṣe laisi awọn apadabọ rẹ, ati nitorinaa, pẹlu dide ti DRBD9, awọn ipilẹ ti apẹrẹ ibi ipamọ ti yipada; bayi ẹrọ DRBD lọtọ ti ṣẹda fun ẹrọ foju kọọkan.

Ọna pẹlu awọn ẹrọ idena ominira ngbanilaaye fun lilo aaye to dara julọ ninu iṣupọ, ati tun ṣafikun nọmba awọn ẹya afikun. Fun apẹẹrẹ, fun iru ẹrọ kọọkan o le pinnu nọmba awọn ẹda, ipo wọn ati awọn eto kọọkan. Wọn rọrun lati ṣẹda/parẹ, ya awọn aworan, ṣe atunṣe, mu fifi ẹnọ kọ nkan ṣiṣẹ ati pupọ diẹ sii. O tọ lati ṣe akiyesi pe DRBD9 tun ṣe atilẹyin iyewo, eyiti o fun ọ laaye lati yago fun awọn ipo pipin-ọpọlọ.

Oro ati backends

Nigbati o ba ṣẹda ohun elo bulọọki tuntun, Linstor gbe nọmba ti a beere fun awọn ẹda lori awọn apa oriṣiriṣi ninu iṣupọ. A yoo pe iru ajọra kọọkan ni orisun DRBD.

Awọn iru ohun elo meji lo wa:

  • Data awọn oluşewadi - jẹ ẹrọ DRBD ti o wa lori ipade kan ninu adagun LVM tabi ZFS.
    Ni akoko atilẹyin wa fun ọpọlọpọ awọn ẹhin ati pe nọmba wọn n dagba nigbagbogbo. Atilẹyin wa fun LVM, ThinLVM ati ZFS. Awọn ti o kẹhin meji gba o laaye lati ṣẹda ati lo snapshots.
  • Diskless awọn oluşewadi - jẹ ohun elo DRBD ti a gbe sori ipade laisi ẹhin, ṣugbọn gbigba laaye lati ṣe itọju bi ẹrọ idinamọ deede; gbogbo awọn iṣẹ kika / kikọ yoo darí si awọn orisun data. Afọwọṣe ti o sunmọ julọ si awọn orisun disiki jẹ iSCSI LUN.

Awọn orisun DRBD kọọkan le ni to awọn ẹda 8, ati pe ọkan ninu wọn le ṣiṣẹ nipasẹ aiyipada - Primary, gbogbo eniyan yoo jẹ Atẹle ati pe lilo wọn kii yoo ṣee ṣe niwọn igba ti o kere ju Alakọbẹrẹ kan wa, iyẹn ni, wọn yoo kan ṣe ẹda data laarin ara wọn.

Nipa fifi ẹrọ DRBD sori ẹrọ, yoo di laifọwọyi Primary, nitorinaa paapaa orisun Diskless, ni awọn ọrọ-ọrọ DRBD, le jẹ Alakoko.

Nitorina kilode ti o nilo Linstor?

Nipa gbigbe gbogbo awọn iṣẹ ṣiṣe ti o ni agbara si ekuro, Linstor jẹ pataki ohun elo Java deede ti o fun ọ laaye lati ṣe adaṣe adaṣe awọn orisun DRBD ni irọrun.
Pẹlupẹlu, orisun kọọkan ti o ṣẹda yoo jẹ iṣupọ DRBD ominira ti o nṣiṣẹ ni ominira, laibikita ipo ti ọkọ ofurufu iṣakoso ati awọn orisun DRBD miiran.

Linstor ni awọn paati meji nikan:

  • Linstor-oludari - Alakoso akọkọ, eyiti o pese API fun ṣiṣẹda ati iṣakoso awọn orisun. O tun n ba awọn satẹlaiti sọrọ, ṣayẹwo aaye ọfẹ lori wọn, ati firanṣẹ awọn iṣẹ ṣiṣe lati ṣẹda ati paarẹ awọn orisun tuntun. O nṣiṣẹ ni apẹẹrẹ ẹyọkan o si nlo aaye data kan, eyiti o le jẹ boya inu (H2) tabi ita (PostgreSQL, MySQL, MariaDB)
  • Linstor-satẹlaiti - Fi sori ẹrọ lori gbogbo awọn apa ibi ipamọ ati pese oluṣakoso pẹlu alaye nipa aaye ọfẹ, ati tun ṣe awọn iṣẹ ṣiṣe ti a gba lati ọdọ oludari lati ṣẹda ati paarẹ awọn iwọn tuntun ati awọn ẹrọ DRBD lori oke wọn.

Linstor n ṣiṣẹ pẹlu awọn imọran bọtini atẹle wọnyi:

  • ipade - olupin ti ara lori eyiti awọn orisun DRBD yoo ṣẹda ati lo.
  • Ibi ipamọ Pool - LVM tabi adagun ZFS ti a ṣẹda lori ipade eyiti awọn orisun DRBD yoo wa. Adagun adagun disiki tun ṣee ṣe - eyi jẹ adagun-odo ninu eyiti awọn orisun disiki nikan yoo wa.
  • Awọn oluşewadi Definition - Itumọ ti orisun kan jẹ apẹrẹ pataki ti o ṣe apejuwe orukọ ati gbogbo awọn ohun-ini rẹ.
  • Iwọn didun Definition - Itumọ iwọn didun. Awọn orisun kọọkan le ni awọn iwọn didun pupọ, iwọn didun kọọkan gbọdọ ni iwọn kan.
  • Resource - Apeere ti a ṣẹda ti ẹrọ bulọọki, awọn orisun kọọkan gbọdọ wa ni gbe sori ipade kan pato ati ni diẹ ninu adagun ibi ipamọ.

Linstor fifi sori

Mo ṣeduro lilo Ubuntu bi eto, nitori… wa fun u PPA ti o ṣetan:

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

Tabi Debian, nibiti Linstor le ti fi sii lati ibi ipamọ osise fun 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

adarí

Ohun gbogbo rọrun nibi:

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

Awọn apa ibi ipamọ

Ekuro Lainos lọwọlọwọ ọkọ oju omi pẹlu module ekuro inu igi kan DRBD8, laanu ko baamu wa ati pe a nilo lati fi sori ẹrọ DRBD9:

apt-get install drbd-dkms

Gẹgẹbi iṣe ṣe fihan, ọpọlọpọ awọn iṣoro dide ni pipe nitori module DRBD8 ti kojọpọ sinu eto, kii ṣe DRBD9. O da, eyi rọrun lati ṣayẹwo nipasẹ ṣiṣe:

modprobe drbd
cat /proc/drbd

Ti o ba ri ẹya: 9 - o tumo si ohun gbogbo ni itanran ti o ba ti ẹya: 8 - o tumọ si pe ohun kan ko tọ ati pe o nilo lati ṣe awọn igbesẹ afikun lati wa awọn idi.

Bayi jẹ ki a fi sori ẹrọ linstor-satẹlaiti и drbd-utils:

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

Ṣẹda iṣupọ kan

Ibi ipamọ adagun ati apa

Bi ẹhin a yoo gba ThinLVM, nitori o rọrun julọ ati atilẹyin awọn aworan aworan.
Fi sori ẹrọ lvm2, ti o ko ba ti ṣe bẹ tẹlẹ, jẹ ki a ṣẹda adagun ThinLVM lori gbogbo awọn apa ibi ipamọ wa:

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

Gbogbo awọn iṣe siwaju le ṣee ṣe taara lori oludari:

Jẹ ki a ṣafikun awọn apa wa:

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

Jẹ ki a ṣẹda awọn adagun ibi ipamọ:

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

Bayi jẹ ki a ṣayẹwo awọn adagun ti a ṣẹda:

linstor storage-pool list

Ti ohun gbogbo ba ṣe ni deede, lẹhinna o yẹ ki a rii nkan bii:

------------------------------------------------ ------------------------------------------------- ----+ | Ibi ipamọ Pool | Node | Awakọ | Orukọ adagun | Agbara Ọfẹ | Apapọ Agbara | Awọn atilẹyinSnapshots | ---------------------------------------------------------------- ------------------------------------------------- ---| | data | ipade1 | LVM_THIN | drbdpool / thinpool | 64 GiB | 64 GiB | ooto | | data | ipade2 | LVM_THIN | drbdpool / thinpool | 64 GiB | 64 GiB | ooto | | data | ipade3 | LVM_THIN | drbdpool / thinpool | 64 GiB | 64 GiB | ooto | ------------------------------------------------ ------------------------------------------------- ----+

DRBD oro

Bayi jẹ ki a gbiyanju lati ṣẹda awọn orisun DRBD tuntun wa:

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

Jẹ ki a ṣayẹwo awọn orisun ti a ṣẹda:

linstor resource list 

------------------------------------------------ ------------------------------------------------- ---+ | Node | Oro | Ibi ipamọ Pool | Iwọn didunNr | MinorNr | Orukọ ẹrọ | Soto | Lilo | Ipinle | ---------------------------------------------------------------- ------------------------------------------------- --| | ipade1 | myres | data | 0 | 1084 | /dev/drbd1084 | 52 KiB | Ailokun | UpToDate | | ipade2 | myres | data | 0 | 1084 | /dev/drbd1084 | 52 KiB | Ailokun | UpToDate | ------------------------------------------------ ------------------------------------------------- ---+

Nla! - a rii pe a ṣẹda orisun lori awọn apa meji akọkọ, a tun le gbiyanju lati ṣẹda awọn orisun disiki kan ni ẹkẹta:

linstor resource create --diskless node3 myres

Lori awọn apa iwọ yoo rii ẹrọ nigbagbogbo bi /dev/drbd1084 tabi /dev/drbd/by-res/myres/0

Eyi ni bi Linstor ṣe n ṣiṣẹ, o le gba alaye diẹ sii lati osise iwe aṣẹ.

Bayi Emi yoo sọ fun ọ bi o ṣe le ṣepọ pẹlu OpenNebula

Ṣiṣeto OpenNebula

Emi kii yoo lọ jinle pupọ sinu ilana iṣeto OpenNebula, nitori… gbogbo awọn igbesẹ ti wa ni apejuwe ninu osise iwe aṣẹ, eyiti Mo ṣeduro pe ki o kan si, Emi yoo sọ fun ọ nikan nipa iṣọpọ OpenNebula pẹlu Linstor.

linstor_un

Lati yanju iṣoro yii, Mo kọ awakọ ti ara mi - linstor_un, o wa lọwọlọwọ bi itanna ati pe o gbọdọ fi sii lọtọ.

Gbogbo fifi sori ẹrọ ni a ṣe lori awọn apa iwaju OpenNebula ati pe ko nilo awọn iṣe afikun lori awọn apa oniṣiro.

Ni akọkọ, a nilo lati rii daju pe a ni jq и linstor-onibara:

apt-get install jq linstor-client

Egbe linstor node list yẹ ki o han akojọ kan ti apa. Gbogbo awọn apa oniṣiro OpenNebula gbọdọ wa ni afikun si iṣupọ Linstor.

Ṣe igbasilẹ ati fi ẹrọ itanna naa sori ẹrọ:

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

Bayi a nilo lati ṣafikun si atunto OpenNebula, lati ṣe eyi a tẹle awọn igbesẹ ti o rọrun ti a ṣalaye nibi.

Lẹhinna tun bẹrẹ OpenNebula:

systemctl restart opennebula

Ati ṣafikun awọn ibi ipamọ data wa, eto:

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

Ati ile itaja aworan:

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

  • Apaadi AUTO_PLACE ṣe afihan nọmba awọn ẹda data ti yoo ṣẹda fun aworan tuntun kọọkan ni OpenNebula.
  • Apaadi CLONE_MODE tọkasi gangan bi awọn aworan yoo ṣe di oniye nigbati o ṣẹda awọn ẹrọ foju tuntun, snapshot - yoo ṣẹda aworan aworan kan ati mu ẹrọ foju kan lati aworan aworan, copy - yoo ṣe ẹda pipe ti aworan fun ẹrọ foju kọọkan.
  • В BRIDGE_LIST O ti wa ni niyanju lati pato gbogbo awọn apa ti yoo ṣee lo lati ṣe image cloning mosi.

Fun atokọ pipe ti awọn paramita atilẹyin, wo README ise agbese.

Eyi pari iṣeto naa, ni bayi o le ṣe igbasilẹ ohun elo kan lati ọdọ osise naa Ṣii Ibi ọja Nebula ati ṣẹda awọn ẹrọ foju lati inu rẹ.

Ọna asopọ ise agbese:
https://github.com/OpenNebula/addon-linstor_un

orisun: www.habr.com

Fi ọrọìwòye kun