Iimpawu eziphambili ze-LXD - Iinkqubo zesikhongozeli zeLinux

Iimpawu eziphambili ze-LXD - Iinkqubo zesikhongozeli zeLinux

I-LXD ngumphathi wesikhongozeli sesizukulwana esilandelayo, isitsho ke umthombo. Inika ujongano lomsebenzisi olufana noomatshini benyani, kodwa isebenzisa izikhongozeli zeLinux endaweni yoko.

Undoqo weLXD lilungelo ledaemon (inkonzo esebenza ngamalungelo engcambu) ebonelela nge REST API ngokugqitha kwi socket ye unix yobulali, ngokunjalo ngokugqitha kumsebenzi womnatha ukuba uqwalaselo olufanelekileyo lufakiwe. Abathengi, njengesixhobo somgca womyalelo esibonelelwe nge-LXD, benza izicelo ngale REST API. Oku kuthetha ukuba nokuba ufikelela kumamkeli wendawo okanye umamkeli okude, yonke into isebenza ngokufanayo.

Kweli nqaku asiyi kuhlala ngokweenkcukacha kwiikhonsepthi ze-LXD, asiyi kuqwalasela zonke izakhono ezikhoyo ezichazwe kumaxwebhu, kuquka ukuphunyezwa kwamva nje kwiinguqulelo zamva nje ze-LXD zenkxaso ye-QEMU koomatshini benyani ngokuhambelana nezikhongozeli. Endaweni yoko, siya kufunda iziseko zolawulo lwesikhongozeli-ukuseta amachibi okugcina, uthungelwano, ukuqhuba isikhongozeli, ukusebenzisa imida yemithombo, kunye nendlela yokusebenzisa iziqwengana ukuze ube nokuqonda okusisiseko kwe-LXD kwaye usebenzise izikhongozeli kwiLinux.

Ngolwazi olupheleleyo, nceda ujonge kumthombo osemthethweni:

Ukuhambahamba

Ukufakela i-LXD ^

Ukufakela i-LXD kunikezelo lwe-Ubuntu ^

Kwi-Ubuntu 19.10 iphakheji yokusabalalisa lxd inosasazo iphakheji ye-snap:

apt search lxd

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

Oku kuthetha ukuba iipakethe ezimbini ziya kufakwa kanye, enye njengempahla yenkqubo kwaye enye njengepakethe ye-snap. Ukufakela iipakethe ezimbini kwisixokelelwano kunokudala ingxaki apho inkqubo yempahla inokuba yinkedama ukuba iphakheji ye-snap isusiwe ngumphathi wepakethe ye-snap.

Fumana ipakethe lxd kwindawo yokugcina i-snap ungasebenzisa lo myalelo ulandelayo:

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

Ngokuqhuba umyalelo list ungaqiniseka ukuba iphakheji lxd ayikafakwa:

snap list

Name  Version    Rev   Tracking  Publisher   Notes
core  16-2.43.3  8689  stable    canonicalβœ“  core

Ngaphandle kwenyani yokuba i-LXD yiphakheji ekhawulezayo, kufuneka ifakwe ngephakheji yenkqubo lxd, eya kudala iqela elihambelanayo kwinkqubo, izixhobo eziyimfuneko kwi /usr/bin njalo njalo.

sudo apt update
sudo apt install lxd

Masiqinisekise ukuba ipakethe ifakwe njenge snap package:

snap list

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

Ukufakela i-LXD kwi-Arch Linux unikezelo ^

Ukufakela iphakheji ye-LXD kwisistim, kufuneka usebenzise le miyalelo ilandelayo, eyokuqala iya kuhlaziya uluhlu lweepakethe kwinkqubo ekhoyo kwindawo yokugcina, eyesibini iya kufaka ngqo ipakethe:

sudo pacman -Syyu && sudo pacman -S lxd

Emva kokufaka ipakethe, ukuze ulawule i-LXD ngumsebenzisi oqhelekileyo, kufuneka yongezwe kwiqela lenkqubo lxd:

sudo usermod -a -G lxd user1

Masiqinisekise umsebenzisi user1 yongezwe kwiqela lxd:

id -Gn user1

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

Ukuba iqela lxd ayibonakali kuluhlu, ngoko kufuneka uvule iseshoni yomsebenzisi kwakhona. Ukwenza oku, kufuneka uphume kwaye ungene phantsi komsebenzisi ofanayo.

Vula ngaphakathi systemd ilayisha inkonzo ye-LXD kuqaliso lwesixokelelwano:

sudo systemctl enable lxd

Masiqale inkonzo:

sudo systemctl start lxd

Ukujonga ubume benkonzo:

sudo systemctl status lxd

Ugcino LXD (Ugcino) ^

Phambi kokuba kuqaliswe, kufuneka siqonde ukuba ugcino lwe-LXD lucwangciswe njani ngokusengqiqweni.

