
LXD â on jĂ€rgmise pĂ”lvkonna konteinerihaldur, nii vĂ€idetakse . See pakub kasutajaliidest, mis sarnaneb virtuaalmasinatele, kuid kasutab selle asemel Linuxi konteinerite.
LXD tuum â on privileege omav deemon (teenus, mis töötab root Ă”igustes), mis pakub REST API-d kohaliku unix soketi kaudu ja samuti ĂŒle vĂ”rgu, kui on seadistatud vastav konfiguratsioon. Kliendid, nagu LXD-ga kaasas olev kĂ€sureatöötlija, saadavad pĂ€ringud selle REST API kaudu. See tĂ€hendab, et olenemata sellest, kas pöördute kohaliku hosti vĂ”i kaugseadmise poole, toimib kĂ”ik ĂŒhtemoodi.
Selles artiklis ei keskendu me LXD kontseptsioonidele ega tutvusta kĂ”iki dokumentatsioonis kirjas olevaid vĂ”imalusi, sealhulgas hiljutist LXD versioonide rakendust, mis toetab QEMU virtuaalmasinaid koos konteineritega. Selle asemel tutvume ainult konteinerite haldamise pĂ”hivĂ”imalustega â seadistame salvestuskausid, vĂ”rgu, kĂ€ivitame konteineri, rakendame ressursipiiranguid ja uurime, kuidas kasutada lĂ”ike, et saaksite LXD-st pĂ”hiteadmised ja kasutaksite konteinerite tehnoloogiat Linuxis.
Kogu teabe saamiseks tuleks konsulteerida ametliku allikaga:
Navigeerimine
LXD installatsioon
LXD installatsioon Ubuntu distributsioonides
Ubuntu 19.10 jaotises on pakett lxd tÔlgitud :
apt search lxd
lxd/eoan 1:0.7 all
Ălemineku pakett - lxd -> snap (lxd)See tĂ€hendab, et installitakse kohe kaks paketti, ĂŒks sĂŒsteemne ja teine snap-paketina. Kahe paketi installimine sĂŒsteemis vĂ”ib tekitada mĂ”ned probleemid, kus sĂŒsteemne pakett vĂ”ib muutuda orphan'iks pĂ€rast snap-paketi eemaldamist snap-pakettide halduriga.
Paketti lxd snap-hoidlas vÔib leida jÀrgmise kÀsuga:
snap find lxd
Nimi Versioon KokkuvÔte
lxd 3.21 SĂŒsteemi konteinerihaldur ja API
lxd-demo-server 0+git.6d54658 VeebipÔhised tarkvarademo seansid LXD kasutades
nova ocata OpenStack Compute Service (nova)
nova-hypervisor ocata OpenStack Compute Service - KVM hĂŒperviisor (nova)
distrobuilder 1.0 Pildi koostaja LXC ja LXD jaoks
fabrica 0.1 Koosta snaps lihtsalt, suunates veebivormi...
satellite 0.1.2 TÀiustatud skaleeritav avatud lÀhtekoodiga intelligentsusplatvormKÀivita kÀsk loend on vÔimalik veenduda, et pakett lxd pole veel paigaldatud:
snap list
Nimi Versioon Rev JĂ€lgimine Avaldaja MĂ€rkused
core 16-2.43.3 8689 stable canonicalâ coreHoolimata sellest, et LXD on snap-pakett, tuleb seda paigaldada sĂŒsteemi paketina lxd, mis loob sĂŒsteemis vastava grupi, vajalikud utiliidid /usr/bin Kui kaua aega kulub vĂ€ljastamiseks?
sudo apt update
sudo apt install lxdVeendume, et pakett on paigaldatud snappaketina:
snap list
Nimi Versioon Rev JĂ€lgimine Avaldaja MĂ€rkused
core 16-2.43.3 8689 stable canonicalâ core
lxd 3.21 13474 stable/⊠canonicalâ -LXD installatsioon Arch Linux distributsioonides
LXD paketi paigaldamiseks sĂŒsteemis tuleb kĂ€ivitada jĂ€rgmised kĂ€sud, esimene â ajakohastab sĂŒsteemis kĂ€ttesaadavate paketide nimekirja, teine â installib paketi:
sudo pacman -Syyu && sudo pacman -S lxdPĂ€rast paketi paigaldamist, et hallata LXD tavakasutajana, tuleb see lisada sĂŒsteemi gruppi lxd:
sudo usermod -a -G lxd user1Kontrollime, et kasutaja user1 on lisatud rĂŒhma lxd:
id -Gn user1
user1 adm dialout cdrom floppy sudo audio dip video plugdev netdev lxdKui grupp lxd ei ole nimekirjas nÀhtav, siis tuleb kasutaja sessioon uuesti aktiveerida. Selleks tuleb vÀlja logida ja sisse logida selle sama kasutaja alla.
Aktiveerime systemd LXD teenuse kĂ€ivitamise kĂ€ivitamiseks sĂŒsteemi alguses:
sudo systemctl enable lxdKĂ€ivitame teenuse:
sudo systemctl start lxdKontrollime teenuse staatust:
sudo systemctl status lxdLXD salvestus (Storage)
Enne initsialiseerimist peame aru saama, kuidas LXD-s andmete salvestamine on loogiliselt korraldatud.
Salvestus (Salvestus) ĂŒhe vĂ”i mitme Storage Pool mis kasutab ĂŒhte toetatud failisĂŒsteemidest nagu ZFS, BTRFS, LVM vĂ”i tavalised kataloogid. Iga Storage Pool jagatakse mahtudeks (Storage Volume) sisaldavad pilte, konteinerite vĂ”i andmeid teiste eesmĂ€rkide jaoks.
- Pildid â on spetsiaalselt koostatud distributsioonid ilma Linuxi tuumata ja need on saadaval vĂ€lisest allikast
- Konteinerid â on ĂŒles seatud distributsioonid piltidelt, mis on töövalmis
- Sulgurid â on konteinerite oleku jÀÀdvustamised, kuhu saab tagasi pöörduda

