Karakteristik debaz nan LXD - Linux sistèm veso yo

Karakteristik debaz nan LXD - Linux sistèm veso yo

LXD se manadjè veso sistèm pwochen jenerasyon an, kidonk li di sous. Li ofri yon koòdone itilizatè ki sanble ak machin vityèl, men li itilize kontenè Linux olye.

LXD nwayo se yon demon privilejye (yon sèvis ki kouri ak dwa rasin) ki bay yon API REST atravè yon priz Unix lokal, osi byen ke atravè rezo a si konfigirasyon apwopriye a enstale. Kliyan, tankou zouti liy kòmand yo bay LXD, fè demann atravè API REST sa a. Sa vle di ke si w ap jwenn aksè nan yon lame lokal oswa yon lame aleka, tout bagay ap travay menm jan an.

Nan atik sa a, nou pa pral rete an detay sou konsèp LXD yo; nou pa pral konsidere tout kapasite ki disponib ki dekri nan dokiman an, ki gen ladan dènye aplikasyon an nan dènye vèsyon LXD sipò pou machin vityèl QEMU an paralèl ak resipyan yo. Olye de sa, nou pral aprann jis prensip debaz yo nan jesyon veso - mete kanpe pisin depo, rezo, kouri yon veso, aplike limit resous, ak kijan pou itilize snapshots pou ou ka jwenn yon konpreyansyon debaz sou LXD epi sèvi ak resipyan sou Linux.

Pou enfòmasyon konplè, tanpri al gade sous ofisyèl la:

Navigasyon

Enstalasyon LXD ^

Enstale LXD sou distribisyon Ubuntu ^

Nan pake distribisyon Ubuntu 19.10 lxd gen yon emisyon sou pake menen:

apt search lxd

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

Sa vle di ke de pakè yo pral enstale nan yon fwa, youn kòm yon pake sistèm ak lòt la kòm yon pake menen. Enstale de pakè sou yon sistèm ka kreye kèk pwoblèm kote pake sistèm lan ka vin òfelen si manadjè a pakè snap retire.

Jwenn pake lxd nan repozitwa menen an ou ka itilize lòd sa a:

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

Pa kouri lòd la list ou ka asire w ke pake a lxd poko enstale:

snap list

Name  Version    Rev   Tracking  Publisher   Notes
core  16-2.43.3  8689  stable    canonical✓  core

Malgre lefèt ke LXD se yon pake menen, li dwe enstale atravè pake sistèm lan lxd, ki pral kreye gwoup ki koresponn lan nan sistèm nan, sèvis piblik ki nesesè yo nan /usr/bin elatriye

sudo apt update
sudo apt install lxd

Ann asire w ke pake a enstale kòm yon pake menen:

snap list

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

Enstale LXD sou distribisyon Arch Linux ^

Pou enstale pake LXD sou sistèm lan, ou bezwen kouri kòmandman sa yo, premye a pral mete ajou lis pakè sou sistèm ki disponib nan repozitwa a, dezyèm lan pral dirèkteman enstale pake a:

sudo pacman -Syyu && sudo pacman -S lxd

Apre enstale pake a, yo nan lòd yo jere LXD pa yon itilizatè regilye, li dwe ajoute nan gwoup la sistèm lxd:

sudo usermod -a -G lxd user1

Ann asire w itilizatè a user1 ajoute nan gwoup la lxd:

id -Gn user1

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

Si gwoup la lxd se pa vizib nan lis la, Lè sa a, ou bezwen aktive sesyon itilizatè a ankò. Pou fè sa, ou bezwen konekte epi konekte anba itilizatè a menm.

Aktive nan systemd chaje sèvis LXD nan demaraj sistèm lan:

sudo systemctl enable lxd

Ann kòmanse sèvis la:

sudo systemctl start lxd

Tcheke estati sèvis la:

sudo systemctl status lxd

Depo LXD (Depo) ^

Anvan inisyalizasyon kòmanse, nou bezwen konprann ki jan depo nan LXD lojikman ranje.

