د LXD بنسټیز ځانګړتیاوې - د لینکس کانټینر سیسټمونه

د LXD بنسټیز ځانګړتیاوې - د لینکس کانټینر سیسټمونه

LXD د راتلونکي نسل سیسټم کانټینر مدیر دی، نو دا وايي سرچینه. دا د مجازی ماشینونو په څیر یو کارن انٹرفیس وړاندې کوي، مګر د دې پرځای د لینکس کانټینرونه کاروي.

LXD کور یو امتیاز لرونکی ډیمون دی (یو خدمت چې د روټ حقونو سره روان دی) چې د ځایی یونیکس ساکټ له لارې REST API چمتو کوي ، او همدارنګه د شبکې له لارې که مناسب ترتیب نصب شوی وي. پیرودونکي، لکه د کمانډ لاین وسیله چې د LXD سره چمتو شوي، د دې REST API له لارې غوښتنې کوي. دا پدې مانا ده چې ایا تاسو محلي کوربه یا لیرې کوربه ته لاسرسی لرئ ، هرڅه ورته کار کوي.

پدې مقاله کې به موږ د LXD مفاهیمو په اړه په تفصیل سره خبرې ونه کړو، موږ به په اسنادو کې ذکر شوي ټول موجود ظرفیتونه په پام کې ونیسو، په شمول د کانټینرونو سره موازي د QEMU مجازی ماشینونو لپاره د LXD وروستي نسخو کې وروستي پلي کول. پرځای یې، موږ به یوازې د کانټینر مدیریت اساسات زده کړو - د ذخیره کولو حوضونو ترتیب کول، شبکه کول، د کانټینر چلول، د سرچینو محدودیت پلي کول، او د سنیپ شاټونو کارولو څرنګوالی نو تاسو کولی شئ د LXD اساسي پوهه ترلاسه کړئ او په لینکس کې کانټینرونه وکاروئ.

د بشپړو معلوماتو لپاره، مهرباني وکړئ رسمي سرچینې ته مراجعه وکړئ:

نیویګریشن

LXD نصب کول ^

د اوبنټو توزیعونو کې د LXD نصب کول ^

د اوبنټو 19.10 توزیع کڅوړه کې lxd نشرات لري سنیپ بسته:

apt search lxd

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

دا پدې مانا ده چې دوه کڅوړې به په یوځل کې نصب شي، یو د سیسټم کڅوړې په توګه او بل د سنیپ کڅوړې په توګه. په سیسټم کې د دوه کڅوړو نصب کول ممکن یو څه ستونزه رامینځته کړي چیرې چې د سیسټم کڅوړه ممکن یتیم شي که چیرې سنیپ بسته د سنیپ بسته مدیر لخوا لیرې شي.

کڅوړه ومومئ lxd د سنیپ ذخیره کې تاسو کولی شئ لاندې کمانډ وکاروئ:

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

د قوماندې په چلولو سره list تاسو کولی شئ ډاډ ترلاسه کړئ چې کڅوړه lxd لا تر اوسه ندي نصب شوي:

snap list

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

د دې حقیقت سره سره چې LXD یو سنیپ کڅوړه ده، دا باید د سیسټم کڅوړې له لارې نصب شي lxd، کوم چې به په سیسټم کې اړونده ډله رامینځته کړي ، په کې اړین اسانتیاوې /usr/bin او داسې نور.

sudo apt update
sudo apt install lxd

راځئ ډاډ ترلاسه کړو چې کڅوړه د سنیپ کڅوړې په توګه نصب شوې ده:

snap list

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

د آرچ لینکس توزیعونو کې د LXD نصب کول ^

په سیسټم کې د LXD کڅوړه نصبولو لپاره ، تاسو اړتیا لرئ لاندې کمانډونه پرمخ بوځي ، لومړی به په ذخیره کې موجود سیسټم کې د کڅوړو لیست تازه کړي ، دوهم به مستقیم کڅوړه نصب کړي:

sudo pacman -Syyu && sudo pacman -S lxd

د کڅوړې نصبولو وروسته، د منظم کارونکي لخوا د LXD اداره کولو لپاره، دا باید د سیسټم ګروپ ته اضافه شي lxd:

sudo usermod -a -G lxd user1

راځئ چې ډاډ ترلاسه کړو چې کاروونکي user1 په ګروپ کې اضافه شوی lxd:

id -Gn user1

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

که ډله lxd په لیست کې نه لیدل کیږي، نو تاسو اړتیا لرئ چې د کاروونکي سیشن بیا فعال کړئ. د دې کولو لپاره ، تاسو اړتیا لرئ د ورته کارونکي لاندې لاګ آوټ او لاګ ان شئ.

کې فعال کړئ systemd د سیسټم په پیل کې د LXD خدمت پورته کول:

sudo systemctl enable lxd

راځئ چې خدمت پیل کړو:

sudo systemctl start lxd

د خدمت حالت چک کول:

sudo systemctl status lxd

