Abubuwan asali na LXD - tsarin kwantena na Linux

Abubuwan asali na LXD - tsarin kwantena na Linux

LXD shine mai sarrafa tsarin tsarin tsara na gaba, don haka ya ce source. Yana ba da ƙirar mai amfani mai kama da injunan kama-da-wane, amma yana amfani da kwantena Linux maimakon.

Farashin LXD daemon mai gata ne (sabis da ke gudana tare da haƙƙin tushen) wanda ke ba da REST API ta hanyar soket na unix na gida, da kuma ta hanyar hanyar sadarwa idan an shigar da daidaitaccen tsari. Abokan ciniki, kamar kayan aikin layin umarni da aka bayar tare da LXD, suna yin buƙatu ta wannan API ɗin REST. Wannan yana nufin cewa ko kuna samun dama ga mai gida ko mai masaukin baki, komai yana aiki iri ɗaya.

A cikin wannan labarin, ba za mu yi daki-daki game da ra'ayoyin LXD ba; ba za mu yi la'akari da duk damar da ake da ita da aka tsara a cikin takaddun ba, gami da aiwatar da kwanan nan a cikin sabbin nau'ikan LXD na tallafi don injunan kama-da-wane na QEMU a layi daya tare da kwantena. Madadin haka, za mu koyi kawai abubuwan da ake amfani da su na sarrafa kwantena - kafa wuraren ajiyar ajiya, sadarwar sadarwar, gudanar da akwati, amfani da iyakokin albarkatu, da yadda ake amfani da hotunan hoto don samun ainihin fahimtar LXD da amfani da kwantena akan Linux.

Don cikakkun bayanai, da fatan za a koma zuwa tushen hukuma:

Kewaya

Shigarwa LXD ^

Shigar da LXD akan rarrabawar Ubuntu ^

A cikin kunshin rarraba Ubuntu 19.10 lxd yana da watsa shirye-shirye a kan kunshin karye:

apt search lxd

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

Wannan yana nufin cewa za a shigar da fakiti biyu a lokaci ɗaya, ɗaya a matsayin kunshin tsarin kuma ɗayan a matsayin fakitin karye. Shigar da fakiti biyu akan tsarin na iya haifar da wasu matsala inda kunshin tsarin zai iya zama marayu idan mai sarrafa fakitin ya cire fakitin karye.

Nemo kunshin lxd a cikin ma'ajiyar tarho zaka iya amfani da umarni mai zuwa:

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

Ta hanyar gudanar da umarni list za ka iya tabbatar da cewa kunshin lxd har yanzu ba a shigar da shi ba:

snap list

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

Duk da cewa LXD fakitin karye ne, dole ne a shigar da shi ta hanyar kunshin tsarin lxd, wanda zai haifar da ƙungiyar da ta dace a cikin tsarin, abubuwan da ake bukata a cikin /usr/bin da sauransu.

sudo apt update
sudo apt install lxd

Mu tabbatar an shigar da kunshin azaman fakitin karye:

snap list

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

Shigar da LXD akan rarrabawar Arch Linux ^

Don shigar da kunshin LXD akan tsarin, kuna buƙatar aiwatar da umarni masu zuwa, na farko zai sabunta jerin fakiti akan tsarin da ke cikin ma'ajiyar, na biyu zai shigar da kunshin kai tsaye:

sudo pacman -Syyu && sudo pacman -S lxd

Bayan shigar da kunshin, don sarrafa LXD ta mai amfani na yau da kullun, dole ne a ƙara shi zuwa rukunin tsarin lxd:

sudo usermod -a -G lxd user1

Bari mu tabbatar da mai amfani user1 ƙara zuwa rukuni lxd:

id -Gn user1

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

Idan group lxd ba a bayyane a lissafin, sannan kuna buƙatar sake kunna zaman mai amfani. Don yin wannan, kuna buƙatar fita kuma ku shiga ƙarƙashin mai amfani ɗaya.

Kunna a ciki systemd loda sabis na LXD a farawa tsarin:

sudo systemctl enable lxd

Bari mu fara sabis:

sudo systemctl start lxd

Duba halin sabis:

sudo systemctl status lxd

Adana LXD (Ajiya) ^

