Izici eziyisisekelo ze-LXD - amasistimu weziqukathi ze-Linux

Izici eziyisisekelo ze-LXD - amasistimu weziqukathi ze-Linux

I-LXD ungumphathi weziqukathi zesistimu yesizukulwane esilandelayo, ngakho-ke kusho umthombo. Inikeza ukusebenzelana komsebenzisi okufana nemishini ebonakalayo, kodwa isebenzisa iziqukathi ze-Linux esikhundleni salokho.

Inani eliphakeme kakhulu lama-LXD iyi-daemon enelungelo (isevisi esebenza ngamalungelo ezimpande) ehlinzeka nge-REST API ngesokhethi yasendaweni ye-unix, kanye nangenethiwekhi uma ukucushwa okufanele kufakiwe. Amaklayenti, njengethuluzi lomugqa womyalo elinikezwe i-LXD, enza izicelo ngale REST API. Lokhu kusho ukuthi noma ngabe ufinyelela kumsingathi wendawo noma umsingathi okude, yonke into isebenza ngendlela efanayo.

Kulesi sihloko ngeke sihlale ngokuningiliziwe emicabangweni ye-LXD, ngeke sicabangele wonke amakhono atholakalayo achazwe emibhalweni, kuhlanganise nokuqaliswa kwakamuva ezinguqulweni zakamuva ze-LXD zokusekelwa kwemishini ebonakalayo ye-QEMU ngokuhambisana neziqukathi. Esikhundleni salokho, sizofunda izisekelo zokuphathwa kweziqukathi - ukusetha amachibi okugcina, ukunethiwekha, ukusebenzisa isiqukathi, ukusebenzisa imikhawulo yezinsiza, kanye nendlela yokusebenzisa izifinyezo ukuze uthole ukuqonda okuyisisekelo kwe-LXD nokusebenzisa iziqukathi ku-Linux.

Ukuze uthole ulwazi oluphelele, sicela ubheke umthombo osemthethweni:

Ukuzula

Ukufakwa kwe-LXD ^

Ukufaka i-LXD ekusatshalalisweni kwe-Ubuntu ^

Kuphakheji yokusabalalisa ye-Ubuntu 19.10 lxd inokusakaza iphakethe le-snap:

apt search lxd

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

Lokhu kusho ukuthi amaphakheji amabili azofakwa ngesikhathi esisodwa, eyodwa njengephakheji yesistimu kanti enye njengephakheji ye-snap. Ukufaka amaphakheji amabili kusistimu kungase kudale inkinga lapho iphakheji yesistimu ingase ibe intandane uma iphakheji ye-snap isuswa umphathi wephakheji ye-snap.

Thola iphakheji lxd ku-snap repository ungasebenzisa umyalo olandelayo:

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

Ngokusebenzisa umyalo list ungaqiniseka ukuthi iphakethe lxd akukafakwa:

snap list

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

Ngaphandle kweqiniso lokuthi i-LXD iyiphakheji ye-snap, kufanele ifakwe ngephakheji yesistimu lxd, okuzodala iqembu elihambisanayo ohlelweni, izinsiza ezidingekayo ku /usr/bin nokunye.

sudo apt update
sudo apt install lxd

Masiqinisekise ukuthi iphakheji ifakiwe njengephakheji ye-snap:

snap list

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

Ukufaka i-LXD ekusakazweni kwe-Arch Linux ^

Ukufaka iphakheji ye-LXD ohlelweni, udinga ukusebenzisa imiyalo elandelayo, eyokuqala izobuyekeza uhlu lwamaphakheji ohlelweni olutholakala endaweni yokugcina impahla, eyesibili izofaka iphakheji ngokuqondile:

sudo pacman -Syyu && sudo pacman -S lxd

Ngemva kokufaka iphakheji, ukuze uphathe i-LXD ngumsebenzisi ojwayelekile, kufanele yengezwe eqenjini lesistimu lxd:

sudo usermod -a -G lxd user1

Masiqinisekise umsebenzisi user1 kwengezwe eqenjini lxd:

id -Gn user1

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

Uma iqembu lxd ayibonakali ohlwini, bese udinga ukwenza kusebenze isikhathi somsebenzisi futhi. Ukuze wenze lokhu, udinga ukuphuma futhi ungene ngaphansi komsebenzisi ofanayo.

Yenza kusebenze ku systemd ukulayisha isevisi ye-LXD ekuqaleni kwesistimu:

sudo systemctl enable lxd

Asiqale isevisi:

sudo systemctl start lxd

Ihlola isimo sesevisi:

sudo systemctl status lxd

Isitoreji se-LXD (Isitoreji) ^