ذخیره LXD (ذخیره کول) ^

مخکې له دې چې پیل پیل شي، موږ باید پوه شو چې څنګه په LXD کې ذخیره په منطقي توګه تنظیم شوې.

زیرمه (د زيرمتون) جوړ شوی له یو یا ډیرو څخه د ذخیره کولو حوض کوم چې د ملاتړ شوي فایل سیسټمونو څخه یو کاروي لکه ZFS، BTRFS، LVM یا منظم لارښودونه. هر د ذخیره کولو حوض په حجمونو ویشل شوی (د ذخیره کولو حجم) چې د نورو موخو لپاره انځورونه، کانټینرونه، یا ډاټا لري.

  • انځورونه - دا په ځانګړي ډول د لینکس کرنل پرته راټول شوي توزیع دي او د بهرنیو سرچینو څخه شتون لري
  • کانټینرونه - دا د عکسونو څخه توزیع شوي دي، د کارولو لپاره چمتو دي
  • عکسونه - دا د کانټینرونو حالت عکسونه دي چې تاسو بیرته راستنیدلی شئ

د LXD بنسټیز ځانګړتیاوې - د لینکس کانټینر سیسټمونه

په LXD کې د ذخیره کولو اداره کولو لپاره، کمانډ وکاروئ lxc storage یو سند چې تاسو یې د کیلي مشخص کولو سره ترلاسه کولی شئ - lxc storage --help

لاندې کمانډ د ټولو لیست ښیې د ذخیره کولو حوض په LXD ذخیره کې:

lxc storage list

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

د ټولو لیست لیدلو لپاره د ذخیره کولو حجم په ټاکل شوي کې د ذخیره کولو حوض ټیم ته خدمت کوي 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       |
+-----------+----------------------------------+-------------+---------+

همدارنګه، که د دې لپاره د ذخیره کولو حوض کله چې جوړ کړئ، د BTRFS فایل سیسټم غوره شوی، بیا یو لیست ترلاسه کړئ د ذخیره کولو حجم او یا subvolume د BTRFS تشریح کې، تاسو کولی شئ د دې فایل سیسټم وسیله کټ وکاروئ:

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

د LXD پیل کول ^

د کانټینرونو رامینځته کولو او کارولو دمخه ، تاسو باید د LXD عمومي پیل ترسره کړئ چې شبکه او ذخیره رامینځته کوي او تنظیموي. دا په لاسي ډول د معیاري پیرودونکي کمانډونو په کارولو سره ترسره کیدی شي چې د کمانډ په زنګ وهلو سره لیست کې شتون لري lxc --help یا د پیل کولو وزرډ کارول lxd init یو څو پوښتنو ته ځواب.

د ذخیره کولو حوض لپاره د فایل سیسټم غوره کول ^

د پیل کولو په جریان کې، LXD ډیری پوښتنې کوي، پشمول د ډیفالټ لپاره د فایل سیسټم ډول ټاکل د ذخیره کولو حوض. په ډیفالټ کې، د BTRFS فایل سیسټم د دې لپاره غوره شوی. دا به ناممکن وي چې د جوړولو وروسته بل FS ته بدل شي. د FS غوره کولو لپاره دا وړاندیز شوی د ځانګړتیاو پرتله کولو جدول:

فیچر
Directory
Btrfs
LVM
ZFS
CEPH

د غوره شوي عکس ذخیره کول
نه
هو
هو
هو
هو

اصلاح شوی مثال جوړول
نه
هو
هو
هو
هو

اصلاح شوی سنیپ شاټ جوړول
نه
هو
هو
هو
هو

د اصلاح شوي عکس لیږد
نه
هو
نه
هو
هو

اصلاح شوي مثال لیږد
نه
هو
نه
هو
هو

په لیکلو کې کاپي کړئ
نه
هو
هو
هو
هو

د بلاک پر بنسټ
نه
نه
هو
نه
هو

فوري کلونینګ
نه
هو
هو
هو
هو

د ذخیره کولو ډرایور په کانټینر کې د کارولو وړ دی
هو
هو
نه
نه
نه

د زړو عکسونو څخه بیرته راګرځول (وروستي ندي)
هو
هو
هو
نه
هو

د ذخیرې کوټې
هو(*)
هو
هو
هو
نه

د وزرډ په کارولو سره د شبکې او ذخیره کولو حوض پیل کول ^

راتلونکی کمانډ چې موږ به یې وګورو د ابتدايي وزرډ په کارولو سره د ساده پوښتنو ځوابونو سره د LXD اصلي برخو تنظیم کولو وړاندیز کوي.

کمانډ چلول lxc init او د کولون وروسته پوښتنو ته ځوابونه دننه کړئ لکه څنګه چې لاندې مثال کې ښودل شوي یا د خپلو شرایطو سره سم یې بدل کړئ:

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

د اضافي ذخیره کولو حوض رامینځته کول ^

