توانایی بازیابی فضای ذخیرهسازی تخصیصیافته به VMها، ویژگی مهمی در vSphere است که به آرایههای ذخیرهسازی امکان میدهد تا حداکثر کارایی ممکنشان را برای اطمینان از در دسترس بودن ظرفیتی که قبلا استفاده شده، داشته باشند. فرآیند بازیابی فضای ذخیرهسازی که UNMAP نامیده میشود، یک دستور SCSI است که توسط آرایههای ذخیرهسازی و برای بازیابی بلوکهای دیسکی که پس از حذف دادههای موجود، عملیات نوشتن هم روی آنها انجام شده، استفاده میشود. یک فرمان UNMAP معمولا توسط یک میزبان صادر میشود؛ میزبان است که به آرایه ذخیرهسازی میگوید دقیقا کدام بلوکهای دیسک حاوی دادههای حذف شده هستند. بنابراین آرایه میتواند تخصیص دهد که کدام بلوکها باعث افزایش بیشتر مقدار فضای آزاد موجود در آرایه میشوند.
اما چرا آرایه ذخیرهسازی نمیتواند بهتنهایی و بدون اینکه دستوری دریافت کند بازیابی فضا را انجام دهد؟ دلیل این است که آرایههای ذخیرهسازی از آنچه در داخل یک File system رخ میدهد بیاطلاع هستند؛ File system چه ویندوز باشد چه VMFS، آرایههای ذخیرهسازی هیچ دیدی نسبت به آنچه در یک LAN اتفاق میافتد ندارند. در نتیجه، آنها هیچ اطلاعی از زمان حذف فایلها، ماشینهای مجازی یا بلوکهای دیسک ندارند. به همین دلیل است که ویندوز، ESXi یا هر آنچه که File system را مدیریت میکند، باید به آرایه ذخیرهسازی بگوید که چه زمانی میتواند دادههای حذف شده را بازیابی کند.
بازیابی فضای دیسک چگونه توسط vSphere انجام میشود؟
بازیابی فضای دیسک اهمیت بالایی دارد و vSphere، چندین عملیات ذخیرهسازی را ارائه میدهد که منجر به حذف دادهها در یک آرایه ذخیرهسازی میشود. یکی از این عملیات، Storage vMotion است که در آن یک VM زمانی که Snapshotهایش یا خودش حذف میشوند، از یک Data store به دیگری منتقل میشود. در حین انجام این عملیات، Storage vMotion بیشترین تاثیر را بر Thin provisioning دارد؛ زیرا کل دیسکهای مجازی بین دیسکها در حال حرکت هستند و این منجر به هدر رفتن فضای زیادی میشود که قابل بازیابی هم نیست. علاوه بر این، هنگامی که دادههای یک VM که عملیات Thin provisioning روی آن اجرا شده حذف میشوند، دادهها را میتوان بازیابی کرد؛ در واقع سیستم عامل مهمان دستورات UNMAP را به آرایه ذخیرهسازی ارسال میکند.
اجرای دستورات UNMAP روی بلوکهای دیسک میتواند یک عملیات متمرکز بر منابع در آرایه ذخیرهسازی باشد و به همین دلیل، رفتار عملکرد UNMAP در vSphere 5.0 نسبت به نسخههای قبلی تغییر کرده است. UNMAP در ابتدا به عنوان یک عملیات کاملا خودکار و همگام شروع شد؛ به این معنی که بلوکهای دیسک در زمان واقعی و به محض حذف دادهها در vSphere بازیابی میشدند. به دلیل برخی مسائل که خیلی سریع هم کشف شدند، فرآیند UNMAP از vSphere 5.0 U1 تا vSphere 6.0، به یک فرآیند دستی تبدیل شد که باید از طریق دستورات CLI آغاز به کار میکرد. این فرآیند دستی کار میکرد، منابع را خیلی درگیر میکرد، زمانبر و همچنین ناکارآمد بود! دلیل اصلی این مشکلات هم عدم آگاهی از فضای نیازمند به بازیابی بود که باعث میشد هرچه که امکان بازیابی شدن داشت، بدون توجه به اولویتها بازیابی شود.
در نهایت، در vSphere 6.5، فرآیند UNMAP دوباره خودکار شد، با این تفاوت که این بار دیگر عملیات، همگام نیست؛ به این معنی است که بلوکهای دیسک در زمان واقعی بازیابی نمیشوند، بلکه به عنوان یک فرآیند در پسزمینه و با نرخ پایین ثابت (۲۵ مگابایت بر ثانیه) بازیابی میشوند. این یک تغییر خوشآمد و مورد انتظار بود، زیرا vSphere سرانجام آرایه ذخیرهسازی را خبردار میکند که دقیقا کدام بلوکهای دیسک سرعت کمی دارند تا پروسه بازیابی روی آنها آغار شود. در vSphere 6.7 این امر حتی بهتر هم شد؛ حالا دیگر امکان تنظیم نرخ احیا توسط کاربر وجود دارد تا سرعتی که vSphere دستورش را به آرایه ذخیرهسازی برای بازیابی بلوک دیسک میدهد هم قابل تنظیم باشد. نرخ بازسازی را میتوان در کلاینت vSphere از ۱۰۰ مگابایت بر ثانیه تا ۲۰۰۰ مگابایت در ثانیه تنظیم کرد. با این حال، اگر برای بازگرداندن ظرفیت ذخیرهسازی عجله ندارید، توصیه میشود که نرخ را پایین نگه دارید تا حجم کاری عملیات UNMAP، فشاری زیادی به VM وارد نکند.
مقاله پیشنهادی“Software-Defined Storage یا SDS چیست؟”
یک نکته کلیدی که باید به آن توجه داشت این است که اجرای UNMAP در سطح VM (نه در سطح سیستم عامل مهمان)، فقط در هنگام استفاده از Data storeهای VMFS قابل انجام است. با معماری جدید VMware Virtual Volumes (VVols)، اجرای UNMAP در سطح VM به عنوان یک آرایه ذخیرهسازی مورد نیاز نیست؛ البته اگر کاملا آگاه باشید که کدام دیسک روی بلوکهای VM قرار دارد. زیرا VM به صورت بومی در یک آرایه ذخیرهسازی بدون File system نوشته شده است. این یکی از مزیتهای بزرگ VVols است و دیگر اجباری وجود ندارد که vSphere به میزبان بگوید چه دیسکی را برای UNMAP مسدود میکند. زیرا آرایه از قبل آگاهی کامل دارد و میتواند فضا را با هر نرخی که میخواهد بازیابی کند. با VVols یک آرایه ذخیرهسازی بسیار کارآمدتر میشود، زیرا تمام عملیات تامین و احیا به صورت پویا انجام میشود.
تفاوتی ندارد که از VMFS یا VVols در فضای مهمان استفاده میکنید، در هر صورت میتوان برای سیستمعاملهای مهمان که از آن پشتیبانی میکنند تا امکان احیای فضای بیشتری وجود داشته باشد، احیاسازی را انجام داد. vSphere درFile system سیستم عامل مهمان، امکان مشاهده ندارد تا بداند چه فایلهایی حذف شدهاند. اگر سیستم عامل مهمان دستورات UNMAP را ارسال کند، vSphere فقط آنها را به آرایه ذخیرهسازی منتقل میکند تا ضمن پردازش آنها، فضا را بازیابی کند.
جمعبندی: HPE، کجای بازیابی قرار میگیرد؟
توانایی بازیابی فضای دیسک به شما این امکان را میدهد که از ظرفیت ذخیرهسازی خود به بهترین شکل استفاده کنید و نیاز به افزایش فضا را به حداقل برسانید. HPE Storage بهطور کامل از احیای فضا در هر دو آرایه ذخیرهسازی HPE 3PAR StoreServ و HPE Nimble پشتیبانی میکند. در واقع، HPE Storage با ۳PAR یکی از اولین شرکایی هستند که بیش از هفت سال پیش از UNMAP در روز اول انتشار اولیه آن به عنوان بخشی از vSphere 5.0 پشتیبانی کردند. HPE با پشتیبانی از تمام امکانات VMware، از گذشته تا امروز پیشرو بوده و حالا هم شاهد همکاری VVols و VMware هستیم. UNMAP، VVol، پلاگینهایی برای VMware، HPE 3PAR و Nimble، همگی پلتفرمهای ذخیرهسازی ایدهآلی هستند که دارای معماریهای مدرنی هستند که با بهینهسازی زیرساخت، سادهسازی مدیریت فضای ذخیرهسازی و به حداکثر رساندن صرفهجویی در مجازیسازی را با خود به همراه دارند.