Ugcino (yoGcino) luquka ukusuka kwenye okanye ngaphezulu Idama lokuGcina esebenzisa enye yeendlela zefayile ezixhaswayo njenge ZFS, BTRFS, LVM okanye abalawuli abaqhelekileyo. Yonke Idama lokuGcina yahlulwe ibe yimiqulu (Umthamo wokuGcina) equlethe imifanekiso, izikhongozeli, okanye idatha yezinye iinjongo.

  • Imifanekiso - ezi zisasazo ezidityanisiweyo ngokukodwa ngaphandle kwe-Linux kernel kwaye ziyafumaneka kwimithombo yangaphandle
  • Izikhongozeli - ezi zihanjiswe ngokusasazwa kwimifanekiso, ilungele ukusetyenziswa
  • Izifinyezo - ezi ziziqwengana zesimo sezikhongozeli onokubuyela kuzo

Iimpawu eziphambili ze-LXD - Iinkqubo zesikhongozeli zeLinux

Ukulawula ugcino kwi-LXD, sebenzisa umyalelo lxc storage isatifikethi onokuthi usifumane ngokuchaza isitshixo - lxc storage --help

Lo myalelo ulandelayo ubonisa uluhlu lwazo zonke Idama lokuGcina kwindawo yokugcina i-LXD:

lxc storage list

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

Ukujonga uluhlu lwazo zonke Umthamo wokuGcina kwekhethiweyo Idama lokuGcina ukhonza iqela 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       |
+-----------+----------------------------------+-------------+---------+

Kwakhona, ukuba Idama lokuGcina Xa udala, inkqubo yefayile ye-BTRFS yakhethwa, emva koko ufumane uluhlu Umthamo wokuGcina okanye iisubvolumes kutoliko lwe-BTRFS, ungasebenzisa izixhobo zale nkqubo yefayile:

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

Ukuqalisa i-LXD ^

Phambi kokudala kunye nokusebenzisa izikhongozeli, kufuneka wenze uqaliso lwe-LXD jikelele oluyila kwaye luqwalasele inethiwekhi kunye nokugcinwa. Oku kunokwenziwa ngesandla usebenzisa imiyalelo esemgangathweni yomxhasi ekhoyo kuluhlu ngokufowunela umyalelo lxc --help okanye usebenzisa i wizard yokuqalisa lxd init ukuphendula imibuzo embalwa.

Ukukhetha inkqubo yefayile yePool yoGcino ^

Ngexesha lokuqaliswa, i-LXD ibuza imibuzo emininzi, kuquka ukumisela uhlobo lwesixokelelwano sefayile yokusilela Idama lokuGcina. Ngokungagqibekanga, inkqubo yefayile ye-BTRFS ikhethelwe yona. Akunakwenzeka ukutshintshela kwenye iFS emva kokudalwa. Ukukhetha iFS kuyacetyiswa Itheyibhile yokuthelekisa into:

uphawu
Uluhlu
Btrfs
LVM
I-ZFS
CEPH

Ugcino lomfanekiso olulungiselelwe
hayi
ewe
ewe
ewe
ewe

Ukwenza umzekelo olungiselelweyo
hayi
ewe
ewe
ewe
ewe

Ukwenziwa kwesnapshot elungiselelweyo
hayi
ewe
ewe
ewe
ewe

Ugqithiso lomfanekiso olulungiselelwe
hayi
ewe
hayi
ewe
ewe

Unikezelo lomzekelo olungiselelweyo
hayi
ewe
hayi
ewe
ewe

Khuphela ekubhaleni
hayi
ewe
ewe
ewe
ewe

Block based
hayi
hayi
ewe
hayi
ewe

I-cloning ekhawulezileyo
hayi
ewe
ewe
ewe
ewe

Umqhubi wogcino olusebenzisekayo ngaphakathi kwesikhongozeli
ewe
ewe
hayi
hayi
hayi

Buyisela ukusuka kwizifinyezo ezindala (hayi zamva nje)
ewe
ewe
ewe
hayi
ewe

Izabelo zokugcina
Ewe(*)
ewe
ewe
ewe
hayi

Ukuqalisa inethiwekhi kunye nePool yoGcino usebenzisa iwizadi ^

Umyalelo olandelayo esiza kuwujonga ucebisa ukuseta amacandelo aphambili e-LXD ngokuphendula imibuzo elula usebenzisa iwizadi yokuqalisa.

Qhuba umyalelo lxc init kwaye ufake iimpendulo kwimibuzo emva kwekholoni njengoko kubonisiwe kumzekelo ongezantsi okanye uzitshintshe ngokwemiqathango yakho:

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

Ukudala iPoli yokuGcina eyongezelelweyo ^