Kafin fara farawa, muna buƙatar fahimtar yadda aka tsara ma'ajiyar a cikin LXD cikin hikima.

Adana (Storage) kunshi daga daya ko fiye Pool Adana wanda ke amfani da ɗayan tsarin fayil ɗin da aka goyan baya kamar ZFS, BTRFS, LVM ko kundayen adireshi na yau da kullun. Kowanne Pool Adana ya kasu zuwa juzu'i (Volume Ma'ajin) wanda ya ƙunshi hotuna, kwantena, ko bayanai don wasu dalilai.

  • Hotunan - waɗannan an haɗa su musamman rabawa ba tare da kernel Linux ba kuma ana samun su daga tushen waje
  • Kwantena - waɗannan an tura su rarraba daga hotuna, shirye don amfani
  • Hoton hoto - Waɗannan hotuna ne na yanayin kwantena waɗanda zaku iya komawa

Abubuwan asali na LXD - tsarin kwantena na Linux

Don sarrafa ajiya a LXD, yi amfani da umarnin lxc storage takardar shaidar da za ku iya samu ta hanyar tantance maɓalli - lxc storage --help

Umurni mai zuwa yana nuna jerin duk Pool Adana a cikin ma'ajiyar LXD:

lxc storage list

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

Don duba jerin duka Volume Ma'ajin a cikin zaba Pool Adana hidima ga tawagar 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       |
+-----------+----------------------------------+-------------+---------+

Hakanan, idan don Pool Adana Lokacin ƙirƙirar, an zaɓi tsarin fayil ɗin BTRFS, sannan sami jeri Volume Ma'ajin ko takaitawa a cikin fassarar BTRFS, zaku iya amfani da kayan aikin wannan tsarin fayil:

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

Ƙaddamar da LXD ^

Kafin ƙirƙira da amfani da kwantena, dole ne ku aiwatar da farawar LXD gabaɗaya wanda ke ƙirƙira da daidaita hanyar sadarwa da ajiya. Ana iya yin wannan da hannu ta amfani da daidaitattun umarnin abokin ciniki waɗanda ke cikin jerin ta kiran umarnin lxc --help ko amfani da mayen farawa lxd init amsa 'yan tambayoyi.

Zaɓin tsarin fayil don Pool Storage ^

Yayin farawa, LXD yana yin tambayoyi da yawa, gami da tantance nau'in tsarin fayil don tsoho Pool Adana. Ta hanyar tsoho, an zaɓi tsarin fayil ɗin BTRFS don shi. Ba zai yiwu a canza zuwa wani FS bayan halitta ba. Don zaɓar FS ana ba da shawarar tebur kwatanta fasali:

Feature
Directory
Btrfs
LVM
ZFS
CEPH

Ingantaccen ma'ajiyar hoto
babu
a
a
a
a

Ƙirƙirar misali ingantacce
babu
a
a
a
a

Ingantacciyar ƙirƙirar hoton hoto
babu
a
a
a
a

Ingantaccen canja wurin hoto
babu
a
babu
a
a

Ingantacciyar hanyar canja wuri
babu
a
babu
a
a

Kwafi akan rubutu
babu
a
a
a
a

Toshe tushen
babu
babu
a
babu
a

Nan take cloning
babu
a
a
a
a

Direban ajiya mai amfani a cikin akwati
a
a
babu
babu
babu

Dawo daga tsofaffin hotuna (ba na baya ba)
a
a
a
babu
a

Ƙimar ajiya
iya (*)
a
a
a
babu

Ƙaddamar da hanyar sadarwa da Pool Storage ta amfani da mayen ^

Umurni na gaba da za mu duba yana ba da shawarar kafa manyan abubuwan LXD ta hanyar amsa tambayoyi masu sauƙi ta amfani da mayen farawa.

Gudun umarni lxc init sannan shigar da amsoshin tambayoyin bayan hanjin kamar yadda aka nuna a misalin da ke ƙasa ko canza su bisa ga yanayin ku:

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

Ƙirƙirar ƙarin Tafkin Ajiya ^

A mataki na baya mun ƙirƙira Pool Adana wanda aka bashi suna ssdpool da fayil ɗin wanda ke kan tsarina a /var/lib/lxd/disks/ssdpool.img. Wannan adireshin tsarin fayil yayi daidai da na'urar SSD ta zahiri a cikin PC na.

