Karatteristiċi bażiċi ta 'LXD - sistemi ta' kontenituri Linux
LXD huwa l-maniġer tal-kontenitur tas-sistema tal-ġenerazzjoni li jmiss, hekk jgħid sors. Joffri interface għall-utent simili għal magni virtwali, iżda minflok juża kontenituri Linux.
qalba LXD huwa daemon privileġġjat (servizz li jaħdem bi drittijiet ta 'l-għeruq) li jipprovdi API REST permezz ta' socket unix lokali, kif ukoll permezz tan-netwerk jekk tkun installata l-konfigurazzjoni xierqa. Il-klijenti, bħall-għodda tal-linja tal-kmand ipprovduta ma 'LXD, jagħmlu talbiet permezz ta' din l-API REST. Dan ifisser li kemm jekk qed taċċessa host lokali jew host remot, kollox jaħdem l-istess.
F'dan l-artikolu mhux se nitkellem fid-dettall fuq il-kunċetti ta 'LXD, mhux se nikkunsidraw il-kapaċitajiet kollha disponibbli deskritti fid-dokumentazzjoni, inkluża l-implimentazzjoni reċenti fl-aħħar verżjonijiet ta' LXD ta 'appoġġ għal magni virtwali QEMU b'mod parallel mal-kontenituri. Minflok, nitgħallmu biss il-baŜi tal-ġestjoni tal-kontejners - it-twaqqif ta 'pools ta' ħażna, netwerking, it-tmexxija ta 'kontenitur, l-applikazzjoni ta' limiti ta 'riżorsi, u kif tuża snapshots sabiex tkun tista' tikseb fehim bażiku ta 'LXD u tuża kontenituri fuq Linux.
Għal informazzjoni kompleta, jekk jogħġbok irreferi għas-sors uffiċjali:
Dan ifisser li żewġ pakketti se jiġu installati f'daqqa, wieħed bħala pakkett tas-sistema u l-ieħor bħala pakkett snap. L-installazzjoni ta' żewġ pakketti fuq sistema tista' toħloq xi problema fejn il-pakkett tas-sistema jista' jsir orfni jekk il-pakkett snap jitneħħa mill-maniġer tal-pakketti snap.
Sib pakkett lxd fir-repożitorju snap tista' tuża l-kmand li ġej:
snap find lxd
Name Version Summary
lxd 3.21 System container manager and API
lxd-demo-server 0+git.6d54658 Online software demo sessions using LXD
nova ocata OpenStack Compute Service (nova)
nova-hypervisor ocata OpenStack Compute Service - KVM Hypervisor (nova)
distrobuilder 1.0 Image builder for LXC and LXD
fabrica 0.1 Build snaps by simply pointing a web form to...
satellite 0.1.2 Advanced scalable Open source intelligence platform
Billi tmexxi l-kmand list inti tista 'tagħmel ċert li l-pakkett lxd għadu mhux installat:
snap list
Name Version Rev Tracking Publisher Notes
core 16-2.43.3 8689 stable canonical✓ core
Minkejja l-fatt li LXD huwa pakkett snap, għandu jiġi installat permezz tal-pakkett tas-sistema lxd, li se toħloq il-grupp korrispondenti fis-sistema, l-utilitajiet meħtieġa fil /usr/bin eċċ
sudo apt update
sudo apt install lxd
Ejja niżguraw li l-pakkett ikun installat bħala pakkett snap:
snap list
Name Version Rev Tracking Publisher Notes
core 16-2.43.3 8689 stable canonical✓ core
lxd 3.21 13474 stable/… canonical✓ -
Installazzjoni ta 'LXD fuq distribuzzjonijiet ta' Arch Linux ^
Biex tinstalla l-pakkett LXD fuq is-sistema, għandek bżonn tmexxi l-kmandi li ġejjin, l-ewwel se taġġorna l-lista ta 'pakketti fis-sistema disponibbli fir-repożitorju, it-tieni se jinstalla direttament il-pakkett:
sudo pacman -Syyu && sudo pacman -S lxd
Wara l-installazzjoni tal-pakkett, sabiex timmaniġġja LXD minn utent regolari, għandu jiżdied mal-grupp tas-sistema lxd:
sudo usermod -a -G lxd user1
Ejja niżguraw li l-utent user1 miżjud mal-grupp lxd:
id -Gn user1
user1 adm dialout cdrom floppy sudo audio dip video plugdev netdev lxd
Jekk il-grupp lxd mhix viżibbli fil-lista, allura trid tattiva s-sessjoni tal-utent mill-ġdid. Biex tagħmel dan, trid tilloggja u tidħol taħt l-istess utent.
Attiva fi systemd tagħbija tas-servizz LXD fl-istartjar tas-sistema:
Qabel ma tibda l-inizjalizzazzjoni, irridu nifhmu kif il-ħażna f'LXD hija rranġata loġikament.
Ħażna (Ħażna) tikkonsisti minn minn wieħed jew aktar Pool tal-Ħażna li juża waħda mis-sistemi ta 'fajls appoġġjati bħal ZFS, BTRFS, LVM jew direttorji regolari. Kull Pool tal-Ħażna hija maqsuma f'volumi (Volum tal-Ħażna) li jkun fihom stampi, kontenituri, jew data għal skopijiet oħra.
L-immaġini - dawn huma distribuzzjonijiet immuntati apposta mingħajr il-qalba tal-Linux u disponibbli minn sorsi esterni
Kontenituri - dawn huma distribuzzjonijiet skjerati minn immaġini, lesti għall-użu
Snapshots - dawn huma snapshots tal-istat tal-kontenituri li tista' tirritorna għalihom
Biex timmaniġġja l-ħażna f'LXD, uża l-kmand lxc storage ċertifikat li għalih tista' tikseb billi tispeċifika ċ-ċavetta - lxc storage --help
Il-kmand li ġej juri lista ta 'kollha Pool tal-Ħażna fil-ħażna LXD:
lxc storage list
+---------+-------------+--------+--------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool | | btrfs | /dev/loop1 | 2 |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool | | btrfs | /var/lib/lxd/disks/ssdpool.img | 4 |
+---------+-------------+--------+--------------------------------+---------+
Biex tara lista ta 'kollha Volum tal-Ħażna fil-magħżula Pool tal-Ħażna jaqdi lit-tim lxc storage volume list:
lxc storage volume list hddpool
+-------+----------------------------------+-------------+---------+
| TYPE | NAME | DESCRIPTION | USED BY |
+-------+----------------------------------+-------------+---------+
| image | ebd565585223487526ddb3607f515... | | 1 |
+-------+----------------------------------+-------------+---------+
lxc storage volume list ssdpool
+-----------+----------------------------------+-------------+---------+
| TYPE | NAME | DESCRIPTION | USED BY |
+-----------+----------------------------------+-------------+---------+
| container | alp3 | | 1 |
+-----------+----------------------------------+-------------+---------+
| container | jupyter | | 1 |
+-----------+----------------------------------+-------------+---------+
| image | ebd565585223487526ddb3607f515... | | 1 |
+-----------+----------------------------------+-------------+---------+
Ukoll, jekk għal Pool tal-Ħażna Meta ħolqot, intgħażlet is-sistema tal-fajl BTRFS, imbagħad ikseb lista Volum tal-Ħażna jew subvolumi fl-interpretazzjoni BTRFS, tista' tuża l-għodda ta' din is-sistema tal-fajls:
sudo btrfs subvolume list -p /var/lib/lxd/storage-pools/hddpool
ID 257 gen 818 parent 5 top level 5 path images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
sudo btrfs subvolume list -p /var/lib/lxd/storage-pools/ssdpool
ID 257 gen 1820 parent 5 top level 5 path images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
ID 260 gen 1819 parent 5 top level 5 path containers/jupyter
ID 263 gen 1820 parent 5 top level 5 path containers/alp3
Qabel ma toħloq u tuża kontenituri, trid twettaq inizjalizzazzjoni LXD ġenerali li toħloq u tikkonfigura n-netwerk u l-ħażna. Dan jista 'jsir manwalment bl-użu ta' kmandi standard tal-klijenti li huma disponibbli fil-lista billi ċċempel il-kmand lxc --help jew bl-użu tal-wizard tal-inizjalizzazzjoni lxd init jwieġeb ftit mistoqsijiet.
Waqt l-inizjalizzazzjoni, LXD jistaqsi diversi mistoqsijiet, inkluż id-determinazzjoni tat-tip tas-sistema tal-fajls għall-inadempjenza Pool tal-Ħażna. B'mod awtomatiku, is-sistema tal-fajl BTRFS hija magħżula għaliha. Se jkun impossibbli li tinbidel għal FS ieħor wara l-ħolqien. Biex tagħżel FS huwa ssuġġerit tabella ta 'tqabbil tal-karatteristiċi:
karatteristika
Direttorju
Btrfs
LVM
ZFS
CEPH
Ħażna ta 'immaġni ottimizzata
le
iva
iva
iva
iva
Ħolqien ta 'istanza ottimizzat
le
iva
iva
iva
iva
Ħolqien ta' snapshot ottimizzat
le
iva
iva
iva
iva
Trasferiment tal-immaġni ottimizzat
le
iva
le
iva
iva
Trasferiment tal-istanza ottimizzat
le
iva
le
iva
iva
Kopja fuq tikteb
le
iva
iva
iva
iva
Blokk ibbażat
le
le
iva
le
iva
Klonazzjoni istantanja
le
iva
iva
iva
iva
Driver tal-ħażna li jista' jintuża ġewwa kontenitur
iva
iva
le
le
le
Irrestawra minn snapshots eqdem (mhux l-aħħar)
iva
iva
iva
le
iva
Kwoti tal-ħażna
iva (*)
iva
iva
iva
le
Inizjalizzazzjoni tan-netwerk u l-Ħażna Pool bl-użu tal-wizard ^
Il-kmand li jmiss li ser inħarsu lejh jissuġġerixxi li twaqqaf il-komponenti ewlenin ta 'LXD billi twieġeb mistoqsijiet sempliċi billi tuża l-wizard tal-inizjalizzazzjoni.
Mexxi kmand lxc init u daħħal it-tweġibiet għall-mistoqsijiet wara l-kolon kif muri fl-eżempju hawn taħt jew ibdelhom skont il-kundizzjonijiet tiegħek:
lxd init
Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]: ssdpool
Name of the storage backend to use (lvm, btrfs, dir) [default=btrfs]:
Create a new BTRFS pool? (yes/no) [default=yes]:
Would you like to use an existing block device? (yes/no) [default=no]:
Size in GB of the new loop device (1GB minimum) [default=15GB]: 10GB
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=lxdbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 10.0.5.1/24
Would you like LXD to NAT IPv4 traffic on your bridge? [default=yes]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none
Would you like LXD to be available over the network? (yes/no) [default=no]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes] no
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
Fil-pass preċedenti ħloqna Pool tal-Ħażna li ngħata l-isem ssdpool u l-fajl tiegħu jinsab fis-sistema tiegħi fuq /var/lib/lxd/disks/ssdpool.img. Dan l-indirizz tas-sistema tal-fajls jikkorrispondi għad-drajv SSD fiżiku fil-PC tiegħi.
L-azzjonijiet li ġejjin, biex jespandu l-fehim tar-rwol li għandu Pool tal-Ħażna fir-repożitorju, se noħolqu t-tieni waħda Pool tal-Ħażna li se tkun fiżikament lokalizzata fuq tip differenti ta’ disk, HDD. Il-problema hija li LXD ma jippermettilekx toħloq Pool tal-Ħażna barra mill-indirizz /var/lib/lxd/disks/ u anke links simboliċi mhux se jaħdmu, ara r-rispons tal-iżviluppatur. Nistgħu naqbdu din il-limitazzjoni waqt l-inizjalizzazzjoni/l-ifformattjar Pool tal-Ħażna billi tispeċifika l-valur bħala apparat blokk minflok il-mogħdija għall-fajl loopback billi tispeċifika dan fiċ-ċavetta source.
Allura, qabel ma toħloq Pool tal-Ħażna għandek bżonn tiddefinixxi fajl loopback jew partizzjoni eżistenti fis-sistema tal-fajls tiegħek li se tuża. Biex tagħmel dan, aħna se noħolqu u nużaw fajl li se nillimitaw fid-daqs għal 10GB:
dd if=/dev/zero of=/mnt/work/lxd/hddpool.img bs=1MB count=10000
10000+0 records in
10000+0 records out
10000000000 bytes (10 GB, 9,3 GiB) copied, 38,4414 s, 260 MB/s
Ejja nqabbdu l-fajl loopback ma' apparat loopback b'xejn:
Grazzi għaċ-ċavetta --show l-eżekuzzjoni tal-kmand jirritorna lill-iskrin l-isem tal-apparat li fih huwa konness il-fajl loopback tagħna. Jekk meħtieġ, nistgħu nuru lista tal-apparati kollha okkupati ta' dan it-tip biex niżguraw li l-azzjonijiet tagħna huma korretti:
Mil-lista tista 'ssib li l-apparat għandu /dev/loop1 fajl loopback inkluż /mnt/work/lxd/hddpool.img, u fl-apparat /dev/loop0 fajl loopback inkluż /var/lib/lxd/disks/ssdpool.img li jikkorrispondi għall-inadempjenza Pool tal-Ħażna.
Il-kmand li ġej joħloq wieħed ġdid Pool tal-Ħażna f'LXD ibbażat fuq il-fajl loopback li għadna kif ħejjejna. LXD se jifformattja l-fajl loopback /mnt/work/lxd/hddpool.img fl-apparat /dev/loop1 għas-sistema tal-fajls BTRFS:
Inserzjoni awtomatika ta 'fajl loopback fi slot ta' apparat loopback ^
Għandna problema żgħira waħda, meta terġa 'tibda s-sistema ospitanti, il-fajl /mnt/work/lxd/hddpool.img se "jtir" barra mill-apparat /dev/loop1 u s-servizz LXD jiġġarraf meta jgħabbi għax mhux se jarah f'dan l-apparat. Biex issolvi din il-problema għandek bżonn toħloq servizz tas-sistema li se daħħal dan il-fajl fl-apparat /dev/loop1 meta s-sistema ospitanti tibda.
Ejja noħolqu unità tip ta' fajl servizz в /etc/systemd/system/ għas-sistema ta' inizjalizzazzjoni SystemD:
cat << EOF | sudo tee -a /etc/systemd/system/lxd-hddpool.service
[Unit]
Description=Losetup LXD Storage Pool (hddpool)
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/sbin/losetup /dev/loop1 /mnt/work/lxd/hddpool.img
RemainAfterExit=true
[Install]
WantedBy=local-fs.target
EOF
Attiva s-servizz:
sudo systemctl enable lxd-hddpool
Created symlink /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service → /etc/systemd/system/lxd-hddpool.service.
Wara li nibdew mill-ġdid is-sistema ospitanti, aħna niċċekkjaw l-istatus tas-servizz:
systemctl status lxd-hddpool.service
● lxd-hddpool.service - Losetup LXD Storage Pool (hddpool)
Loaded: loaded (/etc/systemd/system/lxd-hddpool.service; enabled; vendor preset: disabled)
Active: active (exited) since Wed 2020-04-08 03:43:53 MSK; 1min 37s ago
Process: 711 ExecStart=/sbin/losetup /dev/loop1 /mnt/work/lxd/hddpool.img (code=exited, status=0/SUCCESS)
Main PID: 711 (code=exited, status=0/SUCCESS)
апр 08 03:43:52 manjaro systemd[1]: Starting Losetup LXD Storage Pool (hddpool)...
апр 08 03:43:53 manjaro systemd[1]: Finished Losetup LXD Storage Pool (hddpool).
Mill-output nistgħu nivverifikaw li l-istat tas-servizz huwa attiva, minkejja l-fatt li l-eżekuzzjoni tal-iskript tagħna minn kmand wieħed tlestiet, l-għażla ppermettietna nagħmlu dan RemainAfterExit=true.
Peress li l-proċessi kollha tal-kontejners fil-fatt jaħdmu b'mod iżolat fuq is-sistema ospitanti bl-użu tal-qalba tagħha, biex jipproteġu aktar l-aċċess tal-proċessi tal-kontejners għas-sistema ospitanti, LXD joffri privileġġ tal-proċess, fejn:
Kontenituri Privileġġjati - dawn huma kontenituri li fihom proċessi b'UID u GID jikkorrispondu għall-istess sid bħal fuq is-sistema ospitanti. Pereżempju, proċess li jaħdem f'kontenitur b'UID ta' 0 għandu l-istess drittijiet ta' aċċess bħal proċess fuq is-sistema ospitanti b'UID ta' 0. Fi kliem ieħor, l-utent root fil-kontenitur għandu d-drittijiet kollha mhux biss f' il-kontenitur, iżda wkoll fuq is-sistema ospitanti jekk jista 'jmur barra l-ispazju tal-isem iżolat tal-kontenitur.
Kontenituri mhux privileġġjati - dawn huma kontenituri li fihom il-proċessi jappartjenu lis-sid tal-UID u tal-GID b'numru minn 0 sa 65535, iżda għas-sistema ospitanti s-sid huwa mgħotti bl-użu tal-bits SubUID u SubGID miżjuda, rispettivament. Pereżempju, utent b'UID=0 f'kontenitur se jidher fuq is-sistema ospitanti bħala SubUID + UID. Dan jipproteġi s-sistema ospitanti għaliex jekk xi proċess fil-kontenitur ikun kapaċi jaħrab l-ispazju tal-isem iżolat tiegħu, jista 'biss jikkomunika mas-sistema ospitanti bħala proċess b'UID/GID mhux magħruf u għoli ħafna.
B'mod awtomatiku, kontenituri maħluqa ġodda għandhom status mhux privileġġjat u għalhekk irridu niddefinixxu SubUID u SubGID.
Ejja noħolqu żewġ fajls ta 'konfigurazzjoni li fihom se nissettjaw il-maskra għal SubUID u SubGID, rispettivament:
Peress li qabel inizjalizzajna n-netwerk bl-użu tal-wizard tal-inizjalizzazzjoni lxd init u ħoloq apparat tan-netwerk lxdbr0, imbagħad f'din it-taqsima aħna sempliċiment se jiffamiljarizzaw ruħhom man-netwerking f'LXD u kif toħloq swiċċ virtwali (pont) billi tuża l-kmand tal-klijent.
Id-dijagramma li ġejja turi kif swiċċ (pont) jgħaqqad il-host u l-kontenituri f'netwerk:
Il-kontejners jistgħu jikkomunikaw permezz ta' netwerk ma' kontenituri oħra jew mal-host li fuqu jiġu moqdija dawn il-kontenituri. Biex tagħmel dan, għandek bżonn torbot il-karti tan-netwerk virtwali tal-kontenituri bi swiċċ virtwali. Aħna ser noħolqu swiċċ l-ewwel, u l-interfaces tan-netwerk tal-kontenitur se jkunu marbuta fil-kapitoli sussegwenti, wara li l-kontenitur innifsu jkun inħoloq.
Il-kmand li ġej joħloq swiċċ b'subnet 10.0.5.0/24 u l-indirizz IPv4 10.0.5.1/24, u jinkludi wkoll ipv4.nat sabiex il-kontenituri jkunu jistgħu jaċċessaw l-Internet permezz tal-host bl-użu tas-servizz NAT:
Kull kontenitur f'LXD għandu l-konfigurazzjoni tiegħu stess u jista' jestendiha b'konfigurazzjonijiet iddikjarati globalment imsejħa profili tal-konfigurazzjoni. L-applikazzjoni ta' profili ta' konfigurazzjoni għal kontenitur għandha mudell ta' kaskata, l-eżempju li ġej juri dan:
F'dan l-eżempju, inħolqu tliet profili fis-sistema LXD: default, hddpool и hostfs. It-tliet profili huma applikati għal kontenitur li għandu konfigurazzjoni lokali (żona griża). Profil default għandu apparat root li għandu parametru pool huwa daqs ssdpool, iżda grazzi għall-mudell ta 'applikazzjoni tal-konfigurazzjoni tal-kaskata, nistgħu napplikaw profil għall-kontenitur hddpool li għandu parametru pool se jegħleb l-istess parametru mill-profil default u l-kontenitur se jirċievi l-konfigurazzjoni tal-apparat root bil-parametru pool ugwali hddpool, u l-profil hostfs sempliċement iżid apparat ġdid mal-kontenitur.
Biex tara l-lista ta' profili ta' konfigurazzjoni disponibbli, uża l-kmand li ġej:
lxc profile list
+---------+---------+
| NAME | USED BY |
+---------+---------+
| default | 1 |
+---------+---------+
| hddroot | 0 |
+---------+---------+
| ssdroot | 1 |
+---------+---------+
Lista kompluta ta 'kmandi disponibbli biex taħdem bi profil tista' tinkiseb billi żżid iċ-ċavetta --help:
lxc profile --help
Description:
Manage profiles
Usage:
lxc profile [command]
Available Commands:
add Add profiles to instances
assign Assign sets of profiles to instances
copy Copy profiles
create Create profiles
delete Delete profiles
device Manage instance devices
edit Edit profile configurations as YAML
get Get values for profile configuration keys
list List profiles
remove Remove profiles from instances
rename Rename profiles
set Set profile configuration keys
show Show profile configurations
unset Unset profile configuration keys
Profil tal-konfigurazzjoni default default m'għandux konfigurazzjoni tal-kard tan-netwerk għall-kontenitur u l-kontenituri kollha maħluqa ġodda m'għandhomx netwerk, għalihom huwa meħtieġ li jinħolqu tagħmir tan-netwerk lokali (dedikat) bi kmand separat, iżda nistgħu noħolqu apparat tan-netwerk globali fil-konfigurazzjoni profil li se jinqasam bejn il-kontenituri kollha li jużaw dan il-profil. Dan il-mod, immedjatament wara l-kmand biex jinħoloq kontenitur ġdid, se jkollhom netwerk b'aċċess għan-netwerk. Fl-istess ħin, m'hemm l-ebda restrizzjonijiet; aħna dejjem nistgħu noħolqu apparat tan-netwerk lokali aktar tard jekk meħtieġ.
Il-kmand li ġej se jżid l-apparat mal-profil tal-konfigurazzjoni eth0 tip nic konness man-netwerk lxdbr0:
lxc profile device add default eth0 nic network=lxdbr0 name=eth0
Huwa importanti li wieħed jinnota li peress li fil-fatt żidna l-apparat mal-profil tal-konfigurazzjoni, jekk speċifikajna indirizz IP statiku fl-apparat, allura l-kontenituri kollha li se jużaw dan il-profil se jaqsmu l-istess indirizz IP. Jekk ikun hemm bżonn li jinħoloq kontenitur b'indirizz IP statiku allokat għall-kontenitur, allura għandek toħloq konfigurazzjoni ta 'apparat tan-netwerk fil-livell tal-kontenitur (konfigurazzjoni lokali) bil-parametru tal-indirizz IP, u mhux fil-livell tal-profil.
Ejja niċċekkjaw il-profil:
lxc profile show default
config: {}
description: Default LXD profile
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: /
pool: ssdpool
type: disk
name: default
used_by: []
F'dan il-profil nistgħu naraw li għall-kontenituri kollha maħluqa ġodda se jinħolqu żewġ apparati:
eth0 — Tip ta' apparat nic konness ma' swiċċ (pont tan-netwerk) lxdbr0
root — Tip ta' apparat disk li juża pool tal-ħażna ssdpool
Biex tuża maħluqa qabel Pool tal-Ħażna kontenituri, toħloq profil ta 'konfigurazzjoni ssdroot li fih se nżidu apparat bħal disk bil-punt tal-muntatura / (għerq) bl-użu maħluq qabel Pool tal-Ħażna - ssdpool:
Kontenituri huma maħluqa minn immaġini li huma distribuzzjonijiet immuntati apposta li m'għandhomx għadma Linux. Għalhekk, qabel ma tħaddem il-kontenitur, għandu jiġi skjerat minn din l-immaġni. Is-sors tal-immaġini huwa repożitorju lokali li fih l-immaġini jitniżżlu minn repożitorji esterni.
Biex tibda tuża l-kontenitur, trid iżżid immaġini mir-repożitorju globali għal dak lokali local:. Issa r-repożitorju lokali huwa vojt, il-kmand se jiżgura minn dan lxc image list. Jekk il-metodu list tispeċifikax repożitorju, allura r-repożitorju lokali se jintuża awtomatikament - local:
lxc image list local:
+-------+-------------+--------+-------------+--------------+------+------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE |
+-------+-------------+--------+-------------+--------------+------+------+
L-immaġini fir-repożitorju huma ġestiti bl-użu tal-metodi li ġejjin:
Team
Deskrizzjoni
immaġni lxc alias
Immaniġġja psewdonimi tal-immaġni
immaġni lxc kopja
Ikkopja immaġini bejn is-servers
Minbarra l-mod interattiv, LXD jappoġġja wkoll mod ta 'installazzjoni ta' konfigurazzjoni mhux interattiva, dan huwa meta l-konfigurazzjoni hija speċifikata fil-forma ta 'fajl YAML, format speċjali li jippermettilek tinstalla l-konfigurazzjoni kollha f'daqqa, billi tevita l-eżekuzzjoni. ta 'ħafna kmandi interattivi li ġew diskussi hawn fuq f'dan l-artikolu, inkluż il-konfigurazzjoni tan-netwerk, il-ħolqien ta' profili ta 'konfigurazzjoni, eċċ. Aħna mhux se nkopru din il-qasam hawn, tista 'tiċċekkjaha waħdek. fid-dokumentazzjoni.
Kmand interattiv li jmiss lxc config li aħna se nħarsu lejn jippermettilek li tissettja l-konfigurazzjoni. Pereżempju, biex niżguraw li l-immaġini mniżżla fir-repożitorju lokali ma jiġux aġġornati awtomatikament mir-repożitorji globali, nistgħu nippermettu din l-imġieba bil-kmand li ġej:
Biex toħloq kontenitur uża l-kmand lxc init li lilhom jiġu mgħoddija l-valuri репозиторий:образ u mbagħad l-ID mixtieqa għall-kontenitur. Ir-repożitorju jista' jiġi speċifikat bħala lokali local: hekk hija kwalunkwe waħda globali. Jekk ir-repożitorju ma jkunx speċifikat, allura b'mod awtomatiku r-repożitorju lokali jintuża biex tfittex l-immaġni. Jekk l-immaġni hija speċifikata mir-repożitorju globali, allura l-immaġni l-ewwel titniżżel fir-repożitorju lokali u mbagħad tintuża biex jinħoloq il-kontenitur.
Ejja nħaddmu l-kmand li ġej biex noħolqu l-ewwel kontenitur tagħna:
lxc init alpine3 alp --storage=hddpool --profile=default --profile=hddroot
Ejja nħarsu lejn iċ-ċwievet tal-kmand li nużaw hawn fl-ordni:
alpine3 — Psewdonimu (alias) huwa speċifikat għall-immaġni li kienet imtella' qabel fir-repożitorju lokali. Jekk l-alias ma nħoloqx għal din l-immaġni, allura tista 'dejjem tirreferi għall-immaġni permezz tagħha Marki tas-swaba li tidher fit-tabella.
alp — Issettja l-identifikatur għall-kontenitur
--storage — Din iċ-ċavetta tindika f'liema Pool tal-Ħażna se jinħoloq kontenitur
--profile — Dawn iċ-ċwievet kaskata japplikaw konfigurazzjoni minn profili ta 'konfigurazzjoni maħluqa qabel għall-kontenitur
Inniedu l-kontenitur, li jibda jniedi s-sistema init tad-distribuzzjoni:
lxc start alp
Tista 'wkoll tuża l-kmand lxc launch li jippermettilek tgħaqqad timijiet lxc init и lxc start f'operazzjoni waħda.
Iċċekkja l-istat tal-kontenitur:
lxc list -c ns46tb
+------+---------+------------------+------+-----------+--------------+
| NAME | STATE | IPV4 | IPV6 | TYPE | STORAGE POOL |
+------+---------+------------------+------+-----------+--------------+
| alp | RUNNING | 10.0.5.46 (eth0) | | CONTAINER | hddpool |
+------+---------+------------------+------+-----------+--------------+
Fit-taqsima profiles nistgħu niżguraw li dan il-kontenitur juża żewġ profili ta 'konfigurazzjoni - default и hddroot. Fit-taqsima devices nistgħu biss niskopru apparat wieħed peress li l-apparat tan-netwerk inħoloq fil-livell tal-profil default. Sabiex tara l-apparati kollha użati mill-kontenitur għandek bżonn iżżid ċavetta --expanded:
Jekk nippruvaw nissettjaw indirizz IP għal apparat tan-netwerk eth0 tim lxc config device set alp maħsuba għall-konfigurazzjoni tal-kontenitur, allura aħna se nirċievu żball li jirrapporta li l-apparat ma jeżistix minħabba li l-apparat eth0 li huwa użat mill-kontenitur jappartjeni għall-profil default:
lxc config device set alp eth0 ipv4.address 10.0.5.5
Error: The device doesn't exist
Nistgħu ovvjament nissettjaw indirizz IP statiku għal eth0 apparati fil-profil, iżda se jkun l-istess għall-kontenituri kollha li se jużaw dan il-profil. Għalhekk, ejja nżidu apparat iddedikat għall-kontenitur:
lxc config device add alp eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5
Imbagħad għandek bżonn terġa 'tibda l-kontenitur:
lxc restart alp
Jekk inħarsu lejn il-konfigurazzjoni tal-kontenitur issa, m'għandniex bżonn nużaw l-għażla --expanded biex tara l-apparat tan-netwerk eth0, peress li ħloqnieha fil-livell tal-kontenitur u kaskata fuq l-istess apparat mill-profil default:
Biex tesegwixxi kmandi f'kontenitur direttament, billi tevita l-konnessjonijiet tan-netwerk, uża l-kmand lxc exec li tesegwixxi kmandi fil-kontenitur mingħajr ma tniedi l-qoxra tas-sistema. Jekk għandek bżonn tesegwixxi kmand f'qoxra bl-użu ta 'mudelli ta' qoxra bħal varjabbli, direzzjoni mill-ġdid tal-fajls (pajp), eċċ., allura għandek bżonn tniedi espliċitament il-qoxra u tgħaddi l-kmand bħala ċavetta, pereżempju:
lxc exec alp -- /bin/sh -c "echo $HOME"
Il-kmand uża karattru ta 'ħarba speċjali għal karattru speċjali $ sabiex il-varjabbli $HOME ma ġiex interpretat fuq il-magna ospitanti, iżda ġie interpretat biss ġewwa l-kontenitur.
Huwa wkoll possibbli li tibda l-modalità tal-qoxra interattiva, u mbagħad ittemm is-sessjoni billi tesegwixxi hotkey CTRL+D:
F'LXD, tista 'timmaniġġja r-riżorsi tal-kontejners billi tuża sett speċjali ta' konfigurazzjoni. Tista 'tinstab lista kompluta ta' parametri tal-konfigurazzjoni tal-kontenitur fid-dokumentazzjoni.
limit.cpu - jorbot kontenitur ma' wieħed jew aktar CPU cores
limits.cpu.allowance - jimmaniġġja jew il-kwoti tal-iskedar tas-CFS meta jkun għadda l-limitu ta’ żmien, jew il-mekkaniżmu universali tal-qsim tar-riżorsi tas-CPU meta l-perċentwal ikun għadda
limits.cpu.priority - prijorità tal-iskedar meta istanzi multipli li jaqsmu sett ta' proċessuri jiġu assenjati l-istess perċentwal ta' proċessuri
Minbarra restrizzjonijiet bħal dawn limits.read, limits.write nistgħu wkoll nillimitaw l-ammont ta 'spazju fuq disk ikkunsmat mill-kontenitur (jaħdem biss ma' ZFS jew BTRFS):
lxc config device set alp root size=2GB
Wara l-installazzjoni, fil-parametru devices.root.size Nistgħu nivverifikaw il-limitu stabbilit:
lxc config show alp
...
devices:
root:
path: /
pool: hddpool
size: 2GB
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""
Biex tara l-kwoti tad-disk użati nistgħu niksbu mill-kmand lxc info:
lxc info alp
...
Resources:
Processes: 5
Disk usage:
root: 1.05GB
CPU usage:
CPU usage (in seconds): 1
Memory usage:
Memory (current): 5.46MB
Network usage:
eth0:
Bytes received: 802B
Bytes sent: 1.59kB
Packets received: 4
Packets sent: 14
lo:
Bytes received: 0B
Bytes sent: 0B
Packets received: 0
Packets sent: 0
Minkejja l-fatt li waqqafna limitu għall-apparat għerq tal-kontenitur għal 2GB, utilitajiet tas-sistema bħal df mhux se tara din ir-restrizzjoni. Biex tagħmel dan, aħna se nagħmlu test żgħir u niskopru kif taħdem.
Ejja noħolqu 2 kontenituri identiċi ġodda fl-istess Pool tal-Ħażna (hddpool):
lxc exec alp1 -- ls -lh
total 1000M
-rw-r--r-- 1 root root 1000.0M Mar 27 10:16 file.img
Jekk inħarsu fit-tieni kontenitur, iċċekkja l-eżistenza ta 'fajl fl-istess post, allura dan il-fajl mhux se jkun hemm, li huwa mistenni, peress li l-kontenituri huma maħluqa minnhom stess Volum tal-Ħażna fl-istess Pool tal-Ħażna:
lxc exec alp2 -- ls -lh
total 0
Imma ejja nqabblu l-valuri li tipproduċi df fuq kontenitur wieħed u ieħor:
lxc exec alp1 -- df -hT
Filesystem Type Size Used Available Use% Mounted on
/dev/loop1 btrfs 9.3G 1016.4M 7.8G 11% /
...
lxc exec alp2 -- df -hT
Filesystem Type Size Used Available Use% Mounted on
/dev/loop1 btrfs 9.3G 1016.4M 7.8G 11% /
...
Apparat /dev/loop1 immuntat kif il-partizzjoni tal-għeruq hija Pool tal-Ħażna li jużaw dawn il-kontenituri, u għalhekk jaqsmu l-volum tiegħu bejn tnejn.
LXD għandu l-abbiltà li joħloq snapshots u jirrestawra l-istat tal-kontenitur minnhom.
Biex toħloq snapshot, mexxi l-kmand li ġej:
lxc snapshot alp snapshot1
It-tim lxc snapshot ebda ċavetta disponibbli list, għalhekk, biex tara l-lista ta 'snapshots għandek bżonn tuża l-kmand li juri informazzjoni ġenerali dwar il-kontenitur:
lxc info alp
...
...
Snapshots:
snapshot1 (taken at 2020/04/08 18:18 UTC) (stateless)
Tista' tirrestawra kontenitur minn snapshot billi tuża l-kmand lxc restore tispeċifika l-kontenitur li għalih se jsir ir-restawr u l-psewdonomi tal-istampa:
lxc restore alp snapshot1
Il-kmand li ġej jintuża biex tħassar snapshot. Jekk jogħġbok innota li s-sintassi tal-kmand mhijiex simili għall-oħrajn kollha; hawnhekk trid tispeċifika slash wara l-isem tal-kontenitur. Jekk titħalla barra s-slash, allura l-kmand biex titħassar snapshot jiġi interpretat bħala kmand biex jitħassar kontenitur!
lxc delete alp/snapshot1
Fl-eżempju t'hawn fuq, ħares lejn l-hekk imsejħa snapshots mingħajr stat. LXD għandu wkoll tip ieħor ta 'snapshot - stateful, li jiffranka l-istat attwali tal-proċessi kollha fil-kontenitur. Hemm numru ta 'karatteristiċi interessanti u utli assoċjati ma' snapshots stateful.