Awọn ẹya ipilẹ ti LXD - awọn ọna eiyan Linux

Awọn ẹya ipilẹ ti LXD - awọn ọna eiyan Linux

LXD ni nigbamii ti iran eto eiyan faili, ki o wi orisun. O nfunni ni wiwo olumulo ti o jọra si awọn ẹrọ foju, ṣugbọn nlo awọn apoti Linux dipo.

LXD mojuto jẹ daemon ti o ni anfani (iṣẹ ti n ṣiṣẹ pẹlu awọn ẹtọ gbongbo) ti o pese API REST nipasẹ iho unix agbegbe, bakannaa nipasẹ nẹtiwọọki ti o ba ti fi sori ẹrọ iṣeto ti o yẹ. Awọn alabara, gẹgẹbi irinṣẹ laini aṣẹ ti a pese pẹlu LXD, ṣe awọn ibeere nipasẹ API REST yii. Eyi tumọ si pe boya o n wọle si agbalejo agbegbe tabi agbalejo latọna jijin, ohun gbogbo n ṣiṣẹ kanna.

Ninu nkan yii a kii yoo gbe ni alaye lori awọn imọran ti LXD, a kii yoo gbero gbogbo awọn agbara ti o wa ti a ṣe ilana ninu iwe, pẹlu imuse aipẹ ni awọn ẹya tuntun ti LXD ti atilẹyin fun awọn ẹrọ foju QEMU ni afiwe pẹlu awọn apoti. Dipo, a yoo kọ ẹkọ nikan awọn ipilẹ ti iṣakoso eiyan - ṣiṣeto awọn adagun ibi ipamọ, Nẹtiwọọki, ṣiṣiṣẹ apoti kan, lilo awọn opin orisun, ati bii o ṣe le lo awọn fọto fọto ki o le ni oye ipilẹ ti LXD ati lo awọn apoti lori Linux.

Fun alaye ni kikun, jọwọ tọka si orisun osise:

Lilọ kiri

fifi sori LXD ^

Fifi LXD sori awọn pinpin Ubuntu ^

Ninu package pinpin Ubuntu 19.10 lxd ni o ni a igbohunsafefe lori imolara package:

apt search lxd

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

Eyi tumọ si pe awọn idii meji yoo fi sori ẹrọ ni ẹẹkan, ọkan bi package eto ati ekeji bi package imolara. Fifi awọn idii meji sori eto le ṣẹda iṣoro kan nibiti package eto le di alainibaba ti package imolara ba ti yọkuro nipasẹ oluṣakoso package imolara.

Wa package lxd ninu ibi ipamọ snap o le lo aṣẹ atẹle:

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

Nipa ṣiṣe aṣẹ naa list o le rii daju wipe awọn package lxd ko sibẹsibẹ fi sori ẹrọ:

snap list

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

Bíótilẹ o daju wipe LXD ni a imolara package, o gbọdọ fi sori ẹrọ nipasẹ awọn eto package lxd, eyi ti yoo ṣẹda ẹgbẹ ti o baamu ninu eto, awọn ohun elo pataki ni /usr/bin ati bẹbẹ lọ.

sudo apt update
sudo apt install lxd

Jẹ ki a rii daju pe package ti fi sori ẹrọ bi idii imolara:

snap list

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

Fifi LXD sori awọn pinpin Arch Linux ^

Lati fi sori ẹrọ package LXD lori eto, o nilo lati ṣiṣe awọn aṣẹ wọnyi, akọkọ yoo ṣe imudojuiwọn atokọ ti awọn idii lori eto ti o wa ninu ibi ipamọ, keji yoo fi package sori ẹrọ taara:

sudo pacman -Syyu && sudo pacman -S lxd

Lẹhin fifi package sii, lati le ṣakoso LXD nipasẹ olumulo deede, o gbọdọ ṣafikun si ẹgbẹ eto lxd:

sudo usermod -a -G lxd user1

Jẹ ki a rii daju pe olumulo naa user1 kun si ẹgbẹ lxd:

id -Gn user1

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

Ti o ba ti ẹgbẹ lxd ko han ninu atokọ naa, lẹhinna o nilo lati mu igba olumulo ṣiṣẹ lẹẹkansi. Lati ṣe eyi, o nilo lati jade ki o wọle labẹ olumulo kanna.

Mu ṣiṣẹ sinu systemd ikojọpọ iṣẹ LXD ni ibẹrẹ eto:

sudo systemctl enable lxd

Jẹ ki a bẹrẹ iṣẹ naa:

sudo systemctl start lxd

Ṣiṣayẹwo ipo iṣẹ naa:

sudo systemctl status lxd

Ibi ipamọ LXD (Ipamọ) ^

Ṣaaju ki ipilẹṣẹ bẹrẹ, a nilo lati loye bii ibi ipamọ ni LXD ṣe ṣeto pẹlu ọgbọn.

