Mga sukaranan nga bahin sa LXD - Linux container system

Mga sukaranan nga bahin sa LXD - Linux container system

LXD mao ang sunod nga henerasyon nga tagdumala sa sudlanan sa sistema, mao nga giingon tinubdan. Nagtanyag kini og user interface nga susama sa mga virtual machine, apan naggamit hinuon og Linux containers.

LXD core usa ka pribilihiyo nga daemon (usa ka serbisyo nga nagdagan nga adunay mga katungod sa ugat) nga naghatag usa ka REST API pinaagi sa usa ka lokal nga unix socket, ingon man pinaagi sa network kung ang angay nga pag-configure na-install. Ang mga kliyente, sama sa command line tool nga gihatag uban sa LXD, nangayo pinaagi niining REST API. Kini nagpasabut nga kung nag-access ka sa usa ka lokal nga host o usa ka hilit nga host, parehas ang tanan.

Niini nga artikulo dili kami maghisgot sa detalye sa mga konsepto sa LXD, dili namo tagdon ang tanan nga magamit nga kapabilidad nga gilatid sa dokumentasyon, lakip ang bag-o nga pagpatuman sa pinakabag-o nga mga bersyon sa LXD sa suporta alang sa QEMU virtual machine nga susama sa mga sudlanan. Hinoon, makakat-on lang kami sa mga sukaranan sa pagdumala sa sudlanan - pag-set up sa mga storage pool, networking, pagpadagan sa usa ka sudlanan, pag-apply sa mga limitasyon sa kapanguhaan, ug unsaon paggamit sa mga snapshot aron makakuha ka og batakang pagsabot sa LXD ug paggamit sa mga sudlanan sa Linux.

Para sa kompletong impormasyon, palihog tan-awa ang opisyal nga tinubdan:

Pag-navigate

Pag-instalar LXD ^

Pag-instalar sa LXD sa mga distribusyon sa Ubuntu ^

Sa Ubuntu 19.10 distribution package lxd naay broadcast sa snap nga pakete:

apt search lxd

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

Kini nagpasabot nga duha ka mga pakete ang i-install sa usa ka higayon, ang usa ingon nga usa ka sistema nga pakete ug ang lain ingon nga usa ka snap nga pakete. Ang pag-instalar og duha ka pakete sa usa ka sistema mahimong makamugna og pipila ka problema diin ang sistema nga pakete mahimong maulila kon ang snap package tangtangon sa snap package manager.

Pangitag package lxd sa snap repository mahimo nimong gamiton ang mosunod nga sugo:

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

Pinaagi sa pagpadagan sa sugo list imong masiguro nga ang package lxd wala pa ma-install:

snap list

Name  Version    Rev   Tracking  Publisher   Notes
core  16-2.43.3  8689  stable    canonicalβœ“  core

Bisan pa sa kamatuoran nga ang LXD usa ka snap package, kinahanglan kini i-install pinaagi sa system package lxd, nga maghimo sa katugbang nga grupo sa sistema, ang gikinahanglan nga mga gamit sa /usr/bin ug uban pa.

sudo apt update
sudo apt install lxd

Atong siguroon nga ang package na-install isip snap package:

snap list

Name  Version    Rev    Tracking  Publisher   Notes
core  16-2.43.3  8689   stable    canonicalβœ“  core
lxd   3.21       13474  stable/…  canonicalβœ“  -

Pag-instalar sa LXD sa mga distribusyon sa Arch Linux ^

Aron ma-install ang LXD nga pakete sa sistema, kinahanglan nimo nga ipadagan ang mosunud nga mga mando, ang una mag-update sa lista sa mga pakete sa sistema nga magamit sa repository, ang ikaduha direkta nga mag-install sa package:

sudo pacman -Syyu && sudo pacman -S lxd

Human ma-install ang package, aron madumala ang LXD sa usa ka regular nga tiggamit, kinahanglan kini idugang sa grupo sa sistema lxd:

sudo usermod -a -G lxd user1

Atong siguroon ang tiggamit user1 gidugang sa grupo lxd:

id -Gn user1

user1 adm dialout cdrom floppy sudo audio dip video plugdev netdev lxd

Kung ang grupo lxd dili makita sa lista, nan kinahanglan nimo nga i-aktibo pag-usab ang sesyon sa gumagamit. Aron mahimo kini, kinahanglan ka nga mag-log out ug mag-log in sa ilawom sa parehas nga tiggamit.

Pag-aktibo sa systemd pagkarga sa serbisyo sa LXD sa pagsugod sa sistema:

sudo systemctl enable lxd

Atong sugdan ang serbisyo:

sudo systemctl start lxd

Pagsusi sa kahimtang sa serbisyo:

sudo systemctl status lxd

