Fitur dasar LXD - sistem wadah Linux

Fitur dasar LXD - sistem wadah Linux

LXD nyaéta manajer wadahna sistem generasi saterusna, ceuk eta nyebutkeun sumber. Ieu nawiskeun antarbeungeut pangguna anu sami sareng mesin virtual, tapi nganggo wadah Linux.

LXD inti mangrupakeun daemon istiméwa (layanan ngajalankeun kalawan hak root) nu nyadiakeun API REST via stop kontak unix lokal, kitu ogé via jaringan lamun konfigurasi luyu dipasang. Klién, sapertos alat garis paréntah anu disayogikeun sareng LXD, ngadamel pamundut ngalangkungan API REST ieu. Ieu ngandung harti yén naha anjeun ngaksés host lokal atanapi host jauh, sadayana jalanna sami.

Dina artikel ieu, urang moal Huni di jéntré dina konsép LXD; urang moal mertimbangkeun sagala kamampuhan sadia outlined dina dokuméntasi, kaasup palaksanaan panganyarna dina versi panganyarna tina LXD rojongan pikeun mesin virtual QEMU sajajar jeung peti. Sabalikna, urang bakal diajar ngan ukur dasar-dasar manajemén wadahna - nyetél kolam renang panyimpen, jaringan, ngajalankeun wadahna, nerapkeun wates sumber daya, sareng kumaha cara ngagunakeun jepretan supados anjeun tiasa ngartos dasar LXD sareng nganggo wadah dina Linux.

Kanggo inpormasi lengkep, mangga tingal sumber resmi:

Napigasi

Pamasangan LXD ^

Masang LXD dina distribusi Ubuntu ^

Dina pakét distribusi Ubuntu 19.10 lxd gaduh siaran on pakét snap:

apt search lxd

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

Ieu ngandung harti yén dua pakét bakal dipasang sakaligus, hiji salaku pakét sistem sareng anu sanésna salaku pakét snap. Masang dua pakét dina sistem tiasa nyiptakeun sababaraha masalah dimana pakét sistem tiasa janten yatim upami pakét snap dihapus ku manajer pakét snap.

Manggihan pakét lxd dina gudang snap anjeun tiasa nganggo paréntah di handap ieu:

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

Ku ngajalankeun paréntah list anjeun tiasa mastikeun yén pakét lxd teu acan dipasang:

snap list

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

Sanaos kanyataan yén LXD mangrupikeun pakét snap, éta kedah dipasang dina pakét sistem lxd, nu bakal nyieun grup pakait dina sistem, nu Utiliti perlu di /usr/bin jeung sajabana

sudo apt update
sudo apt install lxd

Hayu urang pastikeun yén pakét dipasang salaku pakét snap:

snap list

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

Masang LXD dina distribusi Arch Linux ^

Pikeun masang pakét LXD dina sistem, anjeun kedah ngajalankeun paréntah di handap ieu, anu kahiji bakal ngamutahirkeun daptar bungkusan dina sistem anu aya dina gudang, anu kadua bakal langsung masang pakét:

sudo pacman -Syyu && sudo pacman -S lxd

Saatos masang pakét, pikeun ngatur LXD ku pangguna biasa, éta kedah dilebetkeun kana grup sistem lxd:

sudo usermod -a -G lxd user1

Hayu urang pastikeun pamaké user1 ditambahkeun kana grup lxd:

id -Gn user1

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

Lamun grup lxd henteu katingali dina daptar, teras anjeun kedah ngaktipkeun sési pangguna deui. Pikeun ngalakukeun ieu, anjeun kedah kaluar sareng log in dina pangguna anu sami.

Aktipkeun di systemd ngamuat jasa LXD dina ngamimitian sistem:

sudo systemctl enable lxd

Hayu urang ngamimitian jasa:

sudo systemctl start lxd

Mariksa status jasa:

sudo systemctl status lxd

Panyimpenan LXD (Panyimpenan) ^

Sateuacan initialization dimimitian, urang kudu ngarti kumaha gudang di LXD diatur logis.