Ibi ipamọ (Ibi) pẹlu lati ọkan tabi diẹ ẹ sii Ibi ipamọ Pool eyiti o nlo ọkan ninu awọn ọna ṣiṣe faili ti o ni atilẹyin gẹgẹbi ZFS, BTRFS, LVM tabi awọn ilana ilana deede. Gbogbo Ibi ipamọ Pool ti pin si awọn iwọn didun (Iwọn didun Ipamọ) ti o ni awọn aworan, awọn apoti, tabi data ninu fun awọn idi miiran.

  • Awọn aworan - iwọnyi jẹ awọn ipinpinpin ti o pejọ ni pataki laisi ekuro Linux ati pe o wa lati awọn orisun ita
  • Apoti - iwọnyi jẹ awọn pinpin kaakiri lati awọn aworan, ṣetan fun lilo
  • Awọn aworan ifaworanhan - iwọnyi jẹ awọn fọto ti ipo awọn apoti ti o le pada si

Awọn ẹya ipilẹ ti LXD - awọn ọna eiyan Linux

Lati ṣakoso ibi ipamọ ni LXD, lo pipaṣẹ naa lxc storage ijẹrisi fun eyiti o le gba nipa sisọ bọtini naa - lxc storage --help

Aṣẹ atẹle n ṣafihan atokọ ti gbogbo rẹ Ibi ipamọ Pool ni ipamọ LXD:

lxc storage list

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

Lati wo akojọ kan ti gbogbo Iwọn didun Ipamọ ninu awọn ti o yan Ibi ipamọ Pool sìn egbe 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       |
+-----------+----------------------------------+-------------+---------+

Bakannaa, ti o ba jẹ fun Ibi ipamọ Pool Nigbati o ba ṣẹda, a yan eto faili BTRFS, lẹhinna gba atokọ kan Iwọn didun Ipamọ tabi awọn ipilẹṣẹ ninu itumọ BTRFS, o le lo ohun elo irinṣẹ ti eto faili yii:

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

Bibẹrẹ LXD ^

Ṣaaju ṣiṣẹda ati lilo awọn apoti, o gbọdọ ṣe ipilẹṣẹ LXD gbogbogbo ti o ṣẹda ati tunto nẹtiwọọki ati ibi ipamọ. Eyi le ṣee ṣe pẹlu ọwọ nipa lilo awọn aṣẹ alabara boṣewa ti o wa ninu atokọ nipa pipe aṣẹ naa lxc --help tabi lilo oluṣeto ipilẹṣẹ lxd init dahun awọn ibeere diẹ.

Yiyan eto faili fun adagun Ibi ipamọ ^

Lakoko ibẹrẹ, LXD beere awọn ibeere pupọ, pẹlu ṣiṣe ipinnu iru eto faili fun aiyipada Ibi ipamọ Pool. Nipa aiyipada, eto faili BTRFS ti yan fun rẹ. Ko ṣee ṣe lati yipada si FS miiran lẹhin ẹda. Lati yan FS o daba tabili lafiwe ẹya:

ẹya-ara
Directory
Btrfs
LVM
ZFS
CEPH

Iṣapeye ibi ipamọ aworan
rara
bẹẹni
bẹẹni
bẹẹni
bẹẹni

Iṣapeye apẹẹrẹ ẹda
rara
bẹẹni
bẹẹni
bẹẹni
bẹẹni

Iṣapeye aworan ẹda
rara
bẹẹni
bẹẹni
bẹẹni
bẹẹni

Gbigbe aworan iṣapeye
rara
bẹẹni
rara
bẹẹni
bẹẹni

Iṣapeye gbigbe apẹẹrẹ
rara
bẹẹni
rara
bẹẹni
bẹẹni

Daakọ lori kikọ
rara
bẹẹni
bẹẹni
bẹẹni
bẹẹni

Àkọsílẹ orisun
rara
rara
bẹẹni
rara
bẹẹni

Lẹsẹkẹsẹ cloning
rara
bẹẹni
bẹẹni
bẹẹni
bẹẹni

Awakọ ipamọ ohun elo inu apo eiyan kan
bẹẹni
bẹẹni
rara
rara
rara

Pada pada lati awọn fọto ti o ti dagba (kii ṣe tuntun)
bẹẹni
bẹẹni
bẹẹni
rara
bẹẹni

Awọn ipin ipamọ
beeni(*)
bẹẹni
bẹẹni
bẹẹni
rara

Bibẹrẹ nẹtiwọọki ati adagun ibi ipamọ ni lilo oluṣeto naa ^

Aṣẹ atẹle ti a yoo wo ni imọran iṣeto awọn paati akọkọ ti LXD nipa didahun awọn ibeere ti o rọrun ni lilo oluṣeto ibẹrẹ.

Ṣiṣe aṣẹ lxc init ki o si tẹ awọn idahun si awọn ibeere lẹhin oluṣafihan bi a ṣe han ninu apẹẹrẹ ni isalẹ tabi yi wọn pada ni ibamu si awọn ipo rẹ:

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