Depo (depo) konsiste de soti nan youn oswa plis Depo pisin ki itilize youn nan sistèm dosye yo sipòte tankou ZFS, BTRFS, LVM oswa anyè regilye. Chak Depo pisin divize an volim (Volim Depo) ki gen imaj, resipyan, oswa done pou lòt rezon.

  • Imaj yo - sa yo se distribisyon espesyalman reyini san nwayo Linux la epi ki disponib nan sous ekstèn
  • Resipyan - sa yo se distribisyon deplwaye soti nan imaj, pare pou itilize
  • Snapshots - sa yo se snapshots nan eta a nan resipyan ke ou ka retounen nan

Karakteristik debaz nan LXD - Linux sistèm veso yo

Pou jere depo nan LXD, sèvi ak lòd la lxc storage yon sètifika pou ou ka jwenn lè w presize kle a - lxc storage --help

Kòmandman sa a montre yon lis tout Depo pisin nan depo LXD:

lxc storage list

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

Pou wè yon lis tout Volim Depo nan chwazi a Depo pisin sèvi ekip la 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       |
+-----------+----------------------------------+-------------+---------+

Epitou, si pou Depo pisin Lè kreye, yo te chwazi sistèm nan dosye BTRFS, Lè sa a, jwenn yon lis Volim Depo oswa subvolumes nan entèpretasyon BTRFS, ou ka itilize zouti sistèm fichye sa a:

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

Inisyalize LXD ^

Anvan ou kreye ak itilize kontenè, ou dwe fè yon inisyalizasyon jeneral LXD ki kreye ak konfigirasyon rezo a ak depo. Sa a ka fè manyèlman lè l sèvi avèk kòmandman kliyan estanda ki disponib nan lis la lè w rele lòd la lxc --help oswa lè l sèvi avèk sòsye inisyalizasyon an lxd init reponn kèk kesyon.

Chwazi yon sistèm dosye pou Depo Pool ^

Pandan inisyalizasyon, LXD poze plizyè kesyon, tankou detèmine kalite sistèm dosye pou default la Depo pisin. Pa default, yo chwazi sistèm nan dosye BTRFS pou li. Li pral enposib chanje nan yon lòt FS apre kreyasyon an. Pou chwazi yon FS li sijere tab konparezon karakteristik:

Karakteristik
Anyè
Btrfs
LVM
ZFS
CEPH

Depo imaj optimize
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi

Kreyasyon egzanp optimize
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi

Kreyasyon snapshot optimize
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi

Optimize transfè imaj
pa gen okenn
repons lan se wi
pa gen okenn
repons lan se wi
repons lan se wi

Optimize transfè egzanp
pa gen okenn
repons lan se wi
pa gen okenn
repons lan se wi
repons lan se wi

Kopi sou ekri
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi

Blòk baze
pa gen okenn
pa gen okenn
repons lan se wi
pa gen okenn
repons lan se wi

Klonaj enstantane
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi

Chofè depo ka itilize andedan yon veso
repons lan se wi
repons lan se wi
pa gen okenn
pa gen okenn
pa gen okenn

Restore soti nan pi gran snapshots (pa dènye)
repons lan se wi
repons lan se wi
repons lan se wi
pa gen okenn
repons lan se wi

Kota depo
wi (*)
repons lan se wi
repons lan se wi
repons lan se wi
pa gen okenn

Inisyalize rezo a ak pisin depo lè l sèvi avèk sòsye an ^

Pwochen kòmandman nou pral gade nan sijere mete konpozan prensipal yo nan LXD lè w reponn kesyon senp yo lè l sèvi avèk sòsye inisyalizasyon an.

Kouri lòd lxc init epi antre repons kesyon yo apre kolon an jan yo montre nan egzanp ki anba a oswa chanje yo selon kondisyon w yo:

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

Kreye yon pisin depo adisyonèl ^

