در مقاله ساخت ماشین مجازی در VMware vSphere به 5 روش، با انواع روش های ساخت ماشین مجازی آشنا شدیم و گفتیم که یکی از روش های ساخت ماشین مجازی، Clone است. آنچه شما به واسطه vCenter تحت عنوان Clone می شناسید، در واقع همان Full Clone است. اما مفاهیم Instant Clone و Linked Clone عموماً در حوزه End User Computing (EUC) و مجازی سازی Desktop مطرح هستند؛ ساخت این دو مدل Clone از طریق vSphere Client و vCenter امکان پذیر نخواهد بود و لازم است که از API و دستورات CLI استفاده شود. در ادامه به بررسی این سه تکنولوژی خواهیم پرداخت.
Full Clone
در تکنولوژی Full Clone یک Exact Copy از ماشین اولیه تهیه می شود، به نحوی که ماشین دوم کاملاً مستقل از ماشین اولیه خواهد بود. برای تهیه Clone، ماشین مبدا می تواند خاموش یا روشن باشد. واضح است که در صورت روشن بودن ماشین مجازی، نیاز به عملیات Snapshot و Quiescing خواهد بود تا اطمینان حاصل کنیم ماشین مبدا و در نتیجه ماشین Clone گرفته شده در حالت امنی خواهند بود.
برای تهیه Full Clone کافی است از طریق vCenter روی ماشین مجازی کلیک راست کرده و گزینه Clone to Virtual Machine را انتخاب کنید.
Linked Clone
مبنای Full Clone یک ماشین مجازی است، در حالی که در تکنولوژی Linked Clone، مبنی Snapshot یک ماشین مجازی خواهد بود؛ این بدان معنی خواهد بود که در این مدل شما تمام حجم VMDK را Clone نخواهید گرفت، بلکه فقط یک Snapshot درگیر خواهد بود که در نتیجه ماشین Child حجم کمتری اشغال نموده و از همه مهمتر در مدت زمان کمتری آماده خواهد شد. در این معماری دیسک ماشین Parent بین تمام ماشین های Child مشترک است؛ اما هنوز تمام ماشین های Child منابع پردازشی مختص خود را خواهند داشت. پیاده سازی VDI با این روش می تواند حدود 90% در فضای ذخیره سازی صرفه جویی نماید. با این حال ماشین های Child می توانند تغییراتی داشته باشند، اما توجه داشته باشید که این تغییرات روی دیسک مجزای همان ماشین Child ذخیره خواهد شد و تاثیری روی ماشین Parent نخواهد داشت.
با وجود اینکه Linked Clone روش سریعی است، اما توجه دارید که کارایی ماشین های مجازی Child به نحوی وابسته به کارایی دیسک Parent خواهد بود و این در حالی است که به احتمال زیاد تعداد بسیار زیادی I/O از سمت ماشین های متعدد به سمت این دیسک ارسال خواهد شد؛ از این رو لازم است در طراحی خود از دیسک SSD برای دیسک ماشین Parent استفاده کنید.
با کمک این تکنولوژی شما می توانید یک Gold Image از سیستم عامل و برنامه های نصب شده ایجاد کنید، تمام به روز رسانی ها و Policyها را اعمال و در پایان یک Snapshot از ماشین مجازی تهیه کنید. حال کافی است از طریق Horizon View یک Linked Clone Desktop Pool مبتنی بر این Snapshot تهیه کنید که منجر به ایجاد یک Replica Disk یا همان دیسک مشترک بین تمام ماشین خواهد شد. دیسک Replica با دسترسی فقط خواندی در دسترس ماشین های Child Desktop Pool خواهد بود.
از این پس هرگونه تغییراتی که روی سیستم عامل اعمال شود (به عنوان مثال برنامه های جدید نصب شده روی ماشین Linked Clone)، روی OS Disk ذخیره خواهد شد. این دیسک تنها تغییرات را نسبت به Replica Disk نگهداری خواهد کرد. متاسفانه این تغییرات قابل ذخیره سازی و پشتیبان گیری نخواهد بود و با هر بار عملیات Refresh و یا Recompose از دست خواهد رفت.
همچنین می توان کلیه اطلاعات پروفایل کاربران و هر آنچه در C:\Users\[User Name] ذخیره می شود را در دیسک جداگانه ای با نام Persistent Disk ذخیره کرد. این کار باعث خواهد شد بعد از عملیات Refresh و یا Recompose، کلیه اطلاعات پروفایل کاربران حفظ شود.
از طرفی این امکان وجود دارد که جهت جلوگیری از رشد بیش از حد فضای ذخیره سازی، یک سری اطلاعات و فایل های فرار (Volatile) را از OS جدا کرده و در دیسکی که اصطلاحاً Disposable Disk نام دارد ذخیره کرد. این اطلاعات شامل موارد زیر است:
- Windows Swap Files (Page Files)
- Environment Variables TMP
- Environment Variables TEMP
توجه داشته باشید که اگر قرار است اطلاعات Page Files در دیسک مجزایی ذخیره شود، بهتر است از حالت Automatically Manage خارج و به صورت دستی تنظیم شود تا بتوانیم در طراحی زیر ساخت VDI، دید کاملا روشنی نسبت به فضای ذخیره سازی مورد نیاز داشته باشیم.
اطلاعات این دیسک وقتی یکی از اتفاقات زیر رخ دهد پاک خواهد شد:
- Rebalance
- Refresh
- Recompose
- VM Power-off (فقط از طریق کنسول View نه از طریق vCenter)
زمانی که سیستم عامل بوت می شود، بلافاصله Page Fileها Inflate می شوند، در نتیجه ایده خوبی خواهد بود اگر دیسک Disposable را از دیسک OS جدا کنیم تا از Inflate و Shrink شدن مداوم دیسک سیستم عامل در شرایط مختلف جلوگیری شود. برای فهم بهتر این موضوع باید درک روشنی از ویژگی های مدل دیسک OS در Linked Clone داشته باشیم؛ در ادامه به بررسی این مدل دیسک خواهیم پرداخت.
Persistent Disk و Replica Disk از نوع VMDK استاندارد هستند، بر خلاف دیسک OS که از نوع Space-Efficient Sparse Virtual Disks (SE-Sparse Virtual Disk) است.
در دیسک های مجازی SE-Sparse زمانی که فایلی از داخل سیستم عامل پاک شود، این فضا از روی VMFS آزاد خواهد شد و به این ترتیب جلوی رشد بی رویه و سریع فضای Datastore در گذر زمان گرفته می شود. فرآیند آزاد سازی فضا (Space Reclamation) در دیسک های SE-Sparse شامل دو مرحله است؛
- Wipe: مرحله اول در داخل لایه مجازی و داخل Guest OS و به واسطه VMware Tools انجام می شود. در این مرحله؛
- فایل سیستم مربوط به Guest OS با دستور VMware Tools اسکن می شود.
- بلاک های بلا استفاده پس از Defragmentation به عنوان Free علامت گذاری خواهند شد.
- دستور SCSI UNMAP از طریق Guest OS به VMkernel ارسال می شود
- Shrink: این مرحله مربوط به لایه فیزیکی ESXi و Array است.
- در دستگاه های SCSI، سرور ESXi دستور SCSI UNMAP را برای Array ارسال می کند.
- برای دستگاه های NFS، سرور ESXi به وسیله RPC، دستورTRUNCATE را فراخوانی می کند.
Instant Clone
این تکنولوژی که مبتنی بر VMFork (قابلیت جدید vSphere 6) است، برای اولین بار در Horizon نسخه 7 معرفی شد. در Instant Clone همانند Linked Clone یک دیسک مشترک مورد استفاده قرار خواهد گرفت، اما بر خلاف Linked Clone که هر ماشین منابع پردازشی مستقل خود را دارد، در Instant Clone محتویات حافظه ماشین Parent نیز با ماشین های Child مشترک است؛ در نتیجه علاوه بر صرفه جویی در مصرف فضای ذخیره سازی، در مصرف حافظه نیز صرفه جویی خواهد شد.
فرآیند ساخت Desktop Pool در این مدل حتی از Linked Clone نیز به مراتب سریعتر خواهد بود. سرعت به قدری بالا است که به محض Log Off کردن کاربر، ماشین مجازی او پاک شده و یک ماشین مجازی جدید برای او ایجاد و تخصیص داده می شود. نمودار زمانی زیر به خوبی این موضوع را نشان می دهد.
جدول زیر مقایسه زمانی است بین دو تکنولوژی Linked Clone و Instant Clone در ساخت یک Desktop Pool با 1000 ماشین مجازی.
Type of Clone | Time to Create a Pool | Average Time to Create 1 VM |
Instant Linked Clones | 25 minutes | 1.5 seconds |
View Composer linked clones | 170 minutes | 10.2 seconds |
با توجه به اینکه بعد از هر Log Off، ماشین مجازی کاربر پاک شده و مجدداً ایجاد می شود، در نتیجه دیگر نیازی به Refresh و Recompose نخواهد بود؛ بنابراین عملیات به روز رسانی Master Image به دون نیاز به Downtime و حتی در طول ساعات کاری نیز قابل انجام خواهد بود. از طرفی از آنجا که چرخه حیات ماشین مجازی بسیار کوتاه است، به عملیات Wipe/Shrink و در نتیجه دیسک SE-Sparse نیز نیازی نمی باشد. توجه داشته باشید که در این تکنولوژی بر خلاف Linked Clone نیازی به سرویس View Composer نخواهد بود.