Ngaphambi kokuthi ukuqalisa kuqale, sidinga ukuqonda ukuthi isitoreji ku-LXD sihlelwa ngokunengqondo kanjani.

Isitoreji (Storage) siqukethe kusuka kokukodwa noma ngaphezulu Ichibi Lokugcina esebenzisa enye yezinhlelo zefayela ezisekelwayo njenge-ZFS, BTRFS, LVM noma izinkomba ezijwayelekile. Njalo Ichibi Lokugcina ihlukaniswe ngamavolumu (Isitoreji Ivolumu) equkethe izithombe, iziqukathi, noma idatha yezinye izinjongo.

  • Izithombe - lokhu ukusatshalaliswa okuqoqwe ngokukhethekile ngaphandle kwe-Linux kernel futhi kuyatholakala emithonjeni yangaphandle
  • Izitsha - lezi zinsaba ezisatshalalisiwe ezivela ezithombeni, ezilungele ukusetshenziswa
  • Izifinyezo - lezi yizifinyezo zesimo seziqukathi ongabuyela kuzo

Izici eziyisisekelo ze-LXD - amasistimu weziqukathi ze-Linux

Ukuze uphathe isitoreji ku-LXD, sebenzisa umyalo lxc storage isitifiketi ongasithola ngokucacisa ukhiye - lxc storage --help

Umyalo olandelayo ubonisa uhlu lwakho konke Ichibi Lokugcina kusitoreji se-LXD:

lxc storage list

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

Ukuze ubuke uhlu lwakho konke Isitoreji Ivolumu kokukhethiwe Ichibi Lokugcina usebenzela iqembu 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       |
+-----------+----------------------------------+-------------+---------+

Futhi, uma for Ichibi Lokugcina Lapho udala, kwakhethwa uhlelo lwefayela le-BTRFS, bese uthola uhlu Isitoreji Ivolumu noma izihlokwana ekutolikweni kwe-BTRFS, ungasebenzisa ikhithi yamathuluzi yalolu hlelo lwefayela:

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

Iqalisa i-LXD ^

Ngaphambi kokudala nokusebenzisa iziqukathi, kufanele wenze ukuqaliswa okujwayelekile kwe-LXD okudala futhi kulungiselele inethiwekhi nokugcina. Lokhu kungenziwa ngesandla kusetshenziswa imiyalo yeklayenti ejwayelekile etholakala ohlwini ngokushayela umyalo lxc --help noma usebenzisa iwizadi yokuqalisa lxd init ukuphendula imibuzo embalwa.

Ukukhetha isistimu yefayela Yephuli Yesitoreji ^

Ngesikhathi sokuqalisa, i-LXD ibuza imibuzo embalwa, okuhlanganisa nokuthola uhlobo lwesistimu yefayela lokuzenzakalelayo Ichibi Lokugcina. Ngokuzenzakalelayo, isistimu yefayela ye-BTRFS ikhethelwa yona. Ngeke kwenzeke ukushintshela kwenye i-FS ngemuva kokudalwa. Ukukhetha i-FS kuyaphakanyiswa isici sokuqhathanisa ithebula:

Isici
Directory
Ama-Btrfs
I-LVM
I-ZFS
CEPH

Isitoreji sesithombe esilungiselelwe
cha
Yebo
Yebo
Yebo
Yebo

Ukudalwa kwesibonelo okulungiselelwe
cha
Yebo
Yebo
Yebo
Yebo

Ukudalwa kwesifinyezo okulungiselelwe
cha
Yebo
Yebo
Yebo
Yebo

Ukudluliswa kwesithombe okulungiselelwe
cha
Yebo
cha
Yebo
Yebo

Ukudluliswa kwesibonelo okulungiselelwe
cha
Yebo
cha
Yebo
Yebo

Kopisha ekubhaleni
cha
Yebo
Yebo
Yebo
Yebo

I-block based
cha
cha
Yebo
cha
Yebo

I-Cloning esheshayo
cha
Yebo
Yebo
Yebo
Yebo

Umshayeli wesitoreji uyasebenziseka ngaphakathi kwesitsha
Yebo
Yebo
cha
cha
cha

Buyisela kusuka kuzifinyezo ezindala (hhayi zakamuva)
Yebo
Yebo
Yebo
cha
Yebo

Izilinganiso zesitoreji
yebo(*)
Yebo
Yebo
Yebo
cha

Ukuqalisa inethiwekhi kanye Nephuli Yesitoreji usebenzisa iwizadi ^

Umyalo olandelayo esizowubheka uphakamisa ukumisa izingxenye eziyinhloko ze-LXD ngokuphendula imibuzo elula kusetshenziswa iwizadi yokuqalisa.

Qalisa umyalo lxc init bese ufaka izimpendulo zemibuzo elandela ikholoni njengoba kukhonjisiwe esibonelweni esingezansi noma uziguqule ngokuya ngemibandela 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 Iphuli Yesitoreji eyengeziwe ^

Esinyathelweni esedlule esisidalile Ichibi Lokugcina eyanikezwa igama ssdpool kanye nefayela elitholakala ohlelweni lwami kokuthi /var/lib/lxd/disks/ssdpool.img. Leli kheli lesistimu yefayela lihambisana nedrayivu ye-SSD yangempela ku-PC yami.

Izenzo ezilandelayo, ukwandisa ukuqonda iqhaza elibanjwe Ichibi Lokugcina endaweni yokugcina, sizodala eyesibili Ichibi Lokugcina ezotholakala ngokoqobo ohlotsheni oluhlukile lwediski, i-HDD. Inkinga ukuthi i-LXD ayikuvumeli ukuthi udale Ichibi Lokugcina ngaphandle kwekheli /var/lib/lxd/disks/ ngisho nezixhumanisi ezingokomfanekiso ngeke zisebenze, bona impendulo yonjiniyela. Singawudlula lo mkhawulo phakathi nokuqaliswa/ukufometha Ichibi Lokugcina ngokucacisa inani njengedivayisi yokuvimba esikhundleni sendlela eya kufayela le-loopback ngokucacisa lokhu kukhiye source.

Ngakho, ngaphambi kokudala Ichibi Lokugcina udinga ukuchaza ifayela le-loopback noma ukwahlukanisa okukhona ohlelweni lwakho lwefayela elizolisebenzisa. Ukuze senze lokhu, sizodala futhi sisebenzise ifayela esizolikhawula ngosayizi libe ngu-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

Masixhume ifayela le-loopback kudivayisi yamahhala ye-loopback:

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

/dev/loop1

Siyabonga ukhiye --show ukwenza umyalo kubuyisela esikrinini igama ledivayisi lapho ifayela lethu le-loopback lixhumeke khona. Uma kudingeka, singabonisa uhlu lwazo zonke izisetshenziswa ezimatasa zalolu hlobo ukuze siqiniseke ukuthi izenzo zethu zilungile:

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

Kusukela ohlwini ungathola ukuthi idivayisi inakho /dev/loop1 ifayela le-loopback lifakiwe /mnt/work/lxd/hddpool.img, futhi kudivayisi /dev/loop0 ifayela le-loopback lifakiwe /var/lib/lxd/disks/ssdpool.img okuhambisana nokuzenzakalelayo Ichibi Lokugcina.

Umyalo olandelayo udala omusha Ichibi Lokugcina ku-LXD ngokusekelwe kufayela le-loopback esisanda kulilungisa. I-LXD izofometha ifayela le-loopback /mnt/work/lxd/hddpool.img kudivayisi /dev/loop1 ngohlelo lwefayela le-BTRFS:

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

Ake sibonise uhlu lwakho konke Ichibi Lokugcina kusikrini:

lxc storage list

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

Ukwandisa Usayizi Wechibi Lesitoreji ^

Ngemva kokudala Ichibi Lokugcina, uma kunesidingo, inganwetshwa. Ngoba Ichibi Lokugcina ngokusekelwe ohlelweni lwefayela le-BTRFS, sebenzisa imiyalo elandelayo:

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

Ukufaka ngokuzenzakalelayo ifayela le-loopback endaweni yedivayisi ye-loopback ^

Sinenkinga eyodwa encane, lapho siqalisa kabusha uhlelo lomsingathi, ifayela /mnt/work/lxd/hddpool.img "izondiza" iphume kudivayisi /dev/loop1 futhi isevisi ye-LXD izophahlazeka uma ilayisha ngoba ngeke iyibone kule divayisi. Ukuze uxazulule le nkinga udinga ukudala isevisi yesistimu ezofaka leli fayela kudivayisi /dev/loop1 lapho isistimu yokusingatha iqala.

Asidale Iyunithi uhlobo lwefayela service Π² /etc/systemd/system/ kusistimu yokuqalisa ye-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

Yenza isevisi isebenze:

sudo systemctl enable lxd-hddpool

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

Ngemva kokuqala kabusha isistimu yokusingatha, sihlola isimo sesevisi:

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

Kokuphumayo singaqinisekisa ukuthi isimo sesevisi sinjalo asebenzayo, naphezu kweqiniso lokuthi ukukhishwa kweskripthi sethu esivela kumyalo owodwa kuqediwe, inketho isivumele ukuthi senze lokhu. RemainAfterExit=true.

Ukuphepha. Amalungelo Esiqukathi ^

Njengoba zonke izinqubo zeziqukathi zisebenza zodwa kuhlelo lomsingathi lisebenzisa i-kernel yalo, ukuze kuqhutshekwe nokuvikela ukufinyelela kwezinqubo zesiqukathi ohlelweni lomsingathi, i-LXD inikeza ilungelo lenqubo, lapho:

  • Iziqukathi Ezikhethekile - lezi iziqukathi lapho izinqubo ezine-UID ne-GID zihambelana nomnikazi ofanayo njengakusistimu yokusingatha. Isibonelo, inqubo esebenza esitsheni esine-UID engu-0 inamalungelo afanayo okufinyelela njengenqubo yesistimu yokusingatha ene-UID engu-0. Ngamanye amazwi, umsebenzisi oyimpande esiqukathi unawo wonke amalungelo hhayi nje ku- isiqukathi, kodwa nasohlelweni lokusingatha uma ekwazi ukuphuma ngaphandle kwendawo yamagama yesiqukathi engayodwa.

  • Iziqukathi ezingenamalungelo - lezi iziqukathi lapho izinqubo kungezomnikazi we-UID ne-GID enenombolo esuka ku-0 kuye ku-65535, kodwa ohlelweni lomsingathi umnikazi ufihlwa kusetshenziswa amabhithi e-SubUID engeziwe kanye ne-SubGID, ngokulandelana. Isibonelo, umsebenzisi one-UID=0 esitsheni uzobonakala kusistimu yokusingatha njenge SubUID + UID. Lokhu kuvikela isistimu yomsingathi ngoba uma noma iyiphi inqubo esiqukathi ikwazi ukubalekela indawo yayo yegama ehlukile, ingaxhumana nesistimu yomsingathi njengenqubo ene-UID/GID engaziwa, ephezulu kakhulu.

Ngokuzenzakalelayo, iziqukathi ezisanda kwakhiwa zinesimo esingesihle ngakho-ke kufanele sichaze i-SubUID ne-SubGID.

Ake sakhe amafayela amabili okumisa lapho sizosetha khona imaski ye-SubUID ne-SubGID, ngokulandelana:

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

Ukuze usebenzise izinguquko, isevisi ye-LXD kufanele iqalwe kabusha:

sudo systemctl restart lxd

Idala iswishi yenethiwekhi ebonakalayo ^

Njengoba siqale inethiwekhi ngaphambilini sisebenzisa iwizadi yokuqalisa lxd init futhi udale idivayisi yenethiwekhi lxdbr0, khona-ke kulesi sigaba sizomane sijwayelane nenethiwekhi ku-LXD kanye nendlela yokudala ukushintshwa okubonakalayo (ibhuloho) usebenzisa umyalo weklayenti.

Umdwebo olandelayo ubonisa ukuthi iswishi (ibhuloho) ixhuma kanjani umsingathi neziqukathi kunethiwekhi:

Izici eziyisisekelo ze-LXD - amasistimu weziqukathi ze-Linux

Iziqukathi zingaxhumana ngenethiwekhi nezinye iziqukathi noma umsingathi lapho lezi ziqukathi zinikezwa khona. Ukuze wenze lokhu, udinga ukuxhumanisa amakhadi enethiwekhi abonakalayo eziqukathi ngokushintsha okubonakalayo. Sizodala iswishi kuqala, futhi izixhumanisi zenethiwekhi yesiqukathi zizoxhunywa ezahlukweni ezilandelayo, ngemva kokuthi isiqukathi sidaliwe.

Umyalo olandelayo udala iswishi nge-subnet 10.0.5.0/24 kanye nekheli le-IPv4 10.0.5.1/24, futhi kuhlanganisa ipv4.nat ukuze iziqukathi zikwazi ukufinyelela ku-inthanethi ngomsingathi zisebenzisa isevisi ye-NAT:

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

Ihlola uhlu lwamadivayisi enethiwekhi atholakala ku-LXD:

lxc network list

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

Ungaqinisekisa futhi ukuthi idivayisi yenethiwekhi idaliwe kusetshenziswa ithuluzi elijwayelekile lokusabalalisa i-Linux - ip link noma 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

Iphrofayela yokucushwa ^

Isiqukathi ngasinye ku-LXD sinokucushwa kwaso futhi singasinweba ngokucushwa okumenyezelwe emhlabeni jikelele okubizwa amaphrofayili wokumisa. Ukusebenzisa amaphrofayili wokumisa esitsheni kunemodeli ye-cascade, isibonelo esilandelayo sibonisa lokhu:

Izici eziyisisekelo ze-LXD - amasistimu weziqukathi ze-Linux

Kulesi sibonelo, amaphrofayili amathathu adaliwe ohlelweni lwe-LXD: default, hddpool ΠΈ hostfs. Womathathu amaphrofayili asetshenziswa esitsheni esinokucushwa kwendawo (indawo empunga). Iphrofayela default inomshini root enepharamitha pool ilingana ne ssdpool, kodwa ngenxa yemodeli yokucushwa kwe-cascade, singafaka iphrofayela esitsheni hddpool enepharamitha pool izokhipha ipharamitha efanayo kuphrofayela default futhi isiqukathi sizothola ukucushwa kwedivayisi root ngepharamitha pool kulingana hddpool, kanye nephrofayili hostfs uvele wengeze idivayisi entsha esitsheni.

Ukubona uhlu lwamaphrofayili okucushwa atholakalayo, sebenzisa umyalo olandelayo:

lxc profile list

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

Uhlu oluphelele lwemiyalo etholakalayo yokusebenza ngephrofayili lungatholakala ngokungeza ukhiye --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 iphrofayela yakho ^

Iphrofayela yokucushwa ezenzakalelayo default ayinakho ukucushwa kwekhadi lenethiwekhi yesiqukathi futhi zonke iziqukathi ezisanda kwakhiwa azinayo inethiwekhi, kubo kuyadingeka ukudala amadivaysi enethiwekhi wendawo (ezinikezelwe) ngomyalo ohlukile, kodwa singakha idivayisi yenethiwekhi yomhlaba wonke ekucushweni. iphrofayela ezokwabelwa kuzo zonke iziqukathi kusetshenziswa le phrofayela. Ngale ndlela, ngokushesha ngemva komyalo wokudala isitsha esisha, bazoba nenethiwekhi enokufinyelela kwenethiwekhi. Ngesikhathi esifanayo, ayikho imikhawulo; singahlala sidala idivayisi yenethiwekhi yasendaweni ngokuhamba kwesikhathi uma kunesidingo.

Umyalo olandelayo uzongeza idivayisi kuphrofayela yokucushwa eth0 thayipha nic ixhumeke kunethiwekhi lxdbr0:

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

Kubalulekile ukuqaphela ukuthi njengoba singeze idivayisi kuphrofayela yokucushwa, uma sicacise ikheli le-IP elimile kudivayisi, zonke iziqukathi ezizosebenzisa le phrofayela zizokwabelana ngekheli le-IP elifanayo. Uma kunesidingo sokudala isiqukathi esinekheli le-IP elingashintshi elibekelwe isiqukathi, kufanele udale ukucushwa kwedivayisi yenethiwekhi ezingeni lesiqukathi (ukulungiselelwa kwendawo) ngepharamitha yekheli le-IP, hhayi ezingeni lephrofayela.

Ake sihlole iphrofayili:

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 phrofayela singabona ukuthi kuzo zonke iziqukathi ezisanda kwakhiwa kuzokwakhiwa amadivayisi amabili:

  • eth0 β€” Uhlobo lwedivayisi nic ixhunywe kusishintshi (ibhuloho lenethiwekhi) lxdbr0
  • root β€” Uhlobo lwedivayisi disk esebenzisa ichibi lokugcina ssdpool

Idala amaphrofayili amasha ^

Ukusebenzisa okudalwe ngaphambilini Ichibi Lokugcina iziqukathi, dala iphrofayili yokucushwa ssdroot lapho sizofaka khona idivayisi efana disk nge-mount point / (impande) usebenzisa okudalwe ngaphambilini Ichibi Lokugcina - ssdpool:

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

Ngokufanayo, sakha idivayisi efana disk, kodwa kulokhu usebenzisa Ichibi Lokugcina - hddpool:

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

Ihlola amaphrofayili wokumisa:

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

Inqolobane yesithombe ^

Iziqukathi zenziwa kusukela ezithombeni ezisatshalaliswa ngokukhethekile ezingenayo i-Linux kernel. Ngakho-ke, ngaphambi kokusebenzisa isitsha, kufanele sitshalwe kusuka kulesi sithombe. Umthombo wezithombe uyinqolobane yendawo lapho izithombe zilandwa khona kumakhosombe angaphandle.

Amaqoqo ezithombe akude ^

Ngokuzenzakalelayo, i-LXD ilungiselelwe ukuthola izithombe ezivela emithonjeni emithathu ekude:

  • ubuntu: (yezithombe zobuntu ezizinzile)
  • ubuntu-daily: (yezithombe ze-Ubuntu zansuku zonke)
  • izithombe: (ngenqwaba yamanye ama-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    |
+-----------------+------------------------------------------+--------+--------+

Ngokwesibonelo, inqolobane ubuntu: inezithombe ezilandelayo:

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

Ukuze sibonise inani elilinganiselwe lamakholomu sisebenzise inketho -c namapharamitha dasut, futhi ikhawulele ubude bohlu ngomyalo head.

Ukuhlunga kuyatholakala ukuze kuboniswe uhlu lwezithombe. Umyalo olandelayo uzoklelisa zonke izakhiwo ezitholakalayo zokusabalalisa I-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 izithombe ^

Ukuze uqale ukusebenzisa isiqukathi, udinga ukwengeza isithombe esisuka endaweni yokugcina umhlaba kuya kwesasendaweni local:. Manje inqolobane yendawo ayinalutho, umyalo uzoqinisekisa lokhu lxc image list. Uma indlela list ungacacisi indawo yokugcina, lapho-ke inqolobane yasendaweni izosetshenziswa ngokuzenzakalelayo - local:

lxc image list local:

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

Izithombe endaweni yokugcina ziphathwa kusetshenziswa izindlela ezilandelayo:

Ithimba
Incazelo

lxc isithombe alias
Phatha iziteketiso zesithombe

lxc isithombe ikhophi
Kopisha izithombe phakathi kwamaseva

lxc isithombe Susa
Susa izithombe

lxc isithombe hlela
Hlela izakhiwo zesithombe

lxc isithombe ukuthekelisa
Khipha futhi ulande izithombe

lxc isithombe ukungenisa
Ngenisa izithombe esitolo sezithombe

lxc isithombe ulwazi
Bonisa ulwazi oluwusizo mayelana nezithombe

lxc isithombe uhlu
Faka ohlwini izithombe

lxc isithombe ukuvuselela
Vuselela izithombe

lxc isithombe show
Bonisa izakhiwo zesithombe

Kopishela isithombe kunqolobane yasendaweni kusukela kweyomhlaba wonke images::

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

Image copied successfully!

Masibonise uhlu lwazo zonke izithombe ezitholakalayo njengamanje endaweni yokugcina izinto local::

lxc image -c lfdatsu list local:

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

Ukucushwa kwe-LXD ^

Ngaphezu kwemodi yokusebenzisana, i-LXD iphinde isekele imodi yokumisa engahlangani, yilapho ukucushwa kucaciswa ngendlela yefayela le-YAML, ifomethi ekhethekile ekuvumela ukuthi ufake konke ukucushwa ngesikhathi esisodwa, weqe ukwenza. yemiyalo eminingi esebenzisanayo okuxoxwe ngayo ngenhla kulesi sihloko, okuhlanganisa ukucushwa kwenethiwekhi, ukudalwa kwamaphrofayili wokumisa, njll. Ngeke sihlanganise le ndawo lapha, ungazihlolela wena. emibhalweni.

Umyalo osebenzayo olandelayo lxc config esizoyibheka ikuvumela ukuthi usethe ukucushwa. Isibonelo, ukuze uqinisekise ukuthi izithombe ezilandiwe endaweni yokugcina izinto azibuyekezwa ngokuzenzakalelayo kusuka kumakhosombe omhlaba, singakwazi ukunika amandla lokhu kuziphatha ngomyalo olandelayo:

lxc config set images.auto_update_cached=false

Ukudala nokuphatha isitsha ^

Ukwakha isiqukathi sebenzisa umyalo lxc init lapho amanani adluliselwa khona Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:ΠΎΠ±Ρ€Π°Π· bese kuba ne-ID oyifunayo yesiqukathi. Inqolobane ingacaciswa njengendawo local: kanjalo nanoma yimuphi umhlaba jikelele. Uma inqolobane ingacacisiwe, khona-ke ngokuzenzakalelayo inqolobane yasendaweni isetshenziselwa ukusesha isithombe. Uma isithombe sishiwo kunqolobane yomhlaba wonke, isithombe sizoqale silandwe endaweni yokugcina yendawo bese sisetshenziselwa ukwakha isiqukathi.

Masisebenzise umyalo olandelayo ukuze sakhe isiqukathi sethu sokuqala:

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

Ake sibheke okhiye bomyalo esibasebenzisa lapha ngokulandelana:

  • alpine3 - Isibizo (isibizo) sicacisiwe esithombeni esilayishwe ngaphambilini endaweni yokugcina yendawo. Uma isiteketiso singadalelwanga lesi sithombe, ungahlala ubhekisela esithombeni ngaso I-fingerprint elivezwa etafuleni.
  • alp β€” Isetha isihlonzi sesitsha
  • --storage β€” Lo khiye ukhombisa ukuthi kukuphi Ichibi Lokugcina kuzokwenziwa isitsha
  • --profile β€” Lawa makhi adlalayo asebenzisa ukucupha kusuka kumaphrofayili wokumisa adalwe ngaphambilini esitsheni

Sethula isitsha, esiqala ukwethula uhlelo lwe-init lokusatshalaliswa:

lxc start alp

Ungasebenzisa futhi umyalo lxc launch okuvumela ukuthi uhlanganise amaqembu lxc init ΠΈ lxc start ekusebenzeni okukodwa.

Ihlola isimo sesiqukathi:

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

Ihlola ukumiswa kwesiqukathi:

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

Esigabeni profiles singaqiniseka ukuthi lesi sitsha sisebenzisa amaphrofayili wokumisa amabili - default ΠΈ hddroot. Esigabeni devices singathola idivayisi eyodwa kuphela ngoba idivayisi yenethiwekhi yakhiwe ezingeni lephrofayela default. Ukuze ubone wonke amadivaysi asetshenziswa isiqukathi udinga ukwengeza ukhiye --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: ""

Ukusetha ikheli le-IP elimile ^

Uma sizama ukusetha ikheli le-IP ledivayisi yenethiwekhi eth0 iqembu lxc config device set alp okuhloselwe ukulungiselelwa kwesiqukathi, bese sizothola iphutha elizobika ukuthi idivayisi ayikho ngenxa yokuthi idivayisi eth0 esetshenziswa isiqukathi ingeyephrofayili default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

Yebo singasethela ikheli le-IP elimile eth0 amadivayisi kuphrofayela, kodwa kuzofana kuzo zonke iziqukathi ezizosebenzisa le phrofayela. Ngakho-ke, ake sengeze idivayisi enikezelwe esitsheni:

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

Bese udinga ukuqala kabusha isiqukathi:

lxc restart alp

Uma sibheka ukucushwa kwesiqukathi manje, asikho isidingo sokusebenzisa inketho --expanded ukubona idivayisi yenethiwekhi eth0, njengoba siyidale ezingeni lesiqukathi futhi yehlela phezu kwedivayisi efanayo kusukela kuphrofayela 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: ""

Ukukhipha isitsha ^

Ukuze ususe isiqukathi, sebenzisa umyalo lxc delete, kodwa ngaphambi kokukhipha isitsha, kufanele kumiswe ukusebenzisa umyalo lxc stop:

lxc stop alp

lxc list

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

Ngemva kokuqinisekisa ukuthi isimo se-container sesishintshile IQHAWE, ingasuswa kuyo Ichibi Lokugcina:

lxc delete alp

Ukufinyelela kwesitsha ^

Ukuze ukhiphe imiyalo esitsheni ngokuqondile, udlule ukuxhumana kwenethiwekhi, sebenzisa umyalo lxc exec ekhipha imiyalo esitsheni ngaphandle kokuqalisa igobolondo lesistimu. Uma udinga ukwenza umyalo kugobolondo usebenzisa amaphethini egobolondo afana nokuguquguqukayo, ukuqondiswa kabusha kwefayela (ipayipi), njll., lapho-ke udinga ukwethula igobolondo ngokucacile futhi udlulise umyalo njengokhiye, isibonelo:

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

Umyalo usebenzise uhlamvu olukhethekile lokuphunyuka ngohlamvu olukhethekile $ ukuze okuguquguqukayo $HOME akuhunyushwanga emshinini wokusingathwa, kodwa kwatolikwa ngaphakathi kwesitsha kuphela.

Kuyenzeka futhi ukuthi uqale imodi yegobolondo esebenzisanayo, bese uqeda iseshini ngokwenza i-hotkey CTRL+D:

lxc exec alp -- /bin/sh

Ukuphathwa kwensiza yesiqukathi ^

Ku-LXD, ungaphatha izinsiza zesiqukathi usebenzisa isethi ekhethekile yokucushwa. Uhlu oluphelele lwemingcele yokucushwa kwesiqukathi lungatholakala emibhalweni.

Umkhawulo wensiza ye-RAM ^

Ipharamitha limits.memory ikhawulela inani le-RAM elitholakala esitsheni. Inani yinombolo kanye nokukodwa kwayo izijobelelo ezitholakalayo.

Masisethe umkhawulo we-RAM yesiqukathi ube ngu-256 MB:

lxc config set alp limits.memory 256MB

Futhi, kuneminye imingcele yokukhawulela inkumbulo:

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

Ithimba lxc config show ikuvumela ukuthi ubonise konke ukucushwa kwesiqukathi, okuhlanganisa umkhawulo wensiza esetshenzisiwe owawusethiwe:

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

Umkhawulo wensiza ye-CPU ^

Kunezindlela ezimbalwa zokukhawulela izinsiza ze-CPU. izinhlobo zemikhawulo:

  • limit.cpu - ibophezela isiqukathi ku-CPU cores eyodwa noma ngaphezulu
  • limits.cpu.allowance - ilawula ama-quota womhleli we-CFS lapho umkhawulo wesikhathi usudlulile, noma indlela yokwabelana yensiza ye-CPU yendawo yonke lapho iphesenti selidlulile
  • limits.cpu.priority - Okubalulekile kumhleli lapho izimo eziningi zokwabelana ngesethi yamaphrosesa zinikezwa amaphesenti afanayo amaphrosesa

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

Umkhawulo wesikhala sediski ^

Ngaphezu kwemikhawulo enjalo limits.read, limits.write futhi singakhawulela inani lesikhala sediski esidliwe yisitsha (sisebenza kuphela ne-ZFS noma i-BTRFS):

lxc config device set alp root size=2GB

Ngemva kokufaka, kupharamitha devices.root.size Singaqinisekisa umkhawulo obekiwe:

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

Ukubuka ama-quota ediski asetshenzisiwe singawathola kumyalo 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

Naphezu kweqiniso lokuthi sibeke umkhawulo wedivayisi yempande yesitsha ku-2GB, izinsiza zesistimu ezifana df ngeke ngiwubone lo mkhawulo. Ukuze senze lokhu, sizokwenza ukuhlolwa okuncane futhi sithole ukuthi kusebenza kanjani.

Masidale iziqukathi ezintsha ezi-2 ezifanayo Ichibi 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         |
+------+---------+------------------+------+-----------+-----------+

Masidale ifayela elingu-1GB kwesinye seziqukathi:

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

Masiqinisekise ukuthi ifayela lidaliwe:

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

Uma sibheka esitsheni sesibili, hlola ukuthi kukhona ifayela endaweni efanayo, khona-ke leli fayela ngeke libe khona, okulindelekile, ngoba iziqukathi zenziwa ngokwazo. Isitoreji Ivolumu ngokufanayo Ichibi Lokugcina:

lxc exec alp2 -- ls -lh
total 0

Kodwa ake siqhathanise amanani eliwakhiqizayo df kwesinye isitsha nakwesinye:

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

Idivayisi /dev/loop1 ifakwe njengoba i-root partition injalo Ichibi Lokugcina ezisetshenziswa lezi zitsha, ngakho zabelana ngevolumu yayo phakathi kokubili.

Izibalo zokusetshenziswa kwezinsiza ^

Ungabuka izibalo zokusetshenziswa kwezinsiza zesiqukathi usebenzisa umyalo:

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

Ukusebenza nezifinyezo ^

I-LXD inamandla okwenza izifinyezo futhi ibuyisele isimo sesiqukathi sisuka kuzo.

Ukwakha isifinyezo, sebenzisa umyalo olandelayo:

lxc snapshot alp snapshot1

Iqembu lxc snapshot awukho ukhiye otholakalayo list, ngakho-ke, ukuze ubuke uhlu lwezifinyezo udinga ukusebenzisa umyalo obonisa ulwazi olujwayelekile mayelana nesiqukathi:

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

Ungakwazi ukubuyisela isiqukathi kusuka kusifinyezo usebenzisa umyalo lxc restore icacisa isiqukathi okuzokwenzelwa kuso ukubuyiselwa kanye nesifinyezo:

lxc restore alp snapshot1

Umyalo olandelayo usetshenziswa ukususa isifinyezo. Sicela uqaphele ukuthi i-syntax yomyalo ayifani nazo zonke ezinye; lapha udinga ukucacisa isileshi esiya phambili ngemva kwegama lesiqukathi. Uma i-slash ishiywe, khona-ke umyalo wokususa isifinyezo uchazwa njengomyalelo wokususa isiqukathi!

lxc delete alp/snapshot1

Esibonelweni esingenhla, sibheke lokho okubizwa ngokuthi izifinyezo ezingenasimo. I-LXD inolunye uhlobo lwezifinyezo - ezichazayo, ezilondoloza isimo samanje sazo zonke izinqubo esitsheni. Kunenombolo yezici ezithakazelisayo nezilusizo ezihlotshaniswa nezifinyezo ezinhle.

Yini enye? ^

  • Imojula iyatholakala kubathuthukisi bePython I-PyLXD ehlinzeka nge-API ku-LXD

Isibuyekezo 10.04.2020/15/00 XNUMX:XNUMX: Ukuzulazula okungeziwe

Source: www.habr.com

Engeza amazwana