virt-clone(1) Virtualization Support virt-clone(1)

virt-clone - همتاسازی و ایجاد کلون از ماشین‌های مجازی مهمان

virt-clone [گزینه]...

دستور virt-clone یک ابزار خط فرمان برای همتاسازی و کلون‌گیری از تصاویر ماشین مجازی موجود با استفاده از کتابخانه مدیریت هایپروایزر libvirt است. این ابزار تصاویر دیسک هر ماشین مجازی موجود را کپی می‌کند و یک مهمان جدید با پیکربندی سخت‌افزاری مجازی یکسان تعریف می‌نماید. المان‌هایی که نیازمند یکتایی هستند به‌روزرسانی می‌شوند تا از تداخل بین مهمان قدیم و جدید جلوگیری شود.

به‌طور پیش‌فرض، اگر اطلاعات لازم برای کلون کردن مهمان ارائه نشود، virt-clone یک خطا نمایش می‌دهد. گزینه --auto-clone تمام ورودی‌های مورد نیاز را به جز مهمان مبدا برای کلون کردن تولید می‌کند.

لطفاً توجه داشته باشید که virt-clone هیچ چیزی را در _داخل_ سیستم‌عامل مهمان تغییر نمی‌دهد، بلکه تنها دیسک‌ها را تکثیر کرده و تغییرات سمت میزبان را اعمال می‌کند. بنابراین مواردی مانند تغییر گذرواژه‌ها، تغییر نشانی IP ثابت و غیره خارج از محدوده این ابزار هستند. برای این نوع تغییرات، لطفاً به virt-sysprep مراجعه کنید.

بیشتر گزینه‌ها الزامی نیستند. حداقل نیازمندی‌ها شامل --original یا --original-xml (برای مشخص کردن مهمان جهت کلون‌گیری)، --name و گزینه‌های ذخیره‌سازی مناسب از طریق -file است.

اتصال به یک هایپروایزر غیرپیش‌فرض. برای جزئیات به virt-install(1) مراجعه کنید.
نام مهمان اصلی که باید کلون شود. این مهمان باید خاموش باشد.
فایل xml مهمان libvirt برای استفاده به عنوان مهمان اصلی. نیازی نیست که مهمان روی اتصال libvirt تعریف شده باشد. این گزینه جایگزین پارامتر --original می‌شود.
تولید خودکار نام جدید برای مهمان و مسیرهای جدید برای ذخیره‌سازی.

نمونه‌ای از خروجی احتمالی تولیدشده:

Original name        : MyVM
Generated clone name : MyVM-clone
Original disk path   : /home/user/foobar.img
Generated disk path  : /home/user/foobar-clone.img

اگر نام‌های تولیدشده با ماشین‌های مجازی یا فضاهای ذخیره‌سازی موجود تداخل داشته باشند، یک عدد اضافه می‌شود، مانند foobar-clone-1.img یا MyVM-clone-3.