په مخکینۍ مرحله کې موږ جوړ کړ د ذخیره کولو حوض چې نوم ورکړل شو ssdpool او د کوم فایل چې زما په سیسټم کې موقعیت لري /var/lib/lxd/disks/ssdpool.img. د دې فایل سیسټم پته زما په کمپیوټر کې د فزیکي SSD ډرایو سره مطابقت لري.

لاندې کړنې، د رول په اړه د پوهاوي پراخولو لپاره د ذخیره کولو حوض په ذخیره کې، موږ به دویم جوړ کړو د ذخیره کولو حوض کوم چې به په فزیکي ډول په مختلف ډول ډیسک کې موقعیت ولري ، HDD. ستونزه دا ده چې LXD تاسو ته اجازه نه ورکوي چې جوړ کړي د ذخیره کولو حوض له ادرسه /var/lib/lxd/disks/ او حتی سمبولیک لینکونه به کار ونکړي، د پراختیا کونکي ځواب وګورئ. موږ کولی شو دا محدودیت د پیل کولو / فارمیټ کولو پرمهال تیر کړو د ذخیره کولو حوض د لوپ بیک فایل ته د لارې پرځای د بلاک وسیلې په توګه ارزښت مشخص کولو سره دا په کیلي کې مشخص کولو سره source.

نو، د جوړولو دمخه د ذخیره کولو حوض تاسو اړتیا لرئ په خپل فایل سیسټم کې د لوپ بیک فایل یا موجوده برخه تعریف کړئ چې دا به یې کاروي. د دې کولو لپاره، موږ به یو فایل جوړ او وکاروو چې موږ به یې اندازه 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

راځئ چې د لوپ بیک فایل د وړیا لوپ بیک وسیله سره وصل کړو:

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

/dev/loop1

له کلید څخه په مننه --show د کمانډ اجرا کول د وسیلې نوم بیرته سکرین ته راګرځي چیرې چې زموږ لوپ بیک فایل سره وصل دی. که اړتیا وي، موږ کولی شو د دې ډول ټولو بوخت وسایلو لیست ښکاره کړو ترڅو ډاډ ترلاسه کړو چې زموږ کړنې سمې دي:

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

د لیست څخه تاسو کولی شئ ومومئ چې وسیله لري /dev/loop1 لوپ بیک فایل شامل دی /mnt/work/lxd/hddpool.img، او په وسیله کې /dev/loop0 لوپ بیک فایل شامل دی /var/lib/lxd/disks/ssdpool.img کوم چې د ډیفالټ سره مطابقت لري د ذخیره کولو حوض.

لاندې کمانډ یو نوی رامینځته کوي د ذخیره کولو حوض په LXD کې د لوپ بیک فایل پراساس چې موږ یې چمتو کړی. LXD به د لوپ بیک فایل فارمیټ کړي /mnt/work/lxd/hddpool.img په وسیله کې /dev/loop1 د BTRFS فایل سیسټم لپاره:

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

راځئ چې د ټولو لیست ښکاره کړو د ذخیره کولو حوض پرده کول:

lxc storage list

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

د ذخیره کولو حوض اندازه زیاتول ^

د جوړولو وروسته د ذخیره کولو حوضکه اړتیا وي، دا پراخ کیدی شي. لپاره د ذخیره کولو حوض د BTRFS فایل سیسټم پراساس، لاندې کمانډونه پرمخ وړئ:

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

د لوپ بیک وسیلې سلاټ کې د لوپ بیک فایل اتومات داخلول ^

موږ یوه کوچنۍ ستونزه لرو، کله چې د کوربه سیسټم ریبوټ کول، فایل /mnt/work/lxd/hddpool.img له وسیلې څخه به "پرواز" وکړي /dev/loop1 او د LXD خدمت به د بارولو په وخت کې خراب شي ځکه چې دا به دا پدې وسیله ونه ګوري. د دې ستونزې حل کولو لپاره تاسو اړتیا لرئ د سیسټم خدمت رامینځته کړئ چې دا فایل به وسیله ته دننه کړي /dev/loop1 کله چې کوربه سیسټم بوټ شي.

راځئ چې جوړ کړو واحد د فایل ډول خدمت в /etc/systemd/system/ د 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

خدمت فعال کړئ:

sudo systemctl enable lxd-hddpool

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

د کوربه سیسټم بیا پیلولو وروسته، موږ د خدماتو حالت ګورو:

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

د محصول څخه موږ کولی شو تصدیق کړو چې د خدماتو حالت دی فعال، سره له دې چې د یوې کمانډ څخه زموږ د سکریپټ اجرا کول بشپړ شوي ، اختیار موږ ته اجازه راکړه چې دا کار وکړو RemainAfterExit=true.

خوندیتوب. د کانټینر امتیازات ^

