Fitur dhasar LXD - sistem wadah Linux

Fitur dhasar LXD - sistem wadah Linux

LXD punika manager wadhah sistem generasi sabanjuré, ngandika sumber. Nawakake antarmuka panganggo sing padha karo mesin virtual, nanging nggunakake kontaner Linux.

inti LXD punika daemon istimewa (layanan mlaku karo hak ROOT) sing nyedhiyani REST API liwat soket unix lokal, uga liwat jaringan yen konfigurasi cocok wis diinstal. Klien, kayata alat baris perintah sing diwenehake karo LXD, nggawe panjaluk liwat API REST iki. Iki tegese manawa sampeyan ngakses host lokal utawa host remot, kabeh bisa digunakake.

Ing artikel iki, kita ora bakal ngrembug babagan konsep LXD kanthi rinci; kita ora bakal nimbang kabeh kapabilitas sing kasedhiya ing dokumentasi kasebut, kalebu implementasine anyar ing versi paling anyar saka LXD dhukungan kanggo mesin virtual QEMU sing padha karo kontaner. Nanging, kita bakal sinau mung dhasar manajemen kontainer - nyetel kolam panyimpenan, jaringan, mbukak wadhah, ngetrapake watesan sumber daya, lan cara nggunakake jepretan supaya sampeyan bisa ngerteni dhasar babagan LXD lan nggunakake wadah ing Linux.

Kanggo informasi lengkap, waca sumber resmi:

Pituduh

Instalasi LXD ^

Nginstal LXD ing distribusi Ubuntu ^

Ing paket distribusi Ubuntu 19.10 lxd wis siaran ing paket snap:

apt search lxd

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

Iki tegese loro paket bakal diinstal bebarengan, siji minangka paket sistem lan liyane minangka paket snap. Nginstal rong paket ing sistem bisa nggawe sawetara masalah ing ngendi paket sistem bisa dadi yatim piatu yen paket snap dibusak dening manajer paket snap.

Golek paket lxd ing repositori snap sampeyan bisa nggunakake printah ing ngisor iki:

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

Kanthi mbukak printah list sampeyan bisa nggawe manawa paket lxd durung diinstal:

snap list

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

Senadyan kasunyatan sing LXD iku paket sworo seru, iku kudu diinstal liwat paket sistem lxd, sing bakal nggawe grup sing cocog ing sistem, keperluan sing dibutuhake ing /usr/bin lan liya-liyane.

sudo apt update
sudo apt install lxd

Priksa manawa paket kasebut diinstal minangka paket snap:

snap list

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

Nginstal LXD ing distribusi Arch Linux ^

Kanggo nginstal paket LXD ing sistem, sampeyan kudu nglakokake printah ing ngisor iki, sing pisanan bakal nganyari dhaptar paket ing sistem sing kasedhiya ing repositori, sing kapindho bakal langsung nginstal paket kasebut:

sudo pacman -Syyu && sudo pacman -S lxd

Sawise nginstal paket kasebut, supaya bisa ngatur LXD dening pangguna biasa, kudu ditambahake menyang grup sistem lxd:

sudo usermod -a -G lxd user1

Ayo priksa manawa pangguna user1 ditambahake menyang grup lxd:

id -Gn user1

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

Yen klompok lxd ora katon ing dhaptar, mula sampeyan kudu ngaktifake sesi pangguna maneh. Kanggo nindakake iki, sampeyan kudu metu lan mlebu ing pangguna sing padha.

Aktifake ing systemd ngemot layanan LXD nalika wiwitan sistem:

sudo systemctl enable lxd

Ayo miwiti layanan:

sudo systemctl start lxd

Priksa status layanan:

sudo systemctl status lxd

Panyimpenan LXD (Panyimpenan) ^

Sadurunge initialization diwiwiti, kita kudu ngerti carane panyimpenan ing LXD diatur logis.

Lumbung (Lumbung) kasusun saka saka siji utawa luwih Kolam Panyimpenan sing nggunakake salah sawijining sistem file sing didhukung kayata ZFS, BTRFS, LVM utawa direktori biasa. Saben Kolam Panyimpenan dibagi dadi volume (Volume Storage) sing ngemot gambar, wadhah, utawa data kanggo tujuan liyane.

  • Gambar - iki minangka distribusi sing dirakit khusus tanpa kernel Linux lan kasedhiya saka sumber eksternal
  • Wadhah - iki disebarake distribusi saka gambar, siap dienggo
  • Snapshots - iki gambar saka negara kontaner sing bisa bali menyang

