libvirtd(8) پشتیبانی از مجازی‌سازی libvirtd(8)

libvirtd - دیمن مدیریت مجازی‌سازی libvirt

libvirtd [گزینه‌ها]...

برنامه libvirtd مؤلفه دیمن سمت سرور از سیستم مدیریت مجازی‌سازی libvirt است.

این دیمن روی سرورهای میزبان اجرا می‌شود و وظایف مدیریتی لازم برای ماشین‌های میهمان مجازی‌سازی‌شده را انجام می‌دهد. این وظایف شامل مواردی چون راه‌اندازی، متوقف‌سازی و مهاجرت میهمانان بین سرورهای میزبان، پیکربندی و مدیریت شبکه، و مدیریت فضای ذخیره‌سازی برای استفاده توسط میهمانان است.

کتابخانه‌ها و ابزارهای کلاینت libvirt به این دیمن متصل می‌شوند تا دستورات را صادر کرده و اطلاعات مربوط به پیکربندی و منابع سیستم میزبان و میهمانان را گردآوری نمایند.

به طور پیش‌فرض، دیمن libvirtd به درخواست‌های دریافتی روی یک سوکت محلی دامنه یونیکس (Unix domain socket) گوش می‌دهد. با استفاده از گزینه خط فرمان -l | --listen، می‌توان به دیمن libvirtd دستور داد تا علاوه بر آن به یک سوکت TCP/IP نیز گوش فرا دهد. سوکت TCP/IP مورد استفاده در فایل پیکربندی libvirtd تعریف می‌شود.

راه‌اندازی مجدد libvirtd تاثیری بر عملکرد میهمانان در حال اجرا نخواهد داشت. میهمانان به فعالیت خود ادامه می‌دهند و در صورتی که پیکربندی XML آن‌ها از قبل تعریف شده باشد، به طور خودکار بازیابی می‌شوند. هر میهمانی که پیکربندی XML آن تعریف نشده باشد، از پیکربندی از دست خواهد رفت.

دیمن libvirtd قادر به راه‌اندازی در دو حالت است.

در حالت سنتی، این دیمن سوکت‌های یونیکس را خودش ایجاد کرده و به آن‌ها گوش می‌دهد. در صورتی که پارامتر --listen مشخص شده باشد، بر اساس گزینه‌های listen_tcp و listen_tls در فایل /etc/libvirt/libvirtd.conf به سوکت(های) TCP/IP نیز گوش فرا خواهد داد.

در حالت فعال‌سازی سوکت، این دیمن به systemd متکی خواهد بود تا سوکت‌های یونیکس و در صورت تمایل TCP/IP را ایجاد کرده، به آن‌ها گوش دهد و آن‌ها را به عنوان توصیف‌کننده‌های فایل از پیش بازشده ارسال کند. در این حالت، مشخص کردن پارامتر --listen مجاز نیست و بیشتر گزینه‌های پیکربندی مرتبط با سوکت در فایل /etc/libvirt/libvirtd.conf دیگر اثری نخواهند داشت. برای فعال‌سازی سوکت‌های TCP یا TLS از یکی از دستورات زیر استفاده کنید:

$ systemctl start libvirtd-tls.socket

یا

$ systemctl start libvirtd-tcp.socket

هنگام اجرا روی یک سیستم‌عامل میزبان که از systemd استفاده می‌کند، حالت فعال‌سازی سوکت معمولاً پیش‌فرض است. برای بازگشت به حالت سنتی، تمام فایل‌های واحد سوکت باید ماسک (mask) شوند:

$ systemctl mask libvirtd.socket libvirtd-ro.socket \
   libvirtd-admin.socket libvirtd-tls.socket libvirtd-tcp.socket

علاوه بر این اطمینان حاصل کنید که آرگومان --timeout برای دیمن استفاده نشود، زیرا در اتصالات بعدی مجدداً راه‌اندازی نخواهد شد.