Ṣiṣẹda afikun Ibi ipamọ Pool ^

Ni išaaju igbese ti a da Ibi ipamọ Pool ti a fun ni orukọ ssdpool ati faili ti o wa lori eto mi ni /var/lib/lxd/disks/ssdpool.img. Adirẹsi eto faili yii ni ibamu si awakọ SSD ti ara ninu PC mi.

Awọn iṣe atẹle, lati faagun oye ti ipa ti o ṣiṣẹ nipasẹ Ibi ipamọ Pool ni ibi ipamọ, a yoo ṣẹda keji Ibi ipamọ Pool eyi ti yoo wa ni ti ara lori yatọ si oriṣi ti disk, HDD. Iṣoro naa ni pe LXD ko gba ọ laaye lati ṣẹda Ibi ipamọ Pool jade ti adirẹsi /var/lib/lxd/disks/ ati paapaa awọn ọna asopọ aami kii yoo ṣiṣẹ, wo awọn Olùgbéejáde ká esi. A le fori yi aropin nigba ibẹrẹ / kika Ibi ipamọ Pool nipa sisọ iye naa bi ẹrọ dina dipo ọna si faili loopback nipa sisọ eyi ni bọtini source.

Nitorina, ṣaaju ki o to ṣẹda Ibi ipamọ Pool o nilo lati ṣalaye faili loopback tabi ipin ti o wa tẹlẹ lori eto faili rẹ ti yoo lo. Lati ṣe eyi, a yoo ṣẹda ati lo faili ti a yoo fi opin si iwọn si 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

Jẹ ki a so faili loopback pọ si ẹrọ loopback ọfẹ kan:

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

/dev/loop1

O ṣeun si bọtini --show ṣiṣe pipaṣẹ naa pada si iboju orukọ ẹrọ naa sinu eyiti faili loopback ti sopọ. Ti o ba jẹ dandan, a le ṣafihan atokọ ti gbogbo awọn ẹrọ ti o nšišẹ ti iru lati rii daju pe awọn iṣe wa pe:

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

Lati atokọ ti o le rii pe ẹrọ naa ni /dev/loop1 loopback faili to wa /mnt/work/lxd/hddpool.img, ati ninu ẹrọ naa /dev/loop0 loopback faili to wa /var/lib/lxd/disks/ssdpool.img eyi ti o ni ibamu si awọn aiyipada Ibi ipamọ Pool.

Aṣẹ atẹle ṣẹda tuntun kan Ibi ipamọ Pool ni LXD da lori loopback faili ti a kan pese sile. LXD yoo ṣe ọna kika faili loopback /mnt/work/lxd/hddpool.img ninu ẹrọ /dev/loop1 fun eto faili BTRFS:

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

Jẹ ki ká han akojọ kan ti gbogbo Ibi ipamọ Pool si iboju:

lxc storage list

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

Nmu Iwọn Pool Ibi ipamọ pọ si ^

Lẹhin ẹda Ibi ipamọ Pool, ti o ba jẹ dandan, o le ṣe afikun. Fun Ibi ipamọ Pool da lori eto faili BTRFS, ṣiṣe awọn aṣẹ wọnyi:

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

Fi sii laifọwọyi faili loopback sinu Iho ẹrọ loopback ^

A ni iṣoro kekere kan, nigba atunbere eto agbalejo, faili naa /mnt/work/lxd/hddpool.img yoo "fò" jade ti awọn ẹrọ /dev/loop1 ati pe iṣẹ LXD yoo ṣubu nigbati o ba n ṣajọpọ nitori kii yoo rii ninu ẹrọ yii. Lati yanju iṣoro yii o nilo lati ṣẹda iṣẹ eto ti yoo fi faili yii sinu ẹrọ naa /dev/loop1 nigbati ogun eto orunkun.

Jẹ ká ṣẹda kuro iru faili iṣẹ в /etc/systemd/system/ fun eto ipilẹṣẹ 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

Mu iṣẹ naa ṣiṣẹ:

sudo systemctl enable lxd-hddpool

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

Lẹhin ti tun bẹrẹ eto agbalejo, a ṣayẹwo ipo iṣẹ naa:

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

Lati inu abajade a le rii daju pe ipo iṣẹ jẹ ti nṣiṣe lọwọ, Bíótilẹ o daju pe ipaniyan ti iwe afọwọkọ wa lati aṣẹ kan ti pari, aṣayan jẹ ki a ṣe eyi RemainAfterExit=true.

Aabo. Awọn anfani Apoti ^

