یادداشت ویراستار: اصل این مطلب در بهمن ۹۶ نوشته شده بود و در فروردین ۰۰ دوباره بررسی و بهروز شده است.
پیش از تامین بودجه برای تجهیزات اضافی، مانند قطعاتی که قیمتشان مثل قیمت سرور بالاست، گزینههایی مثل مجازیسازی را در نظر بگیرید زیرا با هزینهی بسیار کمتری میتوانید شبکه را گسترش داده یا تجهیز کنید.
آنچه در این مقاله میخوانید آشنایی با انواع Disk Provisioning در VMware، بررسی مزایا و معایب و مقایسه آنها است. با توسعه شبکه آداکهمراه باشید.
- Provisioning چیست؟
- Disk Provisioning چیست؟
- انواع Disk Provisioning
- Thin provisioning چیست؟
- Thick provisioning چیست؟
- تفاوت lazy zeroed و eager zeroed و Lazy zeroed disk
provisioning چیست؟
Provisioning یعنی چیزی را قابل دسترس کردن یا فراهم کردن. Provisioning در زمینه IT یعنی پروسه برپایی زیرساخت آی تی. Provisioning یعنی مراحل لازم برای مدیریت دسترسی به دیتا و منابع و قابل دسترس کردن آن برای کاربران و سیستمها. Provisioning با پیکربندی و کانفیگ کردن فرق دارد اما در پروسه پیاده سازی در کنار هم استفاده میشوند.
اصطلاح Provisioning در زمینههای مختلف استفاده میشود:
- server provisioning
- network provisioning
- user provisioning
- service provisioning
- storage provisioning
storage provisioning در زمینه تخصیص استوریج مطرح است و پروسه تخصیص استوریج با هدف بهبود کارایی در storage area network (SAN) است که در این مقاله بیشتر مورد بررسی قرار میگیرد.
disk provisioning چیست؟
هنگام ایجاد ماشین مجازی به راحتی میتوانید، نحوه اختصاص دیسک به ماشین مجازی را مشخص کنید که به این کار Disk Provisioning گفته میشود. وقتی ماشین مجازی VMware را ایجاد یا Provision میکنید، دیتای ماشین مجازی در هارد دیسک مجازی ذخیره میشود. خواندن مقاله “Vmware چیست و چه کاربردهایی دارد؟” توصیه میشود.
Disk type در VMware vSphere چیست؟ در VMware دو نوع مهم هارد دیسک مجازی داریم که عبارتند از thin-provisioned disks و thick-provisioned disks. نوع دومی خود دو نوع دارد: Eager و Lazy.
کدام یک از سه نوع دیسک مجازی که VMware برای ذخیره سازی فایل در ماشینهای مجازی دارد، بهتر است؟ پاسخ این سوال، آسان نیست چون هر نوع مزایای خودش را دارد، مثلا یکی کارایی بهتری موقع initial disk writes دارد و دیگری امنتر است و دیگری بهینهتر مخصوصا وقتی فضای هارد مساله مهمی باشد.
انواع disk provisioning
به صورت کلی از سه روش میتوانید برای Disk Provisioning استفاده کنید:
- Thin Provisioning: در این روش مقداری از فضای Datastore را به صورت یک دیسک در اختیار ماشین مجازی قرار میدهیم ولی ماشین مجازی فقط بر اساس نیاز خود از این فضا استفاده میکند و مابقی این فضا آزاد است و میتواند در اختیار بقیه ماشینهای مجازی قرار بگیرد. کمسرعتترین نوع Provisioning است.
- Eager Zeroed Thick Provisioning: در این روش ما مقداری از فضای Datastore را به صورت یک دیسک در اختیار ماشین مجازی قرار میدهیم. در این روش تمام فضای اختصاص داده شده به ماشین مجازی رزرو میشود و در همان ابتدا هر Block روی دیسک، با صفر پر میشود. پرسرعتترین نوع Provisioning است.
- Lazy Zeroed Thick Provisoning: در این روش مقداری از فضای Datastore را به صورت یک دیسک در اختیار ماشین مجازی قرار میدهیم. در این روش تمام فضای اختصاص داده شده به ماشین مجازی رزو میشود ولی در این روش زمانی که قرار است دیتا روی دیسک قرار گیرد Block مربوط به آن با صفر جایگزین میشود و سپس دیتا روی آن قرار میگیرد. سرعت این نوع Provisioning، متوسط است.
thin provisioning چیست؟
Thin provisioning در سطح virtual disk و سطح storage array قابل انجام است. در Thin provisioning پراویژن کردن دیسک بدون اختصاص کامل فضای دیسک انجام میشود. در زمان ایجاد دیسک، فضای مورد نیاز را از Datastore درخواست میکنید و بعدها و بر اساس نیاز، درخواست فضای بیشتر خواهید داد (overprovisioning). مثلا اگر ماشین مجازی با مقدار ۱۰۰GB thin provisioned hard disk ایجاد کردهاید و فقط یک گیگابایت دیتا روی آن ذخیره کردهاید، همان یک گیگ را از هارد فیزیکی استفاده میکنید و نه ۱۰۰ گیگ. یعنی مقدار فضای این Vdisk کمتر از ۱۰۰ گیگ است و دقیقا برابر با مقداری است که VM هم اکنون استفاده میکند.
وقتی دیتایی از thin-provisioned virtual disk پاک شود، اندازه دیسک به صورت اتوماتیک کم نمیشود چون سیستم عامل فقط ایندکسها را از جدول فایل که به بدنه فایل در فایل سیستم اشاره میکند، پاک میکند؛ و بلاکهایی که به فایلهای پاک شده تعلق دارند را علامت میزند تا نشان دهد آزاد هستند و برای نوشتن دیتای جدید قابل دسترس است. به همین دلیل در نظر ما فایل پاک شده اما اگر full deletion شود یعنی روی بلاکهایی که فایلهای پاک شده قرار دارند، صفر نوشته شود، دیتا به طور کامل پاک میشود. برای این کار در لینوکس باید Disk shrinking انجام دهیم و در ویندوز از برنامه SDelete استفاده کنیم. این کار بسته به اندازه فایل زمان متفاوتی لازم دارد.
مزایای Thin provisioning عبارتند از:
- کمترین زمان برای پراویژن و ایجاد کردن دیسک
- امکان overprovisioning کردن استوریج
- مناسب برای زمانی که فضای دیسک مهمتر از کارایی است.
معایب Thin provisioning عبارتند از:
- نیاز به مدیریت فضای استوریج: اینکه با توجه به نیاز میتوان فضای ذخیره بیشتری استفاده کرد، مزیت محسوب میشود اما اگر چند ماشین مجازی از نوع Thin ساخته باشیم و همه آنها همزمان نیاز به فضای ذخیره سازی داشته باشند و دیتااستور فضای کافی نداشته باشد که بتواند آن را در اختیارشان قرار دهد، با مشکل مواجه خواهید شد. در نتیجه همواره باید به فضای آزاد دیسک خود مانیتور کنید. همچنین اگر ماشین مجازی به فضای بیشتری از مقدار پراویژن شده نیاز پیدا کند، Downtime و اشغال زیاد منابع VM اتفاق میافتد.
- بلاک باید ابتدا صفر شود: Thin provisioning کارایی بالاتری نسبت به lazy zeroed thick-provisioned disk ندارد چون در هر دوی اینها، قبل از نوشتنِ اولین دیتا در بلاک جدید باید روی سکتورهای دیسک، صفر نوشته شود.
- نمیتوان از امکانات Clustering و Fault Tolerance در ساختار مجازی سازی استفاده کنید.
- کمترین کارایی را بین سه نوع Provisioning دارد.
thick provisioning چیست؟
thick provisioning نوعی storage pre-allocation است. در Thick provisioning هنگام ایجاد ماشین مجازی، تمام مقدار فضای ذخیره سازی Vdisk روی استوریج فیزیکی به صورت pre-allocated است در نتیجه دیگر VM ها نمیتوانند از این فضا استفاده کنند. مثلا اگر Vdisk با حجم ۱۰۰ گیک را به یک ماشین تخصیص دهید، پس از ساخت این ماشین یک بلاک ۱۰۰ گیگی از استوریج جدا میشود و به این ماشین مجازی اختصاص مییابد.
انواع Thick provisioning عبارتند از:
- Lazy zeroed disk
- Eager zeroed disk
Lazy Zeroed Thick Provisoning چیست؟
Lazy zeroed disk دیسکی است که تمام فضایش را هنگام ایجادش در اختیار دارد اما این فضا ممکن است حاوی دیتاهای قدیمی موجود در رسانه فیزیکی باشد. این دیتای قدیمی پاک نمیشود و یا روی آن چیزی نوشته نمیشود. در نتیجه باید قبل از اینکه بتواند دیتای جدیدی روی بلاکها بنویسد، با صفر پر شود. چون دیسک فرمت نمیشود، سرعت ساخت این نوع دیسک بالاست و همچنین امکان ریکاوری اطلاعات قبلی وجود دارد اما همین ویژگی باعث کمتر شدن امنیت میشود. از طرفی کارایی آن کمتر است چون در اولین نوشتن، باید با صفر پر شود.
Eager Zeroed Thick Provisoning چیست؟
Eager zeroed disk دیسکی است که تمام فضای مورد نیازش را هنگام ایجاد VM میگیرد و تمام این فضا از هر نوع دیتای قبلی موجود در رسانه فیزیکی پاک میشود. سرعت ایجاد چنین دیسکی کمتر از Lazy zeroed disk است یعنی زمان بیشتری میبرد چون تمام دیسک با صفر پر میشود اما کارایی آن در اولین نوشتن بیشتر است. در کل از بین سه نوع دارای بیشترین کارایی است. Eager zeroed disk از ویژگیهای کلاسترینگ از جمله Microsoft Cluster Server و VMware Fault Tolerance پشتیبانی میکند.
تفاوت lazy zeroed و eager zeroed و Lazy zeroed disk
تفاوت lazy zeroed و eager zeroed و Lazy zeroed disk عبارتند از:
- سرعت ایجاد lazy zeroed بیشتر از Eager zeroed disk است.
- کارایی lazy zeroed کمتر از Eager zeroed disk است.
- lazy zeroed کارایی بهتری نسبت به Thin provisioning دارد.
- سرعت ایجاد lazy zeroed کمتر از Thin provisioning است.
- lazy zeroed همانند Thin Provisioned قابلیت Clustering از نوع FT را پشتیبانی نمیکند اما کلاسترینگ از نوع HA را پشتیبانی میکند.
- Eager zeroed disk از ویژگیهای کلاسترینگ از جمله Fault Tolerance پشتیبانی میکند.
با استفاده از Storage vMotion امکان انتقال Vdisk از یک فرمت به دیگر وجود دارد.