څرنګه چې د کانټینر ټولې پروسې په حقیقت کې د کوربه سیسټم په انزوا کې د هغې د کرنل په کارولو سره پرمخ ځي، د کوربه سیسټم ته د کانټینر پروسو لاسرسي نور خوندي کولو لپاره، LXD د پروسې امتیازات وړاندې کوي، چیرته چې:

  • امتياز لرونکي کانتينرونه - دا هغه کانتینرونه دي چې د UID او GID سره پروسې د کوربه سیسټم په څیر ورته مالک سره مطابقت لري. د مثال په توګه، هغه پروسه چې په کانټینر کې د 0 UID سره روانه ده د 0 د UID سره په کوربه سیسټم کې د پروسې په څیر د لاسرسي ټول حقونه لري. په بل عبارت، په کانټینر کې د روټ کاروونکي ټول حقونه لري نه یوازې کانټینر، مګر په کوربه سیسټم کې هم که چیرې هغه د کانټینر جلا شوي نوم ځای څخه بهر لاړ شي.

  • بې ګټې کانتینرونه - دا هغه کانتینرونه دي په کوم کې چې پروسې د 0 څخه تر 65535 پورې شمیرې سره د UID او GID مالک پورې اړه لري ، مګر د کوربه سیسټم لپاره مالک په ترتیب سره د اضافه شوي SubUID او SubGID بټونو په کارولو سره ماسک شوی. د مثال په توګه، په یو کانټینر کې د UID=0 یو کارن به د کوربه سیسټم په څیر لیدل کیږي SubUID + UID. دا د کوربه سیسټم ساتنه کوي ځکه چې که په کانټینر کې کومه پروسه د خپل جلا شوي نوم ځای څخه تیښته کولی شي، دا یوازې د کوربه سیسټم سره د نامعلوم، خورا لوړ UID/GID سره د پروسې په توګه اړیکه نیولی شي.

په ډیفالټ ډول، نوي جوړ شوي کانټینرونه یو غیرمستقیم حالت لري او له همدې امله موږ باید یو SubUID او SubGID تعریف کړو.

راځئ چې دوه تشکیلاتي فایلونه جوړ کړو په کوم کې چې موږ به په ترتیب سره د SubUID او SubGID لپاره ماسک تنظیم کړو:

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

د بدلونونو پلي کولو لپاره، د LXD خدمت باید بیا پیل شي:

sudo systemctl restart lxd

د مجازی شبکې سویچ رامینځته کول ^

ځکه چې موږ دمخه د ابتدایی وزرډ په کارولو سره شبکه پیل کړه lxd init او د شبکې وسیله جوړه کړه lxdbr0، بیا پدې برخه کې به موږ په ساده ډول په LXD کې د شبکې سره آشنا شو او د پیرودونکي کمانډ په کارولو سره د مجازی سویچ (پل) رامینځته کولو څرنګوالی.

لاندې انځور ښیي چې څنګه یو سویچ (پل) کوربه او کانټینرونه په شبکه کې نښلوي:

د LXD بنسټیز ځانګړتیاوې - د لینکس کانټینر سیسټمونه

کانټینرونه کولی شي د شبکې له لارې د نورو کانټینرونو یا کوربه سره اړیکه ونیسي چې دا کانټینرونه په کې خدمت کیږي. د دې کولو لپاره ، تاسو اړتیا لرئ د کانټینرونو مجازی شبکې کارتونه د مجازی سویچ سره وصل کړئ. موږ به لومړی یو سویچ جوړ کړو، او د کانټینر شبکې انٹرفیس به په راتلونکو فصلونو کې وصل شي، وروسته له دې چې کانټینر پخپله جوړ شي.

لاندې کمانډ د فرعي نیټ سره سویچ رامینځته کوي 10.0.5.0/24 او IPv4 پته 10.0.5.1/24، او هم پکې شامل دي ipv4.nat د دې لپاره چې کانټینرونه د NAT خدمت په کارولو سره د کوربه له لارې انټرنیټ ته لاسرسی ومومي:

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

په LXD کې د شبکې وسیلو لیست چیک کول:

lxc network list

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

تاسو کولی شئ دا هم تایید کړئ چې د لینکس توزیع معیاري وسیلې په کارولو سره د شبکې وسیله رامینځته شوې - ip link او یا 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

د تنظیم کولو پروفایل ^

په LXD کې هر کانټینر خپل تشکیلات لري او کولی شي دا په نړیواله کچه اعلان شوي تشکیلاتو سره وغزوي د تشکیلاتو پروفایلونه. په کانټینر کې د تشکیلاتو پروفایل پلي کول د کاسکیډ ماډل لري ، لاندې مثال دا ښیې:

د LXD بنسټیز ځانګړتیاوې - د لینکس کانټینر سیسټمونه

په دې مثال کې، په LXD سیسټم کې درې پروفایلونه جوړ شوي دي: default, hddpool и hostfs. ټول درې پروفایلونه په یو کانټینر کې پلي کیږي چې محلي ترتیب (خړ ساحه) لري. پروفایل default وسیله لري root کوم چې یو پیرامیټر لري pool سره مساوي ده ssdpool، مګر د کاسکیډ ترتیب کولو غوښتنلیک ماډل څخه مننه ، موږ کولی شو کانټینر ته پروفایل پلي کړو hddpool کوم چې یو پیرامیټر لري pool د پروفایل څخه ورته پیرامیټر به پورته کړي default او کانټینر به د وسیلې ترتیب ترلاسه کړي root د پیرامیټر سره pool مساوي hddpool، او پروفایل hostfs په ساده ډول کانټینر ته نوی وسیله اضافه کوي.

