Grunneiginleikar LXD - Linux gámakerfi

Grunneiginleikar LXD - Linux gámakerfi

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:

Leiðsögn

Uppsetning LXD ^

Uppsetning LXD á Ubuntu dreifingum ^

Í Ubuntu 19.10 dreifingarpakkanum lxd er með útsendingu í gangi snap pakki:

apt search lxd

lxd/eoan 1:0.7 all
  Transitional package - lxd -> snap (lxd)

Þ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✓  -

Uppsetning LXD á Arch Linux dreifingum ^

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:

sudo systemctl enable lxd

Við skulum hefja þjónustuna:

sudo systemctl start lxd

Athugaðu þjónustustöðu:

sudo systemctl status lxd

Geymsla LXD (geymsla) ^

Áð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 í

Grunneiginleikar LXD - Linux gámakerfi

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

Frumstillir LXD ^

Áð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.

Velja skráarkerfi fyrir geymslupláss ^

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



Fínstillt tilviksgerð
nr



Bjartsýni myndatöku
nr



Bjartsýni myndflutnings
nr

nr

Bjartsýni tilvikaflutnings
nr

nr

Afritaðu á skrifa
nr



Blokk byggt
nr
nr

nr

Augnablik klónun
nr



Geymslubílstjóri nothæfur inni í gámi


nr
nr
nr

Endurheimta frá eldri skyndimyndum (ekki nýjustu)



nr

Geymslukvóta
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]: 

Að búa til viðbótargeymslulaug ^

Í 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:

sudo losetup --find --show /mnt/work/lxd/hddpool.img

/dev/loop1

Þö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:

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     512

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ð:

lxc storage create hddpool btrfs size=10GB source=/dev/loop1

Sýnum lista yfir alla Geymslulaug til að sýna:

lxc storage list

+---------+-------------+--------+--------------------------------+---------+
|  NAME   | DESCRIPTION | DRIVER |             SOURCE             | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool |             | btrfs  | /dev/loop1                     | 0       |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool |             | btrfs  | /var/lib/lxd/disks/ssdpool.img | 0       |
+---------+-------------+--------+--------------------------------+---------+

Auka stærð geymslulaugar ^

Eftir sköpun Geymslulaug, ef nauðsyn krefur er hægt að stækka það. Fyrir Geymslulaug byggt á BTRFS skráarkerfinu skaltu keyra eftirfarandi skipanir:

sudo truncate -s +5G /mnt/work/lxd/hddpool.img
sudo losetup -c /dev/loop1
sudo btrfs filesystem resize max /var/lib/lxd/storage-pools/hddpool

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.

Öryggi. Gámaréttindi ^

Þ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öð:

sudo touch /etc{/subuid,/subgid}
sudo usermod --add-subuids 1000000-1065535 root 
sudo usermod --add-subgids 1000000-1065535 root

Til að beita breytingunum verður að endurræsa LXD þjónustuna:

sudo systemctl restart lxd

Að búa til sýndarnetsrofa ^

Þ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:

Grunneiginleikar LXD - Linux gámakerfi

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:

lxc network create lxdbr0 ipv4.address=10.0.5.1/24 ipv4.nat=true ipv6.address=none

Athugaðu lista yfir nettæki sem eru fáanleg í LXD:

lxc network list

+--------+----------+---------+-------------+---------+
|  NAME  |   TYPE   | MANAGED | DESCRIPTION | USED BY |
+--------+----------+---------+-------------+---------+
| eno1   | physical | NO      |             | 0       |
+--------+----------+---------+-------------+---------+
| lxdbr0 | bridge   | YES     |             | 0       |
+--------+----------+---------+-------------+---------+

Þú getur líka staðfest að nettæki hafi verið búið til með því að nota staðlaða tól Linux dreifingarinnar - ip link eða ip addr:

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 0

Stillingarsnið ^

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:

Grunneiginleikar LXD - Linux gámakerfi

Í þ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

Breytir prófílnum þínum ^

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

Að búa til nýja snið ^

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:

lxc profile create ssdroot
lxc profile device add ssdroot root disk path=/ pool=ssdpool

Á sama hátt búum við til tæki eins og disk, en í þessu tilfelli nota Geymslulaug - hddpool:

lxc profile create hddroot
lxc profile device add hddroot root disk path=/ pool=hddpool

Athugar stillingarsnið:

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: []

Myndageymsla ^

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.

Fjarlægar myndageymslur ^

Sjálfgefið er LXD stillt til að taka á móti myndum frá þremur ytri aðilum:

  • ubuntu: (fyrir stöðugar Ubuntu myndir)
  • ubuntu-daglega: (fyrir daglegar Ubuntu myndir)
  • myndir: (fyrir fullt af öðrum dreifingum)

lxc remote list

+-----------------+------------------------------------------+--------+--------+
|      NAME       |                   URL                    | PUBLIC | STATIC |
+-----------------+------------------------------------------+--------+--------+
| images          | https://images.linuxcontainers.org       | YES    | NO     |
+-----------------+------------------------------------------+--------+--------+
| local (default) | unix://                                  | NO     | YES    |
+-----------------+------------------------------------------+--------+--------+
| ubuntu          | https://cloud-images.ubuntu.com/releases | YES    | YES    |
+-----------------+------------------------------------------+--------+--------+
| ubuntu-daily    | https://cloud-images.ubuntu.com/daily    | YES    | YES    |
+-----------------+------------------------------------------+--------+--------+

Til dæmis, geymsla ubuntu: er með eftirfarandi myndir:

lxc image -c dasut list ubuntu: | head -n 11

+----------------------------------------------+--------------+----------+------------+
|                   DESCRIPTION                | ARCHITECTURE |   SIZE   |   TYPE     |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150728)  | x86_64       | 153.72MB | CONTAINER  |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150819)  | x86_64       | 152.91MB | CONTAINER  |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150906)  | x86_64       | 154.69MB | CONTAINER  |
+----------------------------------------------+--------------+----------+------------+
| ubuntu 12.04 LTS amd64 (release) (20150930)  | x86_64       | 153.86MB | CONTAINER  |
+----------------------------------------------+--------------+----------+------------+

Til að sýna takmarkaðan fjölda dálka notuðum við valkostinn -c með breytum dasut, og takmarkaði einnig lengd listans með skipuninni head.

Sía er í boði til að birta lista yfir myndir. Eftirfarandi skipun mun skrá alla tiltæka dreifingararkitektúra AlpineLinux:

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        |
+------------------------------+--------------------------------------+--------------+

Staðbundin myndgeymsla ^

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::

lxc image copy images:alpine/3.11/amd64 local: --alias=alpine3

Image copied successfully!

Sýnum lista yfir allar myndir sem nú eru tiltækar í staðbundinni geymslu local::

lxc image -c lfdatsu list local:

+---------+--------------+------------------------------------+--------------+
|  ALIAS  | FINGERPRINT  |            DESCRIPTION             | ARCHITECTURE |
+---------+--------------+------------------------------------+--------------+
| alpine3 | 73a3093d4a5c | Alpine 3.11 amd64 (20200220_13:00) | x86_64       |
+---------+--------------+------------------------------------+--------------+

LXD stillingar ^

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:

lxc config set images.auto_update_cached=false

Búa til og hafa umsjón með gámi ^

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      |
+------+---------+------------------+------+-----------+--------------+

Athugaðu gámastillinguna:

lxc config show alp

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:
  root:
    path: /
    pool: hddpool
    type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""

Í 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:

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: ""

Stilla fasta IP tölu ^

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:

lxc config show alp

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: 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
devices:
  eth0:
    ipv4.address: 10.0.5.5
    name: eth0
    nictype: bridged
    parent: lxdbr0
    type: nic
  root:
    path: /
    pool: hddpool
    type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""

Að fjarlægja ílát ^

Notaðu skipunina til að fjarlægja ílát lxc delete, en áður en ílátið er fjarlægt verður að stöðva það með skipuninni lxc stop:

lxc stop alp

lxc list

+------+---------+-------------------+------+-----------+-----------+
| NAME |  STATE  |       IPV4        | IPV6 |   TYPE    | SNAPSHOTS |
+------+---------+-------------------+------+-----------+-----------+
| alp  | STOPPED | 10.0.5.10 (eth0)  |      | CONTAINER | 0         |
+------+---------+-------------------+------+-----------+-----------+

Eftir að við höfum staðfest að ástand gámsins sé orðið HÆTT, það er hægt að fjarlægja það úr Geymslulaug:

lxc delete alp

Gámaaðgangur ^

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:

lxc exec alp -- /bin/sh

Gámaauðlindastjórnun ^

Í 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.

Takmörkun á vinnsluminni ^

Viðfang limits.memory takmarkar magn vinnsluminni sem er tiltækt fyrir ílátið. Gildið er tala og eitt af tiltæk viðskeyti.

Við skulum stilla RAM takmörk ílátsins á 256 MB:

lxc config set alp limits.memory 256MB

Einnig eru aðrar breytur til að takmarka minni:

  • limits.memory.enforce
  • limits.memory.hugepages
  • limits.memory.swap
  • limits.memory.swap.priority

Team lxc config show gerir þér kleift að birta alla gámastillinguna, þar með talið tilfangamörkin sem notuð voru sem sett voru:

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.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: ""

Hámark CPU auðlinda ^

Það eru nokkrar leiðir til að takmarka CPU auðlindir. tegundir takmarkana:

  • 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

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: ""

Takmörkun á plássi ^

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):

lxc init alpine3 alp1 --storage=hddpool --profile=default --profile=hddroot
lxc init alpine3 alp2 --storage=hddpool --profile=default --profile=hddroot

lxc 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         |
+------+---------+------------------+------+-----------+-----------+

Við skulum búa til 1GB skrá í einum af gámunum:

lxc exec alp1 -- dd if=/dev/urandom of=file.img bs=1M count=1000

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.

Tölfræði um auðlindanotkun ^

Þú getur skoðað tölfræði um auðlindanotkun fyrir ílát með því að nota skipunina:

lxc info alp

Name: alp
Location: none
Remote: unix://
Architecture: x86_64
Created: 2020/04/08 18:05 UTC
Status: Running
Type: container
Profiles: 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
Resources:
  Processes: 5
  Disk usage:
    root: 495.62kB
  CPU usage:
    CPU usage (in seconds): 1
  Memory usage:
    Memory (current): 4.79MB
  Network usage:
    eth0:
      Bytes received: 730B
      Bytes sent: 1.59kB
      Packets received: 3
      Packets sent: 14
    lo:
      Bytes received: 0B
      Bytes sent: 0B
      Packets received: 0
      Packets sent: 0

Unnið með skyndimyndir ^

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.

Hvað annað? ^

  • Eining er fáanleg fyrir Python forritara PyLXD sem veitir API til LXD

UPPFÆRT 10.04.2020/15/00 XNUMX:XNUMX: Bætt við leiðsögn

Heimild: www.habr.com

Bæta við athugasemd