Niwọn igba ti gbogbo awọn ilana eiyan n ṣiṣẹ ni ipinya lori eto agbalejo nipa lilo ekuro rẹ, lati daabobo siwaju iraye si awọn ilana eiyan si eto agbalejo, LXD nfunni ni anfani ilana, nibiti:

  • Awọn apoti ti o ni anfani - iwọnyi jẹ awọn apoti ninu eyiti awọn ilana pẹlu UID ati GID ni ibamu si oniwun kanna bi lori eto agbalejo. Fun apẹẹrẹ, ilana ti n ṣiṣẹ ninu apo eiyan pẹlu UID ti 0 ni gbogbo awọn ẹtọ iwọle kanna gẹgẹbi ilana lori eto ogun pẹlu UID ti 0. Ni awọn ọrọ miiran, olumulo gbongbo ninu apo eiyan ni gbogbo awọn ẹtọ kii ṣe ninu nikan. eiyan, sugbon tun lori ogun eto ti o ba ti o le lọ ita awọn eiyan ká sọtọ namespace.

  • Awọn apoti ti ko ni anfani - iwọnyi jẹ awọn apoti ninu eyiti awọn ilana jẹ ti oniwun ti UID ati GID pẹlu nọmba kan lati 0 si 65535, ṣugbọn fun eto agbalejo oluwa ti wa ni boju-boju nipa lilo awọn afikun SubUID ati awọn ipin SubGID, ni atele. Fun apẹẹrẹ, olumulo pẹlu UID=0 ninu apoti kan yoo rii lori eto agbalejo bi SubUID + UID. Eyi ṣe aabo fun eto agbalejo nitori ti ilana eyikeyi ninu apo eiyan ba ni anfani lati sa fun aaye orukọ ti o ya sọtọ, o le ṣe ibasọrọ pẹlu eto agbalejo bi ilana pẹlu aimọ, UID/GID ti o ga pupọ.

Nipa aiyipada, awọn apoti ti a ṣẹda tuntun ni ipo ailagbara ati nitorinaa a gbọdọ ṣalaye SubUID ati SubGID kan.

Jẹ ki a ṣẹda awọn faili atunto meji ninu eyiti a yoo ṣeto iboju-boju fun SuBUID ati SubGID, ni atele:

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

Lati lo awọn ayipada, iṣẹ LXD gbọdọ tun bẹrẹ:

sudo systemctl restart lxd

Ṣiṣẹda foju nẹtiwọki yipada ^

Niwọn igba ti a ti ṣe ipilẹṣẹ nẹtiwọọki tẹlẹ nipa lilo oluṣeto ipilẹṣẹ lxd init o si ṣẹda ẹrọ nẹtiwọki kan lxdbr0, lẹhinna ni apakan yii a yoo rọrun lati faramọ pẹlu Nẹtiwọọki ni LXD ati bii o ṣe le ṣẹda iyipada foju (Afara) nipa lilo aṣẹ alabara.

Aworan ti o tẹle yii ṣe afihan bi iyipada (afara) ṣe so agbalejo ati awọn apoti sinu nẹtiwọọki kan:

Awọn ẹya ipilẹ ti LXD - awọn ọna eiyan Linux

Awọn apoti le ṣe ibasọrọ nipasẹ nẹtiwọọki kan pẹlu awọn apoti miiran tabi agbalejo eyiti a ti sin awọn apoti wọnyi. Lati ṣe eyi, o nilo lati sopọ awọn kaadi nẹtiwọọki foju ti awọn apoti pẹlu iyipada foju. A yoo ṣẹda iyipada akọkọ, ati awọn atọkun nẹtiwọọki ti eiyan yoo ni asopọ ni awọn ipin ti o tẹle, lẹhin ti a ti ṣẹda eiyan funrararẹ.

Aṣẹ atẹle ṣẹda iyipada pẹlu subnet kan 10.0.5.0/24 ati IPv4 adirẹsi 10.0.5.1/24, ati pẹlu pẹlu ipv4.nat ki awọn apoti le wọle si Intanẹẹti nipasẹ agbalejo nipa lilo iṣẹ NAT:

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

Ṣiṣayẹwo atokọ ti awọn ẹrọ netiwọki ti o wa ni LXD:

lxc network list

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

O tun le rii daju pe ẹrọ nẹtiwọọki kan ti ṣẹda nipa lilo ọpa boṣewa ti pinpin Linux - ip link tabi 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

Profaili iṣeto ni ^

Kọọkan eiyan ni LXD ni o ni awọn oniwe-ara iṣeto ni ati ki o le fa o pẹlu agbaye kede awọn atunto ti a npe ni iṣeto ni profaili. Lilo awọn profaili atunto si apoti kan ni awoṣe kasikedi, apẹẹrẹ atẹle ṣe afihan eyi:

Awọn ẹya ipilẹ ti LXD - awọn ọna eiyan Linux