Panyimpenan (panyimpenan) mangrupa ti hiji atawa leuwih Kolam Panyimpenan anu ngagunakeun salah sahiji sistem file anu dirojong sapertos ZFS, BTRFS, LVM atanapi diréktori biasa. Unggal Kolam Panyimpenan dibagi kana jilid (Volume Panyimpenan) anu ngandung gambar, wadah, atanapi data pikeun tujuan anu sanés.

  • Nu gambar - ieu mangrupikeun distribusi anu dirakit khusus tanpa kernel Linux sareng sayogi ti sumber éksternal
  • Wadahna - ieu disebarkeun distribusi tina gambar, siap dianggo
  • Jepret - ieu mangrupikeun gambar tina kaayaan wadah anu anjeun tiasa uih deui

Fitur dasar LXD - sistem wadah Linux

Pikeun ngatur gudang di LXD, make paréntah lxc storage sertipikat anu anjeun tiasa kéngingkeun ku netepkeun konci - lxc storage --help

Paréntah di handap ieu mintonkeun daptar sadaya Kolam Panyimpenan dina panyimpenan LXD:

lxc storage list

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

Pikeun nempo daptar sadaya Volume Panyimpenan dina dipilih Kolam Panyimpenan ngalayanan tim 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       |
+-----------+----------------------------------+-------------+---------+

Ogé, lamun keur Kolam Panyimpenan Nalika nyiptakeun, sistem file BTRFS dipilih, teras kéngingkeun daptar Volume Panyimpenan atawa subvolum dina interpretasi BTRFS, anjeun tiasa nganggo toolkit sistem file ieu:

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

Initializing LXD ^

Sateuacan nyieun sareng nganggo wadah, anjeun kedah ngalakukeun inisialisasi LXD umum anu nyiptakeun sareng ngonpigurasikeun jaringan sareng panyimpenan. Ieu tiasa dilakukeun sacara manual nganggo paréntah klien standar anu sayogi dina daptar ku nelepon paréntah lxc --help atawa ngagunakeun wizard initialization lxd init ngajawab sababaraha patarosan.

Milih sistem file pikeun Storage Pool ^

Salila inisialisasi, LXD naroskeun sababaraha patarosan, kalebet nangtukeun jinis sistem file pikeun standar Kolam Panyimpenan. Sacara standar, sistem file BTRFS dipilih pikeun éta. Ieu bakal mustahil pikeun ngaganti ka FS sejen sanggeus kreasi. Pikeun milih FS disarankeun tabel ngabandingkeun fitur:

hal nu husus
pitunjuk
Btrfs
LVM
ZFS
CEPH

Panyimpen gambar dioptimalkeun
No
nuhun
nuhun
nuhun
nuhun

Nyiptakeun conto anu dioptimalkeun
No
nuhun
nuhun
nuhun
nuhun

Kreasi snapshot dioptimalkeun
No
nuhun
nuhun
nuhun
nuhun

Dioptimalkeun mindahkeun gambar
No
nuhun
No
nuhun
nuhun

Dioptimalkeun mindahkeun conto
No
nuhun
No
nuhun
nuhun

Salin dina tulisan
No
nuhun
nuhun
nuhun
nuhun

Blok dumasar
No
No
nuhun
No
nuhun

Kloning instan
No
nuhun
nuhun
nuhun
nuhun

Panyimpen supir tiasa dianggo di jero wadah
nuhun
nuhun
No
No
No

Pulihkeun tina snapshot anu langkung lami (sanes panganyarna)
nuhun
nuhun
nuhun
No
nuhun

kuota gudang
nuhun(*)
nuhun
nuhun
nuhun
No

Inisialisasi jaringan sareng Kolam Panyimpenan nganggo wizard ^

Paréntah salajengna anu bakal urang tingali nunjukkeun nunjukkeun nyetél komponén utama LXD ku ngawalon patarosan sederhana nganggo wizard initialization.

