LXD er næsta kynslóð kerfisgámastjóra, svo það segir uppspretta. Það býður upp á notendaviðmót svipað og sýndarvélar, en notar Linux gáma í staðinn.
LXD kjarna er forréttindapúki (þjónusta sem keyrir með rótarréttindum) sem veitir REST API í gegnum staðbundna unix fals, sem og í gegnum netið ef viðeigandi stillingar eru settar upp. Viðskiptavinir, eins og skipanalínutólið sem fylgir LXD, leggja fram beiðnir í gegnum þetta REST API. Þetta þýðir að hvort sem þú ert að fá aðgang að staðbundnum gestgjafa eða ytri gestgjafa, þá virkar allt eins.
Í þessari grein munum við ekki dvelja í smáatriðum um hugtökin LXD, við munum ekki íhuga alla tiltæka möguleika sem lýst er í skjölunum, þar á meðal nýlega útfærslu í nýjustu útgáfum af LXD af stuðningi við QEMU sýndarvélar samhliða gámum. Þess í stað lærum við bara grunnatriðin í gámastjórnun - að setja upp geymslusamstæður, netkerfi, keyra gáma, beita auðlindamörkum og hvernig á að nota skyndimyndir svo þú getir fengið grunnskilning á LXD og notað gáma á Linux.
Fyrir allar upplýsingar, vinsamlegast vísa til opinberu heimildarinnar:
Þetta þýðir að tveir pakkar verða settir upp í einu, annar sem kerfispakki og hinn sem snappakki. Uppsetning tveggja pakka á kerfi gæti skapað vandamál þar sem kerfispakkinn gæti orðið munaðarlaus ef snappakkinn er fjarlægður af snappakkastjóranum.
Finndu pakka lxd í snap geymslunni geturðu notað eftirfarandi skipun:
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
Með því að keyra skipunina list þú getur tryggt að pakkinn lxd ekki enn uppsett:
snap list
Name Version Rev Tracking Publisher Notes
core 16-2.43.3 8689 stable canonical✓ core
Þrátt fyrir þá staðreynd að LXD sé snappakki verður að setja hann upp í gegnum kerfispakkann lxd, sem mun búa til samsvarandi hóp í kerfinu, nauðsynleg tól í /usr/bin o.fl.
sudo apt update
sudo apt install lxd
Við skulum ganga úr skugga um að pakkinn sé settur upp sem snappakki:
snap list
Name Version Rev Tracking Publisher Notes
core 16-2.43.3 8689 stable canonical✓ core
lxd 3.21 13474 stable/… canonical✓ -
Til að setja upp LXD pakkann á kerfinu þarftu að keyra eftirfarandi skipanir, sú fyrsta mun uppfæra listann yfir pakka á kerfinu sem er tiltækur í geymslunni, sú seinni mun setja pakkann beint upp:
sudo pacman -Syyu && sudo pacman -S lxd
Eftir uppsetningu pakkans, til að stjórna LXD af venjulegum notanda, verður að bæta honum við kerfishópinn lxd:
sudo usermod -a -G lxd user1
Við skulum ganga úr skugga um að notandinn user1 bætt í hópinn lxd:
id -Gn user1
user1 adm dialout cdrom floppy sudo audio dip video plugdev netdev lxd
Ef hópurinn lxd sést ekki á listanum, þá þarftu að virkja notendalotuna aftur. Til að gera þetta þarftu að skrá þig út og inn undir sama notanda.
Virkjaðu í systemd hleður LXD þjónustunni við ræsingu kerfisins:
Áður en frumstilling hefst þurfum við að skilja hvernig geymslunni í LXD er rökrétt raðað.
Geymsla (Geymsla) samanstendur af frá einum eða fleiri Geymslulaug sem notar eitt af studdu skráakerfum eins og ZFS, BTRFS, LVM eða venjulegar möppur. Hvert Geymslulaug er skipt í bindi (Geymslurými) sem innihalda myndir, ílát eða gögn í öðrum tilgangi.
Myndir - þetta eru sérstaklega samsettar dreifingar án Linux kjarna og fáanlegar frá utanaðkomandi aðilum
Ílát - þetta eru dreifingar frá myndum, tilbúnar til notkunar
Skyndimyndir - þetta eru skyndimyndir af stöðu gáma sem þú getur farið aftur í
Til að stjórna geymslu í LXD, notaðu skipunina lxc storage vottorð sem þú getur fengið með því að tilgreina lykilinn - lxc storage --help
Eftirfarandi skipun sýnir lista yfir alla Geymslulaug í LXD geymslu:
lxc storage list
+---------+-------------+--------+--------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool | | btrfs | /dev/loop1 | 2 |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool | | btrfs | /var/lib/lxd/disks/ssdpool.img | 4 |
+---------+-------------+--------+--------------------------------+---------+
Til að skoða lista yfir allt Geymslurými í völdum Geymslulaug þjónar liðinu 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 |
+-----------+----------------------------------+-------------+---------+
Einnig, ef fyrir Geymslulaug Þegar búið var til var BTRFS skráarkerfið valið, þá færðu lista Geymslurými eða undirmagn í BTRFS túlkuninni geturðu notað verkfærakistuna í þessu skráarkerfi:
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
Áður en þú býrð til og notar ílát verður þú að framkvæma almenna LXD frumstillingu sem býr til og stillir netið og geymsluna. Þetta er hægt að gera handvirkt með því að nota venjulegar biðlaraskipanir sem eru tiltækar á listanum með því að kalla á skipunina lxc --help eða með því að nota frumstillingarhjálpina lxd init að svara nokkrum spurningum.
Við frumstillingu spyr LXD nokkurra spurninga, þar á meðal að ákvarða skráarkerfisgerðina fyrir sjálfgefið Geymslulaug. Sjálfgefið er BTRFS skráarkerfið valið fyrir það. Það verður ómögulegt að breyta í annan FS eftir stofnun. Til að velja FS er mælt með því samanburðartöflu fyrir eiginleika:
Lögun
Skrá
Btrfs
LVM
ZFS
CEPH
Bjartsýni myndgeymsla
nr
Já
Já
Já
Já
Fínstillt tilviksgerð
nr
Já
Já
Já
Já
Bjartsýni myndatöku
nr
Já
Já
Já
Já
Bjartsýni myndflutnings
nr
Já
nr
Já
Já
Bjartsýni tilvikaflutnings
nr
Já
nr
Já
Já
Afritaðu á skrifa
nr
Já
Já
Já
Já
Blokk byggt
nr
nr
Já
nr
Já
Augnablik klónun
nr
Já
Já
Já
Já
Geymslubílstjóri nothæfur inni í gámi
Já
Já
nr
nr
nr
Endurheimta frá eldri skyndimyndum (ekki nýjustu)
Já
Já
Já
nr
Já
Geymslukvóta
Já(*)
Já
Já
Já
nr
Frumstillir netið og geymslupottinn með því að nota töframanninn ^
Næsta skipun sem við skoðum bendir á að setja upp helstu þætti LXD með því að svara einföldum spurningum með því að nota frumstillingarhjálpina.
Keyra skipun lxc init og sláðu inn svörin við spurningunum á eftir tvípunktinum eins og sýnt er í dæminu hér að neðan eða breyttu þeim í samræmi við aðstæður þínar:
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]:
Í fyrra skrefi bjuggum við til Geymslulaug sem fékk nafnið ssdpool og skráin sem er staðsett á kerfinu mínu á /var/lib/lxd/disks/ssdpool.img. Þetta skráarkerfis heimilisfang samsvarar líkamlegu SSD drifinu í tölvunni minni.
Eftirfarandi aðgerðir, til að auka skilning á hlutverki Geymslulaug í geymslunni munum við búa til aðra Geymslulaug sem verður líkamlega staðsettur á annarri gerð af diski, HDD. Vandamálið er að LXD leyfir þér ekki að búa til Geymslulaug utan heimilisfangs /var/lib/lxd/disks/ og jafnvel táknrænir tenglar virka ekki, sjá svar framkvæmdaraðila. Við getum framhjá þessari takmörkun meðan á frumstillingu/sniði stendur Geymslulaug með því að tilgreina gildið sem blokkartæki í stað slóðarinnar að loopback skránni með því að tilgreina þetta í lyklinum source.
Svo, áður en þú býrð til Geymslulaug þú þarft að skilgreina loopback skrá eða núverandi skipting á skráarkerfinu þínu sem það mun nota. Til að gera þetta munum við búa til og nota skrá sem við munum takmarka að stærð við 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
Við skulum tengja loopback skrána við ókeypis loopback tæki:
Þökk sé lyklinum --show með því að framkvæma skipunina kemur aftur á skjáinn nafn tækisins sem bakslagsskráin okkar er tengd við. Ef nauðsyn krefur getum við birt lista yfir öll upptekin tæki af þessari gerð til að ganga úr skugga um að aðgerðir okkar séu réttar:
Af listanum geturðu fundið að tækið hefur /dev/loop1 loopback skrá fylgir /mnt/work/lxd/hddpool.img, og í tækinu /dev/loop0 loopback skrá fylgir /var/lib/lxd/disks/ssdpool.img sem samsvarar sjálfgefnu Geymslulaug.
Eftirfarandi skipun býr til nýja Geymslulaug í LXD byggt á loopback skránni sem við undirbjuggum. LXD mun forsníða loopback skrána /mnt/work/lxd/hddpool.img í tækinu /dev/loop1 fyrir BTRFS skráarkerfið:
Sjálfvirk innsetning á baklykkjaskrá inn í rauf fyrir afturhlaupstæki ^
Við höfum eitt lítið vandamál, þegar þú endurræsir hýsilkerfið, skrána /mnt/work/lxd/hddpool.img mun „fljúga“ út úr tækinu /dev/loop1 og LXD þjónustan mun hrynja við hleðslu vegna þess að hún mun ekki sjá hana í þessu tæki. Til að leysa þetta vandamál þarftu að búa til kerfisþjónustu sem setur þessa skrá inn í tækið /dev/loop1 þegar hýsilkerfið ræsir.
Við skulum búa til eining skráargerð þjónusta в /etc/systemd/system/ fyrir SystemD frumstillingarkerfið:
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
Virkjaðu þjónustuna:
sudo systemctl enable lxd-hddpool
Created symlink /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service → /etc/systemd/system/lxd-hddpool.service.
Eftir að hýsingarkerfið hefur verið endurræst athugum við þjónustustöðuna:
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).
Frá úttakinu getum við staðfest að þjónustuástandið sé virka, þrátt fyrir að framkvæmd handrits okkar frá einni skipun hafi verið lokið, gerði valmöguleikinn okkur kleift að gera þetta RemainAfterExit=true.
Þar sem öll gámaferli keyra í raun í einangrun á hýsilkerfinu með því að nota kjarna þess, til að vernda enn frekar aðgang gámaferla að hýsilkerfinu, býður LXD upp á vinnsluréttindi, þar sem:
Forréttindagámar - þetta eru ílát þar sem ferlar með UID og GID samsvara sama eiganda og á hýsilkerfinu. Til dæmis, ferli sem keyrir í gámi með UID upp á 0 hefur öll sömu aðgangsréttindi og ferli á hýsilkerfi með UID upp á 0. Með öðrum orðum, rótnotandinn í ílátinu hefur öll réttindi ekki aðeins í gáminn, en einnig á hýsingarkerfinu ef hann getur farið út fyrir einangrað nafnrými gámsins.
Óforréttisgámar - þetta eru ílát þar sem ferlar tilheyra eiganda UID og GID með númerinu 0 til 65535, en fyrir hýsilkerfið er eigandinn grímaaður með því að nota SubUID og SubGID bitana sem bætt er við, í sömu röð. Til dæmis mun notandi með UID=0 í gámi sjást á hýsilkerfinu sem SubUID + UID. Þetta verndar hýsingarkerfið vegna þess að ef eitthvert ferli í ílátinu getur sloppið við einangrað nafnrými þess getur það aðeins átt samskipti við hýsilkerfið sem ferli með óþekkt, mjög hátt UID/GID.
Sjálfgefið er að nýbúnir gámar hafa óforréttindastöðu og því verðum við að skilgreina SubUID og SubGID.
Við skulum búa til tvær stillingarskrár þar sem við munum setja grímuna fyrir SubUID og SubGID, í sömu röð:
Þar sem við frumstillum netið áður með því að nota frumstillingarhjálpina lxd init og búið til nettæki lxdbr0, þá í þessum hluta munum við einfaldlega kynnast netkerfi í LXD og hvernig á að búa til sýndarrofa (brú) með því að nota biðlaraskipunina.
Eftirfarandi skýringarmynd sýnir hvernig rofi (brú) tengir hýsilinn og gámana inn í net:
Gámar geta átt samskipti í gegnum net við aðra gáma eða hýsilinn sem þessir gámar eru þjónað á. Til að gera þetta þarftu að tengja sýndarnetkort ílátanna við sýndarrofa. Við munum fyrst búa til rofa og netviðmót gámsins verða tengd í síðari köflum, eftir að gámurinn sjálfur hefur verið búinn til.
Eftirfarandi skipun býr til rofa með undirneti 10.0.5.0/24 og IPv4 vistfang 10.0.5.1/24, og inniheldur einnig ipv4.nat svo að gámar geti fengið aðgang að internetinu í gegnum gestgjafann með því að nota NAT þjónustuna:
Hver gámur í LXD hefur sína eigin uppsetningu og getur framlengt hana með alþjóðlegum yfirlýstum stillingum sem kallast stillingarsnið. Að beita stillingarsniðum á gám hefur falllíkan, eftirfarandi dæmi sýnir þetta:
Í þessu dæmi hafa þrjú snið verið búin til í LXD kerfinu: default, hddpool и hostfs. Öll þrjú sniðin eru notuð á ílát sem hefur staðbundna uppsetningu (grátt svæði). Prófíll default er með tæki root sem hefur færibreytu pool jafngildir ssdpool, en þökk sé forritslíkaninu fyrir cascade stillingar getum við notað snið á ílátið hddpool sem hefur færibreytu pool mun hnekkja sömu breytu úr prófílnum default og ílátið mun taka við stillingu tækisins root með færibreytu pool jöfn hddpool, og prófílinn hostfs einfaldlega bætir nýju tæki við ílátið.
Til að sjá lista yfir tiltæka stillingarsnið skaltu nota eftirfarandi skipun:
lxc profile list
+---------+---------+
| NAME | USED BY |
+---------+---------+
| default | 1 |
+---------+---------+
| hddroot | 0 |
+---------+---------+
| ssdroot | 1 |
+---------+---------+
Hægt er að fá heildarlista yfir tiltækar skipanir til að vinna með prófíl með því að bæta við lyklinum --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
Sjálfgefin stillingarsnið default er ekki með netkortastillingu fyrir gáminn og allir nýbúnir gámar eru ekki með net, fyrir þá er nauðsynlegt að búa til staðbundin (sérstök) nettæki með sérstakri skipun, en við getum búið til alþjóðlegt nettæki í stillingunni prófíl sem verður deilt á milli allra gáma sem nota þetta prófíl. Þannig, strax eftir skipunina um að búa til nýjan ílát, munu þeir hafa net með netaðgangi. Á sama tíma eru engar takmarkanir, við getum alltaf búið til staðarnetstæki síðar ef þörf krefur.
Eftirfarandi skipun mun bæta tækinu við stillingarsniðið eth0 типа nic tengdur við netið lxdbr0:
lxc profile device add default eth0 nic network=lxdbr0 name=eth0
Það er mikilvægt að hafa í huga að þar sem við bættum tækinu í raun og veru við stillingarsniðið, ef við tilgreindum fasta IP tölu í tækinu, þá munu allir gámar sem munu nota þetta snið deila sömu IP tölu. Ef það er þörf á að búa til gám með kyrrstöðu IP-tölu sem úthlutað er fyrir gáminn, þá ættir þú að búa til stillingu nettækis á gámastigi (staðbundin stilling) með IP-tölufæribreytunni, en ekki á prófílstigi.
Við skulum athuga prófílinn:
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: []
Í þessu sniði getum við séð að fyrir alla nýbúna ílát verða tvö tæki búin til:
eth0 — Gerð tækis nic tengdur við rofa (netbrú) lxdbr0
root — Gerð tækis disk sem notar geymslulaug ssdpool
Til að nota áður búið til Geymslulaug gáma, búðu til stillingarsnið ssdroot þar sem við munum bæta við tæki eins og disk með festingarpunkti / (rót) með því að nota áður búið til Geymslulaug - ssdpool:
Gámar eru búnir til úr myndum sem eru sérstaklega samsettar dreifingar sem eru ekki með Linux kjarna. Þess vegna, áður en ílátið er keyrt, verður að dreifa honum frá þessari mynd. Uppruni mynda er staðbundin geymsla þar sem myndum er hlaðið niður frá ytri geymslum.
Til að byrja að nota ílátið þarftu að bæta mynd frá alheimsgeymslunni við þá staðbundnu local:. Nú er staðbundin geymsla tóm, skipunin mun tryggja þetta lxc image list. Ef aðferðin list ekki tilgreina geymslu, þá verður staðbundin geymsla notuð sjálfgefið - local:
lxc image list local:
+-------+-------------+--------+-------------+--------------+------+------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE |
+-------+-------------+--------+-------------+--------------+------+------+
Myndum í geymslunni er stjórnað með eftirfarandi aðferðum:
Team
Lýsing
lxc mynd alias
Stjórna myndsamnöfnum
lxc mynd afrita
Afritaðu myndir á milli netþjóna
lxc mynd eyða
Eyða myndum
lxc mynd breyta
Breyta myndeiginleikum
lxc mynd flytja
Flytja út og hlaða niður myndum
lxc mynd flytja
Flytja inn myndir í myndaverslunina
lxc mynd upplýsingar
Sýndu gagnlegar upplýsingar um myndir
lxc mynd lista
Lista myndir
lxc mynd hressa
Endurnýjaðu myndir
lxc mynd Sýna
Sýna eiginleika myndarinnar
Afritaðu myndina í staðbundna geymsluna úr þeirri alþjóðlegu images::
Til viðbótar við gagnvirka stillinguna styður LXD einnig ógagnvirka uppsetningarham, þetta er þegar uppsetningin er tilgreind í formi YAML skráar, sérstakt snið sem gerir þér kleift að setja upp alla uppsetninguna í einu, framhjá framkvæmdinni af mörgum gagnvirkum skipunum sem fjallað var um hér að ofan í þessari grein, þar á meðal netstillingar, stofnun stillingarsniðs o.s.frv. Við munum ekki fjalla um þetta svæði hér, þú getur skoðað það á eigin spýtur. í skjölunum.
Næsta gagnvirka skipun lxc config sem við munum skoða gerir þér kleift að stilla uppsetninguna. Til dæmis, til að tryggja að niðurhalaðar myndir í staðbundnu geymsluna séu ekki sjálfkrafa uppfærðar úr alþjóðlegu geymslunum, getum við virkjað þessa hegðun með eftirfarandi skipun:
Notaðu skipunina til að búa til ílát lxc init sem gildin eru færð til репозиторий:образ og síðan viðkomandi auðkenni fyrir gáminn. Hægt er að tilgreina geymsluna sem staðbundna local: svo er það með hvaða alþjóðlegu. Ef geymslan er ekki tilgreind, þá er staðbundin geymsla sjálfgefið notuð til að leita að myndinni. Ef myndin er tilgreind frá alþjóðlegu geymslunni, þá verður myndinni fyrst hlaðið niður á staðbundna geymsluna og síðan notuð til að búa til ílátið.
Við skulum keyra eftirfarandi skipun til að búa til fyrsta gáminn okkar:
lxc init alpine3 alp --storage=hddpool --profile=default --profile=hddroot
Við skulum skoða skipanalyklana sem við notum hér í röð:
alpine3 — Samnefni (alias) er tilgreint fyrir myndina sem áður var hlaðið upp á staðbundna geymsluna. Ef samnefnið var ekki búið til fyrir þessa mynd, þá geturðu alltaf vísað til myndarinnar með henni fingrafar sem birtist í töflunni.
alp — Stillir auðkenni fyrir ílátið
--storage — Þessi lykill gefur til kynna í hvaða Geymslulaug gámur verður búinn til
--profile — Þessir lyklar beita stillingum frá áður stofnuðum stillingarsniðum á ílátið
Við ræsum ílátið, sem byrjar að ræsa init kerfi dreifingarinnar:
lxc start alp
Þú getur líka notað skipunina lxc launch sem gerir þér kleift að sameina lið lxc init и lxc start í einni aðgerð.
Athugaðu ástand ílátsins:
lxc list -c ns46tb
+------+---------+------------------+------+-----------+--------------+
| NAME | STATE | IPV4 | IPV6 | TYPE | STORAGE POOL |
+------+---------+------------------+------+-----------+--------------+
| alp | RUNNING | 10.0.5.46 (eth0) | | CONTAINER | hddpool |
+------+---------+------------------+------+-----------+--------------+
Í kaflanum profiles við getum gengið úr skugga um að þessi ílát noti tvö stillingarsnið - default и hddroot. Í kafla devices við getum aðeins greint eitt tæki vegna þess að nettækið var búið til á prófílstigi default. Til þess að sjá öll tæki sem ílátið notar þarftu að bæta við lykli --expanded:
Ef við reynum að stilla IP tölu fyrir nettæki eth0 teymið lxc config device set alp ætlað fyrir gámastillinguna, þá munum við fá villu sem mun tilkynna að tækið sé ekki til vegna þess að tækið eth0 sem er notað af ílátinu tilheyrir prófílnum default:
lxc config device set alp eth0 ipv4.address 10.0.5.5
Error: The device doesn't exist
Við getum auðvitað stillt fasta IP tölu fyrir eth0 tæki í sniðinu, en það verður það sama fyrir alla gáma sem munu nota þetta snið. Þess vegna skulum við bæta við tæki sem er tileinkað ílátinu:
lxc config device add alp eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5
Þá þarftu að endurræsa ílátið:
lxc restart alp
Ef við skoðum gámauppsetninguna núna þurfum við ekki að nota valkostinn --expanded til að sjá nettækið eth0, þar sem við bjuggum það til á gámastigi og það fossaði yfir sama tæki frá prófílnum default:
Til að framkvæma skipanir í gám beint, framhjá nettengingum, notaðu skipunina lxc exec sem framkvæmir skipanir í ílátinu án þess að ræsa kerfisskelina. Ef þú þarft að framkvæma skipun í skel með því að nota skelmynstur eins og breytur, tilvísanir skráa (pípa) o.s.frv., þá þarftu að ræsa skelina sérstaklega og senda skipunina sem lykil, til dæmis:
lxc exec alp -- /bin/sh -c "echo $HOME"
Skipunin notaði sérstakan flóttastaf fyrir sérstakan karakter $ þannig að breyt $HOME var ekki túlkað á hýsingarvélinni heldur var aðeins túlkað inni í gámnum.
Það er líka hægt að ræsa gagnvirka skeljahaminn og ljúka síðan lotunni með því að keyra flýtilykla CTRL+D:
Í LXD geturðu stjórnað gámaauðlindum með því að nota sérstakt sett af stillingum. Hægt er að finna heildarlista yfir færibreytur ílátsstillingar í skjölunum.
limit.cpu - bindur ílát við einn eða fleiri CPU kjarna
limits.cpu.allowance - stjórnar annað hvort CFS tímaáætlunarkvóta þegar tímamörkin eru liðin, eða alhliða örgjörvamiðlunarkerfi þegar hlutfallið er liðið
limits.cpu.priority - tímaáætlunarforgangur þegar mörgum tilfellum sem deila hópi örgjörva er úthlutað sama hlutfalli örgjörva
Auk takmarkana ss limits.read, limits.write við getum líka takmarkað magn af plássi sem ílátið notar (virkar aðeins með ZFS eða BTRFS):
lxc config device set alp root size=2GB
Eftir uppsetningu, í breytu devices.root.size Við getum staðfest uppsett mörk:
lxc config show alp
...
devices:
root:
path: /
pool: hddpool
size: 2GB
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""
Til að skoða notaða diskakvóta getum við fengið frá skipuninni 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
Þrátt fyrir þá staðreynd að við höfum sett takmörk fyrir rótartæki ílátsins við 2GB, kerfisforrit eins og df mun ekki sjá þessa takmörkun. Til að gera þetta munum við gera lítið próf og komast að því hvernig það virkar.
Við skulum búa til 2 nýja eins ílát í sama Geymslulaug (hddpool):
Við skulum ganga úr skugga um að skráin sé búin til:
lxc exec alp1 -- ls -lh
total 1000M
-rw-r--r-- 1 root root 1000.0M Mar 27 10:16 file.img
Ef við lítum í seinni gáminn, athugaðu hvort skrá sé til á sama stað, þá verður þessi skrá ekki þar, sem búist er við, þar sem gámar eru búnir til í þeirra eigin Geymslurými í sama Geymslulaug:
lxc exec alp2 -- ls -lh
total 0
En við skulum bera saman gildin sem það framleiðir df á einu og öðru ílátinu:
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% /
...
Tæki /dev/loop1 sett upp eins og rótarskiptingin er Geymslulaug sem þessir ílát nota, þannig að þeir deila rúmmáli þess á milli tveggja.
LXD hefur getu til að búa til skyndimyndir og endurheimta gámastöðu úr þeim.
Til að búa til skyndimynd skaltu keyra eftirfarandi skipun:
lxc snapshot alp snapshot1
Liðið lxc snapshot enginn lykill til staðar listTil að skoða listann yfir skyndimyndir þarftu því að nota skipunina sem sýnir almennar upplýsingar um ílátið:
lxc info alp
...
...
Snapshots:
snapshot1 (taken at 2020/04/08 18:18 UTC) (stateless)
Þú getur endurheimt ílát úr skyndimynd með því að nota skipunina lxc restore tilgreina ílátið sem endurgerðin verður framkvæmd fyrir og skyndimyndarnafnið:
lxc restore alp snapshot1
Eftirfarandi skipun er notuð til að eyða skyndimynd. Vinsamlegast athugaðu að setningafræði skipana er ekki svipuð öllum öðrum; hér þarftu að tilgreina skástrik fyrir aftan gámaheitið. Ef skástrikinu er sleppt, þá er skipunin um að eyða skyndimynd túlkuð sem skipun um að eyða gámi!
lxc delete alp/snapshot1
Í dæminu hér að ofan skoðuðum við svokallaðar ríkisfangslausar skyndimyndir. LXD hefur einnig aðra tegund af skyndimynd - stateful, sem vistar núverandi stöðu allra ferla í gámnum. Yfirlitsmyndir koma með fjölda áhugaverðra og gagnlegra eiginleika.