Nodweddion sylfaenol LXD - systemau cynhwysydd Linux
LXD yw rheolwr cynhwysydd system y genhedlaeth nesaf, felly mae'n dweud ffynhonnell. Mae'n cynnig rhyngwyneb defnyddiwr tebyg i beiriannau rhithwir, ond mae'n defnyddio cynwysyddion Linux yn lle hynny.
craidd LXD yn daemon breintiedig (gwasanaeth sy'n rhedeg gyda hawliau gwraidd) sy'n darparu API REST trwy soced unix lleol, yn ogystal â thrwy'r rhwydwaith os gosodir y cyfluniad priodol. Mae cleientiaid, fel yr offeryn llinell orchymyn a ddarperir gyda LXD, yn gwneud ceisiadau trwy'r API REST hwn. Mae hyn yn golygu, p'un a ydych chi'n cyrchu gwesteiwr lleol neu westeiwr o bell, mae popeth yn gweithio yr un peth.
Yn yr erthygl hon, ni fyddwn yn canolbwyntio'n fanwl ar gysyniadau LXD; ni fyddwn yn ystyried yr holl alluoedd sydd ar gael a amlinellir yn y ddogfennaeth, gan gynnwys gweithredu diweddar yn y fersiynau diweddaraf o LXD o gefnogaeth ar gyfer peiriannau rhithwir QEMU ochr yn ochr â chynwysyddion. Yn lle hynny, byddwn yn dysgu hanfodion rheoli cynwysyddion yn unig - sefydlu pyllau storio, rhwydweithio, rhedeg cynhwysydd, cymhwyso terfynau adnoddau, a sut i ddefnyddio cipluniau fel y gallwch gael dealltwriaeth sylfaenol o LXD a defnyddio cynwysyddion ar Linux.
Am wybodaeth gyflawn, cyfeiriwch at y ffynhonnell swyddogol:
Mae hyn yn golygu y bydd dau becyn yn cael eu gosod ar unwaith, un fel pecyn system a'r llall fel pecyn snap. Gall gosod dau becyn ar system greu rhywfaint o broblem lle gallai'r pecyn system ddod yn amddifad os caiff y pecyn snap ei ddileu gan y rheolwr pecyn snap.
Dod o hyd i becyn lxd yn y storfa snap gallwch ddefnyddio'r gorchymyn canlynol:
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
Trwy redeg y gorchymyn list gallwch wneud yn siŵr bod y pecyn lxd heb ei osod eto:
snap list
Name Version Rev Tracking Publisher Notes
core 16-2.43.3 8689 stable canonical✓ core
Er gwaethaf y ffaith bod LXD yn becyn snap, rhaid ei osod trwy'r pecyn system lxd, a fydd yn creu'r grŵp cyfatebol yn y system, y cyfleustodau angenrheidiol yn /usr/bin ac ati
sudo apt update
sudo apt install lxd
Gadewch i ni sicrhau bod y pecyn wedi'i osod fel pecyn snap:
snap list
Name Version Rev Tracking Publisher Notes
core 16-2.43.3 8689 stable canonical✓ core
lxd 3.21 13474 stable/… canonical✓ -
I osod y pecyn LXD ar y system, mae angen i chi redeg y gorchmynion canlynol, bydd y cyntaf yn diweddaru'r rhestr o becynnau ar y system sydd ar gael yn y storfa, bydd yr ail yn gosod y pecyn yn uniongyrchol:
sudo pacman -Syyu && sudo pacman -S lxd
Ar ôl gosod y pecyn, er mwyn rheoli LXD gan ddefnyddiwr rheolaidd, rhaid ei ychwanegu at y grŵp system lxd:
sudo usermod -a -G lxd user1
Gadewch i ni wneud yn siŵr y defnyddiwr user1 ychwanegu at y grŵp lxd:
id -Gn user1
user1 adm dialout cdrom floppy sudo audio dip video plugdev netdev lxd
Os yw'r grŵp lxd Nid yw'n weladwy yn y rhestr, yna mae angen i chi actifadu'r sesiwn defnyddiwr eto. I wneud hyn, mae angen i chi allgofnodi a mewngofnodi o dan yr un defnyddiwr.
Ysgogi i mewn systemd llwytho'r gwasanaeth LXD wrth gychwyn y system:
Cyn dechrau cychwyn, mae angen inni ddeall sut mae'r storfa yn LXD wedi'i threfnu'n rhesymegol.
Storio (storio) yn cynnwys o un neu fwy Pwll Storio sy'n defnyddio un o'r systemau ffeiliau a gefnogir megis ZFS, BTRFS, LVM neu gyfeiriaduron rheolaidd. Pob Pwll Storio wedi'i rannu'n gyfrolau (Cyfrol Storio) sy'n cynnwys delweddau, cynwysyddion, neu ddata at ddibenion eraill.
Delweddau - mae'r rhain yn ddosbarthiadau sydd wedi'u cydosod yn arbennig heb y cnewyllyn Linux ac ar gael o ffynonellau allanol
Cynhwyswyr - mae'r rhain yn ddosbarthiadau wedi'u defnyddio o ddelweddau, yn barod i'w defnyddio
Cipluniau - mae'r rhain yn gipluniau o gyflwr y cynwysyddion y gallwch ddychwelyd iddynt
I reoli storio yn LXD, defnyddiwch y gorchymyn lxc storage tystysgrif y gallwch ei chael trwy nodi'r allwedd - lxc storage --help
Mae'r gorchymyn canlynol yn dangos rhestr o'r cyfan Pwll Storio mewn storfa LXD:
lxc storage list
+---------+-------------+--------+--------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+--------------------------------+---------+
| hddpool | | btrfs | /dev/loop1 | 2 |
+---------+-------------+--------+--------------------------------+---------+
| ssdpool | | btrfs | /var/lib/lxd/disks/ssdpool.img | 4 |
+---------+-------------+--------+--------------------------------+---------+
I weld rhestr o'r cyfan Cyfrol Storio yn y dethol Pwll Storio yn gwasanaethu'r tîm 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 |
+-----------+----------------------------------+-------------+---------+
Hefyd, os o blaid Pwll Storio Wrth greu, dewiswyd system ffeiliau BTRFS, yna mynnwch restr Cyfrol Storio neu isgyfrolau yn y dehongliad BTRFS, gallwch ddefnyddio pecyn cymorth y system ffeiliau hon:
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
Cyn creu a defnyddio cynwysyddion, rhaid i chi gyflawni cychwyniad LXD cyffredinol sy'n creu ac yn ffurfweddu'r rhwydwaith a'r storfa. Gellir gwneud hyn â llaw gan ddefnyddio gorchmynion cleient safonol sydd ar gael yn y rhestr trwy ffonio'r gorchymyn lxc --help neu ddefnyddio'r dewin cychwyn lxd init gan ateb ychydig o gwestiynau.
Wrth gychwyn, mae LXD yn gofyn sawl cwestiwn, gan gynnwys pennu'r math o system ffeiliau ar gyfer y rhagosodiad Pwll Storio. Yn ddiofyn, dewisir system ffeiliau BTRFS ar ei gyfer. Bydd yn amhosibl newid i FS arall ar ôl creu. Awgrymir dewis FS tabl cymharu nodwedd:
nodwedd
Cyfeiriadur
Btrfs
LVM
ZFS
CEPH
Storfa delwedd wedi'i optimeiddio
dim
ie
ie
ie
ie
Creu enghraifft wedi'i optimeiddio
dim
ie
ie
ie
ie
Creu ciplun wedi'i optimeiddio
dim
ie
ie
ie
ie
Trosglwyddo delwedd wedi'i optimeiddio
dim
ie
dim
ie
ie
Trosglwyddo enghraifft wedi'i optimeiddio
dim
ie
dim
ie
ie
Copi ar ysgrifennu
dim
ie
ie
ie
ie
Yn seiliedig ar bloc
dim
dim
ie
dim
ie
Clonio ar unwaith
dim
ie
ie
ie
ie
Gyrrwr storio y gellir ei ddefnyddio y tu mewn i gynhwysydd
ie
ie
dim
dim
dim
Adfer o gipluniau hŷn (nid y diweddaraf)
ie
ie
ie
dim
ie
Cwotâu storio
ydw(*)
ie
ie
ie
dim
Cychwyn y rhwydwaith a'r Pwll Storio gan ddefnyddio'r dewin ^
Mae'r gorchymyn nesaf y byddwn yn edrych arno yn awgrymu sefydlu prif gydrannau LXD trwy ateb cwestiynau syml gan ddefnyddio'r dewin cychwyn.
Rhedeg gorchymyn lxc init a rhowch yr atebion i'r cwestiynau ar ôl y colon fel y dangosir yn yr enghraifft isod neu newidiwch nhw yn ôl eich amodau:
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]:
Yn y cam blaenorol rydym yn creu Pwll Storio a gafodd yr enw ssdpool ac mae ei ffeil wedi'i lleoli ar fy system yn /var/lib/lxd/disks/ssdpool.img. Mae'r cyfeiriad system ffeiliau hwn yn cyfateb i'r gyriant SSD ffisegol yn fy PC.
Y camau gweithredu canlynol, i ehangu dealltwriaeth o'r rôl a chwaraeir gan Pwll Storio yn yr ystorfa, byddwn yn creu ail un Pwll Storio a fydd yn cael eu lleoli'n gorfforol ar fath gwahanol o ddisg, HDD. Y broblem yw nad yw LXD yn caniatáu ichi greu Pwll Storio allan o gyfeiriad /var/lib/lxd/disks/ ac ni fydd cysylltiadau symbolaidd hyd yn oed yn gweithio, gweler ymateb y datblygwr. Gallwn osgoi'r cyfyngiad hwn wrth gychwyn / fformatio Pwll Storio trwy nodi'r gwerth fel dyfais bloc yn lle'r llwybr i'r ffeil loopback trwy nodi hyn yn yr allwedd source.
Felly, cyn creu Pwll Storio mae angen i chi ddiffinio ffeil loopback neu raniad presennol ar eich system ffeiliau y bydd yn ei ddefnyddio. I wneud hyn, byddwn yn creu ac yn defnyddio ffeil y byddwn yn cyfyngu ei maint i 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
Gadewch i ni gysylltu'r ffeil loopback i ddyfais loopback am ddim:
Diolch i'r allwedd --show mae gweithredu'r gorchymyn yn dychwelyd i'r sgrin enw'r ddyfais y mae ein ffeil loopback wedi'i chysylltu â hi. Os oes angen, gallwn arddangos rhestr o'r holl ddyfeisiau prysur o'r math hwn i sicrhau bod ein gweithredoedd yn gywir:
O'r rhestr gallwch ddarganfod bod gan y ddyfais /dev/loop1 ffeil loopback wedi'i chynnwys /mnt/work/lxd/hddpool.img, ac yn y ddyfais /dev/loop0 ffeil loopback wedi'i chynnwys /var/lib/lxd/disks/ssdpool.img sy'n cyfateb i'r rhagosodiad Pwll Storio.
Mae'r gorchymyn canlynol yn creu un newydd Pwll Storio yn LXD yn seiliedig ar y ffeil loopback yr ydym newydd ei baratoi. Bydd LXD yn fformatio'r ffeil loopback /mnt/work/lxd/hddpool.img yn y ddyfais /dev/loop1 ar gyfer system ffeiliau BTRFS:
Ar ôl y greadigaeth Pwll Storio, os oes angen, gellir ei ehangu. Canys Pwll Storio yn seiliedig ar system ffeiliau BTRFS, rhedeg y gorchmynion canlynol:
Mewnosod ffeil loopback yn awtomatig i slot dyfais loopback ^
Mae gennym un broblem fach, wrth ailgychwyn y system gwesteiwr, y ffeil /mnt/work/lxd/hddpool.img yn "hedfan" allan o'r ddyfais /dev/loop1 a bydd y gwasanaeth LXD yn chwalu wrth lwytho oherwydd ni fydd yn ei weld yn y ddyfais hon. I ddatrys y broblem hon mae angen i chi greu gwasanaeth system a fydd yn mewnosod y ffeil hon yn y ddyfais /dev/loop1 pan fydd y system gwesteiwr yn cychwyn.
Gadewch i ni greu uned math o ffeil gwasanaeth в /etc/systemd/system/ ar gyfer system gychwyn 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
Ysgogi'r gwasanaeth:
sudo systemctl enable lxd-hddpool
Created symlink /etc/systemd/system/local-fs.target.wants/lxd-hddpool.service → /etc/systemd/system/lxd-hddpool.service.
Ar ôl ailgychwyn y system westeiwr, rydym yn gwirio statws y gwasanaeth:
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).
O'r allbwn gallwn wirio bod y cyflwr gwasanaeth weithgar, er gwaethaf y ffaith bod gweithredu ein sgript o un gorchymyn wedi'i gwblhau, roedd yr opsiwn yn caniatáu inni wneud hyn RemainAfterExit=true.
Gan fod yr holl brosesau cynhwysydd mewn gwirionedd yn rhedeg ar eu pennau eu hunain ar y system letyol gan ddefnyddio ei gnewyllyn, er mwyn amddiffyn ymhellach fynediad prosesau cynhwysydd i'r system westeiwr, mae LXD yn cynnig braint proses, lle:
Cynwysyddion Breintiedig - cynwysyddion yw'r rhain lle mae prosesau gyda UID a GID yn cyfateb i'r un perchennog ag ar y system letyol. Er enghraifft, mae gan broses sy'n rhedeg mewn cynhwysydd gyda UID o 0 yr un hawliau mynediad â phroses ar y system westeiwr gyda UID o 0. Mewn geiriau eraill, mae gan y defnyddiwr gwraidd yn y cynhwysydd yr holl hawliau nid yn unig yn y cynhwysydd, ond hefyd ar y system gwesteiwr os gall fynd y tu allan i ofod enw ynysig y cynhwysydd.
Cynwysyddion di-freintiedig - mae'r rhain yn gynwysyddion lle mae prosesau'n perthyn i berchennog yr UID a'r GID gyda rhif o 0 i 65535, ond ar gyfer y system westeiwr mae'r perchennog yn cael ei guddio gan ddefnyddio'r darnau SubUID a SubGID ychwanegol, yn y drefn honno. Er enghraifft, bydd defnyddiwr gyda UID=0 mewn cynhwysydd yn cael ei weld ar y system westeiwr fel SubUID + UID. Mae hyn yn amddiffyn y system letyol oherwydd os bydd unrhyw broses yn y cynhwysydd yn gallu dianc o'i ofod enw ynysig, dim ond fel proses gyda UID/GID uchel iawn anhysbys y gall gyfathrebu â'r system letyol.
Yn ddiofyn, mae gan gynwysyddion sydd newydd eu creu statws di-freintiedig ac felly mae'n rhaid i ni ddiffinio SubUID a SubGID.
Gadewch i ni greu dwy ffeil ffurfweddu lle byddwn yn gosod y mwgwd ar gyfer SubUID a SubGID, yn y drefn honno:
Ers i ni gychwyn y rhwydwaith yn flaenorol gan ddefnyddio'r dewin cychwyn lxd init a chreu dyfais rhwydwaith lxdbr0, yna yn yr adran hon byddwn yn dod yn gyfarwydd â rhwydweithio yn LXD a sut i greu switsh rhithwir (pont) gan ddefnyddio'r gorchymyn cleient.
Mae’r diagram canlynol yn dangos sut mae switsh (pont) yn cysylltu’r gwesteiwr a’r cynwysyddion â rhwydwaith:
Gall cynwysyddion gyfathrebu trwy rwydwaith â chynwysyddion eraill neu'r gwesteiwr y mae'r cynwysyddion hyn yn cael eu gwasanaethu arno. I wneud hyn, mae angen i chi gysylltu cardiau rhwydwaith rhithwir y cynwysyddion â switsh rhithwir. Byddwn yn creu switsh yn gyntaf, a bydd rhyngwynebau rhwydwaith y cynhwysydd yn cael eu cysylltu mewn penodau dilynol, ar ôl i'r cynhwysydd ei hun gael ei greu.
Mae'r gorchymyn canlynol yn creu switsh gydag is-rwydwaith 10.0.5.0/24 a chyfeiriad IPv4 10.0.5.1/24, a hefyd yn cynnwys ipv4.nat fel y gall cynwysyddion gael mynediad i'r Rhyngrwyd trwy'r gwesteiwr gan ddefnyddio'r gwasanaeth NAT:
Mae gan bob cynhwysydd yn LXD ei ffurfweddiad ei hun a gall ei ymestyn gyda chyfluniadau datganedig byd-eang o'r enw proffiliau cyfluniad. Mae gan gymhwyso proffiliau cyfluniad i gynhwysydd fodel rhaeadru, mae'r enghraifft ganlynol yn dangos hyn:
Yn yr enghraifft hon, mae tri phroffil wedi'u creu yn y system LXD: default, hddpool и hostfs. Mae'r tri phroffil yn cael eu cymhwyso i gynhwysydd sydd â chyfluniad lleol (ardal lwyd). Proffil default mae ganddo ddyfais root sydd â pharamedr pool yn hafal ssdpool, ond diolch i'r model cais cyfluniad rhaeadru, gallwn gymhwyso proffil i'r cynhwysydd hddpool sydd â pharamedr pool bydd yn diystyru'r un paramedr o'r proffil default a bydd y cynhwysydd yn derbyn cyfluniad y ddyfais root gyda pharamedr pool cyfartal hddpool, a'r proffil hostfs yn syml yn ychwanegu dyfais newydd i'r cynhwysydd.
I weld y rhestr o broffiliau cyfluniad sydd ar gael, defnyddiwch y gorchymyn canlynol:
lxc profile list
+---------+---------+
| NAME | USED BY |
+---------+---------+
| default | 1 |
+---------+---------+
| hddroot | 0 |
+---------+---------+
| ssdroot | 1 |
+---------+---------+
Gellir cael rhestr gyflawn o'r gorchmynion sydd ar gael ar gyfer gweithio gyda phroffil trwy ychwanegu'r allwedd --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
Proffil cyfluniad diofyn default nid oes ganddo gyfluniad cerdyn rhwydwaith ar gyfer y cynhwysydd ac nid oes gan bob cynhwysydd sydd newydd ei greu rwydwaith, ar eu cyfer mae angen creu dyfeisiau rhwydwaith lleol (ymroddedig) gyda gorchymyn ar wahân, ond gallwn greu dyfais rhwydwaith byd-eang yn y ffurfweddiad proffil a fydd yn cael ei rannu rhwng yr holl gynwysyddion sy'n defnyddio'r proffil hwn. Fel hyn, yn syth ar ôl y gorchymyn i greu cynhwysydd newydd, bydd ganddynt rwydwaith gyda mynediad rhwydwaith. Ar yr un pryd, nid oes unrhyw gyfyngiadau; gallwn bob amser greu dyfais rhwydwaith lleol yn ddiweddarach os oes angen.
Bydd y gorchymyn canlynol yn ychwanegu'r ddyfais at y proffil cyfluniad eth0 типа nic gysylltiedig â'r rhwydwaith lxdbr0:
lxc profile device add default eth0 nic network=lxdbr0 name=eth0
Mae'n bwysig nodi, ers i ni ychwanegu'r ddyfais at y proffil cyfluniad mewn gwirionedd, pe baem yn nodi cyfeiriad IP statig yn y ddyfais, yna bydd yr holl gynwysyddion a fydd yn defnyddio'r proffil hwn yn rhannu'r un cyfeiriad IP. Os oes angen creu cynhwysydd gyda chyfeiriad IP statig wedi'i ddyrannu ar gyfer y cynhwysydd, yna dylech greu cyfluniad dyfais rhwydwaith ar lefel y cynhwysydd (cyfluniad lleol) gyda'r paramedr cyfeiriad IP, ac nid ar lefel y proffil.
Gadewch i ni wirio'r proffil:
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: []
Yn y proffil hwn gallwn weld y bydd dwy ddyfais yn cael eu creu ar gyfer pob cynhwysydd sydd newydd ei greu:
eth0 - Math o ddyfais nic wedi'i gysylltu â switsh (pont rhwydwaith) lxdbr0
root - Math o ddyfais disk sy'n defnyddio pwll storio ssdpool
I'w ddefnyddio a grëwyd yn flaenorol Pwll Storio cynwysyddion, creu proffil cyfluniad ssdroot y byddwn yn ychwanegu dyfais fel disk gyda pwynt mount / (gwraidd) gan ddefnyddio'r a grëwyd yn flaenorol Pwll Storio - ssdpool:
Crëir cynwysyddion o ddelweddau sy'n ddosbarthiadau wedi'u cydosod yn arbennig nad oes ganddynt gnewyllyn Linux. Felly, cyn rhedeg y cynhwysydd, rhaid ei ddefnyddio o'r ddelwedd hon. Mae ffynhonnell y delweddau yn ystorfa leol lle mae delweddau'n cael eu llwytho i lawr o gadwrfeydd allanol.
I ddangos nifer cyfyngedig o golofnau fe wnaethom ddefnyddio'r opsiwn -c gyda pharamedrau dasut, a hefyd yn cyfyngu hyd y rhestr gyda'r gorchymyn head.
Mae hidlo ar gael i ddangos rhestr o ddelweddau. Bydd y gorchymyn canlynol yn rhestru'r holl bensaernïaeth ddosbarthu sydd ar gael AlpineLinux:
I ddechrau defnyddio'r cynhwysydd, mae angen ichi ychwanegu delwedd o'r ystorfa fyd-eang i'r un leol local:. Nawr bod y storfa leol yn wag, bydd y gorchymyn yn sicrhau hyn lxc image list. Os bydd y dull list peidiwch â nodi ystorfa, yna bydd y gadwrfa leol yn cael ei defnyddio yn ddiofyn - local:
lxc image list local:
+-------+-------------+--------+-------------+--------------+------+------+
| ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCHITECTURE | TYPE | SIZE |
+-------+-------------+--------+-------------+--------------+------+------+
Rheolir delweddau yn y storfa gan ddefnyddio'r dulliau canlynol:
Tîm
Disgrifiad
delwedd lxc alias
Rheoli arallenwau delwedd
delwedd lxc copïo
Copïo delweddau rhwng gweinyddwyr
delwedd lxc dileu
Dileu delweddau
delwedd lxc golygu
Golygu priodweddau delwedd
delwedd lxc allforio
Allforio a lawrlwytho delweddau
delwedd lxc mewnforio
Mewnforio delweddau i'r storfa ddelweddau
delwedd lxc info
Dangos gwybodaeth ddefnyddiol am ddelweddau
delwedd lxc rhestr
Rhestru lluniau
delwedd lxc adnewyddu
Adnewyddu lluniau
delwedd lxc Dangos
Dangos priodweddau delwedd
Copïwch y ddelwedd i'r gadwrfa leol o'r un fyd-eang images::
Yn ogystal â'r modd rhyngweithiol, mae LXD hefyd yn cefnogi modd gosod cyfluniad nad yw'n rhyngweithiol, dyma pan nodir y ffurfweddiad ar ffurf ffeil YAML, fformat arbennig sy'n eich galluogi i osod y cyfluniad cyfan ar unwaith, gan osgoi'r gweithrediad o lawer o orchmynion rhyngweithiol a drafodwyd uchod yn yr erthygl hon, gan gynnwys cyfluniad rhwydwaith, creu proffiliau cyfluniad, ac ati. Ni fyddwn yn ymdrin â'r maes hwn yma, gallwch ei wirio ar eich pen eich hun. mewn dogfennaeth.
Gorchymyn rhyngweithiol nesaf lxc config y byddwn yn edrych arno yn caniatáu ichi osod y cyfluniad. Er enghraifft, er mwyn sicrhau nad yw delweddau wedi'u llwytho i lawr i'r ystorfa leol yn cael eu diweddaru'n awtomatig o'r ystorfeydd byd-eang, gallwn alluogi'r ymddygiad hwn gyda'r gorchymyn canlynol:
I greu cynhwysydd defnyddiwch y gorchymyn lxc init y mae gwerthoedd yn cael eu trosglwyddo iddo репозиторий:образ ac yna'r ID dymunol ar gyfer y cynhwysydd. Gellir nodi bod yr ystorfa yn lleol local: felly hefyd unrhyw un byd-eang. Os nad yw'r ystorfa wedi'i nodi, yna yn ddiofyn defnyddir y gadwrfa leol i chwilio am y ddelwedd. Os yw'r ddelwedd wedi'i nodi o'r gadwrfa fyd-eang, yna bydd y ddelwedd yn cael ei lawrlwytho i'r ystorfa leol yn gyntaf ac yna'n cael ei defnyddio i greu'r cynhwysydd.
Gadewch i ni redeg y gorchymyn canlynol i greu ein cynhwysydd cyntaf:
lxc init alpine3 alp --storage=hddpool --profile=default --profile=hddroot
Edrychwn ar yr allweddi gorchymyn a ddefnyddiwn yma mewn trefn:
alpine3 — Mae alias (alias) wedi'i nodi ar gyfer y ddelwedd a uwchlwythwyd yn flaenorol i'r gadwrfa leol. Os na chafodd yr alias ei greu ar gyfer y ddelwedd hon, yna gallwch chi bob amser gyfeirio at y ddelwedd wrth ei Olion Bysedd sy'n cael ei arddangos yn y tabl.
alp — Yn gosod y dynodwr ar gyfer y cynhwysydd
--storage — Mae'r allwedd hon yn dangos ym mha Pwll Storio bydd cynhwysydd yn cael ei greu
--profile — Mae'r rhaeadru allweddi hyn yn cymhwyso cyfluniad o broffiliau cyfluniad a grëwyd yn flaenorol i'r cynhwysydd
Rydyn ni'n lansio'r cynhwysydd, sy'n dechrau lansio system init y dosbarthiad:
lxc start alp
Gallwch hefyd ddefnyddio'r gorchymyn lxc launch sy'n eich galluogi i gyfuno timau lxc init и lxc start mewn un llawdriniaeth.
Gwirio cyflwr y cynhwysydd:
lxc list -c ns46tb
+------+---------+------------------+------+-----------+--------------+
| NAME | STATE | IPV4 | IPV6 | TYPE | STORAGE POOL |
+------+---------+------------------+------+-----------+--------------+
| alp | RUNNING | 10.0.5.46 (eth0) | | CONTAINER | hddpool |
+------+---------+------------------+------+-----------+--------------+
Yn yr adran profiles gallwn sicrhau bod y cynhwysydd hwn yn defnyddio dau broffil cyfluniad − default и hddroot. Yn adran devices dim ond un ddyfais y gallwn ei chanfod oherwydd bod y ddyfais rhwydwaith wedi'i chreu ar lefel y proffil default. Er mwyn gweld yr holl ddyfeisiau a ddefnyddir gan y cynhwysydd mae angen i chi ychwanegu allwedd --expanded:
Os byddwn yn ceisio gosod cyfeiriad IP ar gyfer dyfais rhwydwaith eth0 tîm lxc config device set alp a fwriedir ar gyfer y ffurfweddiad cynhwysydd, yna byddwn yn derbyn gwall a fydd yn adrodd nad yw'r ddyfais yn bodoli oherwydd bod y ddyfais eth0 sy'n cael ei ddefnyddio gan y cynhwysydd yn perthyn i'r proffil default:
lxc config device set alp eth0 ipv4.address 10.0.5.5
Error: The device doesn't exist
Wrth gwrs gallwn osod cyfeiriad IP sefydlog ar gyfer eth0 dyfeisiau yn y proffil, ond bydd yr un peth ar gyfer pob cynhwysydd a fydd yn defnyddio'r proffil hwn. Felly, gadewch i ni ychwanegu dyfais sy'n ymroddedig i'r cynhwysydd:
lxc config device add alp eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5
Yna mae angen i chi ailgychwyn y cynhwysydd:
lxc restart alp
Os edrychwn ar gyfluniad y cynhwysydd nawr, nid oes angen i ni ddefnyddio'r opsiwn --expanded i weld y ddyfais rhwydwaith eth0, ers i ni ei greu ar lefel y cynhwysydd a'i fod yn rhaeadru dros yr un ddyfais o'r proffil default:
I weithredu gorchmynion mewn cynhwysydd yn uniongyrchol, gan osgoi cysylltiadau rhwydwaith, defnyddiwch y gorchymyn lxc exec sy'n gweithredu gorchmynion yn y cynhwysydd heb lansio cragen y system. Os oes angen i chi weithredu gorchymyn mewn cragen gan ddefnyddio patrymau cregyn fel newidynnau, ailgyfeiriadau ffeil (pibell), ac ati, yna mae angen i chi lansio'r gragen yn benodol a phasio'r gorchymyn fel allwedd, er enghraifft:
lxc exec alp -- /bin/sh -c "echo $HOME"
Defnyddiodd y gorchymyn gymeriad dianc arbennig am gymeriad arbennig $ fel bod y newidyn $HOME ni chafodd ei ddehongli ar y peiriant gwesteiwr, ond fe'i dehonglwyd y tu mewn i'r cynhwysydd yn unig.
Mae hefyd yn bosibl cychwyn y modd cragen rhyngweithiol, ac yna gorffen y sesiwn trwy weithredu hotkey CTRL+D:
Yn LXD, gallwch reoli adnoddau cynhwysydd gan ddefnyddio set arbennig o gyfluniad. Gellir dod o hyd i restr gyflawn o baramedrau cyfluniad cynhwysydd mewn dogfennaeth.
limit.cpu - yn clymu cynhwysydd i un neu fwy o greiddiau CPU
limits.cpu.allowance - yn rheoli naill ai cwotâu amserlennu CFS pan fydd y terfyn amser wedi mynd heibio, neu fecanwaith rhannu adnoddau CPU cyffredinol pan fydd y ganran wedi mynd heibio
limits.cpu.priority - blaenoriaeth amserlennydd pan roddir yr un ganran o broseswyr i achosion lluosog sy'n rhannu set o broseswyr
Yn ogystal â chyfyngiadau o'r fath limits.read, limits.write gallwn hefyd gyfyngu ar faint o ofod disg a ddefnyddir gan y cynhwysydd (dim ond yn gweithio gyda ZFS neu BTRFS):
lxc config device set alp root size=2GB
Ar ôl gosod, yn y paramedr devices.root.size Gallwn wirio'r terfyn a osodwyd:
lxc config show alp
...
devices:
root:
path: /
pool: hddpool
size: 2GB
type: disk
ephemeral: false
profiles:
- default
- hddroot
stateful: false
description: ""
I weld y cwotâu disg a ddefnyddir gallwn gael o'r gorchymyn 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
Er gwaethaf y ffaith ein bod wedi gosod terfyn ar gyfer dyfais gwraidd y cynhwysydd i 2GB, mae cyfleustodau system fel df ni fydd yn gweld y cyfyngiad hwn. I wneud hyn, byddwn yn cynnal prawf bach ac yn darganfod sut mae'n gweithio.
Gadewch i ni greu 2 gynhwysydd union yr un fath newydd yn yr un peth Pwll Storio (hddpool):
Gadewch i ni sicrhau bod y ffeil yn cael ei chreu:
lxc exec alp1 -- ls -lh
total 1000M
-rw-r--r-- 1 root root 1000.0M Mar 27 10:16 file.img
Os edrychwn yn yr ail gynhwysydd, gwiriwch am fodolaeth ffeil yn yr un lleoliad, yna ni fydd y ffeil hon yno, a ddisgwylir, gan fod cynwysyddion yn cael eu creu yn eu pennau eu hunain. Cyfrol Storio yn yr un Pwll Storio:
lxc exec alp2 -- ls -lh
total 0
Ond gadewch i ni gymharu'r gwerthoedd y mae'n eu cynhyrchu df ar un a'r cynhwysydd arall:
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% /
...
Dyfais /dev/loop1 wedi'i osod fel y rhaniad gwraidd Pwll Storio y mae'r cynwysyddion hyn yn eu defnyddio, felly maent yn rhannu ei gyfaint rhwng dau.
Mae gan LXD y gallu i greu cipluniau ac adfer cyflwr y cynhwysydd oddi wrthynt.
I greu ciplun, rhedwch y gorchymyn canlynol:
lxc snapshot alp snapshot1
Y tîm lxc snapshot dim allwedd ar gael list, felly, i weld y rhestr o gipluniau mae angen i chi ddefnyddio'r gorchymyn sy'n dangos gwybodaeth gyffredinol am y cynhwysydd:
lxc info alp
...
...
Snapshots:
snapshot1 (taken at 2020/04/08 18:18 UTC) (stateless)
Gallwch chi adfer cynhwysydd o giplun gan ddefnyddio'r gorchymyn lxc restore nodi'r cynhwysydd y bydd y gwaith adfer yn cael ei wneud ar ei gyfer a'r alias ciplun:
lxc restore alp snapshot1
Defnyddir y gorchymyn canlynol i ddileu ciplun. Sylwch nad yw cystrawen y gorchymyn yn debyg i bob un arall; yma mae angen i chi nodi slaes ymlaen ar ôl enw'r cynhwysydd. Os caiff y slaes ei hepgor, yna dehonglir y gorchymyn i ddileu ciplun fel gorchymyn i ddileu cynhwysydd!
lxc delete alp/snapshot1
Yn yr enghraifft uchod, buom yn edrych ar y cipluniau hyn a elwir yn ddi-wladwriaeth. Mae gan LXD fath arall o gipluniau - stateful, sy'n arbed cyflwr presennol yr holl brosesau yn y cynhwysydd. Mae yna nifer o nodweddion diddorol a defnyddiol sy'n gysylltiedig â chipluniau urddasol.