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:
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✓ -
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:
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
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
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.
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]:
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:
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:
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:
Sanggeus kacipta Kolam Panyimpenan, lamun perlu, éta bisa dilegakeun. Pikeun Kolam Panyimpenan dumasar kana sistem file BTRFS, jalankeun paréntah di handap ieu:
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.
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:
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:
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:
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:
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
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
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:
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.
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
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:
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 |
+------+---------+------------------+------+-----------+--------------+
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:
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:
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:
Dina LXD, anjeun tiasa ngatur sumberdaya wadahna nganggo set konfigurasi khusus. Daptar lengkep parameter konfigurasi wadahna tiasa dipendakan dina dokuméntasi.
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
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 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.
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.