Ninu apẹẹrẹ yii, awọn profaili mẹta ti ṣẹda ninu eto LXD: default, hddpool и hostfs. Gbogbo awọn profaili mẹta ni a lo si eiyan ti o ni iṣeto agbegbe (agbegbe grẹy). Profaili default ni ẹrọ kan root eyi ti o ni paramita pool dogba ssdpool, ṣugbọn ọpẹ si awoṣe ohun elo iṣeto ni kasikedi, a le lo profaili kan si eiyan naa hddpool eyi ti o ni paramita pool yoo idojuk paramita kanna lati profaili default ati awọn eiyan yoo gba awọn ẹrọ iṣeto ni root pẹlu paramita pool dogba hddpool, ati profaili hostfs nìkan afikun kan titun ẹrọ si awọn eiyan.

Lati wo atokọ ti awọn profaili iṣeto ti o wa, lo pipaṣẹ atẹle:

lxc profile list

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

Atokọ pipe ti awọn aṣẹ to wa fun ṣiṣẹ pẹlu profaili le ṣee gba nipa fifi bọtini kun --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

Ṣatunkọ profaili rẹ ^

Profaili iṣeto ni aiyipada default ko ni iṣeto ni kaadi nẹtiwọọki fun eiyan ati gbogbo awọn apoti tuntun ti a ṣẹda ko ni nẹtiwọọki, fun wọn o jẹ dandan lati ṣẹda awọn ẹrọ nẹtiwọọki agbegbe (igbẹhin) pẹlu aṣẹ lọtọ, ṣugbọn a le ṣẹda ẹrọ nẹtiwọọki agbaye ni iṣeto ni iṣeto. profaili ti yoo pin laarin gbogbo awọn apoti nipa lilo profaili yii. Ni ọna yii, lẹsẹkẹsẹ lẹhin aṣẹ lati ṣẹda eiyan tuntun, wọn yoo ni nẹtiwọọki pẹlu iraye si nẹtiwọọki. Ni akoko kanna, ko si awọn ihamọ; a le ṣẹda ẹrọ nẹtiwọọki agbegbe nigbagbogbo nigbamii ti o ba jẹ dandan.

Aṣẹ atẹle yoo ṣafikun ẹrọ naa si profaili iṣeto ni eth0 Iru nic ti sopọ si nẹtiwọki lxdbr0:

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

O ṣe pataki lati ṣe akiyesi pe niwọn bi a ti ṣafikun ẹrọ gangan si profaili iṣeto ni, ti a ba ṣalaye adiresi IP aimi ninu ẹrọ naa, lẹhinna gbogbo awọn apoti ti yoo lo profaili yii yoo pin adiresi IP kanna. Ti iwulo ba wa lati ṣẹda eiyan kan pẹlu adiresi IP aimi ti a sọtọ fun eiyan naa, lẹhinna o yẹ ki o ṣẹda iṣeto ẹrọ nẹtiwọọki kan ni ipele eiyan (iṣeto agbegbe) pẹlu paramita adiresi IP, kii ṣe ni ipele profaili.

Jẹ ki a ṣayẹwo profaili naa:

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

Ninu profaili yii a le rii pe fun gbogbo awọn apoti tuntun ti a ṣẹda awọn ẹrọ meji yoo ṣẹda:

  • eth0 - Ẹrọ iru nic ti sopọ si a yipada (afara nẹtiwọki) lxdbr0
  • root - Ẹrọ iru disk ti o nlo adagun ipamọ ssdpool

Ṣiṣẹda titun profaili ^

Lati lo ti ṣẹda tẹlẹ Ibi ipamọ Pool awọn apoti, ṣẹda profaili iṣeto ni ssdroot ninu eyiti a yoo fi ẹrọ kan kun bi disk pẹlu òke ojuami / (root) lilo awọn ti tẹlẹ da Ibi ipamọ Pool - ssdpool:

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

Bakanna, a ṣẹda iru ẹrọ kan disk, sugbon ninu apere yi lilo Ibi ipamọ Pool - hddpool:

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

Ṣiṣayẹwo awọn profaili iṣeto:

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

Ibi ipamọ aworan ^

Awọn apoti ni a ṣẹda lati awọn aworan ti o jẹ awọn ipinpinpin pataki ti ko ni ekuro Linux kan. Nitorina, ṣaaju ṣiṣe awọn eiyan, o gbọdọ wa ni ransogun lati aworan yi. Orisun awọn aworan jẹ ibi-ipamọ agbegbe sinu eyiti a ṣe igbasilẹ awọn aworan lati awọn ibi ipamọ ita.

Awọn ibi ipamọ aworan latọna jijin ^

Nipa aiyipada, LXD ti tunto lati gba awọn aworan lati awọn orisun latọna jijin mẹta:

  • ubuntu: (fun awọn aworan Ubuntu iduroṣinṣin)
  • ubuntu-ojoojumọ: (fun awọn aworan Ubuntu lojoojumọ)
  • awọn aworan: (fun opo kan ti awọn distros miiran)

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

Fun apẹẹrẹ, ibi ipamọ ubuntu: ni awọn aworan wọnyi:

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

