Basic lineamenta LXD - Linux systemata continens

Basic lineamenta LXD - Linux systemata continens

LXD est autem ratio continens procurator generationis sequentis, ut dicit fons. Usorem interfaciei praebet similes virtualibus machinis, sed vasis Linux utitur loco.

LXD core est daemon privilegiatus (servitium currens cum iuribus radicibus) quod praebet requiem API per unix nervum localem, ac per retis si apta conformatio inauguratur. Clientes, ut instrumentum rectae instrumenti cum LXD praeposito instructum, rogant per hoc REQUIEM API. Hoc significat, sive hospes localis sive hospes remotus accesseris, omnia idem operatur.

In hoc articulo de notionibus LXD singillatim non habitabimus, non omnes facultates quae in documentis in promptu sunt, incluso recenti exsecutione in ultimis versionibus LXD subsidii pro QEMU virtualis machinis in parallelis cum vasis considerabimus. Potius discimus modo fundamenta administrationis continentis - repositas lacus repositas, reticulum, currendo continens, applicando limites subsidiorum, et quomodo uti snapshots sic possis praecipuam intelligentiam LXD obtinere et vasis in Linux uti.

Ad informationem completam, placere ad fontem officialem referre:

Навигация

Installation LXD ^

Installing LXD in Ubuntu distributionum ^

In Ubuntu 19.10 distributio sarcina lxd est passim in frangeretur sarcina:

apt search lxd

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

Id significat duas fasciculos statim institui, unum ut sarcina systematica, alterum ut sarcina frangeretur. Instruendo duas fasciculos in systemate problema aliquod creare potest ubi sarcina systematis orphanum fieri potest si sarcina frangeretur a sarcophago villico frangeretur.

Reperio sarcina lxd in promptuario frangeretur uti potes hoc mandatum:

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

Per mandatum currit list fac ut sarcina potes lxd nondum installed:

snap list

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

Quamvis LXD sarcina frangeretur, institui debet per involucrum systematis lxdquae congruentem coetum in systemate creabit, utilitates necessarias /usr/bin etc.

sudo apt update
sudo apt install lxd

Faciamus fac ut sarcina installatur sicut sarcina frangeretur:

snap list

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

Installing LXD in distributionibus Arch Linux ^

Ad sarcinam LXD instituendam in systematis, sequentia mandata currere debes, primus indicem fasciculorum in promptuario renovabit in promptuario, secundus sarcinam directe instituet;

sudo pacman -Syyu && sudo pacman -S lxd

Inauguratis fasciculis, ut LXD iusto usuario regendi, ad coetum systematum addendum est lxd:

sudo usermod -a -G lxd user1

Fac usor user1 additae sunt coetus lxd:

id -Gn user1

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

Si coetus lxd in indice non apparet, tunc debes iterum sessionem usoris movere. Hoc facere debes stipes et ini sub eodem usuario.

activate in systemd onerant LXD officium ad systema startup:

sudo systemctl enable lxd

De servitio scriptor satus:

sudo systemctl start lxd

Reprehendo in servitio status:

sudo systemctl status lxd

Repono LXD (Repono) ^

Antequam initialization incipit, intellegere debemus quomodo reposita in LXD logice disposita sint.

Repono (storage) quod ab uno vel pluribus Repono Pool quae una ex subsidiis systematis fasciculi utitur ut ZFS, BTRFS, LVM vel directoria regularia. Omne Repono Pool dividitur in tomos (Latin Edition storage) imagines vel continentia vel notitia ad alios usus continentes.

  • imagery - hae specialiter collectae sunt distributiones sine nucleo Linux et ex fontibus exterioribus praesto
  • Continentes - Distributiones ab imaginibus explicantur ad usum paratae
  • Snapshots - hi sunt snapshots status vasculorum quos redire possis

Basic lineamenta LXD - Linux systemata continens

Ad repono in LXD administrare, utere imperio lxc storage libellum pro quo possis specificando clavem - lxc storage --help

Hoc mandatum ostendit a album omnium Repono Pool in LXD repono:

lxc storage list

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

To view a list of all Latin Edition storage in delectis Repono Pool servit bigas 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       |
+-----------+----------------------------------+-------------+---------+