د شته تشکیلاتي پروفایلونو لیست لیدلو لپاره، لاندې کمانډ وکاروئ:

lxc profile list

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

د پروفایل سره کار کولو لپاره د موجود کمانډونو بشپړ لیست د کیلي اضافه کولو سره ترلاسه کیدی شي --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

ستاسو پروفایل سمول ^

د ډیفالټ ترتیب پروفایل default د کانټینر لپاره د شبکې کارت ترتیب نلري او ټول نوي جوړ شوي کانټینرونه شبکه نلري، د دوی لپاره دا اړینه ده چې د جلا قوماندې سره محلي (وقف شوي) شبکې وسایل جوړ کړئ، مګر موږ کولی شو په ترتیب کې د نړیوال شبکې وسیله جوړه کړو. پروفایل چې د دې پروفایل په کارولو سره به د ټولو کانټینرونو ترمینځ شریک شي. پدې توګه ، سمدلاسه د نوي کانټینر رامینځته کولو قوماندې وروسته ، دوی به د شبکې لاسرسي سره شبکه ولري. په ورته وخت کې، هیڅ محدودیتونه شتون نلري؛ موږ کولی شو د اړتیا په صورت کې د محلي شبکې وسیله جوړه کړو.

لاندې کمانډ به وسیله د تنظیم کولو پروفایل کې اضافه کړي eth0 ډول nic له شبکې سره وصل دی lxdbr0:

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

دا مهمه ده چې یادونه وکړو چې څنګه چې موږ واقعیا د تنظیم کولو پروفایل کې وسیله اضافه کړې ، که موږ په وسیله کې یو مستحکم IP پته مشخصه کړه ، نو ټول کانټینرونه چې دا پروفایل به کاروي ورته IP پته به شریک کړي. که چیرې د کانټینر لپاره تخصیص شوي جامد IP پتې سره کانټینر رامینځته کولو ته اړتیا وي ، نو تاسو باید د کانټینر په کچه (سیمه ایز ترتیب) کې د IP پتې پیرامیټر سره د شبکې وسیلې تنظیم کړئ ، نه د پروفایل په کچه.

راځئ چې پروفایل وګورو:

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

پدې پروفایل کې موږ لیدلی شو چې د ټولو نوي جوړ شوي کانټینرونو لپاره به دوه وسایل رامینځته شي:

  • eth0 - د وسیلې ډول nic د سویچ سره وصل شوی (د شبکې پل) lxdbr0
  • root - د وسیلې ډول disk کوم چې د ذخیره کولو حوض کاروي ssdpool

د نوي پروفایلونو جوړول ^

مخکې جوړ شوي کارولو لپاره د ذخیره کولو حوض کانټینرونه، د ترتیب کولو پروفایل جوړ کړئ ssdroot په کوم کې چې موږ به یو وسیله اضافه کړو لکه disk د ماونټ نقطې سره / (root) د مخکې جوړ شوي په کارولو سره د ذخیره کولو حوض - ssdpool:

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

په ورته ډول، موږ یو وسیله جوړوو لکه disk، مګر پدې حالت کې کارول د ذخیره کولو حوض - hddpool:

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

د تشکیلاتو پروفایل چک کول:

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

د انځور ذخیره ^

کانټینرونه د عکسونو څخه رامینځته شوي چې په ځانګړي ډول راټول شوي توزیع دي چې د لینکس کرنل نلري. نو ځکه، د کانټینر چلولو دمخه، دا باید د دې عکس څخه ځای پرځای شي. د عکسونو سرچینه یو ځایی ذخیره ده چې پکې عکسونه د بهرني زیرمو څخه ډاونلوډ کیږي.

د لرې پرتو انځورونو ذخیره ^

په ډیفالټ کې، LXD د دریو لیرې سرچینو څخه د عکسونو ترلاسه کولو لپاره ترتیب شوی:

  • اوبنټو: (د ثابت اوبنټو عکسونو لپاره)
  • اوبنټو ورځنی: (د ورځني اوبنټو عکسونو لپاره)
  • انځورونه: (د یو شمیر نورو ډیسټرو لپاره)

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

د مثال په توګه، ذخیره ubuntu: لاندې انځورونه لري:

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

د محدود شمیر کالمونو ښودلو لپاره موږ اختیار کارولی -c د پارامترونو سره dasut، او د کمانډ سره د لیست اوږدوالی هم محدود کړی head.

د عکسونو لیست ښودلو لپاره فلټر کول شتون لري. لاندې کمانډ به د توزیع ټول موجود جوړښتونه لیست کړي الپین لینکس:

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