Lati ṣafihan nọmba to lopin ti awọn ọwọn a lo aṣayan naa -c pẹlu paramita dasut, ati pe o tun ni opin ipari ti atokọ pẹlu aṣẹ naa head.

Sisẹ wa lati ṣe afihan atokọ ti awọn aworan. Aṣẹ atẹle yoo ṣe atokọ gbogbo awọn faaji pinpin ti o wa 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        |
+------------------------------+--------------------------------------+--------------+

Ibi ipamọ aworan agbegbe ^

Lati bẹrẹ lilo eiyan, o nilo lati ṣafikun aworan kan lati ibi ipamọ agbaye si ọkan agbegbe local:. Bayi ibi ipamọ agbegbe ti ṣofo, aṣẹ yoo rii daju eyi lxc image list. Ti o ba ti ọna list maṣe pato ibi ipamọ kan, lẹhinna ibi ipamọ agbegbe yoo ṣee lo nipasẹ aiyipada - local:

lxc image list local:

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

Awọn aworan ti o wa ninu ibi ipamọ ni a ṣakoso ni lilo awọn ọna wọnyi:

Egbe
Apejuwe

aworan lxc inagijẹ
Ṣakoso awọn inagijẹ aworan

aworan lxc daakọ
Da awọn aworan laarin awọn olupin

aworan lxc pa
Paarẹ awọn aworan

aworan lxc edit
Ṣatunkọ awọn ohun-ini aworan

aworan lxc okeere
Ṣe okeere ati ṣe igbasilẹ awọn aworan

aworan lxc gbe wọle
Gbe awọn aworan wọle si ile itaja aworan

aworan lxc info
Ṣe afihan alaye to wulo nipa awọn aworan

aworan lxc akojọ
Akojọ awọn aworan

aworan lxc Sọ
Sọ awọn aworan

aworan lxc show
Ṣe afihan awọn ohun-ini aworan

Da aworan naa si ibi ipamọ agbegbe lati ọkan agbaye images::

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

Image copied successfully!

Jẹ ki a ṣe afihan atokọ ti gbogbo awọn aworan ti o wa lọwọlọwọ ni ibi ipamọ agbegbe local::

lxc image -c lfdatsu list local:

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

LXD iṣeto ni ^

Ni afikun si ipo ibaraenisepo, LXD tun ṣe atilẹyin ipo fifi sori ẹrọ ti kii ṣe ibaraenisepo, eyi ni nigbati iṣeto ni pato ni irisi faili YAML kan, ọna kika pataki kan ti o fun ọ laaye lati fi gbogbo iṣeto ni ẹẹkan, ni ikọja ipaniyan. ti ọpọlọpọ awọn asese ibaraenisepo ti a ti jiroro loke ni yi article, pẹlu nẹtiwọki iṣeto ni, ẹda ti iṣeto ni profaili, ati be be lo. A kii yoo bo agbegbe yii nibi, o le ṣayẹwo funrararẹ. ni iwe.

Next ibanisọrọ pipaṣẹ lxc config eyi ti a yoo wo gba ọ laaye lati ṣeto iṣeto ni. Fun apẹẹrẹ, lati rii daju pe awọn aworan ti a ṣe igbasilẹ si ibi ipamọ agbegbe ko ni imudojuiwọn laifọwọyi lati awọn ibi ipamọ agbaye, a le mu ihuwasi yii ṣiṣẹ pẹlu aṣẹ atẹle:

lxc config set images.auto_update_cached=false

Ṣiṣẹda ati idari a eiyan ^

Lati ṣẹda eiyan lo pipaṣẹ lxc init eyi ti awọn iye ti kọja репозиторий:образ ati lẹhinna ID ti o fẹ fun eiyan naa. Ibi ipamọ le jẹ pato bi agbegbe local: bẹẹ ni eyikeyi agbaye. Ti ibi ipamọ ko ba ni pato, lẹhinna nipasẹ aiyipada ibi ipamọ agbegbe ni a lo lati wa aworan naa. Ti aworan naa ba jẹ pato lati ibi ipamọ agbaye, lẹhinna aworan naa yoo kọkọ ṣe igbasilẹ si ibi ipamọ agbegbe ati lẹhinna lo lati ṣẹda eiyan naa.

Jẹ ki a ṣiṣẹ aṣẹ atẹle lati ṣẹda apoti akọkọ wa:

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

Jẹ ki a wo awọn bọtini aṣẹ ti a lo nibi ni ibere:

  • alpine3 - Inagijẹ (inagijẹ) jẹ pato fun aworan ti a ti gbejade tẹlẹ si ibi ipamọ agbegbe. Ti a ko ba ṣẹda inagijẹ fun aworan yii, lẹhinna o le tọka si aworan nigbagbogbo nipasẹ rẹ Fingerprint eyi ti o ti han ni tabili.
  • alp - Ṣeto idamo fun eiyan naa
  • --storage — Eleyi bọtini tọkasi ninu eyi ti Ibi ipamọ Pool ao da eiyan
  • --profile - Kasikedi awọn bọtini wọnyi lo iṣeto ni lati awọn profaili iṣeto ti a ṣẹda tẹlẹ si eiyan naa

