LXD مدیریت image، شبکه و storage را روی امکانات Linux containers می‌گذارد. امشب یک سرور محلی با شبکهٔ مشخص می‌سازیم و تفاوت client به نام lxc را با ابزارهای سنتی LXC روشن می‌کنیم.

این جلسه بخشی از دورهٔ لینوکس ۳۰۵ در ۶۰ شب است.

جایگاه در دوره: هدف‌های 352.2 آزمون 305-300.

محیط: VM تازهٔ lxd-a با Ubuntu 24.04، کنسول و دسترسی sudo؛ subnet زیر آزاد است. preseed را روی نصب دارای داده اجرا نکن، زیرا تعریف objectهای موجود را جایگزین می‌کند.

sudo snap install lxd --channel=5.21/stable
sudo lxd --version
sudo lxc version

اگر snap از قبل نصب است، ابتدا channel و نسخه را با snap list/info بررسی کن؛ دستور نصب، برنامهٔ مهاجرت از package قدیمی نیست. گروه lxd اختیار مدیریت میزبان می‌دهد؛ مثال‌ها با sudo اجرا می‌شوند و API شبکه باز نمی‌شود.

فایل lxd-init.yaml:

config: {}
networks:
  - name: lxdbr305
    type: bridge
    config:
      ipv4.address: 10.5.30.1/24
      ipv4.nat: "true"
      ipv6.address: none
storage_pools:
  - name: lpic305-dir
    driver: dir
    config: {}
profiles:
  - name: default
    config: {}
    devices:
      root:
        type: disk
        path: /
        pool: lpic305-dir
      eth0:
        type: nic
        network: lxdbr305
        name: eth0
sudo lxd init --preseed < lxd-init.yaml
sudo lxc network show lxdbr305
sudo lxc storage show lpic305-dir
sudo lxc profile show default

driver به نام dir ساده است؛ قابلیت quota و snapshot سریع ZFS/Btrfs را فرض نکن. برای backend دیگر، Clone مستقلی با دیسک آزمایشی بساز.

کدام lxc؟#

client به نام lxc با daemon/API LXD صحبت می‌کند. ابزارهای سنتی LXC مانند lxc-create، lxc-start، lxc-stop، lxc-attach و lxc-info قرارداد دیگری دارند. در VM جدا می‌توان بستهٔ lxc و صفحهٔ man آن‌ها را بررسی کرد؛ config سنتی شامل lxc.rootfs.path، lxc.net.* و نگاشت UID/GID است. این فایل را مستقیم به LXD نده.

Incus پروژهٔ جداست؛ برای تطبیق با هدف آزمون، تمرین اصلی این بخش LXD می‌ماند.

بررسی و بازگشت: bridge، pool و دستگاه‌های profile باید با YAML برابر باشند؛ شنوندهٔ عمومی API ایجاد نشده باشد. برای شروع دوباره به snapshot VM تازه برگرد، نه حذف pool دارای داده.

منبع: نصب LXD ، initialize و preseed ، LXC .