Pagtipig LXD (Pagtipig) ^

Sa dili pa magsugod ang pagsugod, kinahanglan natong masabtan kung giunsa ang pagtipig sa LXD sa lohikal nga pagkahan-ay.

Pagtipig (Pagtipig) naglangkob sa gikan sa usa o labaw pa Pool sa Pagtipig nga naggamit sa usa sa gisuportahan nga sistema sa file sama sa ZFS, BTRFS, LVM o regular nga mga direktoryo. Matag Pool sa Pagtipig gibahin ngadto sa mga volume (Tomo sa Pagtipig) nga adunay mga hulagway, sudlanan, o datos alang sa ubang mga katuyoan.

  • Mga hulagway - kini mga espesyal nga gitigum nga mga distribusyon nga wala ang Linux kernel ug magamit gikan sa gawas nga mga gigikanan
  • Mga sudlanan - kini ang gipakatap nga mga distribusyon gikan sa mga imahe, andam na gamiton
  • Mga snapshot - kini ang mga snapshot sa kahimtang sa mga sudlanan nga mahimo nimong ibalik

Mga sukaranan nga bahin sa LXD - Linux container system

Aron madumala ang pagtipig sa LXD, gamita ang mando lxc storage usa ka sertipiko diin mahimo nimong makuha pinaagi sa pagtino sa yawe - lxc storage --help

Ang mosunod nga sugo nagpakita sa usa ka listahan sa tanan Pool sa Pagtipig sa LXD storage:

lxc storage list

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

Aron makita ang usa ka lista sa tanan Tomo sa Pagtipig sa pinili Pool sa Pagtipig nagserbisyo sa team 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       |
+-----------+----------------------------------+-------------+---------+

Usab, kon alang sa Pool sa Pagtipig Sa paghimo, gipili ang BTRFS file system, dayon pagkuha usa ka lista Tomo sa Pagtipig o mga subvolume sa interpretasyon sa BTRFS, mahimo nimong gamiton ang toolkit niini nga file system:

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

Pagsugod sa LXD ^

Sa dili pa paghimo ug paggamit sa mga sudlanan, kinahanglan nimo nga buhaton ang usa ka kinatibuk-ang pagsugod sa LXD nga nagmugna ug nag-configure sa network ug pagtipig. Mahimo kini nga mano-mano gamit ang standard nga mga sugo sa kliyente nga anaa sa listahan pinaagi sa pagtawag sa sugo lxc --help o gamit ang initialization wizard lxd init pagtubag sa pipila ka mga pangutana.

Pagpili sa usa ka file system alang sa Storage Pool ^

Atol sa pagsugod, LXD mangutana sa pipila ka mga pangutana, lakip na ang pagtino sa matang sa file system alang sa default Pool sa Pagtipig. Sa kasagaran, ang BTRFS file system gipili alang niini. Imposible nga mag-ilis sa laing FS pagkahuman sa paghimo. Sa pagpili sa usa ka FS kini gisugyot lamesa sa pagtandi sa feature:

Cebuano News
Directory
Btrfs
LVM
ZFS
ANG CEPH

Na-optimize nga pagtipig sa imahe
Dili
oo
oo
oo
oo

Na-optimize nga paghimo sa pananglitan
Dili
oo
oo
oo
oo

Na-optimize nga paghimo sa snapshot
Dili
oo
oo
oo
oo

Na-optimize nga pagbalhin sa imahe
Dili
oo
Dili
oo
oo

Na-optimize nga pagbalhin sa pananglitan
Dili
oo
Dili
oo
oo

Kopyaha sa pagsulat
Dili
oo
oo
oo
oo

Gibase sa block
Dili
Dili
oo
Dili
oo

Diha-diha nga cloning
Dili
oo
oo
oo
oo

Ang drayber sa pagtipig magamit sa sulod sa usa ka sudlanan
oo
oo
Dili
Dili
Dili

Iuli gikan sa daan nga mga snapshot (dili pinakabag-o)
oo
oo
oo
Dili
oo

Mga quota sa pagtipig
oo (*)
oo
oo
oo
Dili

Pagsugod sa network ug Storage Pool gamit ang wizard ^

Ang sunod nga sugo nga atong tan-awon nagsugyot sa pag-set up sa mga nag-unang sangkap sa LXD pinaagi sa pagtubag sa yano nga mga pangutana gamit ang initialization wizard.

Dagan nga sugo lxc init ug isulod ang mga tubag sa mga pangutana pagkahuman sa colon sama sa gipakita sa panig-ingnan sa ubos o usba kini sumala sa imong mga kondisyon:

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

Paghimo og dugang nga Storage Pool ^