در صورت استفاده از سرویس libvirt-guests، ترتیب اجرای آن سرویس باید طوری هماهنگ شود که به جای واحد سوکت، پس از واحد سرویس اجرا گردد. از آنجا که وابستگی‌ها و ترتیب اجرا را نمی‌توان با فایل‌های جایگزین drop-in تغییر داد، کل فایل واحد libvirt-guests باید دستخوش تغییر شود. برای حفظ چنین تغییری، فایل نصب‌شده /usr/lib/systemd/system/libvirt-guests.service را به مسیر /etc/systemd/system/libvirt-guests.service رونوشت کرده و تغییر را در آنجا اعمال کنید؛ به طور مشخص اطمینان حاصل فرمایید که در ترتیب After= عبارت libvirtd.service درج شده باشد و نه libvirtd.socket:

[Unit]
After=libvirtd.service

-h, --help

نمایش راهنمای استفاده از دستور در خط فرمان و سپس خروج.

-d, --daemon

اجرا به عنوان یک دیمن و نوشتن فایل شناسه فرآیند (PID).

-f, --config *FILE*

استفاده از این فایل پیکربندی به جای مقدار پیش‌فرض.

-l, --listen

گوش دادن به اتصالات TCP/IP. در صورت استفاده از فعال‌سازی سوکت systemd نباید این گزینه تنظیم شود؛ در عوض فایل‌های واحد libvirtd-tls.socket یا libvirtd-tcp.socket را فعال کنید.

-p, --pid-file *FILE*

استفاده از این نام برای فایل PID به جای مقدار پیش‌فرض.

-t, --timeout *SECONDS*

خروج پس از سپری شدن دوره وقفه (به ثانیه)، به شرط آنکه نه اتصال کلاینتی برقرار باشد و نه هیچ دامنه‌ای در حال اجرا باشد.

-v, --verbose

فعال‌سازی خروجی پیام‌های پرجزئیات (verbose).

--version

نمایش اطلاعات نسخه و سپس خروج.

با دریافت سیگنال SIGHUP، دیمن libvirtd پیکربندی خود را دوباره بارگذاری خواهد کرد.

•
/etc/libvirt/libvirtd.conf

فایل پیکربندی پیش‌فرضی که توسط libvirtd استفاده می‌شود، مگر اینکه در خط فرمان با استفاده از گزینه -f | --config جایگزین شده باشد.

بسته به اینکه کدام درایور نصب شده باشد، فایل‌های زیر نیز خوانده خواهند شد:

  • /etc/libvirt/qemu.conf برای درایور QEMU
  • /etc/libvirt/lxc.conf برای درایور LXC
  • /etc/libvirt/libxl.conf برای درایور libxl

این فایل‌ها شامل مقادیر پیش‌فرض و پارامترهای تنظیمی گوناگونی برای ماشین‌های مجازی ایجادشده در درایورهای مربوطه‌شان هستند، و راهکاری برای بازنویسی مقادیر پیش‌فرض توکار ارائه می‌دهند؛ برای نمونه (اما نه محدود به): مسیر فایل‌های اجرایی مکمل مختلف، مکان گواهی‌های TLS، پیکربندی کنسول‌های گرافیکی و موارد دیگر. مکان هیچ‌کدام از این فایل‌ها را نمی‌توان با سوییچ‌های خط فرمان تغییر داد.

  • /run/libvirt/libvirt-sock
  • /run/libvirt/libvirt-sock-ro

سوکت‌هایی که دیمن libvirtd از آن‌ها استفاده خواهد کرد.

•
/etc/pki/CA/cacert.pem

گواهی مرجع صدور گواهی (CA) تی‌ال‌اس که libvirtd استفاده خواهد کرد.

•
/etc/pki/libvirt/servercert.pem

گواهی سرور TLS که توسط libvirtd استفاده خواهد شد.

•
/etc/pki/libvirt/private/serverkey.pem

کلید خصوصی سرور TLS که توسط libvirtd استفاده خواهد شد.

•
/run/libvirtd.pid