Ayyuka masu zuwa, don faɗaɗa fahimtar rawar da ta taka Pool Adana a cikin ma'ajiya, za mu ƙirƙiri na biyu Pool Adana wanda zai kasance a jiki a kan wani nau'in faifai na daban, HDD. Matsalar ita ce LXD baya ƙyale ku ƙirƙira Pool Adana fita daga adireshin /var/lib/lxd/disks/ kuma hatta hanyoyin haɗin kai na alama ba za su yi aiki ba, duba martanin mai haɓakawa. Za mu iya ketare wannan iyakance yayin farawa/tsara Pool Adana ta hanyar ƙididdige ƙimar azaman na'urar toshe maimakon hanyar zuwa fayil ɗin loopback ta hanyar tantance wannan a cikin maɓalli. source.

Don haka, kafin ƙirƙirar Pool Adana kuna buƙatar ayyana fayil ɗin loopback ko ɓangaren da ke akwai akan tsarin fayil ɗin ku wanda zai yi amfani da shi. Don yin wannan, za mu ƙirƙira da amfani da fayil ɗin da za mu iyakance girman zuwa 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

Bari mu haɗa fayil ɗin loopback zuwa na'urar loopback kyauta:

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

/dev/loop1

Godiya ga makullin --show aiwatar da umarnin yana komawa kan allon sunan na'urar da aka haɗa fayil ɗin madauki a ciki. Idan ya cancanta, za mu iya nuna jerin duk na'urori masu aiki na wannan nau'in don tabbatar da cewa ayyukanmu daidai ne:

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

Daga jerin za ku iya gano cewa na'urar tana da /dev/loop1 loopback fayil hada /mnt/work/lxd/hddpool.img, kuma a cikin na'urar /dev/loop0 loopback fayil hada /var/lib/lxd/disks/ssdpool.img wanda yayi daidai da tsoho Pool Adana.

Umurni mai zuwa yana haifar da sabo Pool Adana a cikin LXD dangane da fayil ɗin loopback da muka shirya kawai. LXD zai tsara fayil ɗin madauki /mnt/work/lxd/hddpool.img a cikin na'urar /dev/loop1 don tsarin fayil na BTRFS:

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

Bari mu nuna jerin duk Pool Adana ga allo:

lxc storage list

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

Ƙara Girman Pool Pool ^

Bayan halitta Pool Adana, idan ya cancanta, ana iya fadada shi. Domin Pool Adana dangane da tsarin fayil na BTRFS, gudanar da umarni masu zuwa:

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

Saka fayil ɗin madauki ta atomatik cikin ramin na'urar madauki ^

Muna da ƙaramin matsala ɗaya, lokacin sake kunna tsarin mai watsa shiri, fayil ɗin /mnt/work/lxd/hddpool.img zai "tashi" daga na'urar /dev/loop1 kuma sabis na LXD zai fadi lokacin lodawa saboda ba zai gan shi a cikin wannan na'urar ba. Don magance wannan matsalar kuna buƙatar ƙirƙirar sabis na tsarin da zai saka wannan fayil a cikin na'urar /dev/loop1 lokacin da tsarin runduna ya tashi.

Mu yi halitta naúrar nau'in fayil sabis в /etc/systemd/system/ don tsarin farawa na 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

Kunna sabis ɗin:

sudo systemctl enable lxd-hddpool

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

Bayan sake kunna tsarin runduna, muna duba matsayin sabis:

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

Daga fitowar za mu iya tabbatar da cewa yanayin sabis ɗin m, duk da cewa an kammala aiwatar da rubutun mu daga umarni ɗaya, zaɓin ya ba mu damar yin wannan. RemainAfterExit=true.

Tsaro. Gatan Kwantena ^