Nan etap anvan an nou te kreye Depo pisin ki te bay non an ssdpool ak dosye a ki sitiye sou sistèm mwen an nan /var/lib/lxd/disks/ssdpool.img. Adrès sistèm fichye sa a koresponn ak kondwi SSD fizik nan PC mwen an.

Aksyon sa yo, elaji konpreyansyon yo genyen sou wòl nan jwe pa Depo pisin nan depo a, nou pral kreye yon dezyèm youn Depo pisin ki pral fizikman sitiye sou yon kalite diferan nan disk, HDD. Pwoblèm lan se ke LXD pa pèmèt ou kreye Depo pisin soti nan adrès /var/lib/lxd/disks/ e menm lyen senbolik pa pral travay, wè repons pwomotè a. Nou ka kontoune limit sa a pandan inisyalizasyon / fòma Depo pisin pa espesifye valè a kòm yon aparèy blòk olye pou yo chemen an nan dosye a loopback pa espesifye sa a nan kle a. source.

Se konsa, anvan kreye Depo pisin ou bezwen defini yon fichye loopback oswa yon patisyon ki deja egziste sou sistèm fichye ou ke li pral itilize. Pou fè sa, nou pral kreye epi sèvi ak yon dosye ke nou pral limite nan gwosè a 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

Ann konekte dosye loopback la nan yon aparèy loopback gratis:

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

/dev/loop1

Mèsi a kle a --show egzekite lòd la retounen nan ekran an non an nan aparèy la nan ki dosye loopback nou an konekte. Si sa nesesè, nou ka montre yon lis tout aparèy ki okipe kalite sa a pou asire ke aksyon nou yo kòrèk:

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

Nan lis la ou ka jwenn ke aparèy la genyen /dev/loop1 dosye loopback enkli /mnt/work/lxd/hddpool.img, ak nan aparèy la /dev/loop0 dosye loopback enkli /var/lib/lxd/disks/ssdpool.img ki koresponn ak default la Depo pisin.

Kòmandman sa a kreye yon nouvo Depo pisin nan LXD ki baze sou dosye loopback nou jis prepare. LXD pral fòma dosye loopback la /mnt/work/lxd/hddpool.img nan aparèy la /dev/loop1 pou sistèm dosye BTRFS:

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

Ann montre yon lis tout Depo pisin pou ekran:

lxc storage list

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

Ogmante Gwosè Pisin Depo a ^

Apre kreyasyon Depo pisin, si sa nesesè, li ka elaji. Pou Depo pisin baze sou sistèm dosye BTRFS la, kouri kòmandman sa yo:

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

Ensèsyon oto yon dosye loopback nan yon plas aparèy loopback ^

Nou gen yon ti pwoblèm, lè rdemare sistèm lame a, dosye a /mnt/work/lxd/hddpool.img pral "vole" soti nan aparèy la /dev/loop1 ak sèvis LXD la pral aksidan lè chaje paske li pa pral wè li nan aparèy sa a. Pou rezoud pwoblèm sa a ou bezwen kreye yon sèvis sistèm ki pral mete dosye sa a nan aparèy la /dev/loop1 lè sistèm lame a bòt.

Ann kreye inite kalite dosye sèvis в /etc/systemd/system/ pou sistèm inisyalizasyon SystemD:

cat << EOF | sudo tee -a /etc/systemd/system/lxd-hddpool.service
[Unit]
Description=Losetup LXD Storage Pool (hddpool)
After=local-fs.target

[Service]
Type=oneshot
ExecStart=/sbin/losetup /dev/loop1 /mnt/work/lxd/hddpool.img
RemainAfterExit=true

[Install]
WantedBy=local-fs.target
EOF

Aktive sèvis la:

sudo systemctl enable lxd-hddpool

Created symlink /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service → /etc/systemd/system/lxd-hddpool.service.

Apre rekòmanse sistèm lame a, nou tcheke estati sèvis la:

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

