دسکتاپ پول Linked Clone در مجازی سازی دسکتاپ
امروزه مدیران شبکه به اهمیت و مزایای مجازی سازی پی بردهاند و با توجه به امکانات بسیار مطلوب مجازی سازی دسکتاپ، به آن روی آورده اند. مهندس اشکان پزشکی در شش مقاله قبلی خود در مورد مفاهیم مجازی سازی دسکتاپ و نیازمندیهای نصب و راه اندازی VMWare Horizon View که در واقع راهاندازی VDI میباشد توضیح دادند. در این مقاله که هفتمین بخش از این بحث میباشد، در مورد یکی انواع دسکتاپهایی که میتوانیم از طریق VMWare Horizon View ساخت، توضیح خواهیم داد. تیم فنی پردیس پارس به صورت تخصصی آماده ارائه خدمات در زمینه راه اندازی VDI از طریق راهکاری VMWare میباشد. مجازی سازی سرور، مجازی سازی دسکتاپ، مجازی سازی نرم افزار جزو خدمات تخصصی تیم فنی پردیس پارس میباشد. در مقالات بعدی در مورد مجازی سازی شبکه که از طریق NSX انجام می شود صحبت خواهیم کرد.
پروسه پیاده سازی Linked clone به این صورت میباشد که برای دسکتاپ مجازی کاربر یک دلتا دیسک ساخته و مورد استفاده قرار میگیرد. دیتاهای متفاوت بین این سیستم عامل و OS اصلی در این دلتا دیسک ذخیره میشود. بر خلاف روش Full Clone در این روش ( Linked Clone) ما شاهد ایجاد یک کپی کامل از Virtual Disk نمیباشیم. واژه Linked Clone به این موضوع اشاره میکند که برای انجام هرکاری باید به parent نگاه کرد و تمام اتفاقاتی که رخ میدهد از replica خوانده شود. به طور کلی replica یک کپی از snapshot ماشین مجازی اصلی میباشد.
اگر به Linked clone اجازه دهید به صورت بالقوه به همان اندازهای رشد میکند که replica دیسک شما بزرگ شده است. با این حال شما میتوانید محدودیت هایی را اعمال نمایید و مشخص کنید که تا چه مقداری افزایش صورت پذیرد و اگر VM به مقدار مورد نظر رسید refresh شود.
بعد از اینکه یک دسکتاپ مجازی به صورت linked clone ساخته شد تفاوت بین VM اصلی و VM جدید ساخته شده بیاندازه کوچک میباشد. بنابراین میزان ظرفیت مورد نیاز storage نسبت به Full clone بسیار ناچیز است.
تکنولوژی جالبی که پشت Linked Clone قرار دارد بیشتر شبیه به یک snapshot میباشد تا یک clone اما یک تفاوت کلیدی وجود دارد این تفاوت را ما با نام View Composer میشناسیم. با View Composer این قابلیت برای شما ایجاد میشود که بیش از یک snapshot اکتیو داشته باشید که این snapshot به VM دیسک اصلی متصل شده است. این امکان اجازه میدهد که چندین image از دسکتاپهای مجازی از یک Parent ساخته شود.
بهترین حالتی که میتوان در یک محیط عملیاتی پیاده سازی کرد Linked clone است. Linked clone بسیاری از الزامات دست و پاگیر مربوط به Storage را از بین میبرد. البته فراموش نکنید که در بعضی از موارد شما باید از Full Clone استفاده نمایید. هر زمان که بحث Storage به میان میآید اولین چیزی که در ذهن ما جرقه میخورد ظرفیت است اما فراموش نکنیم که Performance یکی از اصلیترین المانهای ذخیرهسازی میباشد. تمام virtual desktop های ما که به صورت Linked clone تهیه شدهاند برای خواندن اطلاعات به سراغ replica دیسک میروند و در نتیجه یک رقم بالایی از (Input/output Per seconds (IOPS بوجود میآید. بر اساس طراحی که شما برای Desktop pool خود درنظر گرفتهاید بیش از یک replica نیاز خواهید داشت. همچنین data store ها اگر بیش از یک عدد باشند مسلما خروجی بهتری ایجاد خواهد شد. تمام این موارد به تعداد کاربرانی که برای آنها دسکتاپ درنظر گرفته شده است وابستگی مستقیم دارد.
در Horizon View انتخاب مکانی که replica قرار میگیرد با شما است. توصیه ما این است که replica خود را در Fast Storage قرار دهید مثلا در Local SSD قرار بگیرد.
راه حل جایگزین برای فراهم سازی بستر مناسب استفاده از تکنولوژی Storage acceleration میباشد که دارای IOPS بسیار مناسبی است. Horizon View دارای راهکار یکپارچه سازی مربوط به خودش است که این تکنولوژی را (View Storage Accelerator (VSA یا (Content Based Read Cache (CBRC نام نهاده است. این قابلیت به شما امکان میدهد تا حدود 2 گیگا بایت از مموری ESXi هاست خود را اختصاص داده تا همانند یک Cache عمل کرده و برای خواندن بلاکها مورد استفاده قرار گیرد. ما درصدد هستیم سیستم عامل دسکتاپها بر روی همین بلاکها بوت شده و بالا بیایید که همین امر سبب سرعت بخشیدن به روند انجام کار میشود.
نکته: توجه داشته باشید که View Storage Accelerator بهصورت پیش فرض فعال میباشد ( در حالت استفاده از Instant Clones) و امکان انجام تنظیمات توسط کاربر وجود ندارد.
راهکار دیگر (View Composer Array Integration (VCAI نام دارد که پروسسهای ایجاد شده توسط Linked clone ها را بر روی خود Storage آفلود میکند.
برنامههای جانبی دیگری هم وجود دارند که مشکلات کارائی و bottleneck های مربوط به Storage ها را حل میکنند. برنامههایی مانند Atlas Computing و محصولاتی مانند ILIO و یا استفاده از all-flash array مانند Tintri
Linked Clone ها چگونه کار میکنند؟
اولین قدم در ساخت image اصلی برای دسکتاپ مجازی شما شامل مواردی مانند: سیستم عامل، اپلیکیشن های اصلی، تنظیمات و Horizon View Agent Components میباشد. این virtual desktop machine تبدیل به VM اصلی شما میشود.
(Gold Image)
این ایمیج مثل یک template مورد استفاده قرار میگیرد تا VM های جدیدی از روی آن ساخته شود.
توجه داشته باشید که gold image یا parent image نمیتواند یک VM template باشد.
مروری گذرا به پروسهی ساخت Linked clone در دیاگرام زیر داشته باشیم :
اولین باری که اقدام به ساخت parent virtual desktop یا Gold image میکنیم (1) یک snapshot تهیه کنید.(2) وقتی desktop pool خود را ساختید این snapshot انتخاب شده و تبدیل به replica می شود (3) و read-only میگردد. هر دسکتاپ مجازی که شما ایجاد میکنید به این replica متصل میشود. و اصطلاح Linked clone هم از همین قضیه نشات میگیرد.
ساخت تعداد زیادی snapshot برای VM ها اصلا کار درستی نمیباشد. تعدد زیاد snapshot ها سبب کاهش performance شده و شناسایی اینکه هر کدام برای چه منظوری میباشند را سخت میکند.
چرا View Compose ساخته شده است ؟
در حین پروسهی ساخت ایمیج و اولین Replica دیسکی که ساخته میشود View Composer یک virtual disk ایجاد میکند که شامل Linked clone خودش میباشد.
Linked Clone Disk
Linked clone دیسک اساسا یک virtual disk خالی است که به یک دسکتاپ مجازی که کاربران بر روی آن لاگین میکنند attach شده است.
این دیسک از یک سایز کوچک شروع میشود و در مرور زمان رشد میکند و میزان رشد آن بستگی به تغییرات بلاکهای درخواستی دارد. تغییرات بلاک ها در دیسک linked clone ذخیره شده و در بعضی موارد این دیسک بهعنوان دلتا دیسک و یا Differential disk معرفی میشود.
همان گونه که قبلا اشاره شد linked clone دیسک توانایی رسیدن به بالاترین رشد سایزی خود را دارد به طوری که هم اندازه VM اصلی شود. فراموش نکنید که شما نباید اجازه بدهید چنین اتفاقی رخ دهد. به صورت نرمال انتظار می رود linked clone چندصد مگابایت رشد نماید.
Replica disk به صورت Read-only تنظیم میشود و همانند یک primary disk مورد استفاده قرار میگیرد. هر write و یا تغییرات بلاک که توسط ماشین مجازی درخواست داده شده است به طور مستقیم از Linked clone دیسک نوسته یا خوانده میشود.
همان طور که در مطالب قبلی اشاره کردیم در سناریو Linked clone استفاده از ظرفیت storage به شدت کاهش مییابد اما در نظر داشته باشید که شما باید شرایطی ایجاد نمایید که storage تان میزان زیادی از IOPS را در یک LUN پشتیبانی نماید. توصیه ما اختصاص Teir1 استورج میباشد.
Persistent Disk or user data disk
قابلیت Persistent Disk از View Composer که به شما اجازه میدهد پیکربندی یک دیسک مجزا را انجام داده به طوری که این دیسک شامل دیتاهای کاربر و تنظیماتش میباشد و کاملا تفکیک شده از OS است. این قابلیت سبب میشود دیتاهایی که مربوط به کاربر است در برابر آپدیت ها و یا تغییراتی که بر روی OS اعمال میشود محفوظ بماند. مانند عمل Recomposeی که انجام میشود.
توجه داشته باشید که Persistent disk به نام VM اشاره داده میشود و نه بر اساس نام کاربری، بنابراین در هنگام attach کردن دیسک به یک VM دیگر به این موضوع توجه داشته باشید.
Disposable Disk
با قابلیت disposable disk در Horizon View یک temporary دیسک ساخته میشود این دیسک طوری طراحی شده است که هر بار کاربر ماشین را خاموش میکند تمام فایل های اضافی پاک میشود. اگر شما به این موضوع فکر میکنید که کدام فایل های OS پاک میشوند و کدامیک باقی میمانند جواب شما این است که فایلهایی مانند اینترنت کشها و یا پیج فایلهای ویندوز از این دسته میباشند. این گروه از فایل ها توسط Horizon view به disposable دیسک میروند و وقتی VM خاموش میشود تمام آنها پاک میگردند.
در Horizon View هر ماشین مجازی VM یک Disposable دیسک دارد. این disposable disk جهت نگهداری از فایلهای temporary مورد استفاده قرار میگیرد و وقتی VM خاموش میشود تمام این فایل ها پاک خواهد شد. این فایلها مواردی هستند که اصلا نیازی به ذخیره آنها وجود نداشته و فضایی بیمورد را اشغال میکنند. برای مثال Page فایلهای ویندوزی، temporary فایلهای سیستم و لاگ فایلهای مربوط به VMware میباشند.
به این نکته توجه اکید داشته باشید که روی صحبت ما در مورد Temporary فایلها میباشد و اصلا در مورد فایلهای کاربران اقدامی صورت نمیگیرد. Temporary فایلهای یک کاربر به صورت کاملا محفوظ بر روی دیسک ذخیره شده و باقی میمانند. برنامههای زیادی از temp فولدر ویندوز جهت نصب CAB فایل هایشان استفاده می نمایند. ممکن است شما تمایل داشته باشید temporary فایل های کاربران تان را پاک کنید تا بتوانید سایز ایمیج را کنترل نمایید در این صورت میتوانید اطمینان حاصل کنید که temporary فایل های کاربران به صورت مستقیم بر روی disposable disk قرار گرفته است.
Internal disk
بالاخره ما دیسک داخلی را داریم. دیسک داخلی جهت ذخیره کردن پیکربندیهای مهم همانند پسورد اکانت ها، و ذخیره تنظیمات مربوط به sysprep و Quickprep استفاده میشود.
به لحاظ فضای دیسک، دیسک داخلی نسبتا کوچک بوده و به طور میانگین 20 مگابایت میباشد. به صورت پیش فرض، کاربران این دیسک را مشاهده نمیکنند. این دیسک حاوی اطلاعات مهمی بوده که شما نمیتوانید آنها را پاک نمایید.