Sa miaging lakang nga among gibuhat Pool sa Pagtipig nga gihatag ang ngalan ssdpool ug ang file nga nahimutang sa akong sistema sa /var/lib/lxd/disks/ssdpool.img. Kini nga file system nga adres katumbas sa pisikal nga SSD drive sa akong PC.

Ang mosunod nga mga aksyon, aron mapalapad ang pagsabot sa papel nga gidula ni Pool sa Pagtipig sa repository, maghimo kami usa ka ikaduha Pool sa Pagtipig nga pisikal nga mahimutang sa lahi nga klase sa disk, HDD. Ang problema kay ang LXD dili motugot kanimo sa paghimo Pool sa Pagtipig wala sa adres /var/lib/lxd/disks/ ug bisan ang simbolikong mga link dili molihok, tan-awa ang tubag sa developer. Mahimo natong laktawan kini nga limitasyon sa panahon sa pagsugod/pag-format Pool sa Pagtipig pinaagi sa pagpiho sa bili isip block device imbes sa dalan paingon sa loopback file pinaagi sa pagpiho niini sa yawe source.

Busa, sa wala pa paghimo Pool sa Pagtipig kinahanglan nimo nga ipasabut ang usa ka loopback file o usa ka kasamtangan nga partisyon sa imong file system nga gamiton niini. Aron mahimo kini, maghimo kami ug mogamit usa ka file nga among limitahan ang gidak-on sa 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

Atong ikonektar ang loopback file sa usa ka libre nga loopback device:

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

/dev/loop1

Salamat sa yawe --show Ang pagpatuman sa sugo mobalik sa screen sa ngalan sa device diin ang atong loopback file konektado. Kung gikinahanglan, makapakita mi og lista sa tanang busy nga device niining matang aron masiguro nga husto ang among mga aksyon:

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

Gikan sa listahan imong makita nga ang device adunay /dev/loop1 gilakip ang loopback file /mnt/work/lxd/hddpool.img, ug sa device /dev/loop0 gilakip ang loopback file /var/lib/lxd/disks/ssdpool.img nga katumbas sa default Pool sa Pagtipig.

Ang mosunod nga sugo nagmugna og bag-o Pool sa Pagtipig sa LXD base sa loopback file nga bag-o lang namo giandam. Ang LXD mag-format sa loopback nga file /mnt/work/lxd/hddpool.img sa aparato /dev/loop1 alang sa BTRFS file system:

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

Atong ipakita ang listahan sa tanan Pool sa Pagtipig sa screen:

lxc storage list

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

Pagdugang sa Gidak-on sa Storage Pool ^

Pagkahuman sa paglalang Pool sa Pagtipig, kon gikinahanglan, kini mahimong palapdan. Alang sa Pool sa Pagtipig base sa BTRFS file system, padagana ang mosunod nga mga sugo:

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

Awtomatikong pagsal-ot sa loopback file ngadto sa loopback device slot ^

Kami adunay usa ka gamay nga problema, kung gi-reboot ang host system, ang file /mnt/work/lxd/hddpool.img "molupad" gikan sa device /dev/loop1 ug ang serbisyo sa LXD ma-crash kung mag-load tungod kay dili kini makita sa kini nga aparato. Aron masulbad kini nga problema kinahanglan nimo nga maghimo usa ka serbisyo sa sistema nga magsulud sa kini nga file sa aparato /dev/loop1 kung ang host system nag-boot.

Magbuhat ta yunit tipo sa file nga pag-alagad Π² /etc/systemd/system/ alang sa SystemD initialization system:

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

I-aktibo ang serbisyo:

sudo systemctl enable lxd-hddpool

Created symlink /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service β†’ /etc/systemd/system/lxd-hddpool.service.

Human ma-restart ang host system, among susihon ang kahimtang sa serbisyo:

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

Gikan sa output atong mapamatud-an nga ang kahimtang sa serbisyo mao aktibo, bisan pa sa kamatuoran nga ang pagpatuman sa among script gikan sa usa ka sugo nahuman, ang opsyon nagtugot kanamo sa pagbuhat niini RemainAfterExit=true.

Kaluwasan. Mga Pribilehiyo sa Container ^