Jalankeun paréntah lxc init sareng lebetkeun jawaban kana patarosan saatos titik dua sapertos anu dipidangkeun dina conto di handap ieu atanapi robihkeunana dumasar kana kaayaan anjeun:

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

Nyiptakeun Kolam Panyimpenan tambahan ^

Dina hambalan saméméhna kami dijieun Kolam Panyimpenan nu dibéré ngaran ssdpool sareng file anu aya dina sistem kuring di /var/lib/lxd/disks/ssdpool.img. Alamat sistem file ieu pakait sareng drive SSD fisik dina PC kuring.

lampah handap, pikeun dilegakeun pamahaman peran dicoo ku Kolam Panyimpenan dina gudang, urang bakal nyieun hiji kadua Kolam Panyimpenan anu sacara fisik bakal aya dina jinis disk anu béda, HDD. Masalahna nyaéta LXD henteu ngamungkinkeun anjeun nyiptakeun Kolam Panyimpenan kaluar tina alamat /var/lib/lxd/disks/ komo tumbu simbolis moal jalan, tingali respon pamekar urang. Urang tiasa ngalangkungan watesan ieu salami initialization / pormat Kolam Panyimpenan ku nangtukeun nilai salaku alat block tinimbang jalur ka file loopback ku nangtukeun ieu dina konci source.

Ku kituna, saméméh nyieun Kolam Panyimpenan anjeun kedah nangtukeun file loopback atanapi partisi anu tos aya dina sistem file anjeun anu bakal dianggo. Jang ngalampahkeun ieu, kami bakal nyiptakeun sareng nganggo file anu kami bakal ngawatesan ukuranana ka 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

Hayu urang sambungkeun file loopback ka alat loopback bébas:

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

/dev/loop1

Hatur nuhun kana konci --show executing paréntah mulih deui ka layar ngaran alat kana nu file loopback urang disambungkeun. Upami diperyogikeun, urang tiasa nampilkeun daptar sadaya alat anu sibuk tina jinis ieu pikeun mastikeun yén tindakan urang leres:

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

Tina daptar anjeun tiasa mendakan yén alatna gaduh /dev/loop1 file loopback kaasup /mnt/work/lxd/hddpool.img, sareng dina alat /dev/loop0 file loopback kaasup /var/lib/lxd/disks/ssdpool.img nu pakait jeung standar Kolam Panyimpenan.

Paréntah di handap ieu nyiptakeun anu énggal Kolam Panyimpenan di LXD dumasar kana file loopback kami ngan disiapkeun. LXD bakal pormat file loopback /mnt/work/lxd/hddpool.img dina alat /dev/loop1 pikeun sistem file BTRFS:

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

Hayu urang mintonkeun daptar sadaya Kolam Panyimpenan pikeun layar:

lxc storage list

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

Ngaronjatkeun Ukuran Kolam Panyimpenan ^

Sanggeus kacipta Kolam Panyimpenan, lamun perlu, éta bisa dilegakeun. Pikeun Kolam Panyimpenan dumasar kana sistem file BTRFS, jalankeun paréntah di handap ieu:

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

Nyelapkeun otomatis file loopback kana slot alat loopback ^

Urang gaduh hiji masalah leutik, nalika rebooting sistem host, file /mnt/work/lxd/hddpool.img bakal "ngapung" kaluar tina alat /dev/loop1 sareng ladenan LXD bakal ngadat nalika ngamuat sabab moal ningali dina alat ieu. Pikeun ngajawab masalah ieu anjeun kudu nyieun layanan sistem anu bakal nyelapkeun file ieu kana alat /dev/loop1 nalika sistem host boot.

Hayu urang nyieun kamanunggalan tipe file palayanan в /etc/systemd/system/ pikeun sistem inisialisasi 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

Aktipkeun jasa:

sudo systemctl enable lxd-hddpool

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

Saatos ngabalikan deui sistem host, urang pariksa status jasa:

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

Tina kaluaran urang tiasa pariksa yén kaayaan jasa aktip, Sanaos kanyataan yén palaksanaan naskah kami tina hiji paréntah parantos réngsé, pilihan éta ngamungkinkeun urang ngalakukeun ieu RemainAfterExit=true.