نام نمونه ماشین مجازی مهمان جدید. این نام باید در میان تمام مهمان‌های شناخته‌شده برای اتصال هایپروایزر، از جمله مواردی که در حال حاضر فعال نیستند، یکتا باشد.
شناسه UUID برای مهمان؛ اگر مقداری داده نشود یک UUID تصادفی تولید خواهد شد. در صورت تعیین UUID، باید از یک عدد هگزادسیمال ۳۲ رقمی استفاده کنید. شناسه‌های UUID به‌گونه‌ای در نظر گرفته شده‌اند که در کل مرکز داده و در واقع در سراسر جهان یکتا باشند. در صورت تعیین دستی UUID این نکته را به خاطر داشته باشید.
مسیر فایل، پارتیشن دیسک یا حجم منطقی (Logical Volume) برای استفاده به عنوان فضای پشتیبان دیسک مجازی مهمان جدید. اگر مهمان اصلی دارای چندین دیسک باشد، این پارامتر باید به ازای هر دیسک در ماشین مجازی اصلی چندین بار تکرار شود.
مسیر اختیاری برای فایل جدید VARS مربوط به nvram. اگر مسیری مشخص نشود و مهمان دارای nvram باشد، مسیر جدید nvram به‌طور خودکار تولید خواهد شد. اگر مهمان nvram نداشته باشد این گزینه نادیده گرفته می‌شود.
اجبار به همتاسازی هدف دیسک ارائه‌شده ('hdc', 'sda' و غیره). به‌طور پیش‌فرض، virt-clone از برخی دیسک‌ها صرف‌نظر می‌کند، مانند مواردی که به عنوان 'readonly' یا 'shareable' علامت‌گذاری شده‌اند.
صرف‌نظر کردن از همتاسازی هدف دیسک ارائه‌شده ('hdc', 'sda' و غیره). به‌طور پیش‌فرض، virt-clone برخی تصاویر دیسک، معمولاً دستگاه‌های خواندن/نوشتن را کلون می‌کند. از این گزینه برای صرف‌نظر کردن از کپی کردن یک دستگاه خاص استفاده کنید تا ماشین مجازی جدید از همان مسیر ذخیره‌سازی ماشین مجازی اصلی استفاده نماید.
تخصیص کامل فضای ذخیره‌سازی جدید در صورتی که مسیر مورد کلون یک فایل پراکنده (sparse) باشد. برای جزئیات بیشتر در مورد فایل‌های پراکنده در برابر غیرپراکنده به virt-install(1) مراجعه کنید.
هیچ فضای ذخیره‌سازی کلون نمی‌شود: تصاویر دیسک مشخص‌شده توسط --file همان‌طور که هستند حفظ می‌شوند و در XML کلون جدید ارجاع داده می‌شوند. این گزینه زمانی مفید است که بخواهید یک الگوی XML ماشین مجازی را کلون کنید، اما محتوای ذخیره‌سازی را دست‌نخورده نگه دارید.
انجام کپی سبک (lightweight copy). اگر تصاویر مبدا و مقصد همگی روی یک سیستم‌فایل btrfs باشند، این روش بسیار سریع‌تر است. این قابلیت فقط برای تصاویر دیسک با فرمت خام (raw) کار می‌کند و هر تصویر غیرخام تلاشی برای استفاده از reflink نخواهد داشت.
نشانی MAC ثابت برای مهمان؛ در صورت حذف این پارامتر یا تعیین مقدار RANDOM، یک نشانی مناسب به‌صورت تصادفی تولید می‌شود. نشانی‌ها به‌ترتیبِ فهرست‌شدن در XML مهمان اصلی روی شبکه‌ها اعمال می‌شوند.
چاپ ساختار XML تولیدشده برای کلون و خروج بدون انجام عملیات کلون‌گیری.
پیش از کلون‌گیری، اجرای یک virsh destroy و virsh undefine ساده روی هر ماشین مجازی موجود با --name ارائه‌شده را امتحان می‌کند. اگر این عملیات‌ها شکست بخورند (مانند زمانی که virsh undefine نیازمند فلگ --nvram باشد)، کلون‌گیری شکست می‌خورد و باید ماشین مجازی موجود را به‌صورت دستی حذف کنید.
نمایش پیام راهنما و خروج
نمایش شماره نسخه برنامه و خروج
فعال یا غیرفعال کردن برخی بررسی‌های اعتبارسنجی. برای جزئیات بیشتر به virt-install(1) مراجعه کنید.
نادیده‌گرفتن خروجی‌های غیرخطا.
چاپ اطلاعات رفع اشکال (دیباگ) در ترمینال هنگام اجرای فرآیند نصب. اطلاعات اشکال‌زدایی حتی در صورت حذف این پارامتر در ~/.cache/virt-manager/virt-clone.log ذخیره می‌شود.

کلون کردن مهمانی به نام demo روی اتصال پیش‌فرض، با تولید خودکار نام جدید و مسیر کلون دیسک.

# virt-clone \
     --original demo \
     --auto-clone

کلون کردن مهمانی به نام demo که دارای یک دیسک تکی برای کپی است

# virt-clone \
     --original demo \
     --name newdemo \
     --file /var/lib/xen/images/newdemo.img

کلون کردن یک مهمان QEMU با چندین دیسک

# virt-clone \
     --connect qemu:///system \
     --original demo \
     --name newdemo \
     --file /var/lib/xen/images/newdemo.img \
     --file /var/lib/xen/images/newdata.img

کلون کردن یک مهمان بر روی یک دستگاه فیزیکی که حداقل به اندازه دیسک‌های مهمان اصلی فضا دارد. اگر دستگاه مقصد بزرگ‌تر باشد، مهمان جدید می‌تواند پس از بوت شدن اندازه سیستم‌فایل را تغییر دهد.

# virt-clone \
     --connect qemu:///system \
     --original demo \
     --name newdemo \
     --file /dev/HostVG/DemoVM \
     --mac 52:54:00:34:11:54

لطفاً به https://virt-manager.org/bugs مراجعه کنید

حق نشر (C) فوجیتسو لیمیتد، حق نشر (C) شرکت ردهت (Red Hat) و مشارکت‌کنندگان مختلف. این نرم‌افزار آزاد است. شما می‌توانید نسخه‌های آن را تحت شرایط پروانه عمومی همگانی گنو (GPL) https://www.gnu.org/licenses/gpl.html بازتوزیع نمایید. تا حد مجاز قانون، هیچ ضمانتی وجود ندارد.

virt-sysprep(1), virsh(1), virt-install(1), virt-manager(1), وب‌سایت پروژه https://virt-manager.org