Fitur dhasar LXD - sistem wadah Linux

Kanggo ngatur panyimpenan ing LXD, gunakake printah kasebut lxc storage sertifikat sing sampeyan bisa entuk kanthi nemtokake kunci - lxc storage --help

Printah ing ngisor iki nampilake dhaptar kabeh Kolam Panyimpenan ing 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       |
+---------+-------------+--------+--------------------------------+---------+

Kanggo ndeleng dhaptar kabeh Volume Storage ing milih Kolam Panyimpenan serves 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       |
+-----------+----------------------------------+-------------+---------+

Uga, yen kanggo Kolam Panyimpenan Nalika nggawe, sistem file BTRFS dipilih, banjur entuk dhaptar Volume Storage utawa subvolusi ing interpretasi BTRFS, sampeyan bisa nggunakake toolkit sistem file iki:

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 ^

Sadurunge nggawe lan nggunakake wadhah, sampeyan kudu nindakake initialization LXD umum sing nggawe lan ngatur jaringan lan panyimpenan. Iki bisa ditindakake kanthi manual nggunakake perintah klien standar sing kasedhiya ing dhaptar kanthi nelpon printah kasebut lxc --help utawa nggunakake tuntunan initialization lxd init mangsuli sawetara pitakonan.

Milih sistem file kanggo Storage Pool ^

Sajrone initialization, LXD takon sawetara pitakonan, kalebu nemtokake jinis sistem file kanggo standar Kolam Panyimpenan. Kanthi gawan, sistem file BTRFS dipilih. Sampeyan ora bisa ngganti menyang FS liyane sawise nggawe. Kanggo milih FS disaranake Tabel perbandingan fitur:

Feature
Direktori
Btrfs
LVM
ZFS
CEPH

Panyimpenan gambar sing dioptimalake
ora
ya
ya
ya
ya

Nggawe conto sing dioptimalake
ora
ya
ya
ya
ya

Nggawe gambar sing dioptimalake
ora
ya
ya
ya
ya

Transfer gambar sing dioptimalake
ora
ya
ora
ya
ya

Transfer conto sing dioptimalake
ora
ya
ora
ya
ya

Salin ing nulis
ora
ya
ya
ya
ya

Blok adhedhasar
ora
ora
ya
ora
ya

Kloning cepet
ora
ya
ya
ya
ya

Driver panyimpenan bisa digunakake ing wadhah
ya
ya
ora
ora
ora

Mulihake saka jepretan lawas (ora paling anyar)
ya
ya
ya
ora
ya

Kuota panyimpenan
iya (*)
ya
ya
ya
ora

Initializing jaringan lan Storage Pool nggunakake tuntunan ^

Prentah sabanjure sing bakal kita deleng nyaranake nyiyapake komponen utama LXD kanthi mangsuli pitakon sing gampang nggunakake tuntunan wiwitan.

Run printah lxc init lan ketik jawaban kanggo pitakonan sawise titik loro kaya sing ditampilake ing conto ing ngisor iki utawa ganti miturut kahanan sampeyan:

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

Nggawe Kolam Panyimpenan tambahan ^

Ing langkah sadurunge kita digawe Kolam Panyimpenan kang diwenehi jeneng ssdpool lan file kang dumunung ing sistem sandi ing /var/lib/lxd/disks/ssdpool.img. Alamat sistem file iki cocog karo drive SSD fisik ing PC.

Tumindak ing ngisor iki, kanggo nggedhekake pangerten babagan peran sing dimainake Kolam Panyimpenan ing repositori, kita bakal nggawe sing kapindho Kolam Panyimpenan kang bakal fisik dumunung ing macem-macem jinis disk, HDD. Masalahe yaiku LXD ora ngidini sampeyan nggawe Kolam Panyimpenan metu saka alamat /var/lib/lxd/disks/ lan malah pranala simbolis ora bisa digunakake, ndeleng respon pangembang. Kita bisa ngliwati watesan iki sajrone wiwitan / format Kolam Panyimpenan kanthi nemtokake nilai minangka piranti pamblokiran tinimbang path menyang file loopback kanthi nemtokake iki ing tombol source.