Kasalametan. Hak Wadahna ^

Kusabab sakabeh proses wadahna sabenerna ngajalankeun di isolasi dina sistem host ngagunakeun kernel na, jang meberkeun ngajaga aksés prosés wadahna ka sistem host, LXD nawarkeun hak husus prosés, dimana:

  • Wadah Istimewa - ieu mangrupikeun wadah dimana prosés sareng UID sareng GID pakait sareng anu gaduh anu sami sareng sistem host. Contona, prosés ngajalankeun dina wadah kalawan UID of 0 boga sagala hak aksés sarua salaku prosés dina sistem host kalawan UID of 0. Dina basa sejen, pamaké root dina wadahna boga sagala hak teu ukur dina. wadahna, tapi ogé dina sistem host lamun manehna bisa balik luar namespace terasing wadahna urang.

  • wadah unprivileged - ieu mangrupikeun wadah anu prosésna milik anu gaduh UID sareng GID kalayan jumlah ti 0 dugi ka 65535, tapi pikeun sistem host anu gaduh masked nganggo tambahan SubUID sareng SubGID bit masing-masing. Contona, hiji pamaké kalawan UID = 0 dina wadah bakal ditempo dina sistem host salaku SubUID + UID. Ieu ngajaga sistem host sabab lamun sagala prosés dina wadahna téh bisa kabur namespace terasing na, eta ngan bisa komunikasi sareng sistem host salaku prosés kalawan kanyahoan, pisan tinggi UID / GID.

Sacara standar, peti anyar dijieun boga status unprivileged sahingga urang kudu nangtukeun hiji SubUID jeung SubGID.

Hayu urang ngadamel dua file konfigurasi dimana urang bakal nyetél masker pikeun SubUID sareng SubGID masing-masing:

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

Pikeun nerapkeun parobihan, jasa LXD kedah dibalikan deui:

sudo systemctl restart lxd

Nyieun switch jaringan virtual ^

Kusabab urang saméméhna initialized jaringan ngagunakeun wizard initialization lxd init jeung nyieun alat jaringan lxdbr0, teras dina bagian ieu urang ngan saukur bakal kenal sareng jaringan dina LXD sareng kumaha cara ngadamel switch virtual (sasak) nganggo paréntah klien.

Diagram di handap ieu nunjukkeun kumaha saklar (sasak) nyambungkeun host sareng wadah kana jaringan:

Fitur dasar LXD - sistem wadah Linux

Wadahna tiasa komunikasi ngalangkungan jaringan sareng wadah anu sanés atanapi host dimana wadah ieu dilayanan. Jang ngalampahkeun ieu, anjeun kedah nyambungkeun kartu jaringan virtual tina wadahna sareng saklar virtual. Urang bakal nyieun switch kahiji, sarta interfaces jaringan wadahna bakal numbu dina bab saterusna, sanggeus wadahna sorangan geus dijieun.

Paréntah di handap ieu nyiptakeun saklar sareng subnet 10.0.5.0/24 sareng alamat IPv4 10.0.5.1/24, sarta ogé ngawengku ipv4.nat supados wadah tiasa ngaksés Internét ngalangkungan host nganggo jasa NAT:

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

Mariksa daptar alat jaringan nu sadia dina LXD:

lxc network list

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

Anjeun ogé tiasa pariksa yén alat jaringan parantos diciptakeun nganggo alat standar distribusi Linux - ip link atawa 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

Propil Konfigurasi ^

Unggal wadahna di LXD boga konfigurasi sorangan sarta bisa manjangkeun eta kalawan konfigurasi dinyatakeun global disebut propil konfigurasi. Nerapkeun profil konfigurasi kana wadahna gaduh model kaskade, conto di handap ieu nunjukkeun ieu:

Fitur dasar LXD - sistem wadah Linux