Etiam si for- Repono Pool Cum creando, ratio fasciculi BTRFS delectus est, deinde indicem habe Latin Edition storage aut subvolumes in BTRFS interpretatione, instrumento instrumenti fasciculi huius systematis uti potes:

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

Initializing LXD ^

Priusquam creando et utendo vasis, LXD initializationem generalem praestare debes quae retis ac retis creandis et conformat. Hoc fieri potest manually utens vexillum clientis mandatis quae praesto sunt in indice vocando mandatum lxc --help seu usura initialization magus lxd init respondens paucis quaestionibus.

Discriptis lima ratio pro at lacus ^

In initialization, LXD plures interrogationes quaerit, inter quas ratio tabellae genus pro defectu determinans Repono Pool. Defalta, ratio fasciculi BTRFS delectus est. Impossibile erit mutare aliam partem post creationem. Eligere FS suggeritur pluma comparationis mensam:

feature
Directory
Btrfs
LVM
ZFS
CEPH

Optimized imaginem repono
nihil
etiam
etiam
etiam
etiam

Optimized exempli gratia creaturae
nihil
etiam
etiam
etiam
etiam

Optimized snapshot creaturae
nihil
etiam
etiam
etiam
etiam

Optimized imago translationis
nihil
etiam
nihil
etiam
etiam

Optimized exempli gratia translatio
nihil
etiam
nihil
etiam
etiam

Effingo in scribe
nihil
etiam
etiam
etiam
etiam

Obstructionum fundatur
nihil
nihil
etiam
nihil
etiam

Instant exquisitis
nihil
etiam
etiam
etiam
etiam

Repono coegi utibile intra vas
etiam
etiam
nihil
nihil
nihil

Senior snapshots a restituet (non tardus)
etiam
etiam
etiam
nihil
etiam

Repono quotas
Etiam (*)
etiam
etiam
etiam
nihil

Initializing ad network et at lacus utens magus ^

Proximum mandatum spectabimus ad proposita principalia LXD constituenda respondendo simplicibus quaestionibus utendo mago initializationi.

Curre imperium lxc init et intrent responsiones ad interrogationes post colonum ut infra in exemplo ostensum est vel eas mutes secundum tuas conditiones;

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

Creando addito PRAECLUSIO Pool ^

In priorem gradum nos creavit Repono Pool cui impositum est nomen ssdpool et tabella cuius in ratio mea sita est /var/lib/lxd/disks/ssdpool.img. Haec fasciculi ratio electronica respondet physici SSD coegi in mea PC.

Sequuntur actiones, ad dilatandum intellectum munus quod aguntur Repono Pool in reposito creabimus secundum Repono Pool quae physice posita erunt in alia speciei orbis, HDD. Quaestio LXD non permittit ut creare Repono Pool ex oratio /var/lib/lxd/disks/ et etiam nexus symbolici non operantur, videre elit responsionem. Praeterire possumus hanc terminationem in initialization / formatting Repono Pool specificando valorem ut obstructionum machinam pro semita ad loopback file specificando hoc in clavem source.

Itaque ante partum Repono Pool debes fasciculum loopback definire vel partitionem existentem in ratio documenti tui quo utetur. Ad hoc efficiemus, fasciculo utemur ac creabimus quod amplitudine ad 10GB limitabimus:

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

Lets coniungere fasciculum loopback ad liberam loopback fabrica:

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

/dev/loop1

Gratias clavis --show exsequens mandatum redit ad tegumentum nomine machinae in qua fasciculus noster loopback coniungitur. Si opus est, indicem omnium negotiorum huius generis machinis ostendere possumus ut actiones nostras rectas efficiant;

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

Ex indice invenire potes quod machinam habet /dev/loop1 loopback file inclusa /mnt/work/lxd/hddpool.imgEt in fabrica /dev/loop0 loopback file inclusa /var/lib/lxd/disks/ssdpool.img quod pertinet ad defaltam Repono Pool.

Hoc mandatum novum gignit Repono Pool in LXD ex fasciculo loopback modo parati sumus. LXD formabit lima loopback /mnt/work/lxd/hddpool.img in fabrica /dev/loop1 nam ratio lima BTRFS:

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