Dadi, sadurunge nggawe Kolam Panyimpenan sampeyan kudu nemtokake file loopback utawa partisi sing ana ing sistem file sing bakal digunakake. Kanggo nindakake iki, kita bakal nggawe lan nggunakake file sing bakal diwatesi ukurane nganti 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

Ayo nyambungake file loopback menyang piranti loopback gratis:

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

/dev/loop1

Thanks kanggo kunci --show nglakokaké printah bali menyang layar jeneng piranti menyang file loopback kita disambungake. Yen perlu, kita bisa nampilake dhaptar kabeh piranti sing sibuk saka jinis iki kanggo mesthekake yen tumindak kita bener:

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

Saka dhaftar sampeyan bisa nemokake sing piranti wis /dev/loop1 file loopback klebu /mnt/work/lxd/hddpool.img, lan ing piranti /dev/loop0 file loopback klebu /var/lib/lxd/disks/ssdpool.img sing cocog karo standar Kolam Panyimpenan.

Printah ing ngisor iki nggawe sing anyar Kolam Panyimpenan ing LXD adhedhasar file loopback kita mung disiapake. LXD bakal ngowahi format file loopback /mnt/work/lxd/hddpool.img ing piranti /dev/loop1 kanggo sistem file BTRFS:

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

Ayo nampilake dhaptar kabeh Kolam Panyimpenan kanggo layar:

lxc storage list

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

Nambah Ukuran Pool Storage ^

Sawise digawe Kolam Panyimpenan, yen perlu, bisa ditambahi. Kanggo Kolam Panyimpenan adhedhasar sistem file BTRFS, jalanake perintah ing ngisor iki:

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

Selipan otomatis file loopback menyang slot piranti loopback ^

Kita duwe masalah cilik, nalika reboot sistem host, file kasebut /mnt/work/lxd/hddpool.img bakal "mabur" metu saka piranti /dev/loop1 lan layanan LXD bakal nabrak nalika loading amarga ora bakal weruh ing piranti iki. Kanggo ngatasi masalah iki, sampeyan kudu nggawe layanan sistem sing bakal masang file iki menyang piranti /dev/loop1 nalika sistem inang boot.

Ayo nggawe unit jinis file layanan в /etc/systemd/system/ kanggo 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

Aktifake layanan:

sudo systemctl enable lxd-hddpool

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

Sawise miwiti maneh sistem host, kita mriksa status layanan:

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

Saka output kita bisa verifikasi yen negara layanan aktif, senadyan kasunyatan manawa eksekusi skrip saka siji printah wis rampung, pilihan kasebut ngidini kita nindakake iki RemainAfterExit=true.

Safety. Hak Wadhah ^

Wiwit kabeh pangolahan wadhah bener-bener mlaku ing sistem inang kanthi nggunakake kernel, kanggo nglindhungi akses pangolahan wadhah menyang sistem inang, LXD nawakake hak istimewa proses, ing ngendi:

  • Wadhah Istimewa - iki minangka wadhah ing ngendi proses karo UID lan GID cocog karo pemilik sing padha karo sistem inang. Contone, proses sing mlaku ing wadhah kanthi UID 0 duwe kabeh hak akses sing padha karo proses ing sistem host kanthi UID 0. Ing tembung liya, pangguna root ing wadhah kasebut duwe kabeh hak ora mung ing wadhah, nanging uga ing sistem inang yen dheweke bisa metu saka namespace terisolasi wadhah.

  • Wadhah sing ora duwe hak istimewa - iki minangka kontaner ing ngendi proses kasebut dadi pemilik saka UID lan GID kanthi nomer saka 0 nganti 65535, nanging kanggo sistem host, pemilik ditutupi nggunakake bit SubUID lan SubGID sing ditambahake. Contone, pangguna karo UID = 0 ing wadhah bakal katon ing sistem inang minangka SubUID + UID. Iki nglindhungi sistem inang amarga yen ana proses ing wadhah bisa uwal namespace terisolasi sawijining, iku mung bisa komunikasi karo sistem inang minangka proses karo dingerteni, dhuwur banget UID / GID.

Kanthi gawan, wadhah sing mentas digawe duwe status sing ora duwe hak istimewa lan mula kita kudu nemtokake SubUID lan SubGID.

Ayo nggawe rong file konfigurasi sing bakal nyetel topeng kanggo SubUID lan SubGID, masing-masing:

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

Kanggo ngetrapake owah-owahan, layanan LXD kudu diwiwiti maneh:

sudo systemctl restart lxd

Nggawe switch jaringan virtual ^

Awit kita sadurunge miwiti jaringan nggunakake tuntunan initialization lxd init lan nggawe piranti jaringan lxdbr0, banjur ing bagean iki kita mung bakal kenal karo jaringan ing LXD lan carane nggawe switch virtual (jembatan) nggunakake perintah klien.

Diagram ing ngisor iki nuduhake carane saklar (jembatan) nyambungake host lan wadhah menyang jaringan:

Fitur dhasar LXD - sistem wadah Linux

Kontainer bisa komunikasi liwat jaringan karo wadhah liyane utawa host ing ngendi wadhah kasebut dilayani. Kanggo nindakake iki, sampeyan kudu ngubungake kertu jaringan virtual saka wadhah kanthi saklar virtual. Kita bakal nggawe switch pisanan, lan antarmuka jaringan wadhah bakal disambung ing bab sakteruse, sawise wadhah dhewe wis digawe.

Printah ing ngisor iki nggawe saklar karo subnet 10.0.5.0/24 lan alamat IPv4 10.0.5.1/24, lan uga kalebu ipv4.nat supaya wadhah bisa ngakses Internet liwat host nggunakake layanan NAT:

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

Priksa dhaptar piranti jaringan sing kasedhiya ing LXD:

lxc network list

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

Sampeyan uga bisa verifikasi manawa piranti jaringan wis digawe nggunakake alat standar distribusi Linux - ip link utawa 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

Profil Konfigurasi ^

Saben wadhah ing LXD wis konfigurasi dhewe lan bisa ngluwihi karo konfigurasi global announced disebut profil konfigurasi. Nglamar profil konfigurasi menyang wadhah duwe model kaskade, conto ing ngisor iki nuduhake iki:

Fitur dhasar LXD - sistem wadah Linux

Ing conto iki, telung profil wis digawe ing sistem LXD: default, hddpool и hostfs. Kabeh telung profil ditrapake ing wadhah sing nduweni konfigurasi lokal (wilayah abu-abu). Profile default duwe piranti root kang nduweni paramèter pool iku padha ssdpool, nanging thanks kanggo model aplikasi konfigurasi cascade, kita bisa aplikasi profil kanggo wadhah hddpool kang nduweni paramèter pool bakal ngilangi parameter sing padha saka profil default lan wadhah bakal nampa konfigurasi piranti root karo parameter pool padha hddpool, lan profil hostfs mung nambah piranti anyar kanggo wadhah.

Kanggo ndeleng dhaptar profil konfigurasi sing kasedhiya, gunakake printah ing ngisor iki:

lxc profile list

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

Dhaptar lengkap perintah sing kasedhiya kanggo nggarap profil bisa dipikolehi kanthi nambahake tombol --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

Ngedit profil sampeyan ^

Profil konfigurasi standar default ora duwe konfigurasi kertu jaringan kanggo wadhah lan kabeh wadhah sing mentas digawe ora duwe jaringan, kanggo wong-wong mau kudu nggawe piranti jaringan lokal (khusus) kanthi prentah sing kapisah, nanging kita bisa nggawe piranti jaringan global ing konfigurasi profil sing bakal dienggo bareng antarane kabeh kontaner nggunakake profil iki. Kanthi cara iki, sanalika sawise prentah nggawe wadhah anyar, dheweke bakal duwe jaringan kanthi akses jaringan. Ing wektu sing padha, ora ana watesan; kita bisa nggawe piranti jaringan lokal mengko yen perlu.

Printah ing ngisor iki bakal nambah piranti menyang profil konfigurasi eth0 Tipe nic disambungake menyang jaringan lxdbr0:

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

Wigati dicathet yen amarga kita nambahake piranti kasebut menyang profil konfigurasi, yen kita nemtokake alamat IP statis ing piranti kasebut, kabeh wadhah sing bakal nggunakake profil iki bakal nuduhake alamat IP sing padha. Yen ana perlu kanggo nggawe wadhah karo alamat IP statis diparengake kanggo wadhah, sampeyan kudu nggawe konfigurasi piranti jaringan ing tingkat wadhah (konfigurasi lokal) karo parameter alamat IP, lan ora ing tingkat profil.

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