Tunda duk matakan kwantena a zahiri suna gudana cikin keɓance akan tsarin runduna ta amfani da kwaya, don ƙara kare damar hanyoyin tafiyar da kwantena zuwa tsarin rundunar, LXD yana ba da damar aiwatarwa, inda:

  • Kwantena Masu Gata - Waɗannan kwantena ne waɗanda matakai tare da UID da GID suka dace da mai shi ɗaya kamar na tsarin rundunar. Misali, tsarin da ke gudana a cikin akwati tare da UID na 0 yana da duk haƙƙin samun dama iri ɗaya kamar tsari akan tsarin mai masauki tare da UID na 0. Ma'ana, tushen mai amfani a cikin akwati yana da duk haƙƙoƙin ba kawai a ciki ba. kwantena, amma kuma akan tsarin mai masaukin baki idan zai iya fita waje da keɓantaccen sunan kwandon.

  • Kwantena marasa gata - Waɗannan kwantena ne waɗanda tsarin ke mallakar mai UID da GID mai lamba daga 0 zuwa 65535, amma ga tsarin mai masaukin ana rufe mai shi ta amfani da ƙarin SubUID da SubGID, bi da bi. Misali, za a ga mai amfani da UID=0 a cikin akwati akan tsarin runduna kamar yadda SubUID + UID. Wannan yana kare tsarin mai watsa shiri saboda idan kowane tsari a cikin akwati zai iya tserewa keɓewar sunan sa, zai iya sadarwa kawai tare da tsarin runduna azaman tsari tare da wanda ba a sani ba, UID/GID mai girma sosai.

Ta hanyar tsoho, sabbin kwantena da aka ƙirƙira suna da matsayi mara gata don haka dole ne mu ayyana SubUID da SubGID.

Bari mu ƙirƙiri fayilolin sanyi guda biyu waɗanda za mu saita abin rufe fuska don SuBUID da SubGID, bi da bi:

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

Don amfani da canje-canje, dole ne a sake kunna sabis na LXD:

sudo systemctl restart lxd

Ƙirƙirar sauya hanyar sadarwa ta kama-da-wane ^

Tun da a baya mun ƙaddamar da hanyar sadarwa ta amfani da mayen ƙaddamarwa lxd init kuma ya ƙirƙiri na'urar sadarwa lxdbr0, to, a cikin wannan sashe za mu fahimci kawai hanyar sadarwa a cikin LXD da yadda ake ƙirƙirar maɓalli mai mahimmanci (gada) ta amfani da umarnin abokin ciniki.

Zane mai zuwa yana nuna yadda maɓalli (gada) ke haɗa mai gida da kwantena zuwa cibiyar sadarwa:

Abubuwan asali na LXD - tsarin kwantena na Linux

Kwantena za su iya sadarwa ta hanyar hanyar sadarwa tare da wasu kwantena ko gidan da ake ba da waɗannan kwantena. Don yin wannan, kuna buƙatar haɗa katunan cibiyar sadarwar kama-da-wane na kwantena tare da maɓalli mai mahimmanci. Za mu fara ƙirƙirar maɓalli, kuma za a haɗa hanyoyin sadarwar kwantena a cikin surori masu zuwa, bayan an ƙirƙiri akwati da kanta.

Umurnin da ke biyowa yana ƙirƙira mai sauyawa tare da gidan yanar gizo 10.0.5.0/24 da adireshin IPv4 10.0.5.1/24, da kuma hada da ipv4.nat ta yadda kwantena za su iya shiga Intanet ta hanyar mai watsa shiri ta amfani da sabis na NAT:

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

Duba jerin na'urorin cibiyar sadarwa da ke cikin LXD:

lxc network list

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

Hakanan zaka iya tabbatar da cewa an ƙirƙiri na'urar hanyar sadarwa ta amfani da daidaitaccen kayan aikin rarraba Linux - ip link ko 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

Bayanin Kanfigareshan ^

Kowane akwati a cikin LXD yana da nasa tsarin kuma yana iya tsawaita shi tare da ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun yanayin duniya da ake kira bayanan martaba. Aiwatar da bayanan martaba ga kwantena yana da samfurin cascade, misali mai zuwa yana nuna wannan:

Abubuwan asali na LXD - tsarin kwantena na Linux

A cikin wannan misali, an ƙirƙiri bayanan martaba guda uku a cikin tsarin LXD: default, hddpool и hostfs. Dukkan bayanan martaba guda uku ana amfani da su a cikin akwati wanda ke da tsari na gida (yankin launin toka). Bayanan martaba default yana da na'ura root wanda ke da siga pool daidai yake da ssdpool, amma godiya ga tsarin aikace-aikacen sanyi na cascade, za mu iya amfani da bayanin martaba zuwa akwati hddpool wanda ke da siga pool zai soke siga guda ɗaya daga bayanan martaba default kuma kwandon zai karbi tsarin na'urar root tare da siga pool daidai hddpool, da profile hostfs kawai yana ƙara sabon na'ura zuwa akwati.