فایل PID برای استفاده، مگر اینکه توسط گزینه -p | --pid-file جایگزین شده باشد.

•
$XDG_CONFIG_HOME/libvirt/libvirtd.conf

فایل پیکربندی پیش‌فرضی که توسط libvirtd استفاده می‌شود، مگر اینکه در خط فرمان با گزینه -f | --config جایگزین شود.

اگر درایور QEMU نصب شده باشد، فایل زیر نیز خوانده خواهد شد:

•
$XDG_CONFIG_HOME/libvirt/qemu.conf

اگر این فایل موجود باشد، می‌تواند شامل پارامترهای تنظیمی و مقادیر پیش‌فرض گوناگونی برای ماشین‌های مجازی ایجادشده در درایور QEMU باشد، و راهکاری برای تغییر مقادیر پیش‌فرض توکار ارائه می‌دهد، برای نمونه (اما نه محدود به): مسیرهای باینری‌های تکمیلی، مکان گواهی‌های TLS، پیکربندی کنسول‌های گرافیکی و موارد دیگر. مکان این فایل را نمی‌توان با سوییچ خط فرمان تغییر داد.

•
$XDG_RUNTIME_DIR/libvirt/libvirt-sock

سوکت مورد استفاده توسط libvirtd.

•
$HOME/.pki/libvirt/cacert.pem

گواهی مرجع صدور گواهی (CA) تی‌ال‌اس که توسط libvirtd استفاده خواهد شد.

•
$HOME/.pki/libvirt/servercert.pem

گواهی سرور TLS که libvirtd از آن استفاده خواهد کرد.

•
$HOME/.pki/libvirt/serverkey.pem

کلید خصوصی سرور TLS که توسط libvirtd استفاده خواهد شد.

•
$XDG_RUNTIME_DIR/libvirt/libvirtd.pid

فایل PID برای استفاده، مگر اینکه توسط گزینه -p | --pid-file جایگزین شده باشد.

اگر متغیر $XDG_CONFIG_HOME در محیط شما مقداردهی نشده باشد، دیمن libvirtd از مسیر $HOME/.config استفاده خواهد کرد.

اگر متغیر $XDG_RUNTIME_DIR در محیط شما تنظیم نشده باشد، دیمن libvirtd از مسیر $HOME/.cache استفاده خواهد کرد.

برای دریافت نسخه دیمن libvirtd:

# libvirtd --version
libvirtd (libvirt) 12.7.0

برای راه‌اندازی دیمن libvirtd، با دستور به دیمن شدن و ایجاد فایل PID:

# libvirtd -d
# ls -la /run/libvirtd.pid
-rw-r--r-- 1 root root 6 Jul  9 02:40 /run/libvirtd.pid

لطفاً هرگونه اشکال یا خطای کشف‌شده را گزارش دهید. این کار را می‌توانید از یکی از روش‌های زیر انجام دهید:

1.
فهرست پستی

https://libvirt.org/contact.html

2.
سامانه ثبت اشکالات

https://libvirt.org/bugs.html

به عنوان راهکار جایگزین، می‌توانید اشکالات را به توزیع‌کننده یا فروشنده نرم‌افزار خود گزارش کنید.

لطفاً به پرونده AUTHORS که همراه با libvirt توزیع شده است مراجعه فرمایید.

حق نشر (C) ۲۰۰۶-۲۰۱۲ متعلق به Red Hat, Inc. و نویسندگان فهرست‌شده در فایل AUTHORS برنامه libvirt.

برنامه libvirtd تحت شرایط مجوز GNU LGPL نسخه ۲.۱ یا بالاتر توزیع می‌شود. این یک نرم‌افزار آزاد است؛ برای شرایط رونوشت‌برداری به متن منبع مراجعه کنید. هیچ‌گونه ضمانتی وجود ندارد؛ حتی برای ضمانت تجاری بودن یا مناسب بودن برای یک منظور خاص.

virsh(1), virt-install(1), virt-xml-validate(1), virt-top(1), virt-df(1), https://libvirt.org