Soti nan pwodiksyon an nou ka verifye ke eta a sèvis se aktif, malgre lefèt ke ekzekisyon script nou an soti nan yon sèl kòmand te konplete, opsyon a pèmèt nou fè sa. RemainAfterExit=true.

Sekirite. Privilèj Veso ^

Piske tout pwosesis veso yo aktyèlman ap fonksyone nan izolasyon sou sistèm lame a lè l sèvi avèk nwayo li yo, pou plis pwoteje aksè nan pwosesis veso a nan sistèm lame a, LXD ofri privilèj pwosesis, kote:

  • Kontenè privilejye yo - sa yo se resipyan nan ki pwosesis ki gen UID ak GID koresponn ak pwopriyetè a menm ak sou sistèm lame a. Pa egzanp, yon pwosesis k ap kouri nan yon veso ki gen yon UID 0 gen tout dwa aksè ak yon pwosesis sou sistèm lame a ak yon UID 0. Nan lòt mo, itilizatè rasin nan veso a gen tout dwa pa sèlman nan veso a, men tou sou sistèm lame a si li ka ale deyò espas non izole veso a.

  • Kontenè ki pa gen privilèj - sa yo se resipyan kote pwosesis fè pati pwopriyetè a nan UID a ak GID ak yon nimewo ki soti nan 0 a 65535, men pou sistèm lame a se pwopriyetè a maske lè l sèvi avèk te ajoute SubUID ak SubGID Bits, respektivman. Pou egzanp, yon itilizatè ki gen UID = 0 nan yon veso yo pral wè sou sistèm lame a kòm SubUID + UID. Sa a pwoteje sistèm lame a paske si nenpòt pwosesis nan veso a kapab sove espas non izole li yo, li ka sèlman kominike ak sistèm lame a kòm yon pwosesis ki gen yon UID/GID enkoni, trè wo.

Pa default, kontenè ki fèk kreye yo gen yon estati san privilèj, kidonk nou dwe defini yon SubUID ak yon SubGID.

Ann kreye de fichye konfigirasyon kote nou pral mete mask la pou SubUID ak SubGID, respektivman:

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

Pou aplike chanjman yo, sèvis LXD a dwe rekòmanse:

sudo systemctl restart lxd

Kreye yon switch rezo vityèl ^

Depi nou te deja inisyalize rezo a lè l sèvi avèk sòsye inisyalizasyon an lxd init epi kreye yon aparèy rezo lxdbr0, Lè sa a, nan seksyon sa a nou pral tou senpleman fè konesans ak rezo nan LXD ak ki jan yo kreye yon switch vityèl (pon) lè l sèvi avèk lòd kliyan an.

Dyagram sa a montre kijan yon switch (pon) konekte lame a ak resipyan yo nan yon rezo:

Karakteristik debaz nan LXD - Linux sistèm veso yo

Kontenè yo ka kominike atravè yon rezo ak lòt resipyan oswa lame kote resipyan sa yo sèvi. Pou fè sa, ou bezwen konekte kat rezo vityèl nan resipyan yo ak yon switch vityèl. Nou pral kreye yon switch an premye, epi entèfas rezo veso a pral lye nan chapit ki vin apre yo, apre yo fin kreye veso a li menm.

Kòmandman sa a kreye yon switch ak yon subnet 10.0.5.0/24 ak adrès IPv4 10.0.5.1/24, epi li gen ladan tou ipv4.nat pou kontenè yo ka jwenn aksè nan entènèt la atravè lame a lè l sèvi avèk sèvis NAT la:

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

Tcheke lis aparèy rezo ki disponib nan LXD:

lxc network list

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

Ou ka verifye tou ke yo te kreye yon aparèy rezo lè l sèvi avèk zouti estanda distribisyon Linux la - ip link oswa 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

Konfigirasyon Profile ^

Chak veso nan LXD gen konfigirasyon pwòp li yo epi li ka pwolonje li ak konfigirasyon globalman te deklare yo rele pwofil konfigirasyon. Aplike pwofil konfigirasyon nan yon veso gen yon modèl kaskad, egzanp sa a montre sa:

Karakteristik debaz nan LXD - Linux sistèm veso yo

Nan egzanp sa a, twa pwofil yo te kreye nan sistèm nan LXD: default, hddpool и hostfs. Tout twa pwofil yo aplike nan yon veso ki gen yon konfigirasyon lokal (zòn gri). Profile default gen yon aparèy root ki gen yon paramèt pool egal ssdpool, men gras a modèl aplikasyon konfigirasyon kaskad la, nou ka aplike yon pwofil nan veso a hddpool ki gen yon paramèt pool pral pase sou desizyon menm paramèt nan pwofil la default ak veso a pral resevwa konfigirasyon aparèy la root ak paramèt pool egal hddpool, ak pwofil la hostfs tou senpleman ajoute yon nouvo aparèy nan veso a.

Pou wè lis pwofil konfigirasyon ki disponib yo, sèvi ak lòd sa a:

lxc profile list

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

Ou ka jwenn yon lis konplè sou kòmandman ki disponib pou travay ak yon pwofil lè w ajoute kle a --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

Modification profil ou ^

Pwofil konfigirasyon default default pa gen yon konfigirasyon kat rezo pou veso a ak tout resipyan ki fèk kreye pa gen yon rezo, pou yo li nesesè yo kreye aparèy rezo lokal (dedye) ak yon lòd separe, men nou ka kreye yon aparèy rezo mondyal nan konfigirasyon an. pwofil ki pral pataje ant tout resipyan ki itilize pwofil sa a. Nan fason sa a, imedyatman apre lòd pou kreye yon nouvo veso, yo pral gen yon rezo ak aksè rezo. An menm tan an, pa gen okenn restriksyon; nou ka toujou kreye yon aparèy rezo lokal pita si sa nesesè.

Kòmandman sa a pral ajoute aparèy la nan pwofil la konfigirasyon eth0 kalite nic konekte ak rezo a lxdbr0:

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

Li enpòtan sonje ke piske nou aktyèlman ajoute aparèy la nan pwofil la konfigirasyon, si nou espesifye yon adrès IP estatik nan aparèy la, Lè sa a, tout resipyan ki pral sèvi ak pwofil sa a pral pataje menm adrès IP la. Si gen yon bezwen yo kreye yon veso ki gen yon adrès IP estatik atribye ba pou veso a, Lè sa a, ou ta dwe kreye yon konfigirasyon aparèy rezo nan nivo veso a (konfigirasyon lokal) ak paramèt adrès IP la, epi yo pa nan nivo pwofil la.

Ann tcheke pwofil la:

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

Nan pwofil sa a nou ka wè ke pou tout resipyan ki fèk kreye de aparèy yo pral kreye:

  • eth0 - Kalite aparèy nic konekte ak yon switch (pon rezo) lxdbr0
  • root - Kalite aparèy disk ki itilize yon pisin depo ssdpool

Kreye nouvo pwofil ^

Pou itilize deja kreye Depo pisin resipyan, kreye yon pwofil konfigirasyon ssdroot nan ki nou pral ajoute yon aparèy tankou disk ak pwen mòn / (rasin) lè l sèvi avèk deja kreye a Depo pisin - ssdpool:

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

Menm jan an tou, nou kreye yon aparèy tankou disk, men nan ka sa a lè l sèvi avèk Depo pisin - hddpool:

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

Tcheke pwofil konfigirasyon:

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

Repozitwa imaj ^

Kontenè yo kreye nan imaj ki se distribisyon espesyalman reyini ki pa gen yon nwayo Linux. Se poutèt sa, anvan ou kouri veso a, li dwe deplwaye soti nan imaj sa a. Sous imaj yo se yon depo lokal kote imaj yo telechaje soti nan depo ekstèn.

Repozitwa imaj adistans ^