Salvestuse haldamiseks LXD-s kasutatakse kĂ€sku lxc storage mille kohta saab abi kĂŒsida, kasutades mĂ€rki â lxc storage --help
JÀrgmine kÀsk kuvab loendi kÔigist Storage Pool LXD salvestuses:
lxc storage list
+---------+-------------+--------+--------------------------------+---------+
| NIMI | KIRJELDUS | JUHIMI | ALLIKAS | KASUTAB |
+---------+-------------+--------+--------------------------------+---------+
| hddpool | | btrfs | /dev/loop1 | 2 |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool | | btrfs | /var/lib/lxd/disks/ssdpool.img | 4 |
+---------+-------------+--------+--------------------------------+---------+KÔigi vaatamiseks Storage Volume valitud Storage Pool teenib kÀsk lxc storage volume list:
lxc storage volume list hddpool
+-------+----------------------------------+-------------+---------+
| TĂŒĂŒp | NIMI | KIRJELDUS | KASUTAB |
+-------+----------------------------------+-------------+---------+
| pilt | ebd565585223487526ddb3607f515... | | 1 |
+-------+----------------------------------+-------------+---------+lxc storage volume list ssdpool
+-----------+----------------------------------+-------------+---------+
| TĂĂP | NIMI | KIRJELDUS | KASUTAB |
+-----------+----------------------------------+-------------+---------+
| konteiner | alp3 | | 1 |
+-----------+----------------------------------+-------------+---------+
| konteiner | jupyter | | 1 |
+-----------+----------------------------------+-------------+---------+
| pilt | ebd565585223487526ddb3607f515... | | 1 |
+-----------+----------------------------------+-------------+---------+Samuti, kui Storage Pool kui loodakse, valiti failisĂŒsteem BTRFS, siis saada nimekiri Storage Volume vĂ”i alamsuublad BTRFS-i tĂ”lgenduses saab seda teha selle failisĂŒsteemi tööriistade abil:
sudo btrfs subvolume list -p /var/lib/lxd/storage-pools/hddpool
ID 257 gen 818 parent 5 top level 5 path images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3sudo 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/alp3LXD initsialiseerimine
Enne konteinerite loomist ja kasutamist tuleb lĂ€bi viia ĂŒldine LXD initsialiseerimine, mis loob ja seadistab vĂ”rgu ning ka salvestuse. Seda saab teha kĂ€sitsi tavaskeemide abil, mis on saadaval kĂ€skude loendis lxc --help vĂ”i kasutades initsialiseerimise wizard'i lxd init vastates mĂ”nele kĂŒsimusele.
FailisĂŒsteemi valimine salvestuskausi jaoks
Initsialiseerimise ajal kĂŒsib LXD mitmeid kĂŒsimusi, sealhulgas failisĂŒsteemi tĂŒĂŒbi mÀÀramiseks vaikimisi Storage Pool. Vaikimisi valitakse selleks failisĂŒsteem BTRFS. PĂ€rast loomist ei ole vĂ”imalik vahetada teise failisĂŒsteemi peale. FailisĂŒsteemi valimiseks pakutakse :
Funktsioon
Kaust
Btrfs
LVM
ZFS
CEPH
Optimeeritud pildisalvestus
ei
jah
jah
jah
jah
Optimeeritud instantsi loomine
ei
jah
jah
jah
jah
Optimeeritud sisu loomine
ei
jah
jah
jah
jah
Optimeeritud pildiedastus
ei
jah
ei
jah
jah
Optimeeritud instantsi ĂŒleviimine
ei
jah
ei
jah
jah
Koopia kirjutamise ajal
ei
jah
jah
jah
jah
Plokk pÔhine
ei
ei
jah
ei
jah
Kohene kloonimine
ei
jah
jah
jah
jah
Salvestusjuht laiendatav konteineris
jah
jah
ei
ei
ei
Taasta vanematest sisudest (mitte uuematest)
jah
jah
jah
ei
jah
Salvestus kvoodid
jah(*)
jah
jah
jah
ei
VÔrgu ja salvestuskausi initsialiseerimine koos seadistamisviisardiga
JĂ€rgmine kĂ€sk, mida arutame, vĂ”imaldab seadistada pĂ”hikomponente LXD, vastates lihtsatele kĂŒsimustele algatamisviisardi abil.
KĂ€ivita kĂ€sk lxc init ja sisesta vastused kĂŒsimustele kahepunkti jĂ€rel, nagu nĂ€idatud allolevas nĂ€ites, vĂ”i muuda neid vastavalt oma tingimustele:
lxd init
Kas soovite kasutada LXD klustreid? (jah/ei) [vaikimisi=ei]:
Kas soovite seadistada uut salvestuspaika? (jah/ei) [vaikimisi=jah]:
Uue salvestuspaiga nimi [vaikimisi=vaikimisi]: ssdpool
Millist salvestus taustteenust soovite kasutada (lvm, btrfs, dir) [vaikimisi=btrfs]:
Kas soovite luua uut BTRFS vÀljundit? (jah/ei) [vaikimisi=jah]:
Kas soovite kasutada olemasolevat plokk-seadet? (jah/ei) [vaikimisi=ei]:
Uue silmuse seadme suurus GB-des (1GB minimaalne) [vaikimisi=15GB]: 10GB
Kas soovite ĂŒhenduda MAAS serveriga? (jah/ei) [vaikimisi=ei]:
Kas soovite luua uut kohalikku vÔrgu silda? (jah/ei) [vaikimisi=jah]:
Kuidas peaks uut silda kutsuma? [vaikimisi=lxdbr0]:
Millist IPv4 aadressi tuleks kasutada? (CIDR alamsubneti mĂ€rkistus, "auto" vĂ”i "ĂŒkski") [vaikimisi=auto]: 10.0.5.1/24
Kas soovite, et LXD NAT IPv4 liiklust teie sillal? [vaikimisi=jah]:
Millist IPv6 aadressi tuleks kasutada? (CIDR alamsubneti mĂ€rkistus, "auto" vĂ”i "ĂŒkski") [vaikimisi=auto]: ĂŒkski
Kas soovite, et LXD oleks kergesti kergesti ligipÀÀsetav? (jah/ei) [vaikimisi=ei]:
Kas soovite, et vanad vahemÀllu salvestatud pildid vÀrskendatakse automaatselt? (jah/ei) [vaikimisi=jah] ei
Kas soovite, et YAML "lxd init" eelvalik trĂŒkitaks? (jah/ei) [vaikimisi=ei]: Lisasaalduse loomine
Eelmises sammus lĂ”ime Storage Pool millele andsime nime ssdpool ja mille fail asub minu sĂŒsteemis aadressil /var/lib/lxd/disks/ssdpool.img. See failisĂŒsteemi aadress vastab minu PC fĂŒĂŒsilisele SSD-kettale.
JĂ€rgmiste sammudega, et laiendada arusaamist rollist, mida Storage Pool salvestuses mĂ€ngib, loome teise Storage Pool mis asub fĂŒĂŒsiliselt teist tĂŒĂŒpi kettal, HDD-l. Probleem on selles, et LXD ei luba luua Storage Pool aadressist vĂ€lja /var/lib/lxd/disks/ ja isegi sĂŒmboolsed lingid ei tööta, . Me saame selle piirangu ĂŒletada, kui algatame/formatime Storage Pool mÀÀrates vÀÀrtuse plokkseadmeks, mitte loopback-faili teeks, mÀÀrates selle vĂ”tmes source.
Nii et enne loomist Storage Pool tuleb mÀÀrata loopback-fail vÔi olemasolev partitsioon, mida see kasutab. Selleks loome ja kasutame faili, mille suurus piirame 10 GB-ni:
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/sMĂ€setame loopback-faili vabasse loopback-seadmisse:
sudo losetup --find --show /mnt/work/lxd/hddpool.img
/dev/loop1TĂ€nu vĂ”tmele --show KĂ€sk tagastab ekraanile seadme nime, kuhu meie loopback-fail on ĂŒhendatud. Vajadusel saame ekraanile tuua nimekirja kĂ”ikidest sellest tĂŒĂŒbist hĂ”ivatud seadmetest, et veenduda meie tegevuse korrektsuses:
losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop1 0 0 0 0 /mnt/work/lxd/hddpool.img 0 512
/dev/loop0 0 0 1 0 /var/lib/lxd/disks/ssdpool.img 0 512Nimekirjast vĂ”ib nĂ€ha, et seadmes /dev/loop1 on ĂŒhendatud loopback-fail /mnt/work/lxd/hddpool.img, ja seadmes /dev/loop0 on ĂŒhendatud loopback-fail /var/lib/lxd/disks/ssdpool.img mis vastab vaikeseade Storage Pool.
JĂ€rgmine kĂ€sk loob uue Storage Pool LXD-s just ette valmistatud loopback-faili alusel. LXD vormindab loopback-faili /mnt/work/lxd/hddpool.img seadmes /dev/loop1 BTRFS failisĂŒsteemiks:
lxc storage create hddpool btrfs size=10GB source=/dev/loop1Kuvame ekraanile nimekirja kÔigist Storage Pool :
lxc storage list
+---------+-------------+--------+--------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool | | btrfs | /dev/loop1 | 0 |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool | | btrfs | /var/lib/lxd/disks/ssdpool.img | 0 |
+---------+-------------+--------+--------------------------------+---------+Salvestuskausi suuruse suurendamine
PĂ€rast loomist Storage Pool, vajadusel saab seda laiendada. Selle jaoks Storage Pool BTRFS-failisĂŒsteemil pĂ”hinevalt tĂ€itke jĂ€rgmised kĂ€sud:
sudo truncate -s +5G /mnt/work/lxd/hddpool.img
sudo losetup -c /dev/loop1
sudo btrfs filesystem resize max /var/lib/lxd/storage-pools/hddpoolLoopback-faili automaatne sisestamine loopback-seadme pesa
Meil on ĂŒks vĂ€ike probleem. Kui host-sĂŒsteem taaskĂ€ivitub, fail /mnt/work/lxd/hddpool.img "kaob" seadmest /dev/loop1 ja LXD teenus kukub kĂ€ivitamisel, kuna ei nĂ€e seda seadmes. Selle probleemi lahendamiseks tuleb luua sĂŒsteemiteenus, mis ĂŒhendab selle faili seadmega /dev/loop1 host-sĂŒsteemi kĂ€ivitamisel.
Loome unit fail tĂŒĂŒpi teenus ĂŒhes /etc/systemd/system/ SystemD initsialiseerimissĂŒsteemi jaoks:
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
EOFAktiveerime teenuse:
sudo systemctl enable lxd-hddpool
Loodi sĂŒmbolenliling /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service â /etc/systemd/system/lxd-hddpool.service.PĂ€rast host-sĂŒsteemi taaskĂ€ivitamist kontrollime teenuse olekut:
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)
apr 08 03:43:52 manjaro systemd[1]: Starting Losetup LXD Storage Pool (hddpool)...
apr 08 03:43:53 manjaro systemd[1]: Finished Losetup LXD Storage Pool (hddpool).VĂ€ljendist nĂ€eme, et teenuse olek on active, kuigi meie skripti tĂ€itmine ĂŒhe kĂ€suga lĂ”petati, lubas see meil teha valik RemainAfterExit=true.
Turvalisus. Konteinerite Ôigused
Kuna kĂ”ik konteineri protsessid töötavad tegelikult isoleeritult hostisĂŒsteemis, kasutades selle sĂŒdamikku, pakub LXD teenuse protsesside tĂ€iendavat kaitset juurdepÀÀsu vastu, kus:
Privileegitud konteinerid â need on konteinerid, kus protsesside UID ja GID vastavad samale omanikule nagu host-sĂŒsteemis. NĂ€iteks konteineris, kus protsessi UID on 0, on kĂ”ik need Ă”igused samad nagu host-sĂŒsteemis UID-ga 0 oleva protsessi puhul. TeisisĂ”nu, konteineri root-kasutajal on kĂ”ik Ă”igused mitte ainult konteineris, vaid ka host-sĂŒsteemil, kui ta suudab vĂ€ljuda konteinerite isoleeritud nimespacerist.
Privileegitud konteinerid â need on konteinerid, kus protsessid kuuluvad omanikule, kellel on UID ja GID vahemikus 0 kuni 65535, kuid host-sĂŒsteemil omanik maskeeritakse SubUID ja SubGID vastava bitiga. NĂ€iteks konteineris UID=0 kasutaja on host-sĂŒsteemis tuvastatud kui
SubUID + UID. See kaitseb host-sĂŒsteemi, kuna kui mĂ”ni protsess konteineris suudab vĂ€ljuda oma isoleeritud nimespacerist, saab see host-sĂŒsteemiga suhelda ainult protsessina, millel on tundmatu, vĂ€ga kĂ”rge UID/GID.
Vaikimisi on uued loodud konteinerid privileegita ja seetÔttu peame mÀÀratlema SubUID ja SubGID.
Loome kaks konfiguratsioonifaili, kus mÀÀrame vastavalt SubUID ja SubGID maski:
sudo touch /etc{/subuid,/subgid}
sudo usermod --add-subuids 1000000-1065535 root
sudo usermod --add-subgids 1000000-1065535 rootMuutuste rakendamiseks peab LXD teenus olema taaskÀivitatud:
sudo systemctl restart lxdVirtuaalse vĂ”rgu lĂŒliti loomine
Kuna me oleme varem vĂ”rgu algatamiseks kasutanud seadistusviisi lxd init ja loonud vĂ”rgu seadme lxdbr0, siis selles jaotises tutvume lihtsalt LXD vĂ”rgu ja selle loomisega, virtuaalse lĂŒliti (sild, bridge) loomisega kliendi kĂ€su abil.
JĂ€rgmine skeem nĂ€itab, kuidas lĂŒliti (sild, bridge) ĂŒhendab hosti ja konteinerid vĂ”rgus:

Konteinerid saavad suhtlemiseks kasutada vĂ”rku teiste konteineritega vĂ”i hostiga, millel need konteinerid on. Selleks on vajalik siduda konteinerite virtuaalsed vĂ”rgukaardid virtuaalse lĂŒlitiga. Esiteks loome lĂŒliti, seejĂ€rel sideme konteineri vĂ”rguliidesed jĂ€rgnevates peatĂŒkkides pĂ€rast konteineri loomist.
JĂ€rgmine kĂ€sk loob lĂŒliti koos alamvĂ”rguga 10.0.5.0/24 ja IPv4 aadressiga 10.0.5.1/24, ning lubab ipv4.nat et etten, et konteinerid saaksid internetiĂŒhendust hosti kaudu NAT-teenuse abil:
lxc network create lxdbr0 ipv4.address=10.0.5.1/24 ipv4.nat=true ipv6.address=noneKontrollime LXD saadaval olevate vÔrguseadmete nimekirja:
lxc network list
+--------+----------+---------+-------------+---------+
| NAME | TYPE | MANAGED | DESCRIPTION | USED BY |
+--------+----------+---------+-------------+---------+
| eno1 | physical | NO | | 0 |
+--------+----------+---------+-------------+---------+
| lxdbr0 | bridge | YES | | 0 |
+--------+----------+---------+-------------+---------+Samuti saab vĂ”rgu seadme loomise kinnitada Linuxi distributsiooni hyvelli töötava tööriistaga â ip link vĂ”i ip addr:
ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether bc:ee:7b:5a:6b:44 brd ff:ff:ff:ff:ff:ff
altname enp0s25
inet6 fe80::9571:11f3:6e0c:c07b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: lxdbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether c2:38:90:df:cb:59 brd ff:ff:ff:ff:ff:ff
inet 10.0.5.1/24 scope global lxdbr0
valid_lft forever preferred_lft forever
inet6 fe80::c038:90ff:fedf:cb59/64 scope link
valid_lft forever preferred_lft forever
5: veth3ddab174@if4: mtu 1500 qdisc noqueue master lxdbr0 state UP group default qlen 1000
link/ether ca:c3:5c:1d:22:26 brd ff:ff:ff:ff:ff:ff link-netnsid 0Konfiguratsiooniprofiil
Iga konteiner LXD-s on oma konfiguratsioon ja seda saab laiendada globaalsete dekreetide abil, mida nimetatakse konfiguratsiooniprofiilideks. Konfiguratsiooniprofiilide rakendamine konteinerile jÀrgib kaskaadmudelit, jÀrgmine nÀide illustreerib seda:

Selles nÀites on LXD-s loodud kolm profiili: default, hddpool ja hostfs. KÔik kolm profiili on rakendatud konteinerile, millel on lokaalne konfiguratsioon (hall ala). Profiil default on seadmel root millest on parameeter pool on vÀÀrt ssdpool, kuid thanks to the cascading configuration application model, we can apply a profile for the container hddpool millest on parameeter pool katab selle sama parameetri profiilist default ja konteiner saab seadme konfiguratsiooni root argumenti pool vÔrdne hddpool, ja profiil hostfs lisab lihtsalt uue seadme konteinerisse.
Saadaval konfiguratsiooniprofiilide loendi nÀgemiseks kasutage jÀrgmist kÀsku:
lxc profile list
+---------+---------+
| NAME | USED BY |
+---------+---------+
| default | 1 |
+---------+---------+
| hddroot | 0 |
+---------+---------+
| ssdroot | 1 |
+---------+---------+TÀieliku loendi kÀskudest, millega töödeldakse profiili, saab kÀtte, lisades vÔtme --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 keysProfiili redigeerimine
Vaikimisi konfiguratsiooni profiil default ei sisalda konteineri vĂ”rgukaardi konfiguratsiooni ja kĂ”ik uued loodud konteinerid ei omada vĂ”rku. Neile tuleb kohalike (pĂŒhendatud) vĂ”rgu seadmete loomist eraldi kĂ€sklusega, kuid me saame profiili seadistuses luua globaalset vĂ”rgu seadet, mis jagatakse kĂ”igi selle profiili kasutavate konteinerite vahel. Nii et kohe pĂ€rast uue konteineri loomise kĂ€sku on neil vĂ”rguĂŒhendus olemas. Samuti ei ole mingeid piiranguid ning alati vĂ”ime hiljem luua kohaliku vĂ”rgu seadme, kui see osutub vajalikuks.
JĂ€rgmine kĂ€sk lisab seadme profiili konfiguratsiooni eth0 tĂŒĂŒp nic vĂ”rguga liitmine lxdbr0:
lxc profile device add default eth0 nic network=lxdbr0 name=eth0Oluline on mÀrkida, et kuna me tegime tegelikult seadme profiili konfigureerimise, siis kui me nÀitaksime seadmes staatilist IP-aadressi, jagaksid kÔik nende profiilide rakendavad konteinerid sama IP-aadressi. Kui on vaja luua konteiner, millel on eraldi staatiline IP-aadress, siis tuleks luua konteineri taseme seadme konfiguratsioon (kohalik konfiguratsioon) IP-aadressi parameetriga, mitte profili tasemel.
Kontrollime profiili:
lxc profile show default
config: {}
description: Vaikimisi LXD profiil
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: /
pool: ssdpool
type: disk
name: default
used_by: []Selles profiilis nÀeme, et kÔikidele uuslohustatud konteineritele luuakse kaks seadet (devices):
eth0â Seade tĂŒĂŒpinicĂŒhendatud lĂŒlitiga (vĂ”rgusild)lxdbr0rootâ Seade tĂŒĂŒpidiskmis kasutab salvestuse elementissdpool
Uute profiilide loomine
Kuna eelnevalt loodud Storage Pool konteinerid loome konfiguratsiooniprofiili ssdroot millesse lisame seadme tĂŒĂŒpi disk mount-punktiga / (root), kasutades eelnevalt loodud Storage Pool â ssdpool:
lxc profile create ssdroot
lxc profile device add ssdroot root disk path=/ pool=ssdpoolSamasuguseid seadmeid loome tĂŒĂŒpi disk, kuid sel juhul kasutab Storage Pool â hddpool:
lxc profile create hddroot
lxc profile device add hddroot root disk path=/ pool=hddpoolKontrollime konfiguratsiooniprofiile:
lxc profile show ssdroot
config: {}
description: ""
devices:
root:
path: /
pool: ssdpool
type: disk
name: ssdroot
used_by: []lxc profile show hddroot
config: {}
description: ""
devices:
root:
path: /
pool: hddpool
type: disk
name: hddroot
used_by: []Piltide hoidla
Konteinerid luuakse piltidest, mis on spetsiaalselt kokku pandud jaotustest, millel ei ole Linuxi tuuma. SeetÔttu peab enne konteineri kÀivitamist see olema selle pildi pÔhjal loodud. Piltide allikaks on kohalik hoidla, kuhu pildid laaditakse vÀlistest hoidlatest.
Kauged piltide hoidlad
Vaikimisi on LXD seadistatud saama pilte kolmest kaugallikast:
- ubuntu: (stabiilsete Ubuntu piltide jaoks)
- ubuntu-daily: (igapÀevaste Ubuntu piltide jaoks)
- images: (paljude teiste jaotuste jaoks)
lxc remote list
+-----------------+------------------------------------------+--------+--------+
| NIM | URL | PUBLIC | STATIC |
+-----------------+------------------------------------------+--------+--------+
| images | https://images.linuxcontainers.org | JAH | EI |
+-----------------+------------------------------------------+--------+--------+
| local (default) | unix:// | EI | JAH |
+-----------------+------------------------------------------+--------+--------+
| ubuntu | https://cloud-images.ubuntu.com/releases | JAH | JAH |
+-----------------+------------------------------------------+--------+--------+
| ubuntu-daily | https://cloud-images.ubuntu.com/daily | JAH | JAH |
+-----------------+------------------------------------------+--------+--------+NÀiteks, repostiitor ubuntu: omab jÀrgmisi pilte:
lxc image -c dasut list ubuntu: | head -n 11
+----------------------------------------------+--------------+----------+------------+
| KIRJELDUS | ARCHITEKTUUR | SUURUS | TĂŒĂŒp |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (vÀljalase) (20150728) | x86_64 | 153.72MB | KONTEINER |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (vÀljalase) (20150819) | x86_64 | 152.91MB | KONTEINER |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (vÀljalase) (20150906) | x86_64 | 154.69MB | KONTEINER |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (vÀljalase) (20150930) | x86_64 | 153.86MB | KONTEINER |
+----------------------------------------------+--------------+----------+------------+Kitsendatud arvu veergude nÀitamiseks kasutasime valikut -c parameetritega dasut, ja piiratud nimekirja pikkust kÀsuga head.
Piltide nimekirja kuvamiseks on saadaval filtreerimine. JÀrgmine kÀsk kuvab kÔigi saadaval olevate arhitektuuride nimekirja :
lxc image -c ldast list images:alpine/3.11
+------------------------------+--------------------------------------+--------------+
| ALIAS | DESCRIPTION | ARCHITECTURE |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11 (3 more) | Alpine 3.11 amd64 (20200220_13:00) | x86_64 |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/arm64 (1 more) | Alpine 3.11 arm64 (20200220_13:00) | aarch64 |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/armhf (1 more) | Alpine 3.11 armhf (20200220_13:00) | armv7l |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/i386 (1 more) | Alpine 3.11 i386 (20200220_13:01) | i686 |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/ppc64el (1 more) | Alpine 3.11 ppc64el (20200220_13:00) | ppc64le |
+------------------------------+--------------------------------------+--------------+
| alpine/3.11/s390x (1 more) | Alpine 3.11 s390x (20200220_13:00) | s390x |
+------------------------------+--------------------------------------+--------------+Kohalik piltide hoidla
Konteineri kasutamiseks on vajalik lisada pilt globaalsetest registritest kohalikku registrisse. kohalik:. Hetkel on kohalik register tĂŒhi, selles veenduda aitab kĂ€sk lxc image list. Kui meetodil loend ei ole tĂ”endatud registrit, kasutatakse vaikimisi kohalikku registrit â kohalik:
lxc image list local:
+-------+-------------+--------+-------------+--------------+------+------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE |
+-------+-------------+--------+-------------+--------------+------+------+Piltide haldamine tÀhtala varahoidlas toimub jÀrgmiste meetodite abil:
Meeskond
Kirjeldus
lxc image alias
Haldage pildi aliasi
lxc image copy
Kopeerige pilte serverite vahel
lxc image kustuta
Kustutage pildid
lxc image muuda
Muutke pildi omadusi
lxc image ekspordi
Ekspordi ja laadige pilte alla
lxc image import
Importige pilte pildi varahoidlasse
lxc image info
Kuva kasulikku teavet piltide kohta
lxc image loend
Loetlege pildid
lxc image refresh
Uuendage pilte
lxc image kuva
Kuva pildi omadused
Kopeerime pildi kohalikku varahoidlasse globaalsest images::
lxc image copy images:alpine/3.11/amd64 local: --alias=alpine3
Pilt kopeeriti edukalt!Kuvame nimekirja kÔigist piltidest, mis on hetkel kohaliku varahoidlas saadaval kohalik::
lxc image -c lfdatsu list local:
+---------+--------------+------------------------------------+--------------+
| ALIAS | FINGERPRINT | DESCRIPTION | ARCHITECTURE |
+---------+--------------+------------------------------------+--------------+
| alpine3 | 73a3093d4a5c | Alpine 3.11 amd64 (20200220_13:00) | x86_64 |
+---------+--------------+------------------------------------+--------------+LXD konfiguratsioon
Lisaks interaktiivsele reĆŸiimile toetab LXD ka mitte-interaktiivset konfiguratsiooni seadistamise reĆŸiimi, kus konfiguratsioon mÀÀratakse YAML-failina, spetsiaalses formaadis, mis vĂ”imaldab kogu konfiguratsiooni ĂŒhe korraga seadistada, möödudes mitmete ĂŒlalpool kĂ€sitletud interaktiivsete kĂ€skude tĂ€itmisest, sealhulgas vĂ”rgukonfiguratsioonist, konfiguratsiooni profiilide loomise jne. Selles osas me ei peatu, palun tutvuge sellega ise. .
JÀrgmine interaktiivne kÀsk lxc config mida me vaatleme, vÔimaldab seadistada konfiguratsiooni. NÀiteks, et diivanil olevate piltide kohalikku hoidlast ei uuendataks automaatselt globaalsetest hoidlatest, saame selle kÀitumise lubamiseks kasutada jÀrgmist kÀsku:
lxc config set images.auto_update_cached=falseKonteineri loomine ja haldamine
Konteineri loomiseks kasutatakse kÀsku lxc init millele edastatakse vÀÀrtused hoidla:pilt ja seejÀrel soovitud konteineri identifikaator. Hoidla vÔib olla mÀÀratud kui kohalik. kohalik: nii ja iga globaalne. Kui hoidla ei ole mÀÀratud, kasutatakse vaikimisi pildi otsimiseks kohalikku hoidlat. Kui pilt on mÀÀratud globaalsetest hoidlatest, laaditakse pilt esmalt alla kohalikku hoidla, seejÀrel kasutatakse seda konteineri loomiseks.
KÀivitame jÀrgmise kÀsu, et luua meie esimene konteiner:
lxc init alpine3 alp --storage=hddpool --profile=default --profile=hddrootAnalĂŒĂŒsime ĂŒksikasjalikult kĂ€su vĂ”tmeid, mida me siin kasutame:
alpine3â MÀÀratakse alias (pseudonĂŒĂŒm) pildile, mis varem laaditi kohalikku hoidla. Kui alias pole selle pildi jaoks loodud, saab alati viidata pildile selle SĂ”rmjĂ€lg mis kuvatakse tabelis.alpâ MÀÀratakse konteineri identifikaator--storageâ See vĂ”tme nĂ€itab, millises Storage Pool konteiner luuakse--profileâ Need vĂ”tmed rakendavad jĂ€rjestikku konteinerile konfiguratsiooni varem loodud konfiguratsiooniprofiilidest.
KĂ€ivitame konteineri, mis hakkab kĂ€ivitama jaotuse init-sĂŒsteemi:
lxc start alpSamuti saab kasutada kĂ€sku lxc launch mis vĂ”imaldab kombineerida kĂ€ske lxc init ja lxc start ĂŒheks toiminguks.
Kontseinerite seisundi kontrollimine:
lxc list -c ns46tb
+------+---------+------------------+------+-----------+--------------+
| NIMI | OLUKORD | IPV4 | IPV6 | TĂĂP | SALVESTUSPOOL |
+------+---------+------------------+------+-----------+--------------+
| alp | TĂĂTAB | 10.0.5.46 (eth0) | | KONTROLLER | hddpool |
+------+---------+------------------+------+-----------+--------------+Kontrollerime konteineri konfiguratsiooni:
lxc config show alp
arhitektuur: x86_64
config:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200326_13:39)
image.os: Alpine
image.release: "3.11"
image.serial: "20200326_13:39"
image.type: squashfs
volatile.base_image: ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
volatile.eth0.host_name: vethb1fe71d8
volatile.eth0.hwaddr: 00:16:3e:5f:73:3e
volatile.idmap.base: "0"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.power: TĂĂTAB
devices:
root:
path: /
pool: hddpool
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""jaotises profiilid me vĂ”ime veenduda, et see konteiner kasutab kahte konfiguratsiooniprofiili â default ja hddroot. Jaotises seadmed me saame avastada ainult ĂŒhe seadme, kuna vĂ”rgu seade loodi profiili tasemel default. KĂ”ik konteineris kasutatavad seadmed nĂ€ha saamiseks tuleb lisada vĂ”ti --expanded:
lxc config show alp --expanded
architecture: x86_64
config:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200326_13:39)
image.os: Alpine
image.release: "3.11"
image.serial: "20200326_13:39"
image.type: squashfs
volatile.base_image: ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
volatile.eth0.host_name: vethb1fe71d8
volatile.eth0.hwaddr: 00:16:3e:5f:73:3e
volatile.idmap.base: "0"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.power: RUNNING
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: /
pool: hddpool
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""Statilise IP-aadressi seadistamine
Kui proovime seadistada IP aadressi vÔrguseadmest eth0 kÀsku lxc config device set alp mis on ette nÀhtud konteineri konfigureerimiseks, saame vea, mis teavitab, et seadet ei eksisteeri, kuna seade eth0 mille konteiner kasutab kuulub profiili default:
lxc config device set alp eth0 ipv4.address 10.0.5.5
Error: The device doesn't existSaame loomulikult mÀÀrata staatiline IP-aadress eth0 seadmest profiilis, kuid see on kĂ”igi konteinerite jaoks, mis seda profiili kasutavad, ĂŒks ja sama. SeetĂ”ttu lisame konteinerile eraldi seadme:
lxc config device add alp eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5SeejÀrel tuleb konteiner uuesti kÀivitada:
lxc restart alpKui vaatame nĂŒĂŒd konteineri konfiguratsiooni, siis ei pea me rakendama valikut --expanded nĂ€ha vĂ”rgu seadet eth0, kuna me lĂ”ime selle konteineri tasandil ja see kattis selle seadme profiilist ĂŒle. default:
lxc config show alp
arhitektuur: x86_64
konfiguratsioon:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200326_13:39)
image.os: Alpine
image.release: "3.11"
image.serial: "20200326_13:39"
image.type: squashfs
volatile.base_image: ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
volatile.eth0.host_name: veth2a1dc59d
volatile.eth0.hwaddr: 00:16:3e:0e:e2:71
volatile.idmap.base: "0"
volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":65536}]'
volatile.last_state.power: RUNNING
seadmed:
eth0:
ipv4.address: 10.0.5.5
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
root:
path: /
pool: hddpool
type: disk
ajutine: false
profiilid:
- default
- hddroot
olemasolev: false
kirjeldus: ""Konteineri eemaldamine
Konteineri eemaldamiseks kasutatakse kÀsku lxc delete, kuid enne konteineri eemaldamist tuleb see peatada kÀsuga lxc stop:
lxc stop alplxc list
+------+---------+-------------------+------+-----------+-----------+
| NIMI | SEISUND | IPV4 | IPV6 | TĂŒĂŒp | SNAPSHOTID |
+------+---------+-------------------+------+-----------+-----------+
| alp | PEATATUD | 10.0.5.10 (eth0) | | KONTEINER | 0 |
+------+---------+-------------------+------+-----------+-----------+PĂ€rast seda, kui oleme kinnitanud, et konteineri seisund on PEATUD, saab selle eemaldada Storage Pool:
lxc delete alpLigipÀÀs konteinerile
KĂ€skude tĂ€itmiseks konteineris otse, vĂ€ltides vĂ”rguĂŒhendusi, kasutatakse kĂ€sku lxc exec mis tĂ€idab kĂ€sku konteineris ilma sĂŒsteemi shelli kĂ€ivitamiseta. Kui peate kĂ€ivitama kĂ€su shellis, kasutades shelli mustreid, nagu muutujad, failide suunamised (pipe) jne, tuleb selgelt kĂ€ivitada shell ja edastada kĂ€sk argumendina, nĂ€iteks:
lxc exec alp -- /bin/sh -c "echo $HOME"KÀsk sisaldas erimÀrgi escape'i erimÀrgi jaoks $ et muutuja $HOME ei tÔlgendataks hostmasinas, vaid tÔlgendataks ainult konteineris.
Samuti on vĂ”imalik kĂ€ivitada interaktiivne shelli reĆŸiim ja pĂ€rast seansi lĂ”petamist tĂ€ita hotkey CTRL+D:
lxc exec alp -- /bin/shKonteineri ressursside haldamine
LXD-s saab konteineri ressursse hallata spetsiaalse konfigureerimise komplekti abil. TĂ€ieliku nimekirja konteineri konfigureerimise parameetritest leiate .
RAM (mÀlu) ressursside piiramine
Parameeter limits.memory piirab konteinerile saadaval oleva RAM-i maht. VÀÀrtusena antakse number ja ĂŒks .
MÀÀrame konteinerile RAM-i mahu piiri, mis on vÔrdne 256 MB:
lxc config set alp limits.memory 256MBSamuti on olemas muid mÀlu piiranguid:
limits.memory.enforcelimits.memory.hugepageslimits.memory.swaplimits.memory.swap.priority
Meeskond lxc config show kÀsib kuvada kÔik konteineri seadistused, sealhulgas rakendatud ressursside piirangud:
lxc config show alp
arhitektuur: x86_64
config:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200220_13:00)
image.os: Alpine
image.release: "3.11"
image.serial: "20200220_13:00"
image.type: squashfs
limits.memory: 256MB
volatile.base_image: 73a3093d4a5ce0148fd84b95369b3fbecd19a537ddfd2e2d20caa2eef0e8fd60
volatile.eth0.host_name: veth75b6df07
volatile.eth0.hwaddr: 00:16:3e:a1:e7:46
volatile.idmap.base: "0"
volatile.idmap.current: '[]'
volatile.idmap.next: '[]'
volatile.last_state.idmap: '[]'
volatile.last_state.power: RUNNING
devices: {}
ephemeral: false
profiles:
- default
stateful: false
description: ""CPU ressursside piiramine
CPU ressursside piiramiseks on mitu :
limit.cpuâ seob konteineri ĂŒhe vĂ”i mitme CPU tuumagalimits.cpu.allowanceâ haldab kas CFS ajakava kvooti, kui aeg on piiratud, vĂ”i ĂŒldist CPU ressursside jagamise mehhanismi, kui protsent on möödunudlimits.cpu.priorityâ planeerija prioriteet, kui mitmed eksemplarid, mis kasutavad sama protsessorite kogumit, saavad mÀÀratud sama protsessorite protsendi
lxc config set alp limits.cpu.allowance 40%lxc config show alp
architecture: x86_64
config:
image.architecture: amd64
image.description: Alpine 3.11 amd64 (20200220_13:00)
image.os: Alpine
image.release: "3.11"
image.serial: "20200220_13:00"
image.type: squashfs
limits.cpu.allowance: 40%
limits.memory: 256MB
volatile.base_image: 73a3093d4a5ce0148fd84b95369b3fbecd19a537ddfd2e2d20caa2eef0e8fd60
volatile.eth0.host_name: veth75b6df07
volatile.eth0.hwaddr: 00:16:3e:a1:e7:46
volatile.idmap.base: "0"
volatile.idmap.current: '[]'
volatile.idmap.next: '[]'
volatile.last_state.idmap: '[]'
volatile.last_state.power: RUNNING
devices: {}
ephemeral: false
profiles:
- default
stateful: false
description: ""Kettaruumide piiramine
Lisaks sellistele piirangutele nagu limits.read, limits.write saame samuti piirata konteinerite kettaruumi tarbimist (töötab ainult ZFS vÔi BTRFS):
lxc config device set alp root size=2GBPÀrast seadistamist, parameetris devices.root.size saame veenduda mÀÀratud piirangus:
lxc config show alp
...
devices:
root:
path: /
pool: hddpool
size: 2GB
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""Kettakvootide vaatamiseks saame kasutada kÀsku 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: 0Kuigi oleme seadnud konteineri juureseadmest 2GB piirangu, ei mĂ€rka sĂŒsteemitooted nagu df seda piirangut. Selle jaoks teeme vĂ€ikese testi ja selgitame, kuidas see töötab.
Loome kaks uut identset konteinerit samas Storage Pool (hddpool):
lxc init alpine3 alp1 --storage=hddpool --profile=default --profile=hddroot
lxc init alpine3 alp2 --storage=hddpool --profile=default --profile=hddrootlxc list
+------+---------+------------------+------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+---------+------------------+------+-----------+-----------+
| alp1 | RUNNING | 10.0.5.46 (eth0) | | CONTAINER | 0 |
+------+---------+------------------+------+-----------+-----------+
| alp2 | RUNNING | 10.0.5.30 (eth0) | | CONTAINER | 0 |
+------+---------+------------------+------+-----------+-----------+Ăhes konteineris loome 1GB suuruse faili:
lxc exec alp1 -- dd if=/dev/urandom of=file.img bs=1M count=1000Veendume, et fail on loodud:
lxc exec alp1 -- ls -lh
total 1000M
-rw-r--r-- 1 root root 1000.0M Mar 27 10:16 file.imgKui vaatame teises konteineris, kontrollime faili olemasolu samas kohas, siis seda faili ei ole, mis on oodatud, kuna konteinerid luuakse omaette. Storage Volume samas Storage Pool:
lxc exec alp2 -- ls -lh
total 0Kuid vĂ”rreldes vÀÀrtuste, mida annavad df ĂŒhes ja teises konteineris:
lxc exec alp1 -- df -hT
Filesystem TĂŒĂŒp Suurus Kasutatud Saadaval Kasut% Muntitud
/dev/loop1 btrfs 9.3G 1016.4M 7.8G 11% /
...lxc exec alp2 -- df -hT
Filesystem TĂŒĂŒp Suurus Kasutatud Saadaval Kasut% Muntitud
/dev/loop1 btrfs 9.3G 1016.4M 7.8G 11% /
...Seade /dev/loop1 muntitud kui juurpartition on Storage Pool mille need konteinerid kasutavad, seega nad jagavad selle mahtu kahekesi.
Ressursside kasutamise statistika
Konteineri ressursikasutuse statistikat saab vaadata kÀsuga:
lxc info alp
Nimi: alp
Asukoht: puudub
Kaugarvuti: unix://
Arhitektuur: x86_64
Loodud: 2020/04/08 18:05 UTC
Olek: KĂ€imas
TĂŒĂŒp: konteiner
Profiilid: default, hddroot
Pid: 19219
Ips:
eth0: inet 10.0.5.5 veth2a1dc59d
eth0: inet6 fe80::216:3eff:fe0e:e271 veth2a1dc59d
lo: inet 127.0.0.1
lo: inet6 ::1
Ressursid:
Protsessid: 5
Diski kasutus:
juur: 495.62kB
CPU kasutus:
CPU kasutus (sekundites): 1
MĂ€lu kasutus:
MĂ€lu (hetkeline): 4.79MB
VÔrgukasutus:
eth0:
Sisse saadetud baitid: 730B
VĂ€lja saadetud baitid: 1.59kB
Sisse saadetud paketid: 3
VĂ€lja saadetud paketid: 14
lo:
Sisse saadetud baitid: 0B
VĂ€lja saadetud baitid: 0B
Sisse saadetud paketid: 0
VÀlja saadetud paketid: 0Töötamine snapshotidega
LXD-s on vÔimalik luua jÀÀdvustusi ja taastada konteineri olek neist.
JÀÀdvustuse loomiseks tÀitke jÀrgmine kÀsk:
lxc snapshot alp snapshot1KĂ€sk lxc snapshot ei sisalda vĂ”tmeid loend, seetĂ”ttu tuleb jÀÀdvustuste nimekirja nĂ€gemiseks kasutada kĂ€sku, mis kuvab konteineri ĂŒldteavet:
lxc info alp
...
...
JÀÀdvustused:
snapshot1 (tehtud 2020/04/08 18:18 UTC) (stateless)Konteineri taastamiseks jÀÀdvustusest kasutatakse kÀsku lxc restore nÀidates konteinerit, mille jaoks taastamine toimub, ja jÀÀdvustuse nime:
lxc restore alp snapshot1JĂ€rgmine kĂ€sk on jÀÀdvustuse kustutamiseks. Pange tĂ€hele, et kĂ€susĂŒntaks erineb teistest, siin on vajalik konteineri nime jĂ€rel nĂ€idata otsekohta. Kui otsekoht jĂ€tta vahele, tĂ”lgendatakse jÀÀdvustuse kustutamise kĂ€sku konteineri kustutamise kĂ€skuna!
lxc delete alp/snapshot1Eespool toodud nĂ€ites uurisime nn stateless-jÀÀdvustusi. LXD-s on ka teine tĂŒĂŒpi jÀÀdvustused â stateful, milles salvestatakse kĂ”ikide protsesside hetkeseis konteineris. Stateful-jÀÀdvustustega on seotud mitmed huvitavad ja kasulikud funktsioonid.
Mis veel?
- Python arendajatele on saadaval moodul mis pakub API-d LXD-le
UUENDUS 10.04.2020 15:00: Lisatud navigeerimine
Allikas: habr.com