Ing profil iki, kita bisa ndeleng manawa kanggo kabeh kontaner sing mentas digawe rong piranti bakal digawe:

  • eth0 - Jinis piranti nic disambungake menyang switch (jembatan jaringan) lxdbr0
  • root - Jinis piranti disk kang nggunakake blumbang panyimpenan ssdpool

Nggawe profil anyar ^

Kanggo nggunakake sadurunge digawe Kolam Panyimpenan kontaner, nggawe profil konfigurasi ssdroot kang kita bakal nambah piranti kaya disk karo titik gunung / (root) nggunakake sing digawe sadurunge Kolam Panyimpenan - ssdpool:

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

Kajaba iku, kita nggawe piranti kaya disk, nanging ing kasus iki nggunakake Kolam Panyimpenan - hddpool:

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

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

Repositori gambar ^

Wadah digawe saka gambar sing dirakit khusus distribusi sing ora duwe kernel Linux. Mulane, sadurunge mbukak wadhah, kudu disebarake saka gambar iki. Sumber gambar minangka repositori lokal ing ngendi gambar diundhuh saka repositori eksternal.

Repositori gambar adoh ^

Kanthi gawan, LXD dikonfigurasi kanggo nampa gambar saka telung sumber remot:

  • ubuntu: (kanggo gambar Ubuntu stabil)
  • ubuntu-harian: (kanggo gambar Ubuntu saben dina)
  • gambar: (kanggo akeh distro liyane)

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

Contone, repositori ubuntu: nduweni gambar ing ngisor iki:

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

Kanggo nampilake jumlah kolom sing winates, kita nggunakake pilihan kasebut -c karo paramèter dasut, lan uga winates dawa dhaftar karo printah head.

Nyaring kasedhiya kanggo nampilake dhaptar gambar. Printah ing ngisor iki bakal nampilake kabeh arsitektur distribusi sing kasedhiya 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        |
+------------------------------+--------------------------------------+--------------+

Repositori gambar lokal ^

Kanggo miwiti nggunakake wadhah, sampeyan kudu nambah gambar saka repositori global menyang sing lokal local:. Saiki repositori lokal kosong, prentah bakal nggawe manawa iki lxc image list. Yen cara list ora nemtokake repositori, banjur repositori lokal bakal digunakake minangka standar - local:

lxc image list local:

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

Gambar ing repositori dikelola kanthi nggunakake cara ing ngisor iki:

tim
Description

gambar lxc alias
Ngatur alias gambar

gambar lxc salinan
Nyalin gambar antarane server

gambar lxc mbusak
Mbusak gambar

gambar lxc sunting
Sunting sifat gambar

gambar lxc kaca
Ekspor lan download gambar

gambar lxc ngimpor
Ngimpor gambar menyang toko gambar

gambar lxc info
Nuduhake informasi migunani babagan gambar

gambar lxc dhaftar
Dhaptar gambar

gambar lxc refresh
Refresh gambar

gambar lxc gambar
Tampilake sifat gambar

Salin gambar menyang repositori lokal saka sing global images::

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

Image copied successfully!

Ayo nampilake dhaptar kabeh gambar sing saiki kasedhiya ing repositori 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 ^

Saliyane ing mode interaktif, LXD uga ndhukung mode instalasi konfigurasi non-interaktif, iki nalika konfigurasi kasebut ing wangun file YAML, format khusus sing ngijini sampeyan kanggo nginstal kabeh konfigurasi bebarengan, bypassing eksekusi. saka akeh printah interaktif sing padha rembugan ndhuwur ing artikel iki, kalebu konfigurasi jaringan, nggawe profil konfigurasi, etc. Kita ora bakal nutupi wilayah iki ing kene, sampeyan bisa mriksa dhewe. ing dokumentasi.

printah interaktif sabanjuré lxc config sing bakal kita deleng ngidini sampeyan nyetel konfigurasi. Contone, kanggo mesthekake yen gambar sing diundhuh menyang repositori lokal ora dianyari kanthi otomatis saka repositori global, kita bisa ngaktifake prilaku iki kanthi printah ing ngisor iki:

lxc config set images.auto_update_cached=false

Nggawe lan ngatur wadhah ^

Kanggo nggawe wadhah nggunakake printah lxc init marang nilai-nilai sing diwarisake репозиторий:образ banjur ID sing dikarepake kanggo wadhah kasebut. Repositori bisa ditemtokake minangka lokal local: mangkono uga global. Yen repositori ora ditemtokake, mula kanthi standar gudang lokal digunakake kanggo nggoleki gambar kasebut. Yen gambar kasebut ditemtokake saka gudang global, mula gambar kasebut bakal diundhuh dhisik menyang gudang lokal banjur digunakake kanggo nggawe wadhah kasebut.