Pa default, LXD configured pou resevwa imaj ki soti nan twa sous aleka:

  • ubuntu: (pou imaj ki estab Ubuntu)
  • ubuntu-chak jou: (pou imaj Ubuntu chak jou)
  • imaj: (pou yon pakèt lòt distribisyon)

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

Pou egzanp, depo ubuntu: gen imaj sa yo:

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

Pou montre yon kantite limite nan kolòn nou te itilize opsyon a -c ak paramèt dasut, epi tou limite longè lis la ak lòd la head.

Filtraj disponib pou montre yon lis imaj. Kòmandman sa a pral lis tout achitekti distribisyon ki disponib 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        |
+------------------------------+--------------------------------------+--------------+

Repozitwa imaj lokal yo ^

Pou kòmanse itilize veso a, ou bezwen ajoute yon imaj ki soti nan depo mondyal la nan yon imaj lokal la local:. Koulye a, repozitwa lokal la vid, lòd la pral asire w ke sa a lxc image list. Si metòd la list pa presize yon repozitwa, Lè sa a, repozitwa lokal la pral itilize pa default - local:

lxc image list local:

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

Imaj nan depo a yo jere lè l sèvi avèk metòd sa yo:

Ekip
Deskripsyon

lxc imaj alyas
Jere alyas imaj

lxc imaj kopye
Kopi imaj ant sèvè yo

lxc imaj efase
Efase imaj

lxc imaj edite
Edit pwopriyete imaj

lxc imaj ekspòte
Ekspòte ak telechaje imaj

lxc imaj enpòte
Enpòte imaj nan magazen imaj la

lxc imaj info
Montre enfòmasyon itil sou imaj yo

lxc imaj lis
Lis imaj yo

lxc imaj rafrechir
Rafrechi imaj yo

lxc imaj Montre
Montre pwopriyete imaj yo

Kopi imaj la nan repozitwa lokal la soti nan yon sèl mondyal la images::

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

Image copied successfully!

Ann montre yon lis tout imaj ki disponib kounye a nan depo lokal la local::

lxc image -c lfdatsu list local:

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

LXD Konfigirasyon ^

Anplis de mòd nan entèaktif, LXD sipòte tou yon mòd enstalasyon konfigirasyon ki pa entèaktif, sa a se lè konfigirasyon an espesifye nan fòm lan nan yon dosye YAML, yon fòma espesyal ki pèmèt ou enstale tout konfigirasyon an nan yon fwa, kontoune ekzekisyon an. nan anpil kòmandman entèaktif ki te diskite pi wo a nan atik sa a, ki gen ladan konfigirasyon rezo, kreyasyon pwofil konfigirasyon, elatriye. Nou pa pral kouvri zòn sa a isit la, ou ka tcheke li pou kont ou. nan dokimantasyon.

Pwochen lòd entèaktif lxc config ki nou pral gade pèmèt ou mete konfigirasyon an. Pou egzanp, asire ke imaj telechaje nan depo lokal la pa otomatikman mete ajou soti nan depo mondyal yo, nou ka pèmèt konpòtman sa a ak lòd sa a:

lxc config set images.auto_update_cached=false

Kreye ak jere yon veso ^

Pou kreye yon veso itilize kòmandman an lxc init ki valè yo pase репозиторий:образ epi apre sa vle di ID pou veso a. Repozitwa a ka espesifye kòm lokal local: se konsa nenpòt moun mondyal. Si repozitwa a pa espesifye, lè sa a pa default repozitwa lokal la itilize pou fè rechèch pou imaj la. Si imaj la espesifye nan depo mondyal la, Lè sa a, imaj la pral premye telechaje nan repozitwa lokal la ak Lè sa a, itilize yo kreye veso a.

Ann kouri lòd sa a pou kreye premye veso nou an:

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