Tungod kay ang tanan nga mga proseso sa sudlanan aktuwal nga nagdagan nga nag-inusara sa host system gamit ang kernel niini, aron mapanalipdan pa ang pag-access sa mga proseso sa sulud sa host system, ang LXD nagtanyag pribilehiyo sa proseso, diin:

  • Pribilehiyo nga mga sudlanan - kini mga sudlanan diin ang mga proseso nga adunay UID ug GID katumbas sa parehas nga tag-iya sama sa host system. Pananglitan, ang usa ka proseso nga nagdagan sa usa ka sudlanan nga adunay UID nga 0 adunay parehas nga mga katungod sa pag-access ingon usa ka proseso sa host system nga adunay UID nga 0. Sa ato pa, ang gamut nga tiggamit sa sulud adunay tanan nga mga katungod dili lamang sa ang sudlanan, apan usab sa host system kung makaadto siya sa gawas sa nahilit nga namespace sa sudlanan.

  • Mga sudlanan nga walay kapuslanan - kini mga sudlanan diin ang mga proseso iya sa tag-iya sa UID ug GID nga adunay numero gikan sa 0 hangtod 65535, apan alang sa host system ang tag-iya gitagoan gamit ang gidugang nga SubUID ug SubGID bits, matag usa. Pananglitan, ang usa ka user nga adunay UID=0 sa usa ka sudlanan makita sa host system ingon SubUID + UID. Gipanalipdan niini ang sistema sa host tungod kay kung adunay bisan unsang proseso sa sulud nga makalingkawas sa nahilit nga namespace, mahimo ra kini nga makigkomunikar sa host system ingon usa ka proseso nga adunay wala mailhi, taas kaayo nga UID / GID.

Sa kasagaran, ang bag-ong gibuhat nga mga sudlanan adunay usa ka dili pribilihiyo nga kahimtang ug busa kinahanglan naton ipasabut ang usa ka SubUID ug SubGID.

Maghimo kita og duha ka mga configuration file diin atong ibutang ang mask alang sa SubUID ug SubGID, matag usa:

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

Aron magamit ang mga pagbag-o, ang serbisyo sa LXD kinahanglan nga i-restart:

sudo systemctl restart lxd

Paghimo usa ka virtual nga switch sa network ^

Tungod kay una namong gisugdan ang network gamit ang initialization wizard lxd init ug naghimo ug network device lxdbr0, unya sa kini nga seksyon masinati ra naton ang networking sa LXD ug kung giunsa paghimo ang usa ka virtual switch (tulay) gamit ang command sa kliyente.

Ang mosunod nga diagram nagpakita kon sa unsang paagi ang switch (bridge) nagkonektar sa host ug mga sudlanan ngadto sa usa ka network:

Mga sukaranan nga bahin sa LXD - Linux container system

Ang mga sudlanan mahimong makigkomunikar pinaagi sa usa ka network sa ubang mga sudlanan o ang host diin kini nga mga sudlanan gisilbi. Aron mahimo kini, kinahanglan nimo nga i-link ang mga virtual network card sa mga sudlanan nga adunay virtual switch. Maghimo kami og switch una, ug ang mga interface sa network sa sudlanan masumpay sa sunod nga mga kapitulo, human ang sudlanan mismo nahimo.

Ang mosunod nga sugo nagmugna og switch nga adunay subnet 10.0.5.0/24 ug IPv4 address 10.0.5.1/24, ug naglakip usab ipv4.nat aron ang mga sudlanan maka-access sa Internet pinaagi sa host gamit ang serbisyo sa NAT:

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

Pagsusi sa listahan sa mga network device nga anaa sa LXD:

lxc network list

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

Mahimo usab nimo mapamatud-an nga ang usa ka aparato sa network nahimo gamit ang sukaranan nga himan sa pag-apod-apod sa Linux - ip link o 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

Profile sa Pag-configure ^

Ang matag sudlanan sa LXD adunay kaugalingon nga configuration ug mahimo kining i-extend gamit ang globally declared configurations nga gitawag mga profile sa pag-configure. Ang pagpadapat sa mga profile sa pag-configure sa usa ka sudlanan adunay usa ka modelo sa cascade, ang mosunod nga pananglitan nagpakita niini:

Mga sukaranan nga bahin sa LXD - Linux container system

Niini nga pananglitan, tulo ka mga profile ang nahimo sa LXD system: default, hddpool ΠΈ hostfs. Ang tanan nga tulo ka mga profile gipadapat sa usa ka sudlanan nga adunay lokal nga pagsumpo (gray nga lugar). Profile default adunay device root nga adunay parameter pool parehas sa ssdpool, apan salamat sa modelo sa aplikasyon sa pag-configure sa cascade, mahimo namon nga magamit ang usa ka profile sa sulud hddpool nga adunay parameter pool i-override ang parehas nga parameter gikan sa profile default ug ang sudlanan makadawat sa configuration sa device root uban sa parameter pool managsama hddpool, ug ang profile hostfs magdugang lang og bag-ong device sa sudlanan.

Aron makita ang lista sa magamit nga mga profile sa pag-configure, gamita ang mosunud nga mando:

lxc profile list

+---------+---------+
|  NAME   | USED BY |
+---------+---------+
| default | 1       |
+---------+---------+
| hddroot | 0       |
+---------+---------+
| ssdroot | 1       |
+---------+---------+