د محلي انځور ذخیره ^

د کانټینر کارولو پیل کولو لپاره ، تاسو اړتیا لرئ د نړیوال ذخیره څخه محلي ته یو عکس اضافه کړئ local:. اوس محلي ذخیره خالي ده، قومانده به دا ډاډه کړي lxc image list. که طریقه list ذخیره مه مشخص کوئ، نو بیا محلي ذخیره به د ډیفالټ لخوا کارول کیږي - local:

lxc image list local:

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

په ذخیره کې عکسونه د لاندې میتودونو په کارولو سره اداره کیږي:

ټیم
شرح

lxc انځور alias
د عکس عرفونه اداره کړئ

lxc انځور کاپي
د سرورونو ترمنځ عکسونه کاپي کړئ

lxc انځور ړنګول
انځورونه ړنګ کړئ

lxc انځور سمول
د انځور ځانګړتیاوې ایډیټ کړئ

lxc انځور د صادراتو
انځورونه صادر او ډاونلوډ کړئ

lxc انځور د وارداتو
د عکس پلورنځي ته عکسونه وارد کړئ

lxc انځور معلومات
د انځورونو په اړه ګټور معلومات ښکاره کړئ

lxc انځور لست
انځورونه لیست کړئ

lxc انځور تاندول
انځورونه تازه کړئ

lxc انځور خپرونه
د انځور ځانګړتیاوې ښکاره کړئ

عکس له نړیوال څخه محلي ذخیره ته کاپي کړئ images::

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

Image copied successfully!

راځئ چې د ټولو عکسونو لیست ښکاره کړو چې اوس مهال په محلي ذخیره کې شتون لري local::

lxc image -c lfdatsu list local:

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

د LXD ترتیب ^

د متقابل حالت سربیره ، LXD د غیر متقابل ترتیب کولو نصب کولو حالت هم ملاتړ کوي ، دا هغه وخت دی کله چې تشکیلات د YAML فایل په بڼه مشخص شوي وي ، یو ځانګړی ب formatه چې تاسو ته اجازه درکوي په یوځل کې ټول تنظیمات نصب کړئ ، د اجرا کولو په واسطه. د ډیری متقابل کمانډونو څخه چې پورته پدې مقاله کې بحث شوي ، پشمول د شبکې ترتیب کول ، د تشکیلاتو پروفایلونو رامینځته کول ، او داسې نور. موږ به دا ساحه دلته پوښ ​​نه کړو، تاسو کولی شئ دا پخپله وګورئ. په اسنادو کې.

بل متقابل کمانډ lxc config کوم چې موږ به یې وګورو تاسو ته اجازه درکوي ترتیب تنظیم کړئ. د مثال په توګه، د دې لپاره چې ډاډ ترلاسه کړئ چې محلي ذخیره ته ډاونلوډ شوي انځورونه په اتوماتيک ډول د نړیوال ذخیره کولو څخه نوي شوي ندي، موږ کولی شو دا چلند د لاندې کمانډ سره فعال کړو:

lxc config set images.auto_update_cached=false

د کانتینر جوړول او اداره کول ^

د کانټینر جوړولو لپاره کمانډ وکاروئ lxc init کوم ته چې ارزښتونه لیږدول کیږي репозиторий:образ او بیا د کانټینر لپاره مطلوب ID. ذخیره د محلي په توګه مشخص کیدی شي local: همداسې کوم نړیوال دی. که چیرې ذخیره مشخص نه وي، نو بیا د ډیفالټ ځایی ذخیره د عکس لټون لپاره کارول کیږي. که عکس د نړیوال ذخیره څخه مشخص شوی وي ، نو عکس به لومړی ځایی ذخیره ته ډاونلوډ شي او بیا به د کانټینر رامینځته کولو لپاره وکارول شي.

راځئ چې زموږ د لومړي کانټینر د جوړولو لپاره لاندې کمانډ چلوو:

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

راځئ چې د کمانډ کیلي وګورو چې موږ یې دلته په ترتیب کې کاروو:

  • alpine3 - یو عرف (عرف) د هغه عکس لپاره مشخص شوی چې دمخه یې ځایی ذخیره ته پورته شوی و. که د دې عکس لپاره عرف نه وي رامینځته شوی ، نو تاسو کولی شئ تل عکس ته د هغې لخوا مراجعه وکړئ د فنگر پرنټ کوم چې په جدول کې ښودل شوی.
  • alp - د کانټینر لپاره پیژندونکی ټاکي
  • --storage - دا کلیمه په کوم کې اشاره کوي د ذخیره کولو حوض یو کانټینر به جوړ شي
  • --profile - دا کلیدونه په کانټینر کې د مخکینۍ رامینځته شوي تشکیلاتي پروفایلونو څخه تشکیلات پلي کوي

موږ کانټینر لانچ کوو ، کوم چې د توزیع پیل سیسټم پیل کوي:

lxc start alp