Ann gade nan kle yo lòd ke nou itilize isit la nan lòd:

  • alpine3 — Yo espesifye yon alyas (alyas) pou imaj la ki te deja telechaje nan repozitwa lokal la. Si alyas la pa te kreye pou imaj sa a, Lè sa a, ou ka toujou al gade nan imaj la pa li yo Anprent ki parèt nan tablo a.
  • alp — Mete idantifyan pou veso a
  • --storage — Kle sa a endike nan ki Depo pisin yon veso pral kreye
  • --profile — Kle sa yo kaskad aplike konfigirasyon soti nan pwofil konfigirasyon deja kreye nan veso a

Nou lanse veso a, ki kòmanse lanse sistèm init distribisyon an:

lxc start alp

Ou kapab tou itilize kòmandman an lxc launch ki pèmèt ou konbine ekip yo lxc init и lxc start nan yon sèl operasyon.

Tcheke eta veso a:

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

Tcheke konfigirasyon veso a:

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

Nan seksyon an profiles nou ka asire w ke veso sa a sèvi ak de pwofil konfigirasyon - default и hddroot. Nan seksyon devices nou ka sèlman detekte yon aparèy paske aparèy rezo a te kreye nan nivo pwofil la default. Yo nan lòd yo wè tout aparèy ki itilize nan veso a ou bezwen ajoute yon kle --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: ""

Mete yon adrès IP estatik ^

Si nou eseye mete yon adrès IP pou yon aparèy rezo eth0 ekip lxc config device set alp fèt pou konfigirasyon veso a, Lè sa a, nou pral resevwa yon erè ki pral rapòte ke aparèy la pa egziste paske aparèy la eth0 ki se itilize pa veso a fè pati pwofil la default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

Nou ka nan kou mete yon adrès IP estatik pou eth0 aparèy nan pwofil la, men li pral menm bagay la tou pou tout resipyan ki pral sèvi ak pwofil sa a. Se poutèt sa, ann ajoute yon aparèy dedye a veso a:

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

Lè sa a, ou bezwen rekòmanse veso a:

lxc restart alp

Si nou gade konfigirasyon veso a kounye a, nou pa bezwen sèvi ak opsyon an --expanded pou wè aparèy rezo a eth0, depi nou te kreye li nan nivo veso a epi li kaskad sou menm aparèy la soti nan pwofil la 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: ""

Retire yon veso ^

Pou retire yon veso, sèvi ak lòd la lxc delete, men anvan ou retire veso a, li dwe sispann lè l sèvi avèk lòd la lxc stop:

lxc stop alp

lxc list

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

Apre nou te verifye ke eta a nan veso a te vin tounen KANPE, li ka retire nan Depo pisin:

lxc delete alp

Aksè veso ^

Pou egzekite kòmandman nan yon veso dirèkteman, kontoune koneksyon rezo a, sèvi ak lòd la lxc exec ki egzekite kòmandman nan veso a san yo pa lanse koki sistèm lan. Si ou bezwen egzekite yon lòd nan yon koki lè l sèvi avèk modèl koki tankou varyab, redireksyon fichye (tiyo), elatriye, Lè sa a, ou bezwen klèman lanse koki a epi pase lòd la kòm yon kle, pou egzanp:

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

Kòmandman an te itilize yon karaktè chape espesyal pou karaktè espesyal $ se konsa ke varyab la $HOME pa te entèprete sou machin lame a, men li te entèprete sèlman andedan veso a.

Li posib tou pou kòmanse mòd nan koki entèaktif, ak Lè sa a, fini sesyon an pa egzekite hotkey CTRL+D:

lxc exec alp -- /bin/sh

Jesyon resous veso ^

Nan LXD, ou ka jere resous veso yo lè l sèvi avèk yon seri konfigirasyon espesyal. Ou ka jwenn yon lis konplè paramèt konfigirasyon veso yo nan dokimantasyon.

Limitasyon resous RAM ^

Paramèt limits.memory limite kantite RAM ki disponib nan veso a. Valè a se yon nimewo ak youn nan sifiks ki disponib.

Ann mete limit RAM veso a a 256 MB:

lxc config set alp limits.memory 256MB

Epitou, gen lòt paramèt pou limite memwa:

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

Ekip lxc config show pèmèt ou montre tout konfigirasyon veso a, ki gen ladan limit resous aplike yo te fikse:

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

Limit resous CPU ^

Gen plizyè fason pou limite resous CPU. kalite restriksyon yo:

  • limit.cpu - mare yon veso a youn oswa plizyè nwayo CPU
  • limits.cpu.allowance - jere swa CFS pwogramasyon kota lè limit tan an pase, oswa mekanis inivèsèl CPU pataje resous lè pousantaj la te pase
  • limits.cpu.priority - priyorite orè lè plizyè ka pataje yon seri processeurs yo bay menm pousantaj processeurs

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

Limit espas disk ^

Anplis de restriksyon sa yo limits.read, limits.write nou kapab tou limite kantite espas disk konsome pa veso a (sèlman travay ak ZFS oswa BTRFS):

lxc config device set alp root size=2GB

Apre enstalasyon, nan paramèt la devices.root.size Nou ka verifye limit la fikse:

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

Pou wè kota disk yo itilize nou ka jwenn nan lòd la 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

Malgre lefèt ke nou te mete yon limit pou aparèy la rasin nan veso a 2GB, sèvis piblik sistèm tankou df pa pral wè restriksyon sa a. Pou fè sa, nou pral fè yon ti tès epi chèche konnen ki jan li fonksyone.

Ann kreye 2 nouvo kontenè ki idantik nan menm bagay la Depo pisin (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         |
+------+---------+------------------+------+-----------+-----------+

Ann kreye yon dosye 1GB nan youn nan resipyan yo:

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

Ann asire w ke dosye a kreye:

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

Si nou gade nan dezyèm veso a, tcheke pou egzistans yon dosye nan menm kote a, Lè sa a, dosye sa a pa pral la, ki espere, paske resipyan yo kreye nan pwòp yo. Volim Depo nan menm bagay la Depo pisin:

lxc exec alp2 -- ls -lh
total 0

Men, ann konpare valè li pwodui df sou youn ak lòt veso a:

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

Aparèy /dev/loop1 monte kòm patisyon rasin lan Depo pisin ki resipyan sa yo itilize, kidonk yo pataje volim li ant de.

Estatistik konsomasyon resous ^

Ou ka wè estatistik konsomasyon resous pou yon veso lè l sèvi avèk kòmandman an:

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

Travay ak snapshots ^

LXD gen kapasite pou kreye snapshots epi retabli eta veso a nan men yo.

Pou kreye yon snapshot, kouri lòd sa a:

lxc snapshot alp snapshot1

Ekip la lxc snapshot pa gen kle ki disponib listSe poutèt sa, pou w wè lis snapshots ou bezwen sèvi ak kòmandman ki montre enfòmasyon jeneral sou veso a:

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

Ou ka retabli yon veso ki soti nan yon snapshot lè l sèvi avèk lòd la lxc restore espesifye veso a pou ki restorasyon an pral fèt ak alyas snapshot la:

lxc restore alp snapshot1

Yo itilize kòmandman sa a pou efase yon snapshot. Tanpri sonje ke sentaks kòmand la pa sanble ak tout lòt moun; isit la ou bezwen presize yon koupe devan apre non veso a. Si koupe a omisyon, Lè sa a, lòd pou efase yon snapshot entèprete kòm yon lòd pou efase yon veso!

lxc delete alp/snapshot1

Nan egzanp ki anwo a, nou te gade sa yo rele snapshots apatrid. LXD gen yon lòt kalite snapshots - eta, ki sove eta aktyèl la nan tout pwosesis nan veso a. Gen yon kantite karakteristik enteresan ak itil ki asosye ak snapshots eta.

Kisa ankò? ^

  • Yon modil disponib pou devlopè Python PyLXD ki bay yon API pou LXD

MIZAJOU 10.04.2020/15/00 XNUMX:XNUMX: Te ajoute navigasyon

Sous: www.habr.com

Add nouvo kòmantè