Ang usa ka kompleto nga lista sa magamit nga mga sugo alang sa pagtrabaho sa usa ka profile mahimong makuha pinaagi sa pagdugang sa yawe --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

Pag-edit sa imong profile ^

Default nga profile sa pag-configure default walay network card configuration alang sa sudlanan ug ang tanan nga bag-ong gimugna nga mga sudlanan walay network, alang kanila gikinahanglan ang paghimo sa lokal (dedicated) nga mga device sa network nga adunay usa ka linain nga sugo, apan makahimo kita og global network device sa configuration profile nga ipaambit tali sa tanan nga mga sudlanan nga naggamit niini nga profile. Niining paagiha, pagkahuman dayon sa mando nga maghimo usa ka bag-ong sudlanan, makabaton sila usa ka network nga adunay access sa network. Sa parehas nga oras, wala’y mga pagdili; mahimo namon kanunay nga maghimo usa ka lokal nga aparato sa network sa ulahi kung kinahanglan.

Ang mosunod nga sugo magdugang sa device ngadto sa configuration profile eth0 type nic konektado sa network lxdbr0:

lxc profile device add default eth0 nic network=lxdbr0 name=eth0

Mahinungdanon nga timan-an nga tungod kay gidugang namon ang aparato sa profile sa pag-configure, kung gipiho namon ang usa ka static nga IP address sa aparato, nan ang tanan nga mga sulud nga mogamit niini nga profile mag-ambit sa parehas nga IP address. Kung adunay panginahanglan sa paghimo og usa ka sudlanan nga adunay usa ka static nga IP address nga gigahin alang sa sudlanan, nan kinahanglan nga maghimo ka usa ka network device configuration sa lebel sa container (lokal nga configuration) nga adunay parameter sa IP address, ug dili sa lebel sa profile.

Atong susihon ang profile:

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

Niini nga profile atong makita nga alang sa tanan nga bag-ong gibuhat nga mga sudlanan duha ka mga himan ang pagabuhaton:

  • eth0 β€” Type sa device nic konektado sa switch (network bridge) lxdbr0
  • root β€” Type sa device disk nga naggamit ug storage pool ssdpool

Paghimo bag-ong mga profile ^

Sa paggamit sa kaniadto gibuhat Pool sa Pagtipig mga sudlanan, paghimo usa ka profile sa pagsumpo ssdroot diin magdugang kami usa ka aparato sama sa disk uban sa mount point / (gamut) gamit ang nabuhat kaniadto Pool sa Pagtipig - ssdpool:

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

Sa susama, naghimo kami usa ka aparato nga sama disk, apan sa kini nga kaso naggamit Pool sa Pagtipig - hddpool:

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

Pagsusi sa mga profile sa pag-configure:

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

Imahen repository ^

Ang mga sudlanan gimugna gikan sa mga hulagway nga espesyal nga gitigom nga mga distribusyon nga walay Linux kernel. Busa, sa dili pa modagan ang sudlanan, kini kinahanglan nga i-deploy gikan niini nga hulagway. Ang gigikanan sa mga imahe usa ka lokal nga repository diin ang mga imahe gi-download gikan sa mga eksternal nga repositoryo.

Mga repositori sa layo nga imahe ^

Sa kasagaran, ang LXD gi-configure aron makadawat og mga hulagway gikan sa tulo ka hilit nga tinubdan:

  • ubuntu: (para sa stable nga mga imahe sa Ubuntu)
  • ubuntu-adlaw-adlaw: (alang sa adlaw-adlaw nga mga imahe sa Ubuntu)
  • mga larawan: (alang sa usa ka hugpong sa ubang mga distro)

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

Pananglitan, repository ubuntu: adunay mosunod nga mga hulagway:

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

Aron ipakita ang limitado nga gidaghanon sa mga kolum gigamit namon ang kapilian -c uban sa mga parameter dasut, ug gilimitahan usab ang gitas-on sa lista nga adunay mando head.

Anaa ang pagsala aron ipakita ang lista sa mga imahe. Ang mosunud nga mando maglista sa tanan nga magamit nga mga arkitektura sa pag-apod-apod 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        |
+------------------------------+--------------------------------------+--------------+

Lokal nga tipiganan sa imahe ^

Aron magsugod sa paggamit sa sudlanan, kinahanglan nimo nga idugang ang usa ka imahe gikan sa global nga repository sa lokal local:. Karon ang lokal nga repository walay sulod, ang mando magsiguro niini lxc image list. Kung ang pamaagi list ayaw ipiho ang usa ka tipiganan, unya ang lokal nga tipiganan gamiton sa default - local:

lxc image list local:

+-------+-------------+--------+-------------+--------------+------+------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE |
+-------+-------------+--------+-------------+--------------+------+------+

Ang mga imahe sa repository gidumala gamit ang mosunod nga mga pamaagi:

team
paghulagway

lxc nga imahe alyas
Pagdumala sa mga alyas sa imahe

lxc nga imahe kopya
Kopyaha ang mga imahe tali sa mga server

lxc nga imahe panas
Pagtangtang mga imahe

lxc nga imahe usba
I-edit ang mga kabtangan sa imahe

lxc nga imahe export
I-export ug i-download ang mga hulagway

lxc nga imahe import
I-import ang mga imahe sa tindahan sa imahe

lxc nga imahe info
Ipakita ang mapuslanong impormasyon bahin sa mga hulagway

lxc nga imahe listahan
Ilista ang mga hulagway

lxc nga imahe nga pagpabag-o
I-refresh ang mga hulagway

lxc nga imahe show
Ipakita ang mga kabtangan sa imahe

Kopyaha ang imahe sa lokal nga repository gikan sa global images::

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

Image copied successfully!

Atong ipakita ang usa ka lista sa tanan nga mga imahe nga magamit karon sa lokal nga tipiganan local::

lxc image -c lfdatsu list local:

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

LXD Configuration ^

Gawas pa sa interactive mode, ang LXD usab nagsuporta sa usa ka non-interactive configuration installation mode, kini mao ang panahon nga ang configuration gitino sa porma sa usa ka YAML file, usa ka espesyal nga format nga nagtugot kanimo sa pag-instalar sa tibuok nga configuration sa usa ka higayon, sa pag-bypass sa execution. sa daghang mga interactive nga mga sugo nga gihisgutan sa ibabaw niini nga artikulo, lakip ang network configuration, paghimo sa configuration profiles, etc. Dili namo tabonan kining dapita dinhi, mahimo nimong susihon kini sa imong kaugalingon. sa dokumentasyon.

Sunod nga interactive nga sugo lxc config nga among tan-awon nagtugot kanimo sa pag-set sa configuration. Pananglitan, aron masiguro nga ang na-download nga mga imahe sa lokal nga tipiganan dili awtomatiko nga na-update gikan sa mga global nga repositoryo, mahimo naton kini nga pamatasan gamit ang mosunud nga mando:

lxc config set images.auto_update_cached=false

Paghimo ug pagdumala sa usa ka sudlanan ^

Aron makahimo og sudlanan gamita ang command lxc init diin ang mga kantidad gipasa Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:ΠΎΠ±Ρ€Π°Π· ug dayon ang gusto nga ID alang sa sudlanan. Ang repository mahimong ipiho nga lokal local: mao usab ang bisan unsang global. Kung ang repository wala gitino, nan pinaagi sa default ang lokal nga repository gigamit sa pagpangita sa imahe. Kung ang imahe gitino gikan sa global nga repository, nan ang imahe una nga ma-download sa lokal nga tipiganan ug dayon gamiton sa paghimo sa sudlanan.

Atong padaganon ang mosunod nga sugo sa paghimo sa atong unang sudlanan:

lxc init alpine3 alp --storage=hddpool --profile=default --profile=hddroot

Atong tan-awon ang mga command key nga atong gigamit dinhi sa pagkahan-ay:

  • alpine3 β€” Usa ka alyas (alias) ang gitakda alang sa imahe nga kaniadto gi-upload sa lokal nga tipiganan. Kung ang alyas wala gihimo para sa kini nga imahe, nan mahimo nimo kanunay nga i-refer ang imahe pinaagi niini Fingerprint nga gipakita sa lamesa.
  • alp β€” Nagtakda sa identifier alang sa sudlanan
  • --storage β€” Kini nga yawe nagpaila kung diin Pool sa Pagtipig usa ka sudlanan ang pagabuhaton
  • --profile β€” Kini nga mga yawe nga cascade nag-aplay sa pag-configure gikan sa nabuhat kaniadto nga mga profile sa pag-configure sa sulud

Gilunsad namo ang sudlanan, nga nagsugod sa paglansad sa init nga sistema sa pag-apod-apod:

lxc start alp

Mahimo usab nimo gamiton ang mando lxc launch nga nagtugot kanimo sa paghiusa sa mga team lxc init ΠΈ lxc start sa usa ka operasyon.

Pagsusi sa kahimtang sa sudlanan:

lxc list -c ns46tb
+------+---------+------------------+------+-----------+--------------+
| NAME |  STATE  |       IPV4       | IPV6 |   TYPE    | STORAGE POOL |
+------+---------+------------------+------+-----------+--------------+
| alp  | RUNNING | 10.0.5.46 (eth0) |      | CONTAINER | hddpool      |
+------+---------+------------------+------+-----------+--------------+