Dina conto ieu, tilu propil geus dijieun dina sistem LXD: default, hddpool и hostfs. Katiluna profil diterapkeun kana wadah anu gaduh konfigurasi lokal (aréa abu). Propil default boga alat root nu boga parameter pool sarua jeung ssdpool, Tapi hatur nuhun kana model aplikasi konfigurasi cascade, urang tiasa nerapkeun profil kana wadahna hddpool nu boga parameter pool bakal override parameter sarua tina profil default sareng wadahna bakal nampi konfigurasi alat root kalawan parameter pool sarua hddpool, jeung propil hostfs saukur nambahkeun alat anyar kana wadahna.

Pikeun ningali daptar profil konfigurasi anu sayogi, paké paréntah di handap ieu:

lxc profile list

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

Daptar lengkep paréntah anu sayogi pikeun damel sareng profil tiasa didapet ku nambihan konci --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

Ngédit profil anjeun ^

Propil konfigurasi standar default henteu gaduh konfigurasi kartu jaringan pikeun wadahna sareng sadaya wadah anu nembé diciptakeun henteu gaduh jaringan, pikeun aranjeunna kedah nyiptakeun alat jaringan lokal (dedicated) kalayan paréntah anu misah, tapi urang tiasa nyiptakeun alat jaringan global dina konfigurasi. profil anu bakal dibagi antara sadaya wadah nganggo profil ieu. Ku cara ieu, langsung saatos paréntah pikeun nyiptakeun wadah énggal, aranjeunna bakal ngagaduhan jaringan sareng aksés jaringan. Dina waktos anu sami, henteu aya larangan; urang tiasa salawasna nyiptakeun alat jaringan lokal upami diperyogikeun.

Paréntah di handap ieu bakal nambihan alat kana profil konfigurasi eth0 ngetik nic disambungkeun ka jaringan lxdbr0:

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

Penting pikeun dicatet yén saprak urang saleresna nambihan alat kana profil konfigurasi, upami urang netepkeun alamat IP statik dina alat, maka sadaya wadah anu nganggo profil ieu bakal ngabagi alamat IP anu sami. Lamun perlu nyieun hiji wadah kalawan alamat IP statik disadiakeun pikeun wadahna, mangka anjeun kudu nyieun konfigurasi alat jaringan dina tingkat wadahna (konfigurasi lokal) jeung parameter alamat IP, teu di tingkat profil.

Hayu urang pariksa profil:

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

Dina profil ieu urang tiasa ningali yén pikeun sadaya wadah anu nembé diciptakeun dua alat bakal didamel:

  • eth0 - Jenis alat nic disambungkeun ka switch (jembatan jaringan) lxdbr0
  • root - Jenis alat disk nu ngagunakeun kolam renang gudang ssdpool

Nyieun propil anyar ^

Pikeun ngagunakeun saméméhna dijieun Kolam Panyimpenan wadahna, nyieun profil konfigurasi ssdroot nu urang bakal nambahan alat kawas disk kalawan titik Gunung / (root) ngagunakeun saméméhna dijieun Kolam Panyimpenan - ssdpool:

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

Nya kitu, urang nyieun alat kawas disk, Tapi dina hal ieu ngagunakeun Kolam Panyimpenan - hddpool:

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

Mariksa profil konfigurasi:

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

Repository gambar ^

Wadah didamel tina gambar anu dirakit khusus distribusi anu henteu gaduh kernel Linux. Ku alatan éta, saméméh ngajalankeun wadahna, éta kudu deployed tina gambar ieu. Sumber gambar mangrupikeun gudang lokal dimana gambar diunduh tina repositori éksternal.

Repositories gambar jauh ^

Sacara standar, LXD dikonpigurasi pikeun nampa gambar tina tilu sumber jauh:

  • ubuntu: (pikeun gambar Ubuntu stabil)
  • ubuntu-harian: (pikeun gambar Ubuntu sapopoé)
  • gambar: (pikeun sakumpulan distro séjén)

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

Contona, gudang ubuntu: gaduh gambar di handap ieu:

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

