در این مقاله به گزینههای مختلف و ملاحظات مربوط به بهبود عملکرد I/O ذخیرهسازی در یک ماشین مجازی خواهیم پرداخت. مسیر I/O ذخیرهسازی شامل Stack ذخیرهسازی Guest، لایه مجازیسازی Host و Stack ذخیرهسازی Host و همچنین دیسک فیزیکی میشود. در ادامه توضیحاتی در مورد چگونگی بهینهسازی در هر یک از این مراحل آورده شده است.
کنترلرهای مجازی (Virtual Controllers)
Hyper-V سه نوع کنترلر مجازی را که شامل IDE ،SCSI و تطبیقدهندگان گذرگاههای Host مجازی یاVirtual Host Bus Adapters ارائه میدهد. در ادامه به بررسی جزئیات می پردازیم.
مفهوم کنترلر IDE
کنترلرهای IDE، دیسکهای IDE را در دسترس ماشین مجازی قرار میدهند. کنترلرهای IDE شبیهسازی شده بوده و تنها کنترلری میباشد که برای ماشینهای مجازی Guestی با نسخههای قدیمی ویندوز که فاقد سرویسهای ادغام ماشین مجازی (Virtual Machine Integration Services) میباشند، در دسترس میباشند. عملکرد I/O دیسک که با استفاده از درایور فیلتر IDE که توسط سرویسهای ادغام ماشین مجازی ارائه میشوند، به طور قابل توجهی بهتر از عملکرد I/O دیسکی است که با کنترلر شبیه سازی IDE ارائه میشود. به دلیل محدودیت عملکردی حداکثر اندازه I/O که برای این دستگاهها وجود دارند، توصیه میکنیم که دیسکهای IDE فقط برای دیسکهای سیستم عامل مورد استفاده قرار گیرند.
کنترلر SCSI چیست؟
کنترلرهای SCSI ، دیسک SCSI را در دسترس ماشین مجازی قرار میدهند و هر کنترلر SCSI مجازی میتواند تا 64 دستگاه را پشتیبانی کند. برای کارایی مطلوب، توصیه میکنیم چندین دیسک را به یک کنترلر SCSI مجازی متصل کرده و تنها در صورت نیاز اتصال ماشین مجازی به دیسکهای بیشتر، کنترلرهای اضافی را ایجاد کنید. مسیر SCSI شبیهسازی شده نیست و به همین دلیل کنترلر ایدهآل برای همهی دیسکها بجز دیسک سیستم عامل میباشند. در واقع این تنها نوع کنترلر پشتیبانی شده در ماشینهای مجازی نسل دوم میباشد. در واقع با ورود نسل دوم ماشین های مجازی، این نوع کنترلر تنها کنترلر موجود برای پشتیبانی از نسل جدید می باشد. در نسخهی ویندوز سرور 2012 R2 قابلیت پشتیبانی کنترلر از دیسک VHDX اشتراکی معرفی شد.
HBAهای Channel Fibre مجازی
HBAهای Fiber Channel مجازی را میتوان پیکربندی کرد تا دسترسی مستقیم ماشینهای مجازی به LUNهای Channel Fibre و Channel Fibre بر روی اترنت (FCoE) را امکان پذیر سازند. دیسکهای Channel Fibre مجازی فایل سیستم NTFS در قسمت پارتیشن Root را دور زده، که باعث کاهش استفاده پردازنده از I/O ذخیرهساز میشود.درایوهای دادههای بزرگ و درایوهایی که بین چندین ماشین مجازی مشترک هستند و برای سناریوهای کلاسترینگ Guestها استفاده می شوند، انتخاب اصلی برای دیسک Channel Fibre مجازی میباشند.دیسکهای Fiber Channel مجازی به یک یا چند تطبیقدهندهی Fiber Channel Host (HBA) نیاز دارند تا بر روی میزبان نصب شوند. هر HBA میزبان ملزم است که از درایور HBAی که قابلیتهای NPIV و Fiber Channel مجازی Windows Server 2016 را پشتیبانی میکند، استفاده کند. ساختار SAN باید از NPIV پشتیبانی کرده و پورت و یا پورتهای HBAای که برای Fiber Channel مجازی استفاده میشوند باید در یک توپولوژی Fiber Channel که از NPIV پشتیبانی میکند، نصب شوند.برای به حداکثر رساندن توان عملیاتی در Hostهایی که با بیش از یک HBA نصب میشوند، توصیه میشود چندین HBA مجازی را در داخل ماشین مجازی و حداکثر تا چهار HBA برای هر ماشین مجازی Hyper-V پیکربندی شود. Hyper-V به طور خودکار برای به تعادل رساندن HBAهای مجازی و HBAهای Host که به همان SAN مجازی دسترسی دارند، تلاشهای مورد نیاز را انجام میدهد.
دیسکهای مجازی
دیسکها میتوانند از طریق کنترلرهای مجازی در دسترس ماشینهای مجازی قرار گیرند. این دیسکها میتوانند هارد دیسکهای مجازی بوده که جداسازی فایلهای یک دیسک میباشند و یا یک دیسک گذرنده از میزبان باشند.دیسکهای مجازی در دو نوع VHD و VHDX وجود دارند. هر یک از این فرمتها سه نوع فایل هارد دیسک مجازی را پشتیبانی میکنند.
فرمت VHD
فرمت VHD تنها فرمت هارد دیسک مجازی است که توسط نسخههای قدیمیتر Hyper-V پشتیبانی میشود. فرمت VHD در Windows Server 2012 اصلاح شده است تا امکان همراستایی بهتری را فراهم کند، که در نتیجه موجب عملکرد بسیار بهتری در دیسکهای Large Sector میشود. هر VHD جدیدی که در Windows Server 2012 و یا نسخهای جدیدتر ایجاد شده باشد دارای هم ترازی بهینه 4 KB میباشد. این فرمت همراستا شده با نسخههای قبلی سیستم عامل Windows Server سازگار است. با این حال، ویژگی همترازی برای تخصیصهای جدید از جداکنندههایی (Parser) که دارای قابلیت همراستایی 4 KB-aware نیستند شکسته خواهد شد. هر VHDی که از یک نسخه قبلی منتقل شود، به طور خودکار به این فرمت VHD بهبود یافته و جدید تبدیل نخواهد شد.
بررسی فرمت VHDX
VHDX یک فرمت هارد دیسک مجازی جدید است که در Windows Server 2012 معرفی شد و به شما اجازه میدهد دیسکهای مجازی بهبود پذیر با عملکرد بالا را ایجاد کنید. مزایای این فرمت عبارتند از:
- پشتیبانی از ظرفیت ذخیرهسازی هارد دیسک مجازی تا 64 ترابایت.
- حفاظت در برابر خرابی دادهها در هنگام خرابیها و قطعیهای برق با Log کردن بهروزرسانیها در ساختارهای Metadataی VHDX.
- قابلیت ذخیره Metadataی سفارشی در مورد یک فایل که ممکن است کاربر بخواهد آن را ثبت کند، مانند نسخه سیستم عامل یا Patchهای اعمال شده.
فرمت VHDX همچنین مزایای عملکردی زیر را نیز ارائه میدهد:
- امکان همراستایی بهتر که در نتیجه موجب عملکرد بسیار بهتری در دیسکهای Large Sector میشود.
- اندازه Blockهای بزرگتر برای دیسکهای Dynamic و Differential، که موجب سازگار شدن بهتر این دیسکها به نیازهای بارهای کاری میشود.
- دیسکهای مجازی Sector منطقی 4 KB که عملکرد بهتری را در هنگام استفاده شدن توسط برنامهها و بارهای کاری طراحی شده برای Sectorهای 4 KB ارائه میدهند.
- کارایی در نمایش دادهها که باعث کاهش اندازه فایل شده که دستگاه حافظه فیزیکی اصلی را قادر به استفاده و بازپسگیری از فضای استفاده نشده میکند. باید به این نکته توجه داشت که Trim به Pass-Through و یا دیسک SCSI و سخت افزار سازگار با Trim نیاز دارد
هنگام ارتقا به Windows Server 2016 توصیه میشود برای این مزایا تمام فایلهای VHD به فرمت VHDX تبدیل شود. تنها شرایطی که نگه داشتن فایلها در فرمت VHD منطقی میباشد، هنگامی است که احتمال انتقال ماشین مجازی به نسخهای از Hyper-V که VHDX را پشتیبانی نمیکند وجود داشته باشد.
انواع فایل هارد دیسکهای مجازی
سه نوع فایل VHD وجود دارند که شامل Fixed, Dynamicو Differencing میشوند. توصیههای زیر باید درهنگام انتخاب یک نوع فایل VHD مورد توجه قرار گیرند:
- هنگام استفاده از فرمت VHD، توصیه میشود از نوع Fixed آن استفاده شود، زیرا دارای بهبود پذیری و عملکرد بهتری نسبت به سایر انواع فایلهای VHD میباشد.
- هنگام استفاده از فرمت VHDX، توصیه میشود از نوع Dynamic استفاده شود، زیرا علاوه بر تضمینهای بهبودپذیری، صرفه جویی در فضا را که از پیامدهای اختصاص دادن فضا فقط در موارد مورد نیاز را ارائه میدهند.
- نوع Fixed نیز هنگامی که ذخیرهسازی در Volume میزبان به صورت فعال مانیتور نمیشود صرف نظر از فرمت توصیه میشود، تا اطمینان حاصل شود که فضای دیسک کافی در هنگام گسترش فایل VHD در زمان اجرا وجود دارد.
- Snapshotهای یک ماشین مجازی برای ذخیره کردن نوشتهشدهها در دیسک، یک VHD از نوع Differencing ایجاد میکنند. داشتن تنها تعداد کمی Snapshot میتواند مصرف CPUی I/Oها را بالا برده، اما ممکن است به طور قابل ملاحظهای عملکرد را تحت تاثیر قرار ندهد، مگر در بارهایکاری سنگین بر روی سI/O سرورها. با این حال، داشتن زنجیرهای از Snapshotها میتواند به طور قابل توجهی بر عملکرد تاثیر بگذارد، زیرا خواندن از VHD میتواند به بررسی Blockهای درخواست شده در بسیاری از VHDهای تمایزی نیاز داشته باشد. کوتاه نگهداشتن زنجیرههای Snapshotها برای عملکرد خوب I/O دیسک بسیار مهم است.