Lxd ඊළඟ පරම්පරාවේ පද්ධති බහාලුම් කළමනාකරු වේ, එබැවින් එය කියයි
LXD හරය ප්රාදේශීය unix සොකට් එකක් හරහා REST API සපයන වරප්රසාදිත ඩීමන් (මූල අයිතීන් සමඟින් ක්රියාත්මක වන සේවාවක්) වේ, සුදුසු වින්යාසය ස්ථාපනය කර ඇත්නම් ජාලය හරහා. LXD සමඟ සපයා ඇති විධාන රේඛා මෙවලම වැනි සේවාලාභීන් මෙම REST API හරහා ඉල්ලීම් කරයි. මෙයින් අදහස් කරන්නේ ඔබ දේශීය සත්කාරක හෝ දුරස්ථ ධාරකයකට ප්රවේශ වුවද, සියල්ල එකම ලෙස ක්රියා කරන බවයි.
මෙම ලිපියෙන් අපි LXD හි සංකල්ප පිළිබඳව සවිස්තරාත්මකව වාසය නොකරමු, බහාලුම්වලට සමාන්තරව QEMU අතථ්ය යන්ත්ර සඳහා සහය දැක්වීමේ LXD හි නවතම අනුවාදවල මෑතදී ක්රියාත්මක කිරීම ඇතුළුව, ලේඛනවල දක්වා ඇති සියලුම හැකියාවන් අපි සලකා බලන්නේ නැත. ඒ වෙනුවට, අපි බහාලුම් කළමනාකරණයේ මූලික කරුණු පමණක් ඉගෙන ගනිමු - ගබඩා තටාක පිහිටුවීම, ජාලකරණය, බහාලුමක් ධාවනය කිරීම, සම්පත් සීමාවන් යෙදීම සහ ඔබට LXD පිළිබඳ මූලික අවබෝධයක් ලබා ගැනීමට සහ Linux මත බහාලුම් භාවිතා කිරීමට හැකි වන පරිදි ස්නැප්ෂොට් භාවිතා කරන්නේ කෙසේද.
සම්පූර්ණ තොරතුරු සඳහා, කරුණාකර නිල මූලාශ්රය වෙත යොමු වන්න:
සංචලනය
ස්ථාපනය LXD ගබඩා LXD (ගබඩාව) LXD ආරම්භ කිරීම බහාලුමක් නිර්මාණය කිරීම සහ කළමනාකරණය කිරීම
ස්ථාපනය LXD ^
උබුන්ටු බෙදාහැරීම් මත LXD ස්ථාපනය කිරීම ^
Ubuntu 19.10 බෙදාහැරීමේ පැකේජයේ lxd
මත විකාශනයක් ඇත
apt search lxd
lxd/eoan 1:0.7 all
Transitional package - lxd -> snap (lxd)
මෙයින් අදහස් කරන්නේ පැකේජ දෙකක් එකවර ස්ථාපනය කරන බවයි, එකක් පද්ධති පැකේජයක් ලෙසත් අනෙක ස්නැප් පැකේජයක් ලෙසත්. පද්ධතියක් මත පැකේජ දෙකක් ස්ථාපනය කිරීම යම් ගැටළුවක් ඇති කළ හැකි අතර එහිදී snap පැකේජ කළමනාකරු විසින් Snap පැකේජය ඉවත් කළහොත් පද්ධති පැකේජය අනාථ විය හැක.
පැකේජය සොයන්න lxd
snap repository හි ඔබට පහත විධානය භාවිතා කළ හැක:
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✓ -
Arch Linux බෙදාහැරීම් මත 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 හි ගබඩාව තාර්කිකව සකස් කර ඇති ආකාරය අප තේරුම් ගත යුතුය.
ගබඞා (ගබඞා)
- පින්තූර - මේවා ලිනක්ස් කර්නලය නොමැතිව විශේෂයෙන් එකලස් කරන ලද බෙදාහැරීම් වන අතර බාහිර මූලාශ්රවලින් ලබා ගත හැකිය
- බහාලුම් - මේවා රූපවලින් බෙදාහැරීම්, භාවිතයට සූදානම්
- ස්නැප්ෂොට් - මේවා ඔබට ආපසු යා හැකි බහාලුම්වල තත්වය පිළිබඳ ඡායාරූප වේ
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 ගොනු පද්ධතිය තෝරාගෙන, පසුව ලැයිස්තුවක් ලබා ගන්න ගබඩා පරිමාව හෝ උප වෝල්ටීයතා 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 එකක් තෝරා ගැනීමට එය යෝජනා කෙරේ
විශේෂාංගය
නාමාවලිය
බීටීආර්එෆ්
එල්වීඑම්
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
.
ඉතින්, නිර්මාණය කිරීමට පෙර ගබඩා තටාකය ඔබට loopback ගොනුවක් හෝ එය භාවිතා කරන ඔබේ ගොනු පද්ධතියේ පවතින කොටසක් නිර්වචනය කිරීමට අවශ්ය වේ. මෙය සිදු කිරීම සඳහා, අපි 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
අපි loopback ගොනුව නිදහස් loopback උපාංගයකට සම්බන්ධ කරමු:
sudo losetup --find --show /mnt/work/lxd/hddpool.img
/dev/loop1
යතුරට ස්තූතියි --show
විධානය ක්රියාත්මක කිරීමෙන් අපගේ loopback ගොනුව සම්බන්ධ කර ඇති උපාංගයේ නම තිරයට නැවත පැමිණේ. අවශ්ය නම්, අපගේ ක්රියාවන් නිවැරදි බව තහවුරු කර ගැනීමට අපට මෙම වර්ගයේ සියලුම කාර්යබහුල උපාංග ලැයිස්තුවක් පෙන්විය හැක:
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
loopback ගොනුව ඇතුළත් වේ /mnt/work/lxd/hddpool.img
, සහ උපාංගය තුළ /dev/loop0
loopback ගොනුව ඇතුළත් වේ /var/lib/lxd/disks/ssdpool.img
පෙරනිමියට අනුරූප වන ගබඩා තටාකය.
පහත දැක්වෙන විධානය නව එකක් නිර්මාණය කරයි ගබඩා තටාකය LXD හි අපි දැන් සකස් කළ loopback ගොනුව මත පදනම්ව. 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
loopback ගොනුවක් loopback උපාංග ස්ලට් එකකට ස්වයංක්රීයව ඇතුල් කිරීම ^
අපට එක් කුඩා ගැටළුවක් ඇත, ධාරක පද්ධතිය නැවත ආරම්භ කිරීමේදී ගොනුව /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 සමඟ ඇති ක්රියාවලීන් ධාරක පද්ධතියේ ඇති එකම හිමිකරුට අනුරූප වන බහාලුම් වේ. උදාහරණයක් ලෙස, UID 0 ක කන්ටේනරයක ක්රියාත්මක වන ක්රියාවලියකට UID 0 කින් ධාරක පද්ධතියේ ක්රියාවලියකට සමාන ප්රවේශ හිමිකම් ඇත. වෙනත් වචන වලින් කිවහොත්, බහාලුම්වල මූල පරිශීලකයාට පමණක් නොව සියලුම හිමිකම් ඇත. කන්ටේනරය, නමුත් ඔහුට කන්ටේනරයේ හුදකලා නාම අවකාශයෙන් පිටත යා හැකි නම් ධාරක පද්ධතිය මතද වේ.
-
වරප්රසාද නොලත් බහාලුම් - මේවා 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 හි ජාලකරණය සහ සේවාදායක විධානය භාවිතයෙන් අථත්ය ස්විචයක් (පාලම) නිර්මාණය කරන්නේ කෙසේද යන්න පිළිබඳව සරලව දැන හඳුනා ගනිමු.
පහත රූප සටහන මඟින් ස්විචයක් (පාලම) ධාරකය සහ බහාලුම් ජාලයකට සම්බන්ධ කරන ආකාරය පෙන්නුම් කරයි:
බහාලුම් වෙනත් බහාලුම් සමඟ ජාලයක් හරහා හෝ මෙම බහාලුම් සේවය කරන ධාරකය හරහා සන්නිවේදනය කළ හැකිය. මෙය සිදු කිරීම සඳහා, ඔබ බහාලුම්වල අථත්ය ජාල කාඩ්පත් අථත්ය ස්විචයක් සමඟ සම්බන්ධ කළ යුතුය. අපි මුලින්ම ස්විචයක් සාදන්නෙමු, කන්ටේනරයම නිර්මාණය කිරීමෙන් පසු බහාලුම් ජාල අතුරුමුහුණත් ඊළඟ පරිච්ඡේදවල සම්බන්ධ කරනු ඇත.
පහත විධානය උපජාලයක් සමඟ ස්විචයක් නිර්මාණය කරයි 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 පද්ධතියේ පැතිකඩ තුනක් නිර්මාණය කර ඇත: 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
සවි කිරීමේ ලක්ෂ්යය සමඟ /
(මූල) කලින් නිර්මාණය කර ඇත ගබඩා තටාකය - 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 දුරස්ථ මූලාශ්ර තුනකින් රූප ලබා ගැනීමට වින්යාස කර ඇත:
- ubuntu: (ස්ථායී උබුන්ටු රූප සඳහා)
- ubuntu-දිනපතා: (දෛනික උබුන්ටු පින්තූර සඳහා)
- රූප: (වෙනත් බෙදාහැරීම් සමූහයක් සඳහා)
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 රූපය නොහොත්
රූප අන්වර්ථ කළමනාකරණය කරන්න
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 ගොනුවක් ආකාරයෙන් වින්යාසය නියම කරන විට, ක්රියාත්මක කිරීම මග හරිමින් සම්පූර්ණ වින්යාසය එකවර ස්ථාපනය කිරීමට ඔබට ඉඩ සලසන විශේෂ ආකෘතියකි. ජාල වින්යාස කිරීම, වින්යාස පැතිකඩ නිර්මාණය කිරීම යනාදිය ඇතුළුව මෙම ලිපියේ ඉහත සාකච්ඡා කරන ලද බොහෝ අන්තර්ක්රියාකාරී විධානයන්ගෙන්. අපි මෙම ප්රදේශය මෙහි ආවරණය නොකරමු, ඔබට එය තනිවම පරීක්ෂා කර බැලිය හැක.
ඊළඟ අන්තර් ක්රියාකාරී විධානය lxc config
අපි බලමු ඔබට වින්යාසය සැකසීමට ඉඩ සලසයි. උදාහරණයක් ලෙස, දේශීය ගබඩාවට බාගත කළ පින්තූර ගෝලීය ගබඩාවලින් ස්වයංක්රීයව යාවත්කාලීන නොවන බව සහතික කිරීම සඳහා, අපට පහත විධානය සමඟ මෙම හැසිරීම සක්රීය කළ හැකිය:
lxc config set images.auto_update_cached=false
බහාලුමක් නිර්මාණය කිරීම සහ කළමනාකරණය කිරීම ^
කන්ටේනරයක් සෑදීමට විධානය භාවිතා කරන්න lxc init
අගයන් සම්මත කර ඇති репозиторий:образ
ඉන්පසු කන්ටේනරය සඳහා අවශ්ය හැඳුනුම්පත. ගබඩාව දේශීය ලෙස දැක්විය හැක 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
ධාරක යන්ත්රය මත අර්ථකථනය නොකළ නමුත්, බහාලුම තුළ පමණක් අර්ථ නිරූපණය කරන ලදී.
අන්තර්ක්රියාකාරී ෂෙල් ප්රකාරය ආරම්භ කිරීමටද, පසුව hotkey ක්රියාත්මක කිරීමෙන් සැසිය අවසන් කිරීමටද හැකිය CTRL+D
:
lxc exec alp -- /bin/sh
බහාලුම් සම්පත් කළමනාකරණය ^
LXD හි, ඔබට විශේෂ වින්යාස කට්ටලයක් භාවිතයෙන් බහාලුම් සම්පත් කළමනාකරණය කළ හැකිය. බහාලුම් වින්යාස පරාමිතීන් සම්පූර්ණ ලැයිස්තුවක් සොයා ගත හැක
RAM සම්පත් සීමාව ^
පරාමිතිය limits.memory
කන්ටේනරය වෙත ලබා ගත හැකි RAM ප්රමාණය සීමා කරයි. අගය අංකයක් සහ එකක් වේ
කන්ටේනරයේ 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 හි තවත් ආකාරයේ ස්නැප්ෂොට් ඇත - ප්රකාශිත, එය බහාලුම්වල ඇති සියලුම ක්රියාවලීන්ගේ වත්මන් තත්වය සුරකියි. ප්රකාශිත ස්නැප්ෂොට් හා සම්බන්ධ රසවත් හා ප්රයෝජනවත් විශේෂාංග ගණනාවක් තිබේ.
වෙන මොනවා ද? ^
- පයිතන් සංවර්ධකයින් සඳහා මොඩියුලයක් තිබේ
PyLXD එය LXD වෙත API සපයයි
යාවත්කාලීන 10.04.2020/15/00 XNUMX:XNUMX: සංචාලනය එකතු කරන ලදි
මූලාශ්රය: www.habr.com