تاسو کولی شئ کمانډ هم وکاروئ lxc launch کوم چې تاسو ته اجازه درکوي ټیمونه یوځای کړئ lxc init и lxc start په یوه عملیات کې.

د کانټینر حالت معاینه کول:

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

د کانټینر ترتیب چیک کول:

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

په برخه کې profiles موږ کولی شو ډاډ ترلاسه کړو چې دا کانټینر دوه تشکیلاتي پروفایلونه کاروي - default и hddroot. په برخه کې devices موږ کولی شو یوازې یو وسیله کشف کړو ځکه چې د شبکې وسیله د پروفایل په کچه رامینځته شوې default. د کانټینر لخوا کارول شوي ټول وسایل لیدلو لپاره تاسو اړتیا لرئ یو کیلي اضافه کړئ --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: ""

د جامد IP پته تنظیم کول ^

که موږ هڅه وکړو چې د شبکې وسیله لپاره IP پته تنظیم کړو eth0 ډله lxc config device set alp د کانټینر ترتیب لپاره اراده شوې، بیا به موږ یوه تېروتنه ترلاسه کړو چې راپور به ورکړي چې وسیله شتون نلري ځکه چې وسیله eth0 کوم چې د کانټینر لخوا کارول کیږي د پروفایل پورې اړه لري default:

lxc config device set alp eth0 ipv4.address 10.0.5.5

Error: The device doesn't exist

البته موږ کولی شو د دې لپاره جامد IP پته تنظیم کړو eth0 په پروفایل کې وسایل، مګر دا به د ټولو کانټینرونو لپاره یو شان وي چې دا پروفایل به کاروي. نو، راځئ چې کانټینر ته وقف شوي وسیله اضافه کړو:

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

بیا تاسو اړتیا لرئ کانټینر بیا پیل کړئ:

lxc restart alp

که موږ اوس د کانټینر ترتیب وګورو، موږ اړتیا نلرو چې اختیار وکاروو --expanded د شبکې وسیله لیدلو لپاره eth0، ځکه چې موږ دا د کانټینر په کچه رامینځته کړی او دا د پروفایل څخه ورته وسیلې باندې کاسکیډ شوی 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: ""

د کانټینر لرې کول ^

د کانټینر لرې کولو لپاره ، کمانډ وکاروئ lxc delete، مګر د کانټینر لرې کولو دمخه ، دا باید د کمانډ کارولو مخه ونیول شي lxc stop:

lxc stop alp

lxc list

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

وروسته له دې چې موږ تایید کړو چې د کانټینر حالت بدل شوی تړل شویله دې څخه لرې کیدی شي د ذخیره کولو حوض:

lxc delete alp

د کانټینر لاسرسی ^

په مستقیم ډول په کانټینر کې د قوماندې اجرا کولو لپاره، د شبکې اتصالونو له لارې، کمانډ وکاروئ lxc exec کوم چې د سیسټم شیل په لاره اچولو پرته په کانټینر کې کمانډونه اجرا کوي. که تاسو اړتیا لرئ د شیل نمونو په کارولو سره په شیل کې کمانډ اجرا کړئ لکه متغیرات ، د فایل ریډائریکشن (پایپ) ، او داسې نور ، نو تاسو اړتیا لرئ په څرګند ډول شیل لانچ کړئ او کمانډ د کیلي په توګه تیر کړئ ، د مثال په توګه:

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

قوماندې د تېښتې ځانګړی کرکټر کارولی د ځانګړي شخصیت لپاره $ ترڅو متغیر $HOME په کوربه ماشین کې تشریح شوی نه و، مګر یوازې د کانټینر دننه تشریح شوی.

دا هم امکان لري چې د متقابل شیل حالت پیل کړئ ، او بیا د هاټکي په اجرا کولو سره ناسته پای ته ورسوي CTRL+D:

lxc exec alp -- /bin/sh

د کانټینر سرچینې مدیریت ^

په LXD کې، تاسو کولی شئ د ځانګړي ترتیب ترتیب په کارولو سره د کانټینر سرچینې اداره کړئ. د کانټینر ترتیب کولو پیرامیټونو بشپړ لیست موندل کیدی شي په اسنادو کې.

د RAM سرچینې محدودیت ^

پارسيم limits.memory کانټینر ته د موجود RAM مقدار محدودوي. ارزښت یو شمیر او یو دی شته ضمیمې.

راځئ چې د کانټینر رام حد 256 MB ته وټاکو:

lxc config set alp limits.memory 256MB

همدارنګه، د حافظې محدودولو لپاره نور پیرامیټونه شتون لري:

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

ټیم lxc config show تاسو ته اجازه درکوي د کانټینر ټول ترتیب ښکاره کړئ، په شمول د پلي شوي سرچینې حد چې ټاکل شوی و:

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 سرچینې محدودیت ^