Ayo mbukak printah ing ngisor iki kanggo nggawe wadhah pisanan kita:

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

Ayo goleki tombol perintah sing digunakake ing kene supaya:

  • alpine3 - Alias ​​(alias) ditemtokake kanggo gambar sing sadurunge diunggah menyang gudang lokal. Yen alias ora digawe kanggo gambar iki, sampeyan bisa tansah ngrujuk menyang gambar dening sawijining Fingerprint kang kapacak ing meja.
  • alp - Nyetel pengenal kanggo wadhah
  • --storage - Tombol iki nuduhake ing kang Kolam Panyimpenan wadhah bakal digawe
  • --profile - Tombol iki cascade aplikasi konfigurasi saka profil konfigurasi sadurunge digawe menyang wadhah

Kita miwiti wadhah, sing wiwit miwiti sistem distribusi init:

lxc start alp

Sampeyan uga bisa nggunakake printah lxc launch sing ngijini sampeyan kanggo gabungke tim lxc init и lxc start ing siji operasi.

Priksa kahanan wadhah:

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

Priksa konfigurasi wadah:

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

Ing bagean profiles kita bisa nggawe manawa wadhah iki nggunakake rong profil konfigurasi − default и hddroot. Ing bagean devices kita mung bisa ndeteksi siji piranti wiwit piranti jaringan digawe ing tingkat profil default. Kanggo ndeleng kabeh piranti sing digunakake ing wadhah, sampeyan kudu nambah tombol --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: ""

Nyetel alamat IP statis ^

Yen kita nyoba nyetel alamat IP kanggo piranti jaringan eth0 tim lxc config device set alp dimaksudaké kanggo konfigurasi wadhah, banjur kita bakal nampa kesalahan sing bakal laporan sing piranti ora ana amarga piranti eth0 kang digunakake dening wadhah belongs kanggo profil default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

Kita mesthi bisa nyetel alamat IP statis kanggo eth0 piranti ing profil, nanging bakal padha kanggo kabeh kontaner sing bakal nggunakake profil iki. Mulane, ayo nambah piranti sing dikhususake kanggo wadhah:

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

Banjur sampeyan kudu miwiti maneh wadhah:

lxc restart alp

Yen kita ndeleng konfigurasi wadhah saiki, kita ora perlu nggunakake pilihan kasebut --expanded kanggo ndeleng piranti jaringan eth0, awit kita digawe ing tingkat wadhah lan cascaded liwat piranti padha saka 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: ""

Njabut wadhah ^

Kanggo mbusak wadhah, gunakake perintah kasebut lxc delete, nanging sadurunge njabut wadhah kasebut, kudu mandheg nggunakake printah kasebut lxc stop:

lxc stop alp

lxc list

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

Sawise kita wis diverifikasi yen kahanan wadhah wis dadi PENTING, iku bisa dibusak saka Kolam Panyimpenan:

lxc delete alp

Akses kontainer ^

Kanggo nglakokaké printah ing wadhah langsung, bypassing sambungan jaringan, nggunakake printah lxc exec sing nglakokake perintah ing wadhah tanpa mbukak cangkang sistem. Yen sampeyan kudu nglakokake perintah ing cangkang nggunakake pola cangkang kayata variabel, pangalihan file (pipa), lan liya-liyane, mula sampeyan kudu mbukak cangkang kanthi eksplisit lan pass printah kasebut minangka kunci, contone:

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

Printah kasebut nggunakake karakter uwal khusus kanggo karakter khusus $ supaya variabel $HOME iki ora Juru ing mesin inang, nanging iki Juru mung nang wadhah.

Sampeyan uga bisa miwiti mode cangkang interaktif, banjur mungkasi sesi kanthi nglakokake hotkey CTRL+D:

lxc exec alp -- /bin/sh

Manajemen sumber daya wadhah ^

Ing LXD, sampeyan bisa ngatur sumber daya wadhah kanthi nggunakake konfigurasi khusus. Dhaptar lengkap paramèter konfigurasi wadhah bisa ditemokake ing dokumentasi.

watesan sumber daya RAM ^

