Karakteristik debaz nan LXD - Linux sistèm veso yo
LXD se manadjè veso sistèm pwochen jenerasyon an, kidonk li di sous. Li ofri yon koòdone itilizatè ki sanble ak machin vityèl, men li itilize kontenè Linux olye.
LXD nwayo se yon demon privilejye (yon sèvis ki kouri ak dwa rasin) ki bay yon API REST atravè yon priz Unix lokal, osi byen ke atravè rezo a si konfigirasyon apwopriye a enstale. Kliyan, tankou zouti liy kòmand yo bay LXD, fè demann atravè API REST sa a. Sa vle di ke si w ap jwenn aksè nan yon lame lokal oswa yon lame aleka, tout bagay ap travay menm jan an.
Nan atik sa a, nou pa pral rete an detay sou konsèp LXD yo; nou pa pral konsidere tout kapasite ki disponib ki dekri nan dokiman an, ki gen ladan dènye aplikasyon an nan dènye vèsyon LXD sipò pou machin vityèl QEMU an paralèl ak resipyan yo. Olye de sa, nou pral aprann jis prensip debaz yo nan jesyon veso - mete kanpe pisin depo, rezo, kouri yon veso, aplike limit resous, ak kijan pou itilize snapshots pou ou ka jwenn yon konpreyansyon debaz sou LXD epi sèvi ak resipyan sou Linux.
Pou enfòmasyon konplè, tanpri al gade sous ofisyèl la:
Sa vle di ke de pakè yo pral enstale nan yon fwa, youn kòm yon pake sistèm ak lòt la kòm yon pake menen. Enstale de pakè sou yon sistèm ka kreye kèk pwoblèm kote pake sistèm lan ka vin òfelen si manadjè a pakè snap retire.
Jwenn pake lxd nan repozitwa menen an ou ka itilize lòd sa a:
snap find lxd
Name Version Summary
lxd 3.21 System container manager and API
lxd-demo-server 0+git.6d54658 Online software demo sessions using LXD
nova ocata OpenStack Compute Service (nova)
nova-hypervisor ocata OpenStack Compute Service - KVM Hypervisor (nova)
distrobuilder 1.0 Image builder for LXC and LXD
fabrica 0.1 Build snaps by simply pointing a web form to...
satellite 0.1.2 Advanced scalable Open source intelligence platform
Pa kouri lòd la list ou ka asire w ke pake a lxd poko enstale:
snap list
Name Version Rev Tracking Publisher Notes
core 16-2.43.3 8689 stable canonical✓ core
Malgre lefèt ke LXD se yon pake menen, li dwe enstale atravè pake sistèm lan lxd, ki pral kreye gwoup ki koresponn lan nan sistèm nan, sèvis piblik ki nesesè yo nan /usr/bin elatriye
sudo apt update
sudo apt install lxd
Ann asire w ke pake a enstale kòm yon pake menen:
snap list
Name Version Rev Tracking Publisher Notes
core 16-2.43.3 8689 stable canonical✓ core
lxd 3.21 13474 stable/… canonical✓ -
Pou enstale pake LXD sou sistèm lan, ou bezwen kouri kòmandman sa yo, premye a pral mete ajou lis pakè sou sistèm ki disponib nan repozitwa a, dezyèm lan pral dirèkteman enstale pake a:
sudo pacman -Syyu && sudo pacman -S lxd
Apre enstale pake a, yo nan lòd yo jere LXD pa yon itilizatè regilye, li dwe ajoute nan gwoup la sistèm lxd:
sudo usermod -a -G lxd user1
Ann asire w itilizatè a user1 ajoute nan gwoup la lxd:
id -Gn user1
user1 adm dialout cdrom floppy sudo audio dip video plugdev netdev lxd
Si gwoup la lxd se pa vizib nan lis la, Lè sa a, ou bezwen aktive sesyon itilizatè a ankò. Pou fè sa, ou bezwen konekte epi konekte anba itilizatè a menm.
Aktive nan systemd chaje sèvis LXD nan demaraj sistèm lan:
Anvan inisyalizasyon kòmanse, nou bezwen konprann ki jan depo nan LXD lojikman ranje.
Depo (depo) konsiste de soti nan youn oswa plis Depo pisin ki itilize youn nan sistèm dosye yo sipòte tankou ZFS, BTRFS, LVM oswa anyè regilye. Chak Depo pisin divize an volim (Volim Depo) ki gen imaj, resipyan, oswa done pou lòt rezon.
Imaj yo - sa yo se distribisyon espesyalman reyini san nwayo Linux la epi ki disponib nan sous ekstèn
Resipyan - sa yo se distribisyon deplwaye soti nan imaj, pare pou itilize
Snapshots - sa yo se snapshots nan eta a nan resipyan ke ou ka retounen nan
Pou jere depo nan LXD, sèvi ak lòd la lxc storage yon sètifika pou ou ka jwenn lè w presize kle a - lxc storage --help
Kòmandman sa a montre yon lis tout Depo pisin nan depo LXD:
lxc storage list
+---------+-------------+--------+--------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool | | btrfs | /dev/loop1 | 2 |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool | | btrfs | /var/lib/lxd/disks/ssdpool.img | 4 |
+---------+-------------+--------+--------------------------------+---------+
Pou wè yon lis tout Volim Depo nan chwazi a Depo pisin sèvi ekip la lxc storage volume list:
lxc storage volume list hddpool
+-------+----------------------------------+-------------+---------+
| TYPE | NAME | DESCRIPTION | USED BY |
+-------+----------------------------------+-------------+---------+
| image | ebd565585223487526ddb3607f515... | | 1 |
+-------+----------------------------------+-------------+---------+
lxc storage volume list ssdpool
+-----------+----------------------------------+-------------+---------+
| TYPE | NAME | DESCRIPTION | USED BY |
+-----------+----------------------------------+-------------+---------+
| container | alp3 | | 1 |
+-----------+----------------------------------+-------------+---------+
| container | jupyter | | 1 |
+-----------+----------------------------------+-------------+---------+
| image | ebd565585223487526ddb3607f515... | | 1 |
+-----------+----------------------------------+-------------+---------+
Epitou, si pou Depo pisin Lè kreye, yo te chwazi sistèm nan dosye BTRFS, Lè sa a, jwenn yon lis Volim Depo oswa subvolumes nan entèpretasyon BTRFS, ou ka itilize zouti sistèm fichye sa a:
sudo btrfs subvolume list -p /var/lib/lxd/storage-pools/hddpool
ID 257 gen 818 parent 5 top level 5 path images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
sudo btrfs subvolume list -p /var/lib/lxd/storage-pools/ssdpool
ID 257 gen 1820 parent 5 top level 5 path images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
ID 260 gen 1819 parent 5 top level 5 path containers/jupyter
ID 263 gen 1820 parent 5 top level 5 path containers/alp3
Anvan ou kreye ak itilize kontenè, ou dwe fè yon inisyalizasyon jeneral LXD ki kreye ak konfigirasyon rezo a ak depo. Sa a ka fè manyèlman lè l sèvi avèk kòmandman kliyan estanda ki disponib nan lis la lè w rele lòd la lxc --help oswa lè l sèvi avèk sòsye inisyalizasyon an lxd init reponn kèk kesyon.
Pandan inisyalizasyon, LXD poze plizyè kesyon, tankou detèmine kalite sistèm dosye pou default la Depo pisin. Pa default, yo chwazi sistèm nan dosye BTRFS pou li. Li pral enposib chanje nan yon lòt FS apre kreyasyon an. Pou chwazi yon FS li sijere tab konparezon karakteristik:
Karakteristik
Anyè
Btrfs
LVM
ZFS
CEPH
Depo imaj optimize
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi
Kreyasyon egzanp optimize
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi
Kreyasyon snapshot optimize
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi
Optimize transfè imaj
pa gen okenn
repons lan se wi
pa gen okenn
repons lan se wi
repons lan se wi
Optimize transfè egzanp
pa gen okenn
repons lan se wi
pa gen okenn
repons lan se wi
repons lan se wi
Kopi sou ekri
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi
Blòk baze
pa gen okenn
pa gen okenn
repons lan se wi
pa gen okenn
repons lan se wi
Klonaj enstantane
pa gen okenn
repons lan se wi
repons lan se wi
repons lan se wi
repons lan se wi
Chofè depo ka itilize andedan yon veso
repons lan se wi
repons lan se wi
pa gen okenn
pa gen okenn
pa gen okenn
Restore soti nan pi gran snapshots (pa dènye)
repons lan se wi
repons lan se wi
repons lan se wi
pa gen okenn
repons lan se wi
Kota depo
wi (*)
repons lan se wi
repons lan se wi
repons lan se wi
pa gen okenn
Inisyalize rezo a ak pisin depo lè l sèvi avèk sòsye an ^
Pwochen kòmandman nou pral gade nan sijere mete konpozan prensipal yo nan LXD lè w reponn kesyon senp yo lè l sèvi avèk sòsye inisyalizasyon an.
Kouri lòd lxc init epi antre repons kesyon yo apre kolon an jan yo montre nan egzanp ki anba a oswa chanje yo selon kondisyon w yo:
lxd init
Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]: ssdpool
Name of the storage backend to use (lvm, btrfs, dir) [default=btrfs]:
Create a new BTRFS pool? (yes/no) [default=yes]:
Would you like to use an existing block device? (yes/no) [default=no]:
Size in GB of the new loop device (1GB minimum) [default=15GB]: 10GB
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=lxdbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 10.0.5.1/24
Would you like LXD to NAT IPv4 traffic on your bridge? [default=yes]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none
Would you like LXD to be available over the network? (yes/no) [default=no]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes] no
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
Nan etap anvan an nou te kreye Depo pisin ki te bay non an ssdpool ak dosye a ki sitiye sou sistèm mwen an nan /var/lib/lxd/disks/ssdpool.img. Adrès sistèm fichye sa a koresponn ak kondwi SSD fizik nan PC mwen an.
Aksyon sa yo, elaji konpreyansyon yo genyen sou wòl nan jwe pa Depo pisin nan depo a, nou pral kreye yon dezyèm youn Depo pisin ki pral fizikman sitiye sou yon kalite diferan nan disk, HDD. Pwoblèm lan se ke LXD pa pèmèt ou kreye Depo pisin soti nan adrès /var/lib/lxd/disks/ e menm lyen senbolik pa pral travay, wè repons pwomotè a. Nou ka kontoune limit sa a pandan inisyalizasyon / fòma Depo pisin pa espesifye valè a kòm yon aparèy blòk olye pou yo chemen an nan dosye a loopback pa espesifye sa a nan kle a. source.
Se konsa, anvan kreye Depo pisin ou bezwen defini yon fichye loopback oswa yon patisyon ki deja egziste sou sistèm fichye ou ke li pral itilize. Pou fè sa, nou pral kreye epi sèvi ak yon dosye ke nou pral limite nan gwosè a 10GB:
dd if=/dev/zero of=/mnt/work/lxd/hddpool.img bs=1MB count=10000
10000+0 records in
10000+0 records out
10000000000 bytes (10 GB, 9,3 GiB) copied, 38,4414 s, 260 MB/s
Ann konekte dosye loopback la nan yon aparèy loopback gratis:
Mèsi a kle a --show egzekite lòd la retounen nan ekran an non an nan aparèy la nan ki dosye loopback nou an konekte. Si sa nesesè, nou ka montre yon lis tout aparèy ki okipe kalite sa a pou asire ke aksyon nou yo kòrèk:
Nan lis la ou ka jwenn ke aparèy la genyen /dev/loop1 dosye loopback enkli /mnt/work/lxd/hddpool.img, ak nan aparèy la /dev/loop0 dosye loopback enkli /var/lib/lxd/disks/ssdpool.img ki koresponn ak default la Depo pisin.
Kòmandman sa a kreye yon nouvo Depo pisin nan LXD ki baze sou dosye loopback nou jis prepare. LXD pral fòma dosye loopback la /mnt/work/lxd/hddpool.img nan aparèy la /dev/loop1 pou sistèm dosye BTRFS:
Ensèsyon oto yon dosye loopback nan yon plas aparèy loopback ^
Nou gen yon ti pwoblèm, lè rdemare sistèm lame a, dosye a /mnt/work/lxd/hddpool.img pral "vole" soti nan aparèy la /dev/loop1 ak sèvis LXD la pral aksidan lè chaje paske li pa pral wè li nan aparèy sa a. Pou rezoud pwoblèm sa a ou bezwen kreye yon sèvis sistèm ki pral mete dosye sa a nan aparèy la /dev/loop1 lè sistèm lame a bòt.
Ann kreye inite kalite dosye sèvis в /etc/systemd/system/ pou sistèm inisyalizasyon SystemD:
cat << EOF | sudo tee -a /etc/systemd/system/lxd-hddpool.service
[Unit]
Description=Losetup LXD Storage Pool (hddpool)
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/sbin/losetup /dev/loop1 /mnt/work/lxd/hddpool.img
RemainAfterExit=true
[Install]
WantedBy=local-fs.target
EOF
Aktive sèvis la:
sudo systemctl enable lxd-hddpool
Created symlink /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service → /etc/systemd/system/lxd-hddpool.service.
Apre rekòmanse sistèm lame a, nou tcheke estati sèvis la:
systemctl status lxd-hddpool.service
● lxd-hddpool.service - Losetup LXD Storage Pool (hddpool)
Loaded: loaded (/etc/systemd/system/lxd-hddpool.service; enabled; vendor preset: disabled)
Active: active (exited) since Wed 2020-04-08 03:43:53 MSK; 1min 37s ago
Process: 711 ExecStart=/sbin/losetup /dev/loop1 /mnt/work/lxd/hddpool.img (code=exited, status=0/SUCCESS)
Main PID: 711 (code=exited, status=0/SUCCESS)
апр 08 03:43:52 manjaro systemd[1]: Starting Losetup LXD Storage Pool (hddpool)...
апр 08 03:43:53 manjaro systemd[1]: Finished Losetup LXD Storage Pool (hddpool).
Soti nan pwodiksyon an nou ka verifye ke eta a sèvis se aktif, malgre lefèt ke ekzekisyon script nou an soti nan yon sèl kòmand te konplete, opsyon a pèmèt nou fè sa. RemainAfterExit=true.
Piske tout pwosesis veso yo aktyèlman ap fonksyone nan izolasyon sou sistèm lame a lè l sèvi avèk nwayo li yo, pou plis pwoteje aksè nan pwosesis veso a nan sistèm lame a, LXD ofri privilèj pwosesis, kote:
Kontenè privilejye yo - sa yo se resipyan nan ki pwosesis ki gen UID ak GID koresponn ak pwopriyetè a menm ak sou sistèm lame a. Pa egzanp, yon pwosesis k ap kouri nan yon veso ki gen yon UID 0 gen tout dwa aksè ak yon pwosesis sou sistèm lame a ak yon UID 0. Nan lòt mo, itilizatè rasin nan veso a gen tout dwa pa sèlman nan veso a, men tou sou sistèm lame a si li ka ale deyò espas non izole veso a.
Kontenè ki pa gen privilèj - sa yo se resipyan kote pwosesis fè pati pwopriyetè a nan UID a ak GID ak yon nimewo ki soti nan 0 a 65535, men pou sistèm lame a se pwopriyetè a maske lè l sèvi avèk te ajoute SubUID ak SubGID Bits, respektivman. Pou egzanp, yon itilizatè ki gen UID = 0 nan yon veso yo pral wè sou sistèm lame a kòm SubUID + UID. Sa a pwoteje sistèm lame a paske si nenpòt pwosesis nan veso a kapab sove espas non izole li yo, li ka sèlman kominike ak sistèm lame a kòm yon pwosesis ki gen yon UID/GID enkoni, trè wo.
Pa default, kontenè ki fèk kreye yo gen yon estati san privilèj, kidonk nou dwe defini yon SubUID ak yon SubGID.
Ann kreye de fichye konfigirasyon kote nou pral mete mask la pou SubUID ak SubGID, respektivman:
Depi nou te deja inisyalize rezo a lè l sèvi avèk sòsye inisyalizasyon an lxd init epi kreye yon aparèy rezo lxdbr0, Lè sa a, nan seksyon sa a nou pral tou senpleman fè konesans ak rezo nan LXD ak ki jan yo kreye yon switch vityèl (pon) lè l sèvi avèk lòd kliyan an.
Dyagram sa a montre kijan yon switch (pon) konekte lame a ak resipyan yo nan yon rezo:
Kontenè yo ka kominike atravè yon rezo ak lòt resipyan oswa lame kote resipyan sa yo sèvi. Pou fè sa, ou bezwen konekte kat rezo vityèl nan resipyan yo ak yon switch vityèl. Nou pral kreye yon switch an premye, epi entèfas rezo veso a pral lye nan chapit ki vin apre yo, apre yo fin kreye veso a li menm.
Kòmandman sa a kreye yon switch ak yon subnet 10.0.5.0/24 ak adrès IPv4 10.0.5.1/24, epi li gen ladan tou ipv4.nat pou kontenè yo ka jwenn aksè nan entènèt la atravè lame a lè l sèvi avèk sèvis NAT la:
Chak veso nan LXD gen konfigirasyon pwòp li yo epi li ka pwolonje li ak konfigirasyon globalman te deklare yo rele pwofil konfigirasyon. Aplike pwofil konfigirasyon nan yon veso gen yon modèl kaskad, egzanp sa a montre sa:
Nan egzanp sa a, twa pwofil yo te kreye nan sistèm nan LXD: default, hddpool и hostfs. Tout twa pwofil yo aplike nan yon veso ki gen yon konfigirasyon lokal (zòn gri). Profile default gen yon aparèy root ki gen yon paramèt pool egal ssdpool, men gras a modèl aplikasyon konfigirasyon kaskad la, nou ka aplike yon pwofil nan veso a hddpool ki gen yon paramèt pool pral pase sou desizyon menm paramèt nan pwofil la default ak veso a pral resevwa konfigirasyon aparèy la root ak paramèt pool egal hddpool, ak pwofil la hostfs tou senpleman ajoute yon nouvo aparèy nan veso a.
Pou wè lis pwofil konfigirasyon ki disponib yo, sèvi ak lòd sa a:
lxc profile list
+---------+---------+
| NAME | USED BY |
+---------+---------+
| default | 1 |
+---------+---------+
| hddroot | 0 |
+---------+---------+
| ssdroot | 1 |
+---------+---------+
Ou ka jwenn yon lis konplè sou kòmandman ki disponib pou travay ak yon pwofil lè w ajoute kle a --help:
lxc profile --help
Description:
Manage profiles
Usage:
lxc profile [command]
Available Commands:
add Add profiles to instances
assign Assign sets of profiles to instances
copy Copy profiles
create Create profiles
delete Delete profiles
device Manage instance devices
edit Edit profile configurations as YAML
get Get values for profile configuration keys
list List profiles
remove Remove profiles from instances
rename Rename profiles
set Set profile configuration keys
show Show profile configurations
unset Unset profile configuration keys
Pwofil konfigirasyon default default pa gen yon konfigirasyon kat rezo pou veso a ak tout resipyan ki fèk kreye pa gen yon rezo, pou yo li nesesè yo kreye aparèy rezo lokal (dedye) ak yon lòd separe, men nou ka kreye yon aparèy rezo mondyal nan konfigirasyon an. pwofil ki pral pataje ant tout resipyan ki itilize pwofil sa a. Nan fason sa a, imedyatman apre lòd pou kreye yon nouvo veso, yo pral gen yon rezo ak aksè rezo. An menm tan an, pa gen okenn restriksyon; nou ka toujou kreye yon aparèy rezo lokal pita si sa nesesè.
Kòmandman sa a pral ajoute aparèy la nan pwofil la konfigirasyon eth0 kalite nic konekte ak rezo a lxdbr0:
lxc profile device add default eth0 nic network=lxdbr0 name=eth0
Li enpòtan sonje ke piske nou aktyèlman ajoute aparèy la nan pwofil la konfigirasyon, si nou espesifye yon adrès IP estatik nan aparèy la, Lè sa a, tout resipyan ki pral sèvi ak pwofil sa a pral pataje menm adrès IP la. Si gen yon bezwen yo kreye yon veso ki gen yon adrès IP estatik atribye ba pou veso a, Lè sa a, ou ta dwe kreye yon konfigirasyon aparèy rezo nan nivo veso a (konfigirasyon lokal) ak paramèt adrès IP la, epi yo pa nan nivo pwofil la.
Ann tcheke pwofil la:
lxc profile show default
config: {}
description: Default LXD profile
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: /
pool: ssdpool
type: disk
name: default
used_by: []
Nan pwofil sa a nou ka wè ke pou tout resipyan ki fèk kreye de aparèy yo pral kreye:
eth0 - Kalite aparèy nic konekte ak yon switch (pon rezo) lxdbr0
root - Kalite aparèy disk ki itilize yon pisin depo ssdpool
Pou itilize deja kreye Depo pisin resipyan, kreye yon pwofil konfigirasyon ssdroot nan ki nou pral ajoute yon aparèy tankou disk ak pwen mòn / (rasin) lè l sèvi avèk deja kreye a Depo pisin - ssdpool:
Kontenè yo kreye nan imaj ki se distribisyon espesyalman reyini ki pa gen yon nwayo Linux. Se poutèt sa, anvan ou kouri veso a, li dwe deplwaye soti nan imaj sa a. Sous imaj yo se yon depo lokal kote imaj yo telechaje soti nan depo ekstèn.
Pou kòmanse itilize veso a, ou bezwen ajoute yon imaj ki soti nan depo mondyal la nan yon imaj lokal la local:. Koulye a, repozitwa lokal la vid, lòd la pral asire w ke sa a lxc image list. Si metòd la list pa presize yon repozitwa, Lè sa a, repozitwa lokal la pral itilize pa default - local:
lxc image list local:
+-------+-------------+--------+-------------+--------------+------+------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE |
+-------+-------------+--------+-------------+--------------+------+------+
Imaj nan depo a yo jere lè l sèvi avèk metòd sa yo:
Ekip
Deskripsyon
lxc imaj alyas
Jere alyas imaj
lxc imaj kopye
Kopi imaj ant sèvè yo
lxc imaj efase
Efase imaj
lxc imaj edite
Edit pwopriyete imaj
lxc imaj ekspòte
Ekspòte ak telechaje imaj
lxc imaj enpòte
Enpòte imaj nan magazen imaj la
lxc imaj info
Montre enfòmasyon itil sou imaj yo
lxc imaj lis
Lis imaj yo
lxc imaj rafrechir
Rafrechi imaj yo
lxc imaj Montre
Montre pwopriyete imaj yo
Kopi imaj la nan repozitwa lokal la soti nan yon sèl mondyal la images::
Anplis de mòd nan entèaktif, LXD sipòte tou yon mòd enstalasyon konfigirasyon ki pa entèaktif, sa a se lè konfigirasyon an espesifye nan fòm lan nan yon dosye YAML, yon fòma espesyal ki pèmèt ou enstale tout konfigirasyon an nan yon fwa, kontoune ekzekisyon an. nan anpil kòmandman entèaktif ki te diskite pi wo a nan atik sa a, ki gen ladan konfigirasyon rezo, kreyasyon pwofil konfigirasyon, elatriye. Nou pa pral kouvri zòn sa a isit la, ou ka tcheke li pou kont ou. nan dokimantasyon.
Pwochen lòd entèaktif lxc config ki nou pral gade pèmèt ou mete konfigirasyon an. Pou egzanp, asire ke imaj telechaje nan depo lokal la pa otomatikman mete ajou soti nan depo mondyal yo, nou ka pèmèt konpòtman sa a ak lòd sa a:
Pou kreye yon veso itilize kòmandman an lxc init ki valè yo pase репозиторий:образ epi apre sa vle di ID pou veso a. Repozitwa a ka espesifye kòm lokal local: se konsa nenpòt moun mondyal. Si repozitwa a pa espesifye, lè sa a pa default repozitwa lokal la itilize pou fè rechèch pou imaj la. Si imaj la espesifye nan depo mondyal la, Lè sa a, imaj la pral premye telechaje nan repozitwa lokal la ak Lè sa a, itilize yo kreye veso a.
Ann kouri lòd sa a pou kreye premye veso nou an:
lxc init alpine3 alp --storage=hddpool --profile=default --profile=hddroot
Ann gade nan kle yo lòd ke nou itilize isit la nan lòd:
alpine3 — Yo espesifye yon alyas (alyas) pou imaj la ki te deja telechaje nan repozitwa lokal la. Si alyas la pa te kreye pou imaj sa a, Lè sa a, ou ka toujou al gade nan imaj la pa li yo Anprent ki parèt nan tablo a.
alp — Mete idantifyan pou veso a
--storage — Kle sa a endike nan ki Depo pisin yon veso pral kreye
--profile — Kle sa yo kaskad aplike konfigirasyon soti nan pwofil konfigirasyon deja kreye nan veso a
Nou lanse veso a, ki kòmanse lanse sistèm init distribisyon an:
lxc start alp
Ou kapab tou itilize kòmandman an lxc launch ki pèmèt ou konbine ekip yo lxc init и lxc start nan yon sèl operasyon.
Tcheke eta veso a:
lxc list -c ns46tb
+------+---------+------------------+------+-----------+--------------+
| NAME | STATE | IPV4 | IPV6 | TYPE | STORAGE POOL |
+------+---------+------------------+------+-----------+--------------+
| alp | RUNNING | 10.0.5.46 (eth0) | | CONTAINER | hddpool |
+------+---------+------------------+------+-----------+--------------+
Nan seksyon an profiles nou ka asire w ke veso sa a sèvi ak de pwofil konfigirasyon - default и hddroot. Nan seksyon devices nou ka sèlman detekte yon aparèy paske aparèy rezo a te kreye nan nivo pwofil la default. Yo nan lòd yo wè tout aparèy ki itilize nan veso a ou bezwen ajoute yon kle --expanded:
Si nou eseye mete yon adrès IP pou yon aparèy rezo eth0 ekip lxc config device set alp fèt pou konfigirasyon veso a, Lè sa a, nou pral resevwa yon erè ki pral rapòte ke aparèy la pa egziste paske aparèy la eth0 ki se itilize pa veso a fè pati pwofil la default:
lxc config device set alp eth0 ipv4.address 10.0.5.5
Error: The device doesn't exist
Nou ka nan kou mete yon adrès IP estatik pou eth0 aparèy nan pwofil la, men li pral menm bagay la tou pou tout resipyan ki pral sèvi ak pwofil sa a. Se poutèt sa, ann ajoute yon aparèy dedye a veso a:
lxc config device add alp eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5
Lè sa a, ou bezwen rekòmanse veso a:
lxc restart alp
Si nou gade konfigirasyon veso a kounye a, nou pa bezwen sèvi ak opsyon an --expanded pou wè aparèy rezo a eth0, depi nou te kreye li nan nivo veso a epi li kaskad sou menm aparèy la soti nan pwofil la default:
Pou egzekite kòmandman nan yon veso dirèkteman, kontoune koneksyon rezo a, sèvi ak lòd la lxc exec ki egzekite kòmandman nan veso a san yo pa lanse koki sistèm lan. Si ou bezwen egzekite yon lòd nan yon koki lè l sèvi avèk modèl koki tankou varyab, redireksyon fichye (tiyo), elatriye, Lè sa a, ou bezwen klèman lanse koki a epi pase lòd la kòm yon kle, pou egzanp:
lxc exec alp -- /bin/sh -c "echo $HOME"
Kòmandman an te itilize yon karaktè chape espesyal pou karaktè espesyal $ se konsa ke varyab la $HOME pa te entèprete sou machin lame a, men li te entèprete sèlman andedan veso a.
Li posib tou pou kòmanse mòd nan koki entèaktif, ak Lè sa a, fini sesyon an pa egzekite hotkey CTRL+D:
Nan LXD, ou ka jere resous veso yo lè l sèvi avèk yon seri konfigirasyon espesyal. Ou ka jwenn yon lis konplè paramèt konfigirasyon veso yo nan dokimantasyon.
Anplis de restriksyon sa yo limits.read, limits.write nou kapab tou limite kantite espas disk konsome pa veso a (sèlman travay ak ZFS oswa BTRFS):
lxc config device set alp root size=2GB
Apre enstalasyon, nan paramèt la devices.root.size Nou ka verifye limit la fikse:
lxc config show alp
...
devices:
root:
path: /
pool: hddpool
size: 2GB
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""
Pou wè kota disk yo itilize nou ka jwenn nan lòd la lxc info:
lxc info alp
...
Resources:
Processes: 5
Disk usage:
root: 1.05GB
CPU usage:
CPU usage (in seconds): 1
Memory usage:
Memory (current): 5.46MB
Network usage:
eth0:
Bytes received: 802B
Bytes sent: 1.59kB
Packets received: 4
Packets sent: 14
lo:
Bytes received: 0B
Bytes sent: 0B
Packets received: 0
Packets sent: 0
Malgre lefèt ke nou te mete yon limit pou aparèy la rasin nan veso a 2GB, sèvis piblik sistèm tankou df pa pral wè restriksyon sa a. Pou fè sa, nou pral fè yon ti tès epi chèche konnen ki jan li fonksyone.
Ann kreye 2 nouvo kontenè ki idantik nan menm bagay la Depo pisin (hddpool):
lxc exec alp1 -- ls -lh
total 1000M
-rw-r--r-- 1 root root 1000.0M Mar 27 10:16 file.img
Si nou gade nan dezyèm veso a, tcheke pou egzistans yon dosye nan menm kote a, Lè sa a, dosye sa a pa pral la, ki espere, paske resipyan yo kreye nan pwòp yo. Volim Depo nan menm bagay la Depo pisin:
lxc exec alp2 -- ls -lh
total 0
Men, ann konpare valè li pwodui df sou youn ak lòt veso a:
lxc exec alp1 -- df -hT
Filesystem Type Size Used Available Use% Mounted on
/dev/loop1 btrfs 9.3G 1016.4M 7.8G 11% /
...
lxc exec alp2 -- df -hT
Filesystem Type Size Used Available Use% Mounted on
/dev/loop1 btrfs 9.3G 1016.4M 7.8G 11% /
...
Aparèy /dev/loop1 monte kòm patisyon rasin lan Depo pisin ki resipyan sa yo itilize, kidonk yo pataje volim li ant de.
LXD gen kapasite pou kreye snapshots epi retabli eta veso a nan men yo.
Pou kreye yon snapshot, kouri lòd sa a:
lxc snapshot alp snapshot1
Ekip la lxc snapshot pa gen kle ki disponib listSe poutèt sa, pou w wè lis snapshots ou bezwen sèvi ak kòmandman ki montre enfòmasyon jeneral sou veso a:
lxc info alp
...
...
Snapshots:
snapshot1 (taken at 2020/04/08 18:18 UTC) (stateless)
Ou ka retabli yon veso ki soti nan yon snapshot lè l sèvi avèk lòd la lxc restore espesifye veso a pou ki restorasyon an pral fèt ak alyas snapshot la:
lxc restore alp snapshot1
Yo itilize kòmandman sa a pou efase yon snapshot. Tanpri sonje ke sentaks kòmand la pa sanble ak tout lòt moun; isit la ou bezwen presize yon koupe devan apre non veso a. Si koupe a omisyon, Lè sa a, lòd pou efase yon snapshot entèprete kòm yon lòd pou efase yon veso!
lxc delete alp/snapshot1
Nan egzanp ki anwo a, nou te gade sa yo rele snapshots apatrid. LXD gen yon lòt kalite snapshots - eta, ki sove eta aktyèl la nan tout pwosesis nan veso a. Gen yon kantite karakteristik enteresan ak itil ki asosye ak snapshots eta.