Ostendamus index omnium Repono Pool tegumentum:

lxc storage list

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

At lacus Location augendae ^

Post creationem Repono Poolsi opus sit, dilatetur. For Repono Pool fundatur in ratio lima BTRFS, sequentia currunt mandata;

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

Auto insertio fasciculi loopback in loopback fabrica socors ^

Unum parvum problema habemus, cum ratio exercitum reboit, tabella /mnt/work/lxd/hddpool.img erit "volare" de fabrica /dev/loop1 et LXD servitium cum oneratione collidet quia in hac arte eam non videbit. Ad hanc solvendam quaestionem debes creare ministerium systematis quod hunc fasciculum in machinis inseret /dev/loop1 cum hospes ratio cothurnorum.

Faciamus unum file type obsequium Π² /etc/systemd/system/ ad SystemD initialization systema;

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

Ministerium eu:

sudo systemctl enable lxd-hddpool

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

Post systema militiam restarting, ministerium status reprimimus:

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

Ex output cognoscere possumus quod est status muneris activenon obstante quod exsecutio scripti nostri ab uno praecepto peracta sit, optionem hoc facere permisit RemainAfterExit=true.

Omnium saluti. Continens Privilegia ^

Cum omnes processus continentis actualiter seiunctis currunt in nucleo suo utens ratio militari, ad ulteriorem accessum continentis processuum ad rationem castrorum tuendam, LXD processum privilegium praebet, ubi:

  • Privilegiata Containers - Haec sunt vasa in quibus processus cum UID et GID eidem possessori ac rationi militiae respondent. Exempli causa, processus currens in vase cum UID of 0 habet omnia eadem iura accessum ac processum in systematis exercitus cum UID of 0. Id est, radix user in continente omnia iura habet non solum in continens, sed etiam in systemate hospitio si extra spatium spatii continentis ire potest.

  • Unprivileged continentia - Haec vasa sunt in quibus processus possessoris UID et GID pertinent cum numero ab 0 ad 65535, sed ad systematis exercitus possessoris personatum est utentes subUID et SubGID frena, respective. Exempli gratia, usor cum UID=0 in vase in systemate hospitio videbitur SubUID + UID. Haec ratio exercitus tutatur, quia, si quis processum in continente suum spatium spatii solitarii effugere potest, solum communicare potest cum systemate exercitus sicut processus ignoti, altissimi UID/GID.

Defalta, continentia recentia creata statum incolumem habent et ideo SubUID et SubGID definire debemus.

Faciamus duos fasciculos configurationis in quibus larvam subUID et SubGID ponemus, respective:

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

Ad mutationes applicandas, LXD ministerium reprimendum est;

sudo systemctl restart lxd

Creando virtualis network switch ^

Cum enim ante initialization network per magus initialization lxd init et creavit network fabrica lxdbr0ergo in hac sectione simpliciter cognoscemus networking in LXD et quomodo virtualem transitum (ponte) utentes imperio clientis creare.

Sequens schema monstrat quomodo transitum (pons) exercitum et continentia in retis coniungit:

Basic lineamenta LXD - Linux systemata continens

Vasa communicare possunt per retis cum aliis vasis vel hospitio cui haec continentia serviuntur. Ad hoc faciendum, virtualis retis chartulas continentia cum switcho virtuali ligare debes. Primum switch creabimus, et interfaces retis continentis in subsequentibus capitibus coniungetur, postquam ipsum continens creatum est.

Hoc mandatum facit transitum cum subnet 10.0.5.0/24 et IPv4 oratio 10.0.5.1/24atque etiam ipv4.nat ut continentia ad Interretem accedere per militiam NAT.

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

Reperiens index machinarum retis in LXD praesto:

lxc network list

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

Etiam cognoscere potes machinam retis creatam esse utens normae instrumenti distributionis Linux ip link aut 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

Configurationis Profile ^

Quodlibet vas in LXD suam figuram habet et illud extendere potest cum figurationibus globally declaratis quae vocantur configuratione profiles. Applicatio figurarum figurarum continentis exemplar cascade habet, hoc exemplum sequens demonstrat:

Basic lineamenta LXD - Linux systemata continens

In hoc exemplo tres profile in LXD systemate creatae sunt: default, hddpool ΠΈ hostfs. Omnes tres profile applicantur continenti qui configurationem localem habet (aream griseam). Profile default habet fabrica root quod est modularis pool quod ssdpool, sed per exemplar applicationis ad configurationis cascades, figuram continentis adhibere possumus hddpool quod est modularis pool idem parametri a profile delendi default et vas figuram recipiet fabrica root cum parametri pool aequalis hddpoolac profile hostfs simpliciter addit novam machinam continentis.

Ad indicem videndum indicem figurarum figurarum promptarum, sequenti mandato utere:

lxc profile list

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

A list of available order to work with a profile obtineri potest addito clavis --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

Emendo tuum profile ^

Default configuration profile default non habet configurationem retis card pro continente et omnia recentia continentia retiaculum non habent, illis opus est machinas retis locales (dedicatas) cum mandato separato creare, sed machinam retis globalem in configurationem creare possumus. profile quae communicabitur inter omnia vasa hac profile utens. Hoc modo, statim post mandatum novum vas creare, retis accessum habebunt. Eodem tempore restrictiones nullae sunt: ​​semper possumus fabricam network localem postea, si necesse sit, creare.

Hoc mandatum addere ad configuratione profile fabrica eth0 genus nic coniuncta retis lxdbr0:

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

Gravis est notare quod cum machinam figurae configurationis actu adiecerimus, si static IP inscriptionis in machinis designamus, omnia vasa quae hac profile utemur eandem IP electronicam participabunt. Si vas opus est creare cum static IP oratio pro vase partita, tum fabricationem retis in gradu continentis (configurationis localis) cum parametri IP inscriptionis creare, et minime in plano profano.

Sit scriptor profile reprehendo:

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

In hac profano videre possumus quod in omnibus vasis nuper creatis duo machinis creabuntur:

  • eth0 - Fabrica genus nic coniuncta pactione (retis pontem) lxdbr0
  • root - Fabrica genus disk quae utitur piscinam repono ssdpool

Creando profiles ^

Uti antea creatum est Repono Pool continentia creare configuratione profile ssdroot in quibus nos quasi fabrica addere disk ad montem punctum / (Radice) usus est antea creatus Repono Pool - ssdpool:

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

Similiter fabricam crearemus disksed hoc casu utens Repono Pool - hddpool:

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

Reprehendo profiles configuratione:

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

Imago repositio ^

Vasa ex imaginibus creantur quae distributiones specialiter congregatae sunt quae nucleum Linux non habent. Prius ergo quam currit continens, oportet ab hac imagine explicari. Fons imaginum est repositio localis in quam imagines ab exterioribus repositoriis auferuntur.

Remota imago repositoria ^

