ኤል.ኤስ.ዲ. የሚቀጥለው ትውልድ ሥርዓት መያዣ አስተዳዳሪ ነው, ስለዚህ ይላል
LXD ኮር መብት ያለው ዴሞን (ከስር መብቶች ጋር የሚሰራ አገልግሎት) በአካባቢያዊ ዩኒክስ ሶኬት እና እንዲሁም በአውታረ መረቡ በኩል ተገቢውን ውቅር ከተጫነ REST API የሚያቀርብ ነው። ደንበኞች፣ እንደ ከLXD ጋር የቀረበው የትዕዛዝ መስመር መሳሪያ፣ በዚህ REST API በኩል ጥያቄ ያቀርባሉ። ይህ ማለት የአከባቢን አስተናጋጅ ወይም የርቀት አስተናጋጅ እየደረሱ ነው ፣ ሁሉም ነገር ተመሳሳይ ነው የሚሰራው።
በዚህ ጽሑፍ ውስጥ ስለ LXD ፅንሰ-ሀሳቦች በዝርዝር አንቀመጥም ፣ በሰነዶቹ ውስጥ የተዘረዘሩትን ሁሉንም ችሎታዎች ከግምት ውስጥ አናስገባም ፣ በቅርብ ጊዜ የ LXD ስሪቶች ከዕቃ መያዣዎች ጋር በትይዩ ለ QEMU ምናባዊ ማሽኖች ድጋፍ። ይልቁንስ የኮንቴይነር አስተዳደር መሰረታዊ ነገሮችን ብቻ እንማራለን - የማከማቻ ገንዳዎችን ማዘጋጀት፣ ኔትዎርኪንግ፣ ኮንቴይነር ማስኬድ፣ የሀብት ገደቦችን መተግበር እና ቅጽበተ-ፎቶዎችን እንዴት መጠቀም እንዳለቦት ስለ LXD መሰረታዊ ግንዛቤ ማግኘት እና በሊኑክስ ላይ ኮንቴይነሮችን መጠቀም ይችላሉ።
ለተሟላ መረጃ እባክዎን ኦፊሴላዊውን ምንጭ ይመልከቱ፡-
ዳሰሳ
ጭነት LXD ^
በኡቡንቱ ስርጭቶች ላይ LXD በመጫን ላይ ^
በኡቡንቱ 19.10 ስርጭት ጥቅል ውስጥ lxd
ላይ ስርጭት አለው።
apt search lxd
lxd/eoan 1:0.7 all
Transitional package - lxd -> snap (lxd)
ይህ ማለት ሁለት ፓኬጆች በአንድ ጊዜ ይጫናሉ, አንዱ እንደ የስርዓት ፓኬጅ እና ሌላኛው እንደ ፈጣን ጥቅል ነው. በሲስተሙ ላይ ሁለት ፓኬጆችን መጫን የስርአቱ ፓኬጅ ወላጅ አልባ ሊሆን በሚችልበት ጊዜ ስናፕ ፓኬጁ በ snap package manager ከተወገደ ችግር ሊፈጥር ይችላል።
ጥቅል አግኝ lxd
በ snap ማከማቻ ውስጥ የሚከተለውን ትዕዛዝ መጠቀም ይችላሉ:
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
በስርዓት ጅምር ላይ የኤልኤክስዲ አገልግሎትን በመጫን ላይ፡-
sudo systemctl enable lxd
አገልግሎቱን እንጀምር፡-
sudo systemctl start lxd
የአገልግሎቱን ሁኔታ መፈተሽ;
sudo systemctl status lxd
ማከማቻ LXD (ማከማቻ) ^
ማስጀመር ከመጀመሩ በፊት፣ በ LXD ውስጥ ያለው ማከማቻ አመክንዮ እንዴት እንደተደረደረ መረዳት አለብን።
ማከማቻ (መጋዘን)
- ምስሎች - እነዚህ ከሊኑክስ ከርነል ውጭ በልዩ ሁኔታ የተገጣጠሙ ስርጭቶች እና ከውጭ ምንጮች ይገኛሉ
- ኮንቴይነሮች - እነዚህ ከምስሎች የተዘረጉ ስርጭቶች ለአገልግሎት ዝግጁ ናቸው።
- ቅጽበተ-ፎቶዎች - እነዚህ ወደ እርስዎ መመለስ የሚችሉት የመያዣዎች ሁኔታ ቅጽበታዊ እይታዎች ናቸው።
በ LXD ውስጥ ማከማቻን ለማስተዳደር ትዕዛዙን ይጠቀሙ lxc storage
ቁልፉን በመግለጽ ማግኘት የሚችሉት የምስክር ወረቀት - lxc storage --help
የሚከተለው ትዕዛዝ የሁሉንም ዝርዝር ያሳያል የማከማቻ ገንዳ በኤልኤክስዲ ማከማቻ ውስጥ፡-
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 ለመምረጥ ይመከራል
የባህሪ
ማውጫ
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
.
ስለዚህ, ከመፈጠሩ በፊት የማከማቻ ገንዳ የሚጠቀመውን የ loopback ፋይል ወይም በፋይል ስርዓትዎ ላይ ያለውን ክፋይ መግለፅ ያስፈልግዎታል። ይህንን ለማድረግ በ10ጂቢ መጠን የምንገድበው ፋይል እንፈጥራለን እና እንጠቀማለን።
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
ከነባሪው ጋር የሚዛመድ የማከማቻ ገንዳ.
የሚከተለው ትዕዛዝ አዲስ ይፈጥራል የማከማቻ ገንዳ አሁን ባዘጋጀነው የ loopback ፋይል ላይ በመመስረት በ LXD ውስጥ። LXD የ loopback ፋይልን ይቀርፃል። /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
እና የኤልኤክስዲ አገልግሎት በሚጫንበት ጊዜ ይሰናከላል ምክንያቱም በዚህ መሳሪያ ውስጥ አያየውም። ይህንን ችግር ለመፍታት ይህንን ፋይል ወደ መሳሪያው ውስጥ የሚያስገባ የስርዓት አገልግሎት መፍጠር ያስፈልግዎታል /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
.
ደህንነት. የመያዣ መብቶች ^
ሁሉም የእቃ መያዢያ ሂደቶች ከርነል በመጠቀም በአስተናጋጅ ስርዓቱ ላይ በተናጥል የሚሰሩ በመሆናቸው፣የመያዣ ሂደቶችን ወደ አስተናጋጅ ስርዓቱ ተደራሽነት የበለጠ ለመጠበቅ፣ኤልኤክስዲ የሂደቱን ልዩ መብት ይሰጣል፡-
-
ልዩ የሆኑ መያዣዎች - እነዚህ ከ UID እና GID ጋር ሂደቶች በአስተናጋጅ ስርዓቱ ላይ ካለው ባለቤት ጋር የሚዛመዱባቸው መያዣዎች ናቸው። ለምሳሌ፣ ዩአይዲ 0 ባለው ኮንቴይነር ውስጥ የሚሰራ ሂደት በአስተናጋጅ ስርዓቱ ላይ ካለው ሂደት ጋር ተመሳሳይ የመዳረሻ መብቶች አሉት። መያዣው, ነገር ግን በአስተናጋጁ ስርዓት ላይ ከመያዣው የተለየ የስም ቦታ ውጭ መሄድ ከቻለ.
-
ያልተጠበቁ መያዣዎች - እነዚህ ሂደቶች ከ0 እስከ 65535 ቁጥር ያለው የዩአይዲ እና የጂአይዲ ባለቤት የሆኑባቸው ኮንቴይነሮች ናቸው ነገር ግን ለአስተናጋጅ ሲስተም ባለቤቱ የተጨመረው የሱቢአይዲ እና ንዑስ ጂአይዲ ቢትስ እንደቅደም ተከተላቸው። ለምሳሌ፣ በኮንቴይነር ውስጥ 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
የማዋቀር መገለጫ ^
በኤልኤክስዲ ውስጥ ያለው እያንዳንዱ ኮንቴይነር የራሱ ውቅር አለው እና በአለምአቀፍ ደረጃ በታወጁ ውቅሮች ሊራዘም ይችላል። የውቅረት መገለጫዎች. የማዋቀሪያ መገለጫዎችን ወደ ኮንቴይነር መተግበር የካስኬድ ሞዴል አለው፣ የሚከተለው ምሳሌ ይህንን ያሳያል፡-
በዚህ ምሳሌ፣ በኤልኤክስዲ ስርዓት ውስጥ ሶስት መገለጫዎች ተፈጥረዋል። 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
በትክክል መሣሪያውን ወደ ውቅረት መገለጫ ስለጨመርን ፣ በመሳሪያው ውስጥ የማይንቀሳቀስ አይፒ አድራሻ ከገለፅን ፣ ከዚያ ይህንን መገለጫ የሚጠቀሙ ሁሉም ኮንቴይነሮች አንድ አይነት የአይፒ አድራሻ ይጋራሉ ። ለማጠራቀሚያው የተመደበ የማይንቀሳቀስ አይፒ አድራሻ ያለው መያዣ መፍጠር አስፈላጊ ከሆነ ታዲያ በመገለጫ ደረጃ ሳይሆን በመያዣው ደረጃ (አካባቢያዊ ውቅር) ላይ የአውታረ መረብ መሳሪያ ውቅር መፍጠር አለብዎት።
መገለጫውን እንፈትሽ፡-
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: ""
የማይንቀሳቀስ አይፒ አድራሻ በማዘጋጀት ላይ ^
ለአውታረ መረብ መሳሪያ የአይፒ አድራሻ ለማዘጋጀት ከሞከርን 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
ለነገሩ የማይንቀሳቀስ አይፒ አድራሻ ማዘጋጀት እንችላለን 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
የመያዣ ሀብት አስተዳደር ^
በኤልኤክስዲ ውስጥ ልዩ የውቅረት ስብስብ በመጠቀም የመያዣ ሀብቶችን ማስተዳደር ይችላሉ። የመያዣ ውቅር መለኪያዎች ሙሉ ዝርዝር ሊገኙ ይችላሉ
የ RAM ምንጭ ውስንነት ^
መለኪያ limits.memory
በመያዣው ውስጥ ያለውን የ RAM መጠን ይገድባል። እሴቱ ቁጥር እና አንዱ ነው።
የመያዣውን ራም ገደብ ወደ 256 ሜባ እናውለው፡-
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: ""
የሲፒዩ ሀብት ገደብ ^
የሲፒዩ ሀብቶችን ለመገደብ ብዙ መንገዶች አሉ።
limit.cpu
- አንድ ኮንቴይነር ከአንድ ወይም ከዚያ በላይ የሲፒዩ ኮሮች ያስራልlimits.cpu.allowance
- የጊዜ ገደቡ ካለፈ በኋላ የCFS መርሐግብር አድራጊ ኮታዎችን ያስተዳድራል፣ ወይም መቶኛ ካለፈ ሁለንተናዊ የሲፒዩ ሀብት መጋራት ዘዴን ያስተዳድራል።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
ምንም እንኳን እኛ የእቃው ስርወ መሣሪያ እስከ 2 ጂቢ ድረስ ገደብ አዘጋጅተናል ፣ እንደ የስርዓት መገልገያዎች 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 ኤፒአይ ለኤልኤክስዲ ያቀርባል
አዘምን 10.04.2020/15/00 XNUMX:XNUMX: ታክሏል አሰሳ
ምንጭ: hab.com