Pagsusi sa configuration sa sudlanan:

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

Sa seksyon profiles masiguro nato nga kini nga sudlanan naggamit ug duha ka mga profile sa configuration βˆ’ default ΠΈ hddroot. Sa seksyon devices usa ra ang among makit-an nga aparato tungod kay ang aparato sa network gihimo sa lebel sa profile default. Aron makita ang tanan nga mga aparato nga gigamit sa sudlanan kinahanglan nimo nga magdugang usa ka yawe --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: ""

Pagbutang ug static nga IP address ^

Kon kita mosulay sa pagbutang sa usa ka IP address alang sa usa ka network device eth0 team lxc config device set alp gituyo alang sa pagsumpo sa sudlanan, unya makadawat kami usa ka sayup nga magreport nga wala ang aparato tungod kay ang aparato eth0 nga gigamit sa sudlanan iya sa profile default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

Siyempre mahimo namon nga magbutang usa ka static nga IP address alang sa eth0 mga aparato sa profile, apan parehas kini sa tanan nga mga sudlanan nga mogamit niini nga profile. Busa, magdugang kita og device nga gipahinungod sa sudlanan:

lxc config device add alp eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5

Unya kinahanglan nimo nga i-restart ang sudlanan:

lxc restart alp

Kung atong tan-awon ang configuration sa sudlanan karon, dili na nato kinahanglan nga gamiton ang opsyon --expanded aron makita ang network device eth0, tungod kay gimugna namo kini sa lebel sa sudlanan ug nag-cascade kini sa samang device gikan sa profile 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: ""

Pagtangtang sa usa ka sudlanan ^

Aron makuha ang usa ka sudlanan gamita ang command lxc delete, apan sa dili pa tangtangon ang sudlanan, kinahanglang hunongon kini gamit ang sugo lxc stop:

lxc stop alp

lxc list

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

Human namo mapamatud-an nga ang kahimtang sa sudlanan nahimong GINAMIT, kini mahimong tangtangon gikan sa Pool sa Pagtipig:

lxc delete alp

Pag-access sa sudlanan ^

Aron ipatuman ang mga sugo sa usa ka sudlanan nga direkta, pag-bypass sa mga koneksyon sa network, gamita ang command lxc exec nga nagpatuman sa mga sugo sa sudlanan nga walay paglansad sa kabhang sa sistema. Kung kinahanglan nimo nga ipatuman ang usa ka mando sa usa ka kabhang gamit ang mga pattern sa kabhang sama sa mga variable, pag-redirect sa file (pipe), ug uban pa, nan kinahanglan nimo nga klaro nga ilunsad ang kabhang ug ipasa ang mando ingon usa ka yawe, pananglitan:

lxc exec alp -- /bin/sh -c "echo $HOME"

Ang sugo migamit ug espesyal nga karakter sa pag-ikyas alang sa espesyal nga kinaiya $ aron ang variable $HOME wala gihubad sa host machine, apan gihubad lamang sulod sa sudlanan.

Posible usab nga sugdan ang interactive shell mode, ug dayon tapuson ang session pinaagi sa pag-execute sa hotkey CTRL+D:

lxc exec alp -- /bin/sh

Pagdumala sa kahinguhaan sa sudlanan ^

Sa LXD, mahimo nimong madumala ang mga kahinguhaan sa sulud gamit ang usa ka espesyal nga set sa pag-configure. Ang usa ka kompleto nga lista sa mga parameter sa pagsumpo sa sudlanan makit-an sa dokumentasyon.

Limitasyon sa kapanguhaan sa RAM ^

Parameter limits.memory limitahan ang gidaghanon sa RAM nga magamit sa sudlanan. Ang kantidad usa ka numero ug usa sa magamit nga mga suffix.

Atong ibutang ang limitasyon sa RAM sa sudlanan ngadto sa 256 MB:

lxc config set alp limits.memory 256MB

Usab, adunay uban pang mga parameter alang sa paglimit sa memorya:

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

team lxc config show nagtugot kanimo sa pagpakita sa tibuok nga configuration sa sudlanan, lakip ang gipadapat nga limitasyon sa kapanguhaan nga gitakda:

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

Limitasyon sa kapanguhaan sa CPU ^

Adunay daghang mga paagi aron limitahan ang mga kapanguhaan sa CPU. matang sa mga pagdili:

  • limit.cpu - nagbugkos sa usa ka sudlanan sa usa o daghan pa nga mga core sa CPU
  • limits.cpu.allowance - nagdumala sa CFS scheduler quota kung ang limitasyon sa oras milabay na, o ang universal CPU resource sharing mechanism kung ang porsyento milabay na
  • limits.cpu.priority - prayoridad sa scheduler kung daghang mga higayon nga nag-ambit sa usa ka set sa mga processor gi-assign sa parehas nga porsyento sa mga processor

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