Defalta, LXD configuratur recipiendis imaginibus ex tribus fontibus remotis;

  • Decuria; (Pro stabili Ubuntu imagines)
  • Decuria, Quotidiana ; (Quia cotidie imagines Ubuntu)
  • imagines: (Pro fasciculum aliorum 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    |
+-----------------+------------------------------------------+--------+--------+

Exempli gratia, repositorium ubuntu: has imagines sequuntur:

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

Ut ostenderet in paucissimos conferre columnas optio usi sumus -c cum parametri dasut, nec non limitata longitudinis indice cum mandato head.

Eliquatio praesto est ut indices imaginum ostendant. Hoc mandatum enumerabit omnes architecturae distributionis available 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        |
+------------------------------+--------------------------------------+--------------+

Locus imago repositio ^

Incipere utendo continente, addere debes imaginem e reposito globali ad unum localem local:. Nunc repositorium locale vacuum est, mandatum hoc certam faciet lxc image list. Si modum list repositio non specificare, tunc repositio loci per defaltam adhibebitur. local:

lxc image list local:

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

Imagines in promptuario tractantur his modis utentes:

bigas
Description

lxc image alias
Curo imaginem aliases

lxc image Copy
Effingo imagines inter servers

lxc image delete
Delete imaginibus

lxc image recensere
Edit imaginem proprietatibus

lxc image Export
Imagines export et download

lxc image import
Imagines in imagine copia importare

lxc image Info
Ostende de imaginibus utilis notitia

lxc image album
Imagines List

lxc image reficite
Renovare imagines

lxc image ostende
Imaginem ostende proprietatibus

Effingo imaginem ad repositorium locale e global one images::

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

Image copied successfully!

Indicem omnium imaginum nunc promptorum in promptuario locali exhibeamus local::

lxc image -c lfdatsu list local:

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

LXD configurationis ^

Praeter modum interactivum, LXD etiam modum institutionis conformationis non interactivae sustinet, hoc est cum figuratio in specie fasciculi YAML specificatur, forma specialis, quae totam configurationem statim instituere sinit, supplicium praeteriens. multorum mandatorum interactivorum quae supra in hoc articulo tractata sunt, inclusa configurationis retis, creationis configurationis profiles, etc. Hanc aream non hic operiemus, ex tuo inspicias potes. in documentis.

Deinde interactive imperium lxc config quod videbimus, permittit vobis ut schematismus. Exempli gratia, ut imagines receptae receptaculo locali non sint sponte renovatae e repositoriis globalibus, mores hoc sequenti praecepto efficere possumus:

lxc config set images.auto_update_cached=false

Partum et administrandi continens ^

Ad imperium uti continens lxc init cui valores transierunt Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:ΠΎΠ±Ρ€Π°Π· et tunc ID pro concupito continens. Reconditorium potest specificari ut locales local: sic est quaelibet globalis una. Si repositio non specificatur, tunc ex defalta repositio adhibetur ad quaerendam imaginem. Si imago e reposito globali specificetur, tunc imago primum receptaculum locale recipietur et deinde ut vas efficiat.

Curramus hoc mandatum ut primum continens nostrum crearet;

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

Intueamur mandatum clavium, quo hic utimur per ordinem:

  • alpine3 β€” An alias (alias) designatur pro imagine quae antea in promptuario locali impositura erat. Si alias ad hanc imaginem creatus non est, semper ad imaginem recurrere potes fingerprint quae in schemate exhibetur.
  • alp - ponit identifier ad continens
  • --storage - Haec clavis indicat in quibus Repono Pool continens voluntas creata est
  • --profile - Hae claves cascades applicant configurationem ex antea configuratione creatae perfiles continentis

Continentem deprimimus, qui incipit systema distributionis inmittere;

lxc start alp

Etiam uti potes lxc launch quae sino vos iungere teams lxc init ΠΈ lxc start in una operatione.

Reprehendo de re publica continentis;

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

Reprehendo continens configuratione:

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

In sectione profiles efficere possumus ut hoc vase duobus configurationibus profiles utatur default ΠΈ hddroot. In sectione devices uno modo deprehendere possumus fabrica quod erat in profano gradu network fabrica default. Ut videas omnes machinas a continente adhibitas clavis addere debes --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: ""

Constituens static IP oratio ^

Sin conamur ponere IP pro retis fabrica eth0 bigas lxc config device set alp destinati ad configurationem continentis, tunc errorem recipiemus, qui machinam non esse nuntiabit propter machinam eth0 quae adhibetur a continente ad profile pertinet default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

Possumus utique ponere static IP oratio pro eth0 adinventiones in profano, sed idem erit omnibus vasis quae hac profile utentur. Addamus igitur fabricam vasi dicatam;

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

Tunc debes ut sileo continens:

lxc restart alp

Si figuram continentis nunc spectemus, optione uti non necesse est --expanded ad network fabrica eth0, quia eam in gradu continentis creavimus et in eadem fabrica e profano cascadevit 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: ""

Removere vas ^

Ad removendum vas, utere imperio lxc deletesed antequam vas removeat, subprimi debet uti mandato lxc stop:

lxc stop alp

lxc list

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

Postquam verificavimus quod status continentis factus est STOPPED, removeri potest e Repono Pool:

lxc delete alp

Continens accessum ^

Mandata facere in vase directe, nexibus retiacula transmissis, utere imperio lxc exec quae imperata conficit in continente sine ratio testae deducendae. Si mandatum facere debes in concha utendo exemplaria testarum variabilium, redirectiones fasciculi (pipe) etc., debes testam explicite deducere et mandatum ut clavem transire, exempli gratia:

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

Praeceptum speciale usus effugium character ad speciales mores $ ut variabilis $HOME non per machinam hostiariam interpretatus est, sed solum intra continentem interpretatus est.

Potest etiam incipere modum testarum interactive, et deinde sessionem finire hotkey CTRL+D:

lxc exec alp -- /bin/sh

Continens resource procuratio ^

In LXD, facultates continentes regere potes utendo speciali configurationis ordine. A completa index vasis configuratione parametri inveniri potest in documentis.

Ram resource limitationem ^

parametri limits.memory finit moles RAM praesto continentis. Valor est numerus et unum suffixes praesto.

Sit scriptor RAM pone modum continens 256 MB:

lxc config set alp limits.memory 256MB

Sunt etiam alii parametri ad memoriam limitandam;

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

bigas lxc config show sino te totum vas schematismi ostendere, incluso limite resource appositae quae ponebatur:

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

CPU resource terminus ^

Plures modi facultates CPU circumscribere. restrictiones genera:

  • limit.cpu - ligamentum continens vel CPU nuclei
  • limits.cpu.allowance - aut CFS quotas quotas cum terminum praeteriit, aut universalis CPU mechanismum communicans cum recipis praeteriit
  • limits.cpu.priority - prioritas schedula cum multiplex instantiae communicantes processuum statuto assignantur eadem centesima processuum

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

Orbis spatium limitatio ^

Praeter modum ut limits.read, limits.write possumus etiam circumscribere moles orbis spatii consumpta continentis (modo operatur cum ZFS vel BTRFS);

lxc config device set alp root size=2GB

Post institutionem in parametri devices.root.size Set modus cognoscere possumus:

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

Ut videre possumus ex imperio usus orbis quotas 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

Non obstante quod terminum ad radicem machinam continentis ad 2GB posuimus, ratio utilitatum talis est df hoc restrictione non videbunt. Ad hoc agemus parvam probationem et quomodo operatur.

Faciamus 2 novum idem vasa in eodem Repono 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         |
+------+---------+------------------+------+-----------+-----------+

Faciamus 1GB fasciculum in uno e vasis:

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

Faciamus tabellam creatum;

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

Si in secundo vase quaeramus, reprehendo existentiam fasciculi in eodem loco, tunc hic fasciculus non erit ibi, quod expectatur, cum vasa in sua creantur. Latin Edition storage in eodem Repono Pool:

lxc exec alp2 -- ls -lh
total 0

Sed comparemus valores quos producit df in uno et altero continente;

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

fabrica /dev/loop1 mounted sicut radix partitione Repono Pool quo his vasis utuntur, ita suo volumine inter duos communicant.

Resource consummatio statistics ^

Inspicere potes consummationem resource mutant pro continente utens imperio:

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

Opus cum snapshots ^

LXD facultatem snapshots creandi et ex iis statum continentis restituendi.

Snapshot creare, hoc mandatum currere;

lxc snapshot alp snapshot1

Bigas lxc snapshot nulla key available listProinde indicem snapshots inspicere debes mandato uti informationes generales de continente;

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

Reddere potes vas a snapshot usura mandatum lxc restore specificando continens restitutionem et alias snapshot;

lxc restore alp snapshot1

Hoc mandatum est a snapshot delere. Nota quaeso quod syntaxin praeceptum omnibus aliis non est simile, hic debes denotare deinceps scapulas post nomen continens. Si slash omittitur, mandatum ut a snapshot delere interpretatur mandatum ut vas delere!

lxc delete alp/snapshot1

In exemplo supra, statem snapshots sic dictam inspeximus. LXD aliud genus snapshots - stati habet, quod statum omnium processuum in continente servat. Sunt plures iucundae et utiles notae consociatae cum snapshots stativis.

Quid plura? ^

  • Modulus est available pro Pythone developers PyLXD quae praebet API ad LXD

UPDATE 10.04.2020/15/00 XNUMX:XNUMX: navigationem adiecit

Source: www.habr.com