Parameter limits.memory matesi jumlah RAM kasedhiya kanggo wadhah. Nilai iku nomer lan siji saka sufiks kasedhiya.

Ayo nyetel watesan RAM wadhah dadi 256 MB:

lxc config set alp limits.memory 256MB

Uga, ana paramèter liyane kanggo mbatesi memori:

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

tim lxc config show ngidini sampeyan nampilake kabeh konfigurasi wadhah, kalebu watesan sumber daya sing ditrapake:

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

watesan sumber daya CPU ^

Ana sawetara cara kanggo matesi sumber daya CPU. jinis watesan:

  • limit.cpu - njiret wadhah kanggo siji utawa luwih inti CPU
  • limits.cpu.allowance - ngatur kuota panjadwal CFS nalika watesan wektu wis liwati, utawa mekanisme enggo bareng sumber daya CPU universal nalika persentase wis liwati
  • limits.cpu.priority - prioritas panjadwal nalika sawetara kedadean nuduhake pesawat saka prosesor diutus persentasi padha 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 papan disk ^

Saliyane watesan kuwi limits.read, limits.write kita uga bisa mbatesi jumlah ruang disk sing dikonsumsi dening wadhah (mung bisa digunakake karo ZFS utawa BTRFS):

lxc config device set alp root size=2GB

Sawise instalasi, ing parameter devices.root.size Kita bisa verifikasi watesan sing disetel:

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

Kanggo ndeleng kuota disk sing digunakake kita bisa njaluk saka printah 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

Senadyan kasunyatan sing kita wis nyetel watesan kanggo piranti ROOT wadhah kanggo 2GB, keperluan sistem kayata df ora bakal weruh watesan iki. Kanggo nindakake iki, kita bakal nganakake tes cilik lan ngerteni cara kerjane.

Ayo nggawe 2 wadhah sing padha karo sing padha 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         |
+------+---------+------------------+------+-----------+-----------+

Ayo nggawe file 1GB ing salah sawijining wadhah:

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

Ayo priksa manawa file kasebut digawe:

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

Yen katon ing wadhah kapindho, priksa manawa ana file ing lokasi sing padha, mula file iki ora bakal ana, sing dikarepake, amarga kontainer digawe dhewe. Volume Storage ing padha Kolam Panyimpenan:

lxc exec alp2 -- ls -lh
total 0

Nanging ayo mbandhingake nilai sing diasilake df ing siji lan liyane wadhah:

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

Piranti /dev/loop1 dipasang minangka partisi ROOT Kolam Panyimpenan sing digunakake wadhah iki, supaya padha nuduhake volume antarane loro.

Statistik konsumsi sumber daya ^

Sampeyan bisa ndeleng statistik konsumsi sumber daya kanggo wadhah nggunakake printah:

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

Nggarap jepretan ^

LXD nduweni kemampuan kanggo nggawe jepretan lan mulihake kahanan wadhah saka wong-wong mau.

Kanggo nggawe snapshot, jalanake printah ing ngisor iki:

lxc snapshot alp snapshot1

Tim kasebut lxc snapshot ora ana tombol kasedhiya list, mulane, kanggo ndeleng dhaptar jepretan sampeyan kudu nggunakake printah sing nampilake informasi umum babagan wadhah kasebut:

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

Sampeyan bisa mulihake wadhah saka snapshot nggunakake printah lxc restore nemtokake wadhah sing bakal ditindakake pemulihan lan alias snapshot:

lxc restore alp snapshot1

Printah ing ngisor iki digunakake kanggo mbusak snapshot. Wigati dimangerteni manawa sintaks printah ora padha karo kabeh liyane; ing kene sampeyan kudu nemtokake garis miring sawise jeneng wadah. Yen garis miring diilangi, banjur printah kanggo mbusak snapshot diinterpretasikake minangka printah kanggo mbusak wadhah!

lxc delete alp/snapshot1

Ing conto ing ndhuwur, kita ndeleng apa sing diarani snapshot stateless. LXD duwe jinis gambar liyane - stateful, sing nyimpen kahanan saiki kabeh proses ing wadhah kasebut. Ana sawetara fitur menarik lan migunani sing digandhengake karo jepretan stateful.

opo maneh? ^

  • A modul kasedhiya kanggo pangembang Python PyLXD kang menehi API kanggo LXD

Dianyari 10.04.2020/15/00 XNUMX:XNUMX: Navigasi ditambahake

Source: www.habr.com

Add a comment