Kwinqanaba langaphambili sidale Idama lokuGcina elathiywa igama ssdpool kunye nefayile ebekwe kwindlela yam kwi /var/lib/lxd/disks/ssdpool.img. Le dilesi yesixokelelwano sefayile ihambelana ne drive ye-SSD ebonakalayo kwiPC yam.

La manyathelo alandelayo, ukwandisa ukuqonda indima edlalwe Idama lokuGcina kwindawo yokugcina, siya kudala eyesibini Idama lokuGcina eyakuthi ibekwe ngokwasemzimbeni kudidi olwahlukileyo lwediski, i-HDD. Ingxaki kukuba i-LXD ayikuvumeli ukuba wenze Idama lokuGcina ngaphandle kwedilesi /var/lib/lxd/disks/ kwaye namakhonkco omfuziselo akayi kusebenza, bona impendulo yomphuhlisi. Singawugqitha lo mda ngexesha lokuqalisa/ukufomatha Idama lokuGcina ngokukhankanya ixabiso njengesixhobo sebhloko endaweni yendlela eya kwifayile yeloopback ngokukhankanya oku kwisitshixo source.

Ngoko, ngaphambi kokudala Idama lokuGcina Kufuneka uchaze ifayile yeloopback okanye isahlulelo esisele sikhona kwindlela yakho yefayile eya kusisebenzisa. Ukwenza oku, siya kudala kwaye sisebenzise ifayile esiya kuthi sinciphise ubukhulu ukuya kwi-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

Masiqhagamshele ifayile ye-loopback kwisixhobo sasimahla se-loopback:

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

/dev/loop1

Enkosi kwisitshixo --show Ukuphumeza umyalelo kubuyisela kwisikrini igama lesixhobo apho ifayile yethu ye-loopback idityanisiwe. Ukuba kuyimfuneko, sinokubonisa uluhlu lwazo zonke izixhobo ezixakekileyo zolu hlobo ukuqinisekisa ukuba izenzo zethu zichanekile:

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

Kuluhlu unokufumanisa ukuba isixhobo sinakho /dev/loop1 ifayile yeloopback ibandakanyiwe /mnt/work/lxd/hddpool.img, kunye nesixhobo /dev/loop0 ifayile yeloopback ibandakanyiwe /var/lib/lxd/disks/ssdpool.img ehambelana nokungagqibekanga Idama lokuGcina.

Lo myalelo ulandelayo wenza omnye omtsha Idama lokuGcina kwi-LXD esekwe kwifayile yeloopback esisanda kuyilungisa. I-LXD iya kufomatha ifayile ye-loopback /mnt/work/lxd/hddpool.img kwisixhobo /dev/loop1 yendlela yefayile ye-BTRFS:

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

Masibonise uluhlu lwazo zonke Idama lokuGcina kwiscreen:

lxc storage list

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

Ukwandisa ubungakanani bePolisi yokuGcina ^

Emva kokudala Idama lokuGcina, ukuba kuyimfuneko, inokwandiswa. Kuba Idama lokuGcina Ngokusekwe kwinkqubo yefayile yeBTRFS, sebenzisa le miyalelo ilandelayo:

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

Ufakelo oluzenzekelayo lwefayile yeloopback kwindawo yokubeka isixhobo sokubuyisela umva ^

Sinengxaki enye encinci, xa uqalisa kwakhona inkqubo yokusingatha, ifayile /mnt/work/lxd/hddpool.img iya "kubhabha" ngaphandle kwesixhobo /dev/loop1 kwaye inkonzo ye-LXD iya kuntlitheka xa ilayishwa kuba ayiyi kuyibona kwesi sixhobo. Ukusombulula le ngxaki kufuneka wenze inkonzo yenkqubo eya kufaka le fayile kwisixhobo /dev/loop1 xa inkqubo yenginginya iqala.

Masidale iyunithi uhlobo lwefayile inkonzo Π² /etc/systemd/system/ yeSistimD yokuqalisa inkqubo:

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

Vula inkonzo:

sudo systemctl enable lxd-hddpool

Created symlink /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service β†’ /etc/systemd/system/lxd-hddpool.service.

Emva kokuqalisa kwakhona inkqubo yokusingatha, sijonga ubume benkonzo:

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

Ukusuka kwimveliso sinokuqinisekisa ukuba imeko yenkonzo esebenzayo, ngaphandle kwenyani yokuba ukuphunyezwa kweskripthi sethu kumyalelo omnye kugqityiwe, ukhetho luye lwasivumela ukuba senze oku. RemainAfterExit=true.

Ukhuseleko. Amalungelo oMgqomo ^

Kuba zonke iinkqubo zesikhongozeli zisebenza zodwa kwindlela yokusingatha isebenzisa i-kernel yayo, ukukhusela ngakumbi ufikelelo lweenkqubo zesikhongozeli kwinkqubo yokusingatha, i-LXD inikezela ngelungelo lenkqubo, apho:

  • Izikhongozeli ezinelungelo - ezi zikhongozeli apho iinkqubo ezine-UID kunye ne-GID zihambelana nomnini ofanayo kunye nenkqubo yokusingatha. Umzekelo, inkqubo eqhuba kwisikhongozeli esine UID ye 0 inamalungelo ofikelelo afanayo njengenkqubo kwindlela yokusingatha nge UID ka 0. Ngamanye amazwi, umsebenzisi oyingcambu kwisikhongozeli unawo onke amalungelo hayi kuphela isikhongozeli, kodwa nakwindlela yomamkeli ukuba angaya ngaphandle kwesithuba segama esisecaleni sesikhongozeli.

  • Izikhongozeli ezingenalungelo - ezi zizikhongozeli apho iinkqubo zingabanini be-UID kunye ne-GID enenombolo ukusuka ku-0 ukuya ku-65535, kodwa kwinkqubo yokusingatha umniniyo ufihliweyo esebenzisa i-SubUID eyongeziweyo kunye ne-SubGID bits, ngokulandelanayo. Umzekelo, umsebenzisi one-UID=0 kwisikhongozeli uya kubonwa kwindlela yokusingatha njenge SubUID + UID. Oku kukhusela isixokelelwano senginginya kuba ukuba nayiphi na inkqubo kwisikhongozeli iyakwazi ukubaleka isithuba sayo samagama esizimeleyo, inokunxibelelana kuphela nenkqubo yenginginya njengenkqubo engaziwayo, ephezulu kakhulu ye-UID/GID.

Ngokungagqibekanga, izikhongozeli ezisandula ukudalwa zinesimo esingafanelekanga kwaye ke kufuneka sichaze i-SubUID kunye ne-SubGID.

Masenze iifayile ezimbini zoqwalaselo apho siyakuseta imaski ye-SubUID kunye ne-SubGID, ngokulandelelanayo:

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

Ukwenza utshintsho, inkonzo ye-LXD kufuneka iqalwe kwakhona:

sudo systemctl restart lxd

Ukudala iswitshi yenethiwekhi enenyani ^

Ukusukela ukuba ngaphambili saqala umsebenzi womnatha usebenzisa iwizadi yokuqalisa lxd init kwaye yenza isixhobo sothungelwano lxdbr0, ke kweli candelo sizakuqhelana ngokulula nothungelwano kwi-LXD kunye nendlela yokwenza iswitshi (ibhulorho) usebenzisa umyalelo womxhasi.

Lo mzobo ulandelayo ubonisa indlela iswitshi (ibhulorho) eqhagamshela ngayo umamkeli kunye nezikhongozeli kuthungelwano:

Iimpawu eziphambili ze-LXD - Iinkqubo zesikhongozeli zeLinux

Imigqomo inokunxibelelana ngothungelwano nezinye izikhongozeli okanye umamkeli apho ezi zikhongozeli zihanjiswa khona. Ukwenza oku, kufuneka udibanise amakhadi othungelwano olubonakalayo lwezikhongozeli kunye nokutshintsha okubonakalayo. Siza kudala utshintsho kuqala, kwaye ujongano lwenethiwekhi yesingxobo luya kudityaniswa kwizahluko ezilandelayo, emva kokuba isikhongozeli senziwe ngokwaso.

Lo myalelo ulandelayo wenza iswitshi nge subnet 10.0.5.0/24 kunye nedilesi ye-IPv4 10.0.5.1/24, kwaye ibandakanya ipv4.nat ukuze izikhongozeli zikwazi ukufikelela kwi-Intanethi ngomninimzi usebenzisa inkonzo ye-NAT:

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

Ukujonga uluhlu lwezixhobo zenethiwekhi ezikhoyo kwi-LXD:

lxc network list

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

Ungaqinisekisa kwakhona ukuba isixhobo sothungelwano senziwe kusetyenziswa isixhobo esisezantsi sonikezelo lweLinux - ip link okanye 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

Iprofayile yoqwalaselo ^

Isikhongozeli ngasinye esikwi-LXD sinolungelelwaniso lwaso kwaye sinokuyandisa ngoqwalaselo olubhengezwe kwihlabathi jikelele olubizwa iiprofayili zoqwalaselo. Ukusebenzisa iiprofayili zoqwalaselo kwisikhongozeli kunemodeli ye-cascade, lo mzekelo ulandelayo ubonisa oku:

Iimpawu eziphambili ze-LXD - Iinkqubo zesikhongozeli zeLinux

Kulo mzekelo, iiprofayili ezintathu zenziwe kwinkqubo ye-LXD: default, hddpool ΠΈ hostfs. Zontathu iiprofayili zisetyenziswa kwisikhongozeli esinobumbeko lwendawo (indawo engwevu). Inkangeleko yesimo default inesixhobo root eneparameter pool iyalingana ssdpool, kodwa ngenxa yemodeli yesicelo soqwalaselo lwe-cascade, sinokufaka iprofayili kwisitya hddpool eneparameter pool izakukhupha iparameter efanayo kwiprofayile default kwaye isikhongozeli siya kufumana uqwalaselo lwesixhobo root ngeparameter pool ngokulinganayo hddpool, kunye neprofayile hostfs yongeza ngokulula isixhobo esitsha kwisikhongozeli.

Ukubona uluhlu lweeprofayile zoqwalaselo ezikhoyo, sebenzisa lo myalelo ulandelayo:

lxc profile list

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

Uluhlu olupheleleyo lwemiyalelo ekhoyo yokusebenza ngeprofayili inokufumaneka ngokudibanisa iqhosha --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

Ukuhlela iprofayile yakho ^

Iprofayile yoqwalaselo oluhlala lukhona default ayinalo uqwalaselo lwekhadi lomnatha kwisikhongozeli kwaye zonke izikhongozeli ezisanda kwakhiwa azinathungelwano, kubo kuyimfuneko ukwenza izixhobo zenethiwekhi yendawo (ezinikezelweyo) ngomyalelo owahlukileyo, kodwa singenza isixhobo sothungelwano lwehlabathi kuqwalaselo. Iprofayile eya kwabelwana ngayo phakathi kwazo zonke izikhongozeli kusetyenziswa le nkangeleko. Ngale ndlela, ngokukhawuleza emva komyalelo wokudala isitya esitsha, baya kuba nenethiwekhi kunye nokufikelela kwinethiwekhi. Kwangaxeshanye, akukho zithintelo; sinokuhlala sisenza isixhobo sothungelwano sasekhaya kamva ukuba kuyimfuneko.

Lo myalelo ulandelayo uyakongeza isixhobo kwiprofayile yoqwalaselo eth0 uhlobo nic iqhagamshelwe kwinethiwekhi lxdbr0:

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

Kubalulekile ukuqaphela ukuba ekubeni ngokwenene songeze isixhobo kwiprofayili yoqwalaselo, ukuba sikhankanye idilesi ye-IP engatshintshiyo kwisixhobo, ke zonke iziqulathi eziza kusebenzisa le profayile ziya kubelana ngedilesi ye-IP efanayo. Ukuba kukho imfuneko yokwenza isitya esinedilesi ye-IP engatshintshiyo eyabelwe isikhongozeli, ngoko ke kufuneka udale uqwalaselo lwesixhobo sothungelwano kwinqanaba lesikhongozeli (ubumbeko lwendawo) kunye neparameter yedilesi ye-IP, kwaye hayi kwinqanaba leprofayile.

Makhe sijonge iprofayile:

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

Kule profayile siyabona ukuba kuzo zonke izikhongozeli ezisanda kwenziwa izixhobo ezibini ziya kwenziwa:

  • eth0 β€” Uhlobo lwesixhobo nic iqhagamshelwe kwisitshixo (ibhulorho yenethiwekhi) lxdbr0
  • root β€” Uhlobo lwesixhobo disk esebenzisa ichibi lokugcina ssdpool

Ukudala iinkangeleko ezintsha ^

Ukusebenzisa eyenziwe ngaphambili Idama lokuGcina izitya, yenza iprofayile yoqwalaselo ssdroot apho siyakongeza isixhobo esinje disk enendawo yokunyuka / (ingcambu) usebenzisa eyenziwe ngaphambili Idama lokuGcina - ssdpool:

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

Ngokufanayo, senza isixhobo esinje disk, kodwa kule meko usebenzisa Idama lokuGcina - hddpool:

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

Ijonga iiprofayile zoqwalaselo:

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

Uvimba womfanekiso ^

Izikhongozeli zenziwe kwimifanekiso edityaniswe ngokukodwa unikezelo olungenayo i-Linux kernel. Ke ngoko, ngaphambi kokuba usebenzise isikhongozeli, kufuneka sibekwe kulo mfanekiso. Umthombo wemifanekiso nguvimba wendawo apho imifanekiso ikhutshelwa kwiindawo zokugcina zangaphandle.

Iindawo zokugcina imifanekiso ekude ^

Ngokungagqibekanga, i-LXD iqwalaselwe ukufumana imifanekiso kwimithombo emithathu ekude:

  • ubuntu: (yemifanekiso ye-Ubuntu ezinzileyo)
  • ubuntu-daily: (yemifanekiso yemihla ngemihla ye-Ubuntu)
  • imifanekiso: (kwiqela lezinye ii-distros)

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

Ngokomzekelo, indawo yokugcina ubuntu: inale mifanekiso ilandelayo:

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

Ukubonisa inani eliqingqiweyo leekholamu sisebenzise ukhetho -c ngeeparamitha dasut, kwaye unciphise ubude boluhlu ngomyalelo head.

Uhluzo luyafumaneka ukubonisa uluhlu lwemifanekiso. Lo myalelo ulandelayo uya kudwelisa zonke izakhiwo ezikhoyo zokusasaza 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        |
+------------------------------+--------------------------------------+--------------+

Indawo yokugcina imifanekiso ^

Ukuqala ukusebenzisa isikhongozeli, kufuneka udibanise umfanekiso osuka kwindawo yokugcina umhlaba ukuya kweyasekhaya local:. Ngoku indawo yokugcina indawo ayinanto, umyalelo uya kuqinisekisa oku lxc image list. Ukuba indlela list sukukhankanya indawo yokugcina, ngoko ke indawo yokugcina iyakusetyenziswa ngokungagqibekanga - local:

lxc image list local:

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

Imifanekiso kwindawo yokugcina ilawulwa kusetyenziswa ezi ndlela zilandelayo:

Iqela
inkcazelo

umfanekiso welxc ogama limbi
Lawula iziteketiso zemifanekiso

umfanekiso welxc ikopi
Khuphela imifanekiso phakathi kweeseva

umfanekiso welxc ususe
Cima imifanekiso

umfanekiso welxc hlela
Hlela iipropati zomfanekiso

umfanekiso welxc kwamanye amazwe
Thumela ngaphandle kwaye ukhuphele imifanekiso

umfanekiso welxc yokungenisa
Ngenisa imifanekiso kwivenkile yemifanekiso

umfanekiso welxc info
Bonisa ulwazi oluluncedo malunga nemifanekiso

umfanekiso welxc uluhlu
Dwelisa imifanekiso

umfanekiso welxc hlaziya kwakhona
Hlaziya imifanekiso

umfanekiso welxc bonisa
Bonisa iimpawu zomfanekiso

Khuphela umfanekiso kwindawo yogcino lwendawo ukusuka kweyehlabathi images::

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

Image copied successfully!

Masibonise uluhlu lwayo yonke imifanekiso ekhoyo ngoku kwindawo yokugcina local::

lxc image -c lfdatsu list local:

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

Uqwalaselo lwe-LXD ^

Ukongeza kwimo esebenzisanayo, i-LXD ikwaxhasa imowudi yoqwalaselo engasebenziyo, oku kuxa uqwalaselo lucaciswe ngendlela yefayile yeYAML, ifomathi ekhethekileyo ekuvumela ukuba ufakele uqwalaselo lonke ngaxeshanye, udlule ukuphunyezwa. yemiyalelo emininzi esebenzisanayo ekuye kwaxoxwa ngayo ngasentla kweli nqaku, kubandakanywa uqwalaselo lwenethiwekhi, ukudalwa kweeprofayili zoqwalaselo, njl. Asiyi kugubungela le ndawo apha, ungayijonga ngokwakho. kumaxwebhu.

Umyalelo olandelayo osebenzisanayo lxc config esiza kujonga kuyo ikuvumela ukuba usete uqwalaselo. Umzekelo, ukuqinisekisa ukuba imifanekiso ekhutshelweyo kwindawo yogcino lwendawo ayihlaziywa ngokuzenzekelayo ukusuka koovimba behlabathi, sinokwenza oku kuziphatha ngalo myalelo ulandelayo:

lxc config set images.auto_update_cached=false

Ukudala nokulawula isikhongozeli ^

Ukwenza isikhongozeli sebenzisa umyalelo lxc init apho amaxabiso agqithiselwa khona Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:ΠΎΠ±Ρ€Π°Π· kwaye emva koko i-ID efunwayo yesikhongozeli. Indawo yokugcina inokuchazwa njengendawo yendawo local: kunjalo naliphi na ihlabathi. Ukuba indawo yokugcina ayichazwanga, ngoko ngokungagqibekanga indawo yokugcina isetyenziselwa ukukhangela umfanekiso. Ukuba umfanekiso uchaziwe kwindawo yokugcina umhlaba, ngoko umfanekiso uya kuqala ukukhutshelwa kwindawo yokugcina indawo kwaye usetyenziswe ukwenza isikhongozeli.

Masiqhube lo myalelo ulandelayo ukwenza isikhongozeli sethu sokuqala:

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

Makhe sijonge izitshixo zomyalelo esizisebenzisa apha ngokulandelelana:

  • alpine3 - Isibizo (i-alias) sicacisiwe kumfanekiso owawufakwe ngaphambili kwindawo yokugcina indawo. Ukuba i-alias ayizange idalelwe lo mfanekiso, ngoko ungasoloko ubhekisa kumfanekiso ngawo Iprintprint eboniswe kwitheyibhile.
  • alp β€” Iseta isichongi sesikhongozeli
  • --storage β€” Eli qhosha libonisa ukuba yeyiphi Idama lokuGcina isitya siya kwenziwa
  • --profile β€” La maqhosha adlala ulungelelwaniso olusuka kwiiprofayile ezidaliweyo ngaphambili kwisingxobo

Siqalisa isikhongozeli, esiqala ukusungula inkqubo ye-init yokusasazwa:

lxc start alp

Ungasebenzisa kwakhona umyalelo lxc launch ekuvumela ukuba udibanise amaqela lxc init ΠΈ lxc start kumsebenzi omnye.

Ukujonga ubume besikhongozeli:

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

Ijonga ubumbeko lwesikhongozeli:

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

Kwicandelo profiles singaqinisekisa ukuba esi sikhongozeli sisebenzisa iiprofayili zoqwalaselo ezimbini βˆ’ default ΠΈ hddroot. Kwicandelo devices sinokubona isixhobo esinye kuba isixhobo sothungelwano senziwe kwinqanaba leprofayile default. Ukuze ubone zonke izixhobo ezisetyenziswa sisikhongozeli kufuneka udibanise isitshixo --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: ""

Ukuseta idilesi ye-IP engatshintshiyo ^

Ukuba sizama ukuseta idilesi ye-IP kwisixhobo sothungelwano eth0 Iqela lxc config device set alp yenzelwe uqwalaselo lwesikhongozeli, ngoko ke siya kufumana imposiso eya kuthi ichaze ukuba isixhobo asikho ngenxa yokuba isixhobo eth0 esetyenziswa sisikhongozeli yeyeprofayile default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

Ngokuqinisekileyo sinokuseta idilesi ye-IP engatshintshiyo eth0 izixhobo kwiprofayile, kodwa iya kufana kuzo zonke izikhongozeli eziya kusebenzisa le profayile. Ke ngoko, masiyongeze isixhobo esinikezelwe kwisingxobo:

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

Emva koko kufuneka uqale kabusha isikhongozeli:

lxc restart alp

Ukuba sijonga uqwalaselo lwesikhongozeli ngoku, akufuneki sisebenzise ukhetho --expanded ukubona isixhobo sothungelwano eth0, ekubeni siyidale kwinqanaba lesikhongozeli kwaye i-cascaded phezu kwesixhobo esifanayo kwiprofayile 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: ""

Ukususa isitya ^

Ukususa isikhongozeli, sebenzisa umyalelo lxc delete, kodwa ngaphambi kokususa isikhongozeli, kufuneka siyeke ukusebenzisa umyalelo lxc stop:

lxc stop alp

lxc list

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

Emva kokuba siqinisekisile ukuba imeko yesikhongozeli iye yaba YEKA, inokususwa kuyo Idama lokuGcina:

lxc delete alp

Ukufikelela kwisikhongozeli ^

Ukuphumeza imiyalelo kwisikhongozeli ngokuthe ngqo, ugqitha imidibaniso yenethiwekhi, sebenzisa umyalelo lxc exec eyenza imiyalelo kwisikhongozeli ngaphandle kokundulula iqokobhe lendlela. Ukuba ufuna ukuphumeza umyalelo kwiqokobhe usebenzisa iipatheni zeqokobhe ezifana neziguquguqukayo, ulwalathiso lwefayile (umbhobho), njl., ngoko kufuneka undulule ngokucacileyo iqokobhe kwaye ugqithise umyalelo njengesitshixo, umzekelo:

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

Umyalelo usebenzise uphawu olukhethekileyo lokubaleka kubalinganiswa abakhethekileyo $ ukuze uguquko $HOME ayizange itolikwe kumatshini wokusingatha, kodwa yatolikwa kuphela ngaphakathi kwesikhongozeli.

Kuyenzeka kwakhona ukuqalisa imowudi esebenzisanayo yeqokobhe, kwaye emva koko uphelise iseshoni ngokuphumeza ihotkey CTRL+D:

lxc exec alp -- /bin/sh

Ulawulo lwemithombo yesikhongozeli ^

Kwi-LXD, unokulawula izixhobo zesikhongozeli usebenzisa iseti ekhethekileyo yoqwalaselo. Uluhlu olupheleleyo lweeparamitha zoqwalaselo lwesikhongozeli zinokufunyanwa kumaxwebhu.

Ukunciphisa izixhobo ze-RAM ^

IParamu limits.memory inciphisa inani le-RAM ekhoyo kwisikhongozeli. Ixabiso linani kunye nenye ye izimamva ezikhoyo.

Masibeke umda we-RAM yesikhongozeli ukuya kuma-256 MB:

lxc config set alp limits.memory 256MB

Kwakhona, kukho ezinye iiparameters zokunciphisa imemori:

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

Iqela lxc config show ikuvumela ukuba ubonise uqwalaselo lwesikhongozeli siphela, ukuquka umda wesixhobo esisetyenzisiweyo ebesibekiwe:

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

Umda wezixhobo ze-CPU ^

Kukho iindlela ezininzi zokunciphisa izixhobo ze-CPU. iintlobo zezithintelo:

  • limit.cpu - ibophelela isikhongozeli kwi-CPU cores enye okanye ngaphezulu
  • limits.cpu.allowance - ilawula nokuba CFS umcwangcisi quotas xa umda wexesha lidlulile, okanye universal CPU resource ukwabelana indlela xa ipesenti idlulile
  • limits.cpu.priority -ukubaluleka komcwangcisi xa amaxesha amaninzi ekwabelwana ngeseti yabaqhubekekisi babelwa ipesenti efanayo yabaqhubekekisi

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

Unyino lwesithuba sediski ^

Ukongeza kwizithintelo ezinjalo limits.read, limits.write singakwazi kwakhona ukunciphisa ubungakanani bendawo yedisk esetyenziswe sisikhongozeli (isebenza kuphela ngeZFS okanye BTRFS):

lxc config device set alp root size=2GB

Emva kofakelo, kwiparameter devices.root.size Singaqinisekisa umda omiselweyo:

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

Ukujonga iiquota zedisk ezisetyenzisiweyo esinokuzifumana kumyalelo 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

Nangona sibeke umda wesixhobo sengcambu yesikhongozeli ukuya kwi-2GB, izixhobo zenkqubo ezifana df andizukubona lo mda. Ukwenza oku, siya kuqhuba uvavanyo oluncinci kwaye sifumanise ukuba lusebenza njani.

Masenze izikhongozeli ezi-2 ezintsha ezifanayo ngokufanayo Idama lokuGcina (i-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         |
+------+---------+------------------+------+-----------+-----------+

Masenze ifayile ye-1GB kwenye yezikhongozeli:

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

Masiqinisekise ukuba ifayile yenziwe:

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

Ukuba sijonga kwisitya sesibini, khangela ubukho befayile kwindawo enye, ngoko le fayile ayiyi kubakho, ekulindeleke ukuba, kuba izitya zenziwe ngokwazo. Umthamo wokuGcina ngokufanayo Idama lokuGcina:

lxc exec alp2 -- ls -lh
total 0

Kodwa masithelekise amaxabiso avelisayo df kwenye kunye nesinye isikhongozeli:

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

I sixhobo /dev/loop1 inyuswe njengoko ulwahlulo lweengcambu lunjalo Idama lokuGcina ezisetyenziswa zezi zikhongozeli, ngoko zabelana ngevolumu yazo phakathi kwezibini.

Iinkcukacha-manani zokusetyenziswa kobutyebi ^

Uyakwazi ukujonga iinkcukacha-manani zokusetyenziswa kobutyebi kwisikhongozeli usebenzisa lo myalelo:

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

Sebenza ngeesnapshots ^

I-LXD inamandla okwenza izifinyezo kunye nokubuyisela imeko yesikhongozeli ukusuka kubo.

Ukwenza i-snapshot, sebenzisa lo myalelo ulandelayo:

lxc snapshot alp snapshot1

Iqela lxc snapshot akukho sitshixo sikhoyo list, ke ngoko, ukujonga uluhlu lwezifinyezo kufuneka usebenzise umyalelo obonisa ulwazi ngokubanzi malunga nesiqulathi:

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

Ungabuyisela isikhongozeli kwisnapshot usebenzisa umyalelo lxc restore ichaza isikhongozeli ekuya kwenziwa kuso ubuyiselo kunye ne-alias yesnapshot:

lxc restore alp snapshot1

Lo myalelo ulandelayo usetyenziswa ukucima umfanekiso okhawulezayo. Nceda qaphela ukuba isivakalisi somyalelo asifani nazo zonke ezinye, apha kufuneka ukhankanye isilayidi sangaphambili emva kwegama lesikhongozeli. Ukuba i-slash ishiywe, ngoko umyalelo wokucima i-snapshot utolikwa njengomyalelo wokucima isikhongozeli!

lxc delete alp/snapshot1

Kulo mzekelo ungasentla, sijonge oko kubizwa ngokuba zii-snapshots ezingena-stateless. I-LXD inolunye uhlobo lwee-snapshots - ezicacileyo, ezigcina imeko yangoku yazo zonke iinkqubo ezikwisikhongozeli. Kukho inani lezinto ezinomdla kunye neziluncedo ezinxulunyaniswa nesnapshots.

Yintoni enye? ^

  • Imodyuli iyafumaneka kubaphuhlisi bePython I-PyLXD ebonelela nge-API kwi-LXD

UHLAZIYO NGE-10.04.2020/15/00 XNUMX:XNUMX: Ukukhangela kongezwe

umthombo: www.habr.com

Yongeza izimvo