A ṣe ifilọlẹ eiyan naa, eyiti o bẹrẹ lati ṣe ifilọlẹ eto init ti pinpin:

lxc start alp

O tun le lo aṣẹ naa lxc launch eyi ti o faye gba o lati darapo awọn ẹgbẹ lxc init и lxc start ninu ọkan isẹ.

Ṣiṣayẹwo ipo ti apoti naa:

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

Ṣiṣayẹwo iṣeto apoti:

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

Ni apakan profiles a le rii daju wipe yi eiyan nlo meji iṣeto ni profaili - default и hddroot. Ni apakan devices a le rii ẹrọ kan nikan nitori ẹrọ nẹtiwọki ti ṣẹda ni ipele profaili default. Lati le rii gbogbo awọn ẹrọ ti a lo nipasẹ eiyan o nilo lati fi bọtini kan kun --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: ""

Ṣiṣeto adiresi IP aimi ^

Ti a ba gbiyanju lati ṣeto adiresi IP kan fun ẹrọ nẹtiwọki kan eth0 egbe lxc config device set alp ti a pinnu fun iṣeto eiyan, lẹhinna a yoo gba aṣiṣe kan ti yoo jabo pe ẹrọ naa ko si nitori ẹrọ naa eth0 eyi ti o ti lo nipasẹ awọn eiyan je ti si profaili default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

A le dajudaju ṣeto adiresi IP aimi fun eth0 awọn ẹrọ inu profaili, ṣugbọn yoo jẹ kanna fun gbogbo awọn apoti ti yoo lo profaili yii. Nitorinaa, jẹ ki a ṣafikun ẹrọ ti a ṣe igbẹhin si eiyan naa:

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

Lẹhinna o nilo lati tun eiyan naa bẹrẹ:

lxc restart alp

Ti a ba wo iṣeto eiyan ni bayi, a ko nilo lati lo aṣayan naa --expanded lati wo ẹrọ nẹtiwọki eth0, Niwọn igba ti a ṣẹda rẹ ni ipele eiyan ati pe o ṣabọ lori ẹrọ kanna lati profaili naa 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: ""

Yiyọ a eiyan ^

Lati yọ eiyan kuro lo pipaṣẹ naa lxc delete, ṣugbọn ṣaaju ki o to yọ eiyan kuro, o gbọdọ da duro nipa lilo aṣẹ naa lxc stop:

lxc stop alp

lxc list

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

Lẹhin ti a ti rii daju pe ipo ti eiyan naa ti di Duro, o le yọ kuro lati Ibi ipamọ Pool:

lxc delete alp

Wiwọle eiyan ^

Lati mu awọn aṣẹ ṣiṣẹ ninu apo eiyan taara, nipa gbigbe awọn asopọ nẹtiwọọki kọja, lo aṣẹ naa lxc exec eyi ti o ṣiṣẹ awọn aṣẹ ninu apoti laisi ifilọlẹ ikarahun eto. Ti o ba nilo lati ṣiṣẹ aṣẹ kan ninu ikarahun kan nipa lilo awọn ilana ikarahun gẹgẹbi awọn oniyipada, awọn atunto faili (pipe), ati bẹbẹ lọ, lẹhinna o nilo lati ṣe ifilọlẹ ikarahun naa ni gbangba ki o kọja aṣẹ naa bi bọtini, fun apẹẹrẹ:

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

Awọn pipaṣẹ ti lo pataki kan ona abayo kikọ fun pataki ohun kikọ $ ki oniyipada $HOME ko tumọ lori ẹrọ agbalejo, ṣugbọn a tumọ nikan inu eiyan naa.

O tun ṣee ṣe lati bẹrẹ ipo ikarahun ibaraenisepo, ati lẹhinna pari igba nipasẹ ṣiṣe bọtini hotkey CTRL+D:

lxc exec alp -- /bin/sh

Eiyan awọn oluşewadi isakoso ^

Ni LXD, o le ṣakoso awọn orisun apoti nipa lilo iṣeto pataki kan ti iṣeto. A pipe akojọ ti eiyan iṣeto ni sile le ṣee ri ni iwe.

Ramu awọn oluşewadi aropin ^

Apaadi limits.memory ifilelẹ awọn iye ti Ramu wa si eiyan. Iye jẹ nọmba kan ati ọkan ninu wa suffixes.

Jẹ ki a ṣeto iye Ramu ti eiyan si 256 MB:

lxc config set alp limits.memory 256MB

Paapaa, awọn paramita miiran wa fun idinku iranti iranti:

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

Egbe lxc config show gba ọ laaye lati ṣafihan gbogbo iṣeto eiyan, pẹlu opin awọn orisun ti a fiweranṣẹ ti a ṣeto:

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