Limitasyon sa espasyo sa disk ^

Dugang pa sa mga pagdili sa ingon limits.read, limits.write mahimo usab natong limitahan ang gidaghanon sa espasyo sa disk nga gigamit sa sudlanan (nagtrabaho lamang sa ZFS o BTRFS):

lxc config device set alp root size=2GB

Human sa pag-instalar, sa parameter devices.root.size Atong mapamatud-an ang gitakdang limitasyon:

lxc config show alp
...
devices:
  root:
    path: /
    pool: hddpool
    size: 2GB
    type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""

Aron matan-aw ang gigamit nga disk quota nga makuha nato gikan sa command 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

Bisan pa sa kamatuoran nga nagbutang kami usa ka limitasyon alang sa gamut nga aparato sa sulud sa 2GB, ang mga kagamitan sa sistema sama sa df dili makakita niini nga pagdili. Aron mahimo kini, maghimo kami usa ka gamay nga pagsulay ug mahibal-an kung giunsa kini molihok.

Magbuhat ta ug 2 ka bag-ong parehas nga sudlanan sa parehas Pool sa Pagtipig (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         |
+------+---------+------------------+------+-----------+-----------+

Magbuhat ta og 1GB nga file sa usa sa mga sudlanan:

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

Atong siguroon nga ang file gihimo:

lxc exec alp1 -- ls -lh
total 1000M  
-rw-r--r--    1 root     root     1000.0M Mar 27 10:16 file.img

Kung atong tan-awon ang ikaduha nga sudlanan, susihon kung adunay usa ka file sa parehas nga lokasyon, nan kini nga file wala didto, nga gilauman, tungod kay ang mga sudlanan gihimo sa ilang kaugalingon. Tomo sa Pagtipig sa samang Pool sa Pagtipig:

lxc exec alp2 -- ls -lh
total 0

Apan atong itandi ang mga kantidad nga gipatungha niini df sa usa ug sa lain nga sudlanan:

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% /
...

Gunitanan /dev/loop1 gi-mount ingon nga partition sa gamut Pool sa Pagtipig nga gigamit niini nga mga sudlanan, mao nga gibahin nila ang gidaghanon niini tali sa duha.

Estadistika sa konsumo sa kahinguhaan ^

Mahimo nimong tan-awon ang mga istatistika sa pagkonsumo sa kapanguhaan alang sa usa ka sudlanan gamit ang mando:

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

Pagtrabaho uban ang mga snapshot ^

Ang LXD adunay katakus sa paghimo og mga snapshot ug ibalik ang kahimtang sa sulud gikan kanila.

Aron makahimo og snapshot, pagdagan ang mosunod nga sugo:

lxc snapshot alp snapshot1

Ang grupo lxc snapshot walay yawe nga magamit list, busa, aron matan-aw ang lista sa mga snapshot kinahanglan nimo gamiton ang mando nga nagpakita sa kinatibuk-ang kasayuran bahin sa sulud:

lxc info alp
...
...
Snapshots:
  snapshot1 (taken at 2020/04/08 18:18 UTC) (stateless)

Mahimo nimong ibalik ang usa ka sudlanan gikan sa usa ka snapshot gamit ang mando lxc restore nga nagpiho sa sudlanan diin ipahigayon ang pagpahiuli ug ang snapshot alias:

lxc restore alp snapshot1

Ang mosunod nga sugo gigamit sa pagtangtang sa usa ka snapshot. Palihug timan-i nga ang command syntax dili parehas sa tanan; dinhi kinahanglan nimo nga itakda ang usa ka forward slash pagkahuman sa ngalan sa sudlanan. Kung ang slash wala iapil, nan ang mando sa pagtangtang sa usa ka snapshot gihubad ingon usa ka mando sa pagtangtang sa usa ka sudlanan!

lxc delete alp/snapshot1

Sa pananglitan sa ibabaw, among gitan-aw ang gitawag nga stateless snapshots. Ang LXD adunay lain nga tipo sa mga snapshot - stateful, nga nagtipig sa karon nga kahimtang sa tanan nga mga proseso sa sulud. Adunay ubay-ubay nga makapaikag ug mapuslanon nga mga bahin nga may kalabutan sa stateful snapshots.

Unsa pa? ^

  • Adunay usa ka module alang sa mga developer sa Python PyLXD nga naghatag ug API sa LXD

I-UPDATE 10.04.2020/15/00 XNUMX:XNUMX: Gidugang ang nabigasyon

Source: www.habr.com

Idugang sa usa ka comment