Pikeun mintonkeun jumlah kawates kolom kami dipaké pilihan -c kalawan parameter dasut, sarta ogé ngawatesan panjang daptar kalawan paréntah head.

Nyaring sadia pikeun mintonkeun daptar gambar. Paréntah di handap ieu bakal daptar sadaya arsitéktur distribusi anu sayogi 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        |
+------------------------------+--------------------------------------+--------------+

Repository gambar lokal ^

Pikeun ngamimitian nganggo wadahna, anjeun kedah nambihan gambar tina gudang global kana anu lokal local:. Ayeuna gudang lokal kosong, paréntah bakal mastikeun ieu lxc image list. Lamun métode list ulah nangtukeun Repository a, mangka Repository lokal bakal dipaké sacara standar - local:

lxc image list local:

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

Gambar dina gudang diurus nganggo metodeu ieu:

regu
gambaran

gambar lxc alias
Atur aliases gambar

gambar lxc salinan
Nyalin gambar antara server

gambar lxc mupus
Hapus gambar

gambar lxc édit
Édit sipat gambar

gambar lxc ekspor
Ékspor sareng unduh gambar

gambar lxc impor
Impor gambar kana toko gambar

gambar lxc info
Témbongkeun informasi mangpaat ngeunaan gambar

gambar lxc daptar
Daptar gambar

gambar lxc nyegerkeun
Refresh gambar

gambar lxc nunjukkeun
Témbongkeun sipat gambar

Salin gambar ka gudang lokal tina global images::

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

Image copied successfully!

Hayu urang ningalikeun daptar sadaya gambar anu ayeuna aya dina gudang lokal local::

lxc image -c lfdatsu list local:

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

Konfigurasi LXD ^

Salian mode interaktif, LXD ogé ngadukung modeu instalasi konfigurasi non-interaktif, nyaéta nalika konfigurasina dirumuskeun dina bentuk file YAML, format khusus anu ngamungkinkeun anjeun masang sadayana konfigurasi sakaligus, ngalangkungan palaksanaan. tina seueur paréntah interaktif anu dibahas di luhur dina tulisan ieu, kalebet konfigurasi jaringan, nyiptakeun profil konfigurasi, jsb. Kami moal nutupan daérah ieu di dieu, anjeun tiasa pariksa nyalira. dina dokuméntasi.

Paréntah interaktif salajengna lxc config anu bakal urang tingali ngamungkinkeun anjeun nyetél konfigurasi. Salaku conto, pikeun mastikeun yén gambar anu diunduh kana gudang lokal henteu otomatis diropéa tina repositori global, urang tiasa ngaktipkeun paripolah ieu ku paréntah di handap ieu:

lxc config set images.auto_update_cached=false

Nyiptakeun sareng ngatur wadah ^

Pikeun nyieun wadah nganggo paréntah lxc init ka nilai-nilai anu disalurkeun репозиторий:образ lajeng ID dipikahoyong pikeun wadahna. Repository tiasa ditetepkeun salaku lokal local: kitu ogé hiji global. Upami Repository henteu dieusian, maka sacara standar Repositori lokal dianggo pikeun milarian gambar. Upami gambarna ditetepkeun tina gudang global, maka gambarna bakal diunduh heula kana gudang lokal teras dianggo pikeun nyiptakeun wadahna.

Hayu urang ngajalankeun paréntah di handap pikeun nyieun wadahna munggaran urang:

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

Hayu urang tingali konci paréntah anu kami anggo di dieu dina urutan:

  • alpine3 - Landian (alias) ditetepkeun pikeun gambar anu sateuacana diunggah ka gudang lokal. Upami landian henteu diciptakeun pikeun gambar ieu, maka anjeun tiasa ngarujuk kana gambar ku na cap jempol nu dipintonkeun dina tabél.
  • alp - Nyetél identifier pikeun wadahna
  • --storage - konci ieu nunjukkeun di mana Kolam Panyimpenan wadah bakal dijieun
  • --profile - Tombol ieu cascade nerapkeun konfigurasi tina profil konfigurasi saméméhna dijieun kana wadahna