Sipiyu awọn oluşewadi iye to ^

Awọn ọna pupọ lo wa lati ṣe idinwo awọn orisun Sipiyu. orisi ti awọn ihamọ:

  • limit.cpu - dè eiyan si ọkan tabi diẹ ẹ sii Sipiyu inu ohun kohun
  • limits.cpu.allowance - ṣakoso boya awọn ipin oluṣeto CFS nigbati opin akoko ti kọja, tabi ẹrọ pinpin orisun Sipiyu agbaye nigbati ipin naa ti kọja
  • limits.cpu.priority - ayo oluṣeto nigba ti ọpọ instances pínpín kan ti ṣeto ti nse ti wa ni sọtọ kanna ogorun ti nse

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

Idiwọn aaye disk ^

Ni afikun si awọn ihamọ iru limits.read, limits.write a tun le ṣe idinwo iye aaye disk ti o jẹ nipasẹ eiyan (ṣiṣẹ nikan pẹlu ZFS tabi BTRFS):

lxc config device set alp root size=2GB

Lẹhin fifi sori, ni paramita devices.root.size A le rii daju opin ti a ṣeto:

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

Lati wo awọn idiyele disk ti a lo a le gba lati aṣẹ naa 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

Bíótilẹ o daju wipe a ti ṣeto a iye to fun awọn root ẹrọ ti awọn eiyan to 2GB, eto igbesi bi df kii yoo ri ihamọ yii. Lati ṣe eyi, a yoo ṣe idanwo kekere kan ati rii bi o ṣe n ṣiṣẹ.

Jẹ ki a ṣẹda awọn apoti tuntun 2 ni kanna Ibi ipamọ Pool (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         |
+------+---------+------------------+------+-----------+-----------+

Jẹ ki a ṣẹda faili 1GB kan ninu ọkan ninu awọn apoti:

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

Jẹ ki a rii daju pe faili ti ṣẹda:

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

Ti a ba wo inu apoti keji, ṣayẹwo fun aye ti faili kan ni ipo kanna, lẹhinna faili yii kii yoo wa nibẹ, eyiti a nireti, nitori awọn apoti ti ṣẹda ninu ara wọn. Iwọn didun Ipamọ ninu kanna Ibi ipamọ Pool:

lxc exec alp2 -- ls -lh
total 0

Ṣugbọn jẹ ki a ṣe afiwe awọn iye ti o gbejade df lori ọkan ati apoti miiran:

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

Ẹrọ /dev/loop1 agesin bi awọn root ipin jẹ Ibi ipamọ Pool eyiti awọn apoti wọnyi lo, nitorina wọn pin iwọn didun rẹ laarin awọn meji.

Awọn iṣiro agbara orisun ^

O le wo awọn iṣiro agbara orisun fun apo kan nipa lilo aṣẹ:

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

Ṣiṣẹ pẹlu snapshots ^

LXD ni agbara lati ṣẹda snapshots ati mimu-pada sipo ipo eiyan lati ọdọ wọn.

Lati ṣẹda aworan kan, ṣiṣe aṣẹ wọnyi:

lxc snapshot alp snapshot1

Ẹgbẹ naa lxc snapshot ko si bọtini wa list, nitorinaa, lati wo atokọ ti awọn snapshots o nilo lati lo aṣẹ ti o ṣafihan alaye gbogbogbo nipa eiyan naa:

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

O le mu eiyan pada pada lati aworan kan nipa lilo aṣẹ naa lxc restore ti n ṣalaye apoti fun eyiti imupadabọ yoo ṣee ṣe ati inagijẹ fọto:

lxc restore alp snapshot1

Aṣẹ atẹle yii ni a lo lati pa aworan rẹ rẹ. Jọwọ ṣe akiyesi pe sintasi aṣẹ ko jọra si gbogbo awọn miiran; nibi o nilo lati pato idinku siwaju lẹhin orukọ eiyan naa. Ti o ba ti yọkuro slash, lẹhinna aṣẹ lati paarẹ aworan kan jẹ itumọ bi aṣẹ lati pa eiyan kan rẹ!

lxc delete alp/snapshot1

Ninu apẹẹrẹ ti o wa loke, a wo ohun ti a pe ni awọn aworan ti ko ni ipinlẹ. LXD tun ni iru aworan aworan miiran - stateful, eyiti o fipamọ ipo lọwọlọwọ ti gbogbo awọn ilana ninu apo eiyan naa. Awọn aworan aworan ipinlẹ wa pẹlu nọmba awọn ẹya ti o nifẹ ati iwulo.

Kini ohun miiran? ^

  • A module wa fun Python kóòdù PyLXD ti o pese API si LXD

Imudojuiwọn 10.04.2020/15/00 XNUMX:XNUMX: Lilọ kiri ti a ṣafikun

orisun: www.habr.com

Fi ọrọìwòye kun