لینوکس ۳۰۵؛ شب ۱۶: libvirt، اتصال system/session و daemonها
فهرست نوشته
libvirt یک API مدیریتی برای backendهایی مثل QEMU و Xen است. امشب connection درست و مدل daemon نصب واقعی را مشخص میکنیم تا VM در جای دیگری «گم» نشود.
این جلسه بخشی از دورهٔ لینوکس ۳۰۵ در ۶۰ شب است.
جایگاه در دوره: هدفهای 351.4 آزمون 305-300.
محیط: hv-a و hv-b با Ubuntu 24.04، hostهای همنسخه؛ حساب مدیریت آزمایشگاه جدا از student داخل guest است.
sudo apt install libvirt-daemon-system libvirt-clients virtinst libguestfs-tools
sudo usermod -aG libvirt,kvm "$USER"
systemctl list-unit-files 'libvirtd*' 'virtqemud*' 'virtnetworkd*' 'virtstoraged*'
عضویت libvirt قدرت ادارهٔ guest و resourceهای host میدهد؛ آن را مانند دسترسی مدیریتی محافظت کن. نشست تازه بگیر. یکی از مدلهای موجود را فعال کن: libvirtd.socket برای monolithic یا socketهای modular مطابق package نصبشده. همزمان هر دو معماری را برای رفع خطا فعال نکن.
virsh -c qemu:///system uri
virsh -c qemu:///system version
virsh -c qemu:///system nodeinfo
virsh -c qemu:///system list --all
virsh -c qemu:///session list --all
system daemon سراسری و session محیط کاربر است؛ inventory، شبکه و permission یکسان ندارند. در این دوره libvirt همیشه system است و direct QEMU را خودبهخود به inventory اضافه نمیکند.
سرویسهای کمکی#
virtlogd log فرایند guest و virtlockd قفل resource را اداره میکنند؛ modular daemonهایی مانند virtqemud، virtnetworkd و virtstoraged وظیفهٔ جدا دارند. فایلهای /etc/libvirt policy host و XML domain/network/pool objectها را توصیف میکنند.
آزمون: URI را در evidence هر عملیات ثبت کن. خطای authentication را با chmod socket یا افزودن همه به group حل نکن؛ permission، polkit و activation را بررسی کن.
بازگشت: هنوز domain تازهای نداریم؛ service model و گروه قبلی را ثبت کن. تغییر daemon یا package روی host دارای VM به پنجرهٔ نگهداری نیاز دارد.
منبع: daemonهای libvirt ، URIها ، virsh .