Kami ngaluncurkeun wadahna, anu mimiti ngaluncurkeun sistem init distribusi:

lxc start alp

Anjeun oge bisa make paréntah lxc launch nu ngidinan Anjeun pikeun ngagabungkeun tim lxc init и lxc start dina hiji operasi.

Mariksa kaayaan wadahna:

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

Mariksa konfigurasi wadahna:

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

Dina bagian profiles urang tiasa mastikeun yén wadahna ieu nganggo dua profil konfigurasi − default и hddroot. Dina bagian devices urang ngan bisa ngadeteksi hiji alat sabab alat jaringan dijieun dina tingkat profil default. Pikeun ningali sadaya alat anu dianggo ku wadahna anjeun kedah nambihan konci --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: ""

Nyetél alamat IP statik ^

Upami urang nyobian nyetél alamat IP pikeun alat jaringan eth0 tim lxc config device set alp dimaksudkeun pikeun konfigurasi wadahna, lajeng urang bakal nampa kasalahan anu bakal ngalaporkeun yén alat nu teu aya sabab alat eth0 nu dipaké ku wadahna milik profil default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

Urang tangtu bisa nyetél alamat IP statik pikeun eth0 alat-alat dina profil, tapi bakal sami pikeun sadaya wadah anu bakal nganggo profil ieu. Ku alatan éta, hayu urang tambahkeun alat khusus pikeun wadahna:

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

Teras anjeun kedah ngabalikan deui wadahna:

lxc restart alp

Upami urang ningali konfigurasi wadahna ayeuna, urang henteu kedah nganggo pilihan --expanded pikeun ningali alat jaringan eth0, Kusabab urang dijieun dina tingkat wadahna sarta eta cascaded leuwih alat anu sarua tina profil 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: ""

Nyoplokkeun hiji wadah ^

Pikeun miceun wadah, nganggo paréntah lxc delete, Tapi samemeh miceun wadahna, eta kudu dieureunkeun maké paréntah lxc stop:

lxc stop alp

lxc list

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

Sanggeus kami geus diverifikasi yén kaayaan wadahna geus jadi Dieureunkeun, éta bisa dihapus tina Kolam Panyimpenan:

lxc delete alp

aksés wadahna ^

Pikeun ngaéksekusi paréntah dina wadah langsung, ngalangkungan sambungan jaringan, paké paréntah lxc exec nu executes paréntah dina wadahna tanpa launching cangkang sistem. Upami anjeun kedah ngaéksekusi paréntah dina cangkang nganggo pola cangkang sapertos variabel, alihan file (pipa), sareng sajabana, maka anjeun kedah sacara eksplisit ngaluncurkeun cangkang sareng lulus paréntah salaku konci, contona:

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

Paréntah ngagunakeun karakter ngewa husus pikeun karakter husus $ ku kituna variabel $HOME teu diinterpretasi dina mesin host, tapi ieu diinterpretasi ukur di jero wadahna.

Ieu oge mungkin pikeun ngamimitian mode cangkang interaktif, lajeng mungkas sési ku executing hotkey CTRL+D:

lxc exec alp -- /bin/sh

Manajemén sumberdaya wadahna ^

Dina LXD, anjeun tiasa ngatur sumberdaya wadahna nganggo set konfigurasi khusus. Daptar lengkep parameter konfigurasi wadahna tiasa dipendakan dina dokuméntasi.

watesan sumberdaya RAM ^

parameter limits.memory ngawatesan jumlah RAM sadia pikeun wadahna. nilai mangrupa angka jeung salah sahiji sufiks sadia.

Hayu urang setel wates RAM wadahna ka 256 MB:

lxc config set alp limits.memory 256MB

Ogé, aya parameter séjén pikeun ngawatesan memori:

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

regu lxc config show ngidinan Anjeun pikeun mintonkeun sakabéh konfigurasi wadahna, kaasup wates sumberdaya dilarapkeun nu geus disetel:

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

wates sumberdaya CPU ^