د CPU سرچینو محدودولو لپاره ډیری لارې شتون لري. د محدودیتونو ډولونه:

  • limit.cpu - یو کانټینر په یو یا ډیرو CPU کورونو پورې تړلی
  • limits.cpu.allowance - یا د CFS مهالویش کوټې اداره کوي کله چې د وخت حد تیر شوی وي ، یا د نړیوال CPU سرچینې شریکولو میکانیزم کله چې سلنه تیریږي
  • limits.cpu.priority - د مهالویش لومړیتوب کله چې د پروسیسرونو سیټ شریکولو ډیری مثالونه د پروسیسرونو ورته سلنه ټاکل کیږي

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

د ډیسک ځای محدودیت ^

د دې ډول محدودیتونو سربیره limits.read, limits.write موږ کولی شو د کانټینر لخوا مصرف شوي ډیسک ځای مقدار محدود کړو (یوازې د ZFS یا BTRFS سره کار کوي):

lxc config device set alp root size=2GB

د نصبولو وروسته، په پیرامیټر کې devices.root.size موږ کولی شو ټاکل شوی حد تایید کړو:

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

د کارول شوي ډیسک کوټو لیدو لپاره موږ کولی شو له کمانډ څخه ترلاسه کړو 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

د دې حقیقت سره سره چې موږ د کانټینر د روټ وسیلې لپاره حد 2GB ته ټاکلی ، د سیسټم اسانتیاوې لکه df دا محدودیت به ونه ګوري. د دې کولو لپاره، موږ به یو کوچنی ازموینه ترسره کړو او معلومه کړو چې دا څنګه کار کوي.

راځئ چې په ورته ډول 2 نوي ورته کانټینرونه جوړ کړو د ذخیره کولو حوض (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         |
+------+---------+------------------+------+-----------+-----------+

راځئ چې په یو کانټینر کې د 1GB فایل جوړ کړو:

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

راځئ ډاډ ترلاسه کړو چې فایل جوړ شوی دی:

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

که موږ په دوهم کانټینر کې وګورو ، په ورته ځای کې د فایل شتون چیک کړئ ، نو دا فایل به هلته شتون ونلري ، کوم چې تمه کیږي ، ځکه چې کانټینرونه پخپله رامینځته شوي. د ذخیره کولو حجم په ورته ډول د ذخیره کولو حوض:

lxc exec alp2 -- ls -lh
total 0

مګر راځئ هغه ارزښتونه پرتله کړو چې دا تولیدوي df په یو او بل کانټینر کې:

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

غږ /dev/loop1 لکه څنګه چې د ریښی ویش نصب شوی د ذخیره کولو حوض کوم چې دا کانټینرونه کاروي، نو دوی خپل حجم د دوو ترمنځ شریکوي.

د سرچینو مصرف احصایې ^

تاسو کولی شئ د کمانډ په کارولو سره د کانټینر لپاره د سرچینو مصرف احصایې وګورئ:

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

د انځورونو سره کار کول ^

LXD د دې وړتیا لري چې سنیپ شاټونه رامینځته کړي او له دوی څخه د کانټینر حالت بیرته راولي.

د سنیپ شاټ جوړولو لپاره، لاندې کمانډ چل کړئ:

lxc snapshot alp snapshot1

دا ډله lxc snapshot هیڅ کیلي شتون نلري listله همدې امله، د سنیپ شاټونو لیست لیدلو لپاره تاسو اړتیا لرئ هغه کمانډ وکاروئ چې د کانټینر په اړه عمومي معلومات ښیې:

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

تاسو کولی شئ د کمانډ په کارولو سره د سنیپ شاټ څخه کانټینر بحال کړئ lxc restore د کانټینر مشخص کول د کوم لپاره چې بیا رغونه به ترسره شي او د سنیپ شاټ عرف:

lxc restore alp snapshot1

لاندې کمانډ د سنیپ شاټ حذف کولو لپاره کارول کیږي. مهرباني وکړئ په یاد ولرئ چې د کمانډ ترکیب د نورو ټولو سره ورته نه دی؛ دلته تاسو اړتیا لرئ د کانټینر نوم وروسته فارورډ سلیش مشخص کړئ. که سلیش پریښودل شي ، نو د سنیپ شاټ حذف کولو قومانده د کانټینر حذف کولو قوماندې په توګه تشریح کیږي!

lxc delete alp/snapshot1

په پورتني مثال کې، موږ د بې ریاسته عکسونو په نوم یاد شوي عکسونه ولیدل. LXD یو بل ډول سنیپ شاټونه لري - ریاستي، کوم چې په کانټینر کې د ټولو پروسو اوسنی حالت خوندي کوي. دلته یو شمیر په زړه پوري او ګټور ځانګړتیاوې شتون لري چې د دولتي عکسونو سره تړاو لري.

نور څه؟ ^

  • یو ماډل د Python پراختیا کونکو لپاره شتون لري PyLXD کوم چې LXD ته API چمتو کوي

تازه 10.04.2020/15/00 XNUMX:XNUMX: نیویګیشن اضافه شوی

سرچینه: www.habr.com

Add a comment