Don ganin jerin bayanan bayanan da aka samo, yi amfani da umarni mai zuwa:

lxc profile list

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

Ana iya samun cikakken jerin sunayen umarni don aiki tare da bayanin martaba ta ƙara maɓalli --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

Gyara bayanin martabarku ^

Bayanan martaba na asali na asali default ba shi da tsarin katin cibiyar sadarwa don akwati kuma duk sabbin kwantena da aka ƙirƙira ba su da hanyar sadarwa, a gare su ya zama dole don ƙirƙirar na'urorin cibiyar sadarwa na gida ( sadaukarwa) tare da umarni daban, amma zamu iya ƙirƙirar na'urar cibiyar sadarwa ta duniya a cikin daidaitawa. bayanin martaba wanda za a raba tsakanin duk kwantena ta amfani da wannan bayanin martaba. Ta wannan hanyar, nan da nan bayan umarnin ƙirƙirar sabon akwati, za su sami hanyar sadarwa tare da hanyar sadarwa. A lokaci guda, babu ƙuntatawa; koyaushe muna iya ƙirƙirar na'urar cibiyar sadarwar gida daga baya idan ya cancanta.

Umurni mai zuwa zai ƙara na'urar zuwa bayanin martabar daidaitawa eth0 nau'in nic an haɗa zuwa cibiyar sadarwa lxdbr0:

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

Yana da mahimmanci a lura cewa tunda a zahiri mun ƙara na'urar zuwa bayanin martaba, idan muka ƙayyade adreshin IP na tsaye a cikin na'urar, to duk kwantena waɗanda za su yi amfani da wannan bayanin martaba za su raba adireshin IP iri ɗaya. Idan akwai buƙatar ƙirƙirar akwati tare da adireshin IP na tsaye wanda aka keɓe don akwati, to ya kamata ku ƙirƙiri saitin na'urar cibiyar sadarwa a matakin kwantena (tsarin gida) tare da ma'aunin adireshin IP, kuma ba a matakin bayanin martaba ba.

Mu duba bayanin martaba:

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

A cikin wannan bayanin martaba za mu iya ganin cewa ga duk sabbin kwantena za a ƙirƙira na'urori biyu:

  • eth0 - Nau'in na'ura nic an haɗa zuwa maɓalli (gadar hanyar sadarwa) lxdbr0
  • root - Nau'in na'ura disk wanda ke amfani da wurin ajiya ssdpool

Ƙirƙirar sababbin bayanan martaba ^

Don amfani da ƙirƙira a baya Pool Adana kwantena, ƙirƙirar bayanin martaba ssdroot wanda zamu kara na'ura kamar disk tare da dutsen batu / (tushen) ta amfani da abin da aka halitta a baya Pool Adana - ssdpool:

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

Hakazalika, muna ƙirƙirar na'ura kamar disk, amma a cikin wannan yanayin amfani Pool Adana - hddpool:

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

Duba bayanan martaba:

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

Ma'ajiyar hoto ^

Ana ƙirƙira kwantena daga hotuna waɗanda aka haɗa musamman rarrabawa waɗanda ba su da kernel na Linux. Don haka, kafin gudanar da kwandon, dole ne a tura shi daga wannan hoton. Tushen hotuna shine wurin ajiyar gida wanda ake zazzage hotuna daga wuraren ajiyar waje.

Ma'ajiyar hoto mai nisa ^