Aya sababaraha cara pikeun ngawatesan sumberdaya CPU. jenis larangan:

  • limit.cpu - meungkeut wadahna ka hiji atawa leuwih cores CPU
  • limits.cpu.allowance - ngatur kuota panjadwal CFS nalika wates waktos parantos lulus, atanapi mékanisme ngabagi sumber daya CPU universal nalika persentase parantos lulus
  • limits.cpu.priority - prioritas scheduler lamun sababaraha instansi babagi susunan prosesor anu ditugaskeun persentase sarua prosesor

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

Watesan spasi disk ^

Salian larangan sapertos limits.read, limits.write urang ogé tiasa ngawates jumlah rohangan disk anu dikonsumsi ku wadahna (ngan tiasa dianggo sareng ZFS atanapi BTRFS):

lxc config device set alp root size=2GB

Saatos instalasi, dina parameter devices.root.size Urang tiasa pariksa wates set:

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

Pikeun ningali kuota disk anu dianggo urang tiasa kéngingkeun tina paréntah 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

Najan kanyataan yén kami geus nyetel wates pikeun alat root wadahna ka 2GB, Utiliti sistem kayaning df moal ningali larangan ieu. Jang ngalampahkeun ieu, urang bakal ngalaksanakeun tés leutik tur manggihan cara gawéna.

Hayu urang nyieun 2 wadahna idéntik anyar dina sarua Kolam Panyimpenan (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         |
+------+---------+------------------+------+-----------+-----------+

Hayu urang ngadamel file 1GB dina salah sahiji wadahna:

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

Hayu urang pastikeun file dijieun:

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

Upami urang ningali dina wadah kadua, pariksa ayana file di lokasi anu sami, maka file ieu moal aya, anu dipiharep, sabab wadahna diciptakeun sorangan. Volume Panyimpenan dina sarua Kolam Panyimpenan:

lxc exec alp2 -- ls -lh
total 0

Tapi hayu urang ngabandingkeun nilai eta ngahasilkeun df dina hiji sareng wadah anu sanés:

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

pakakas /dev/loop1 dipasang salaku partisi root Kolam Panyimpenan nu dipaké wadahna ieu, ngarah babagi volume na antara dua.

Statistik konsumsi sumberdaya ^

Anjeun tiasa ningali statistik konsumsi sumberdaya pikeun wadah nganggo paréntah:

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

Gawe sareng snapshots ^

LXD boga kamampuhan pikeun nyieun snapshots tur malikkeun kaayaan wadahna ti aranjeunna.

Pikeun nyieun snapshot, jalankeun paréntah di handap ieu:

lxc snapshot alp snapshot1

Tim lxc snapshot euweuh konci sadia list, Ku kituna, pikeun nempo daptar snapshots anjeun kudu make paréntah nu mintonkeun informasi umum ngeunaan wadahna:

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

Anjeun tiasa mulangkeun wadah tina snapshot nganggo paréntah lxc restore nangtukeun wadahna pikeun restorasi bakal dilakukeun sareng landian snapshot:

lxc restore alp snapshot1

Paréntah di handap ieu dianggo pikeun ngahapus snapshot. Punten dicatet yén sintaksis paréntah henteu sami sareng sadayana anu sanés; di dieu anjeun kedah netepkeun garis miring payun saatos nami wadahna. Upami slash dileungitkeun, teras paréntah pikeun ngahapus snapshot diinterpretasikeun salaku paréntah pikeun ngahapus wadah!

lxc delete alp/snapshot1

Dina conto di luhur, urang nempo nu disebut snapshots stateless. LXD boga tipe séjén snapshots - stateful, nu ngaheéat kaayaan ayeuna sadaya prosés dina wadahna. Aya sababaraha fitur metot sarta mangpaat pakait sareng snapshots stateful.

Naon deui? ^

  • A modul geus sadia pikeun pamekar Python PyLXD nu nyadiakeun API ka LXD

UPDATE 10.04.2020/15/00 XNUMX:XNUMX: Napigasi ditambahkeun

sumber: www.habr.com

Tambahkeun komentar