Ta hanyar tsoho, an saita LXD don karɓar hotuna daga tushe guda uku:

  • ubuntu: (don hotunan Ubuntu masu tsayayye)
  • ubuntu-kullum: (don hotunan Ubuntu yau da kullun)
  • hotuna: (don bunch of sauran 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    |
+-----------------+------------------------------------------+--------+--------+

Misali, wurin ajiya ubuntu: yana da hotuna masu zuwa:

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

Don nuna iyakataccen adadin ginshiƙai mun yi amfani da zaɓi -c tare da sigogi dasut, da kuma iyakance tsawon jerin tare da umarnin head.

Ana samun tacewa don nuna jerin hotuna. Umurni mai zuwa zai jera duk abubuwan gine-ginen rarrabawa da ake da su Alpine Linux:

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

Ma'ajiyar hoto na gida ^

Don fara amfani da akwati, kuna buƙatar ƙara hoto daga ma'ajiyar duniya zuwa na gida local:. Yanzu ma'ajiyar gida ba ta da komai, umarnin zai tabbatar da wannan lxc image list. Idan hanyar list kar a saka ma'ajiyar ajiya, sannan za a yi amfani da ma'ajiyar gida ta tsohuwa - local:

lxc image list local:

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

Ana sarrafa hotuna a cikin ma'ajiyar ta hanyar amfani da hanyoyi masu zuwa:

tawagar
Description

Hoton lxc wanda aka ce masa
Sarrafa laƙabi na hoto

Hoton lxc kwafin
Kwafi hotuna tsakanin sabobin

Hoton lxc share
Share hotuna

Hoton lxc edit
Shirya kaddarorin hoto

Hoton lxc fitarwa
Fitarwa da zazzage hotuna

Hoton lxc shigo da
Shigo da hotuna cikin shagon hoto

Hoton lxc info
Nuna bayanai masu amfani game da hotuna

Hoton lxc list
Jerin hotuna

Hoton lxc kore gajiya
Sabunta hotuna

Hoton lxc show
Nuna kaddarorin hoto

Kwafi hoton zuwa wurin ajiyar gida daga na duniya images::

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

Image copied successfully!

Bari mu nuna jerin duk hotuna da ake samu a yanzu a wurin ajiyar gida local::

lxc image -c lfdatsu list local:

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

Kanfigareshan LXD ^

Baya ga yanayin mu'amala, LXD kuma yana goyan bayan yanayin shigar da ba tare da haɗin gwiwa ba, wannan shine lokacin da aka ƙayyade ƙayyadaddun tsarin a cikin nau'in fayil ɗin YAML, tsari na musamman wanda ke ba ku damar shigar da tsarin gabaɗayan lokaci ɗaya, ketare aiwatarwa. na yawancin umarni masu mu'amala waɗanda aka tattauna a sama a cikin wannan labarin, gami da daidaitawar hanyar sadarwa, ƙirƙirar bayanan martaba, da sauransu. Ba za mu rufe wannan yanki a nan ba, kuna iya duba shi da kanku. a cikin takardun.

Umarni mai mu'amala na gaba lxc config wanda zamu duba yana ba ku damar saita saiti. Misali, don tabbatar da cewa hotunan da aka zazzage zuwa ma'ajiyar gida ba a sabunta su ta atomatik daga ma'ajiyar duniya ba, za mu iya kunna wannan hali tare da umarni mai zuwa:

lxc config set images.auto_update_cached=false

Ƙirƙirar da sarrafa akwati ^

Don ƙirƙirar akwati yi amfani da umarnin lxc init zuwa wanne dabi'u aka wuce репозиторий:образ sannan kuma ID ɗin da ake so na akwati. Ana iya bayyana ma'ajiyar a matsayin na gida local: haka ma kowane na duniya. Idan ba a bayyana ma'ajiyar wurin ba, to ta tsohuwa ana amfani da ma'ajiyar gida don nemo hoton. Idan an ayyana hoton daga ma'ajiyar duniya, to za a fara zazzage hoton zuwa ma'ajiyar gida sannan a yi amfani da shi don ƙirƙirar akwati.

Bari mu gudanar da umarni mai zuwa don ƙirƙirar akwati na farko:

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

Bari mu kalli maɓallan umarni da muke amfani da su a nan domin:

  • alpine3 - An ƙirƙira wani laƙabi (laƙabi) don hoton da aka ɗora a baya zuwa wurin ajiyar gida. Idan ba a ƙirƙiri laƙabin don wannan hoton ba, to koyaushe kuna iya komawa ga hoton ta wurinsa Wurin yatsa wanda aka nuna a cikin tebur.
  • alp - Yana saita mai gano akwati
  • --storage - Wannan maɓalli yana nuna a cikin wane Pool Adana za a samar da kwantena
  • --profile - Waɗannan maɓallan cascade suna amfani da tsari daga bayanan martaba da aka ƙirƙira a baya zuwa akwati

Mun kaddamar da akwati, wanda ya fara kaddamar da tsarin init na rarrabawa:

lxc start alp

Hakanan zaka iya amfani da umarnin lxc launch wanda ke ba ku damar haɗa ƙungiyoyi lxc init и lxc start a daya aiki.

Duba yanayin kwantena:

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

Duba yanayin kwantena:

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

A cikin sashin profiles za mu iya tabbatar da cewa wannan akwati yana amfani da bayanan martaba guda biyu - default и hddroot. A cikin sashe devices za mu iya gano na'ura ɗaya kawai saboda an ƙirƙiri na'urar sadarwar a matakin bayanin martaba default. Domin ganin duk na'urorin da kwantena ke amfani da shi kuna buƙatar ƙara maɓalli --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: ""

Saita adreshin IP na tsaye ^

Idan muka yi ƙoƙarin saita adireshin IP don na'urar cibiyar sadarwa eth0 tawaga lxc config device set alp da aka yi niyya don daidaitawar kwantena, sannan za mu sami kuskure wanda zai ba da rahoton cewa na'urar ba ta wanzu saboda na'urar eth0 wanda kwandon ke amfani da shi na bayanan martaba ne default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

Za mu iya ba shakka saita a tsaye IP address ga eth0 na'urori a cikin bayanin martaba, amma zai kasance iri ɗaya ga duk kwantena waɗanda zasu yi amfani da wannan bayanin martaba. Don haka, bari mu ƙara na'urar da aka keɓe ga akwati:

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

Sannan kuna buƙatar sake kunna akwati:

lxc restart alp

Idan muka kalli tsarin kwantena a yanzu, ba ma buƙatar amfani da zaɓin --expanded don ganin na'urar sadarwar eth0, Tun da mun ƙirƙira shi a matakin kwantena kuma ya fashe akan na'urar ɗaya daga bayanan martaba 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: ""

Cire akwati ^

Don cire akwati, yi amfani da umarnin lxc delete, amma kafin cire akwati, dole ne a daina amfani da umarnin lxc stop:

lxc stop alp

lxc list

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

Bayan mun tabbatar da cewa yanayin kwantena ya zama KASHE, ana iya cire shi daga Pool Adana:

lxc delete alp

Samun kwantena ^

Don aiwatar da umarni a cikin akwati kai tsaye, ketare haɗin yanar gizo, yi amfani da umarnin lxc exec wanda ke aiwatar da umarni a cikin akwati ba tare da ƙaddamar da harsashin tsarin ba. Idan kana buƙatar aiwatar da umarni a cikin harsashi ta amfani da ƙirar harsashi kamar masu canji, juyawa fayil (bututu), da sauransu, to kuna buƙatar ƙaddamar da harsashi a sarari kuma ku wuce umarnin azaman maɓalli, misali:

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

Umurnin ya yi amfani da halin tserewa na musamman don hali na musamman $ sabõda haka, m $HOME Ba a fassara shi a kan na'ura mai ɗaukar hoto ba, amma an fassara shi a cikin akwati kawai.

Hakanan yana yiwuwa a fara yanayin harsashi mai mu'amala, sannan ƙare zaman ta aiwatar da hotkey CTRL+D:

lxc exec alp -- /bin/sh

Gudanar da albarkatun kwantena ^

A cikin LXD, zaku iya sarrafa albarkatun kwantena ta amfani da saiti na musamman. Za'a iya samun cikakken jerin sigogin sanyi na kwantena a cikin takardun.

Ƙayyadaddun albarkatu na RAM ^

Alamar limits.memory yana iyakance adadin RAM ɗin da ke cikin akwati. Ƙimar lamba ce kuma ɗaya daga cikin samuwan kari.

Bari mu saita iyakar RAM ɗin kwandon zuwa 256 MB:

lxc config set alp limits.memory 256MB

Hakanan, akwai wasu sigogi don iyakance ƙwaƙwalwar ajiya:

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

tawagar lxc config show yana ba ku damar nuna duk tsarin kwantena, gami da iyakar albarkatun da aka yi amfani da su wanda aka saita:

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

Iyakar albarkatu na CPU ^

Akwai hanyoyi da yawa don iyakance albarkatun CPU. nau'ikan hani:

  • limit.cpu - ɗaure akwati zuwa ɗaya ko fiye da nau'in CPU
  • limits.cpu.allowance - sarrafa ko dai CFS mai tsara ƙididdiga lokacin da ƙayyadaddun lokaci ya wuce, ko tsarin raba albarkatun CPU na duniya lokacin da kashi ya wuce.
  • limits.cpu.priority - fifikon mai tsarawa lokacin da aka ba da yawan lokuta masu raba saitin na'urori masu sarrafawa iri ɗaya na masu sarrafawa

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

Ƙayyadaddun sararin diski ^

Baya ga ƙuntatawa irin wannan limits.read, limits.write Hakanan zamu iya iyakance adadin sararin faifai da akwati ke cinyewa (kawai yana aiki tare da ZFS ko BTRFS):

lxc config device set alp root size=2GB

Bayan shigarwa, a cikin siga devices.root.size Za mu iya tabbatar da iyakar da aka saita:

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

Don duba ƙididdigar faifai da aka yi amfani da su za mu iya samu daga umarnin 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

Duk da cewa mun saita iyaka don tushen na'urar kwantena zuwa 2GB, kayan aikin tsarin kamar df ba zai ga wannan ƙuntatawa ba. Don yin wannan, za mu gudanar da ƙaramin gwaji kuma mu gano yadda yake aiki.

Bari mu ƙirƙiri sabbin kwantena iri ɗaya guda 2 a cikin guda Pool Adana (hdpool):

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

Bari mu ƙirƙiri fayil ɗin 1GB a ɗayan kwantena:

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

Bari mu tabbatar an ƙirƙiri fayil ɗin:

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

Idan muka duba cikin akwati na biyu, bincika wanzuwar fayil a wuri ɗaya, to wannan fayil ɗin ba zai kasance a wurin ba, wanda ake tsammanin, tunda an ƙirƙiri kwantena a cikin nasu. Volume Ma'ajin cikin guda Pool Adana:

lxc exec alp2 -- ls -lh
total 0

Amma bari mu kwatanta dabi'un da yake samarwa df akan daya da sauran kwantena:

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

Na'urar /dev/loop1 saka a matsayin tushen bangare ne Pool Adana wanda waɗannan kwantena ke amfani da su, don haka suna raba ƙararsa tsakanin biyu.

Kididdigar yawan amfanin albarkatu ^

Kuna iya duba kididdigar yawan amfanin ƙasa don akwati ta amfani da umarnin:

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

Yin aiki tare da hotunan hoto ^

LXD yana da ikon ƙirƙirar hotunan hoto da dawo da yanayin akwati daga gare su.

Don ƙirƙirar hoton hoto, gudanar da umarni mai zuwa:

lxc snapshot alp snapshot1

Tawagar lxc snapshot babu maɓalli akwai list, don haka, don duba jerin hotunan hotuna kuna buƙatar amfani da umarnin da ke nuna cikakken bayani game da akwati:

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

Kuna iya dawo da akwati daga hoto ta amfani da umarnin lxc restore Ƙayyadaddun kwandon da za a yi maidowa da hoton hoton da aka yi masa lakabi da:

lxc restore alp snapshot1

Ana amfani da umarni mai zuwa don share hoto. Lura cewa tsarin tsarin umarni baya kama da duk sauran; Anan kuna buƙatar saka slash na gaba bayan sunan akwati. Idan an tsallake slash, to ana fassara umarnin don share hoton hoto azaman umarni don share akwati!

lxc delete alp/snapshot1

A cikin misalin da ke sama, mun kalli abin da ake kira saɓanin ƙasa. LXD yana da wani nau'in hotunan hoto - mai bayyanawa, wanda ke adana halin yanzu na duk matakai a cikin akwati. Akwai abubuwa da yawa masu ban sha'awa da fa'ida masu alaƙa da taswirar yanayi.

Me kuma? ^

  • Akwai ma'auni don masu haɓaka Python PylXD wanda ke ba da API zuwa LXD

LABARI: 10.04.2020/15/00 XNUMX:XNUMX: Ƙara kewayawa

source: www.habr.com

Add a comment