Storage Provisioning

Storage provisioning چیست ؟
به روند اختصاص منابع استوریج به سرورها بر مبنای الزاماتی مانند ظرفیت، دسترسی پذیری و کارایی، گفته می شود، که از دو راه Traditional و Virtual انجام می گیرد.
Traditional Provisioning
در این روش، دیسک درایوهای سخت افزاری به صورت منطقی و با استفاده از RAID Level مشخص، گروه بندی شده و یک مجموعه ای با نام RAID set را تشکیل می دهند. تعداد دیسک ها در RAID Level ، ظرفیت و کارایی یک RAID set را مشخص می کند.

بسیار توصیه شده است که تمامی درایوهایی که در یک RAID set قرار می گیرند، می بایست از یک نوع، سرعت و ظرفیت باشند، تا از این طریق اطمینان حاصل کنیم که می توانیم از حداکثر ظرفیت و کارایی دیسک ها استفاده نماییم. برای مثال اگر دیسک هایی که در یک RAID set قرار دارند، ظرفیت های مختلفی داشته باشند، کمترین ظرفیت موجود در این دیسک ها انتخاب شده و به همان میزان از سایر دیسک ها برداشته شده و برای مجموع ظرفیت RAID set تعیین می گردد و در نتیجه ظرفیت باقیمانده سایر دیسک ها بلااستفاده باقی می ماند. در مورد سرعت دیسک ها نیز همین قانون صدق می کند.
معمولا RAID set ها دارای ظرفیت بالایی هستند، در نتیجه ما آنها را به واحدهای منطقی کوچکتری به نام Logical Unit تقسیم می کنیم و سپس با توجه به ظرفیت مورد نیاز هر سرور، آنها را اختصاص می دهیم و در نتیجه RAID set های موجود، از دید سرورها پنهان می مانند. هر کدام از این واحدها دارای یک شماره منحصر به فرد است که به LUN یا logical unit number معروف است. این نوع از LUN ها که در این روش ساخته می شوند با نام thick LUN نیز شناخته می شود.
در یک محیط مجازی سازی شده، یک LUN به hypervisor اختصاص داده شده و با پیکربندی آن می توانیم دیسک های مجازی، درون LUN ساخته و سپس آنها را به ماشین های مجازی اختصاص دهیم. همچنین می توان یک LUN را بصورت مستقیم به یک ماشین مجازی اختصاص داد. این روش عموما در مواقعی استفاده می شود که نرم افزار خاصی بر روی ماشین مجازی وجود دارد که به response time حساس است.
یک روش برای توسعه LUN وجود دارد به نام Meta LUN که از طریق آن می توانیم به منظور افزایش ظرفیت و یا کارایی، ۲ یا چند LUN را با یکدیگر ترکیب نماییم.
Virtual Provisioning
در این روش ما می توانیم یک LUN را با ظرفیتی بیشتر از ظرفیت فیزیکی دیسک درایوها، ایجاد نماییم. این نوع از LUN که با استفاده از این روش ساخته می شوند با نام thin LUN نیز شناخته می شود. در این نوع از LUN نیازی نیست در زمان ساخت و افزودن آن به سرور، تمام فضای فیزیکی دیسک ها به آن اختصاص داده شود. در این روش دیسک ها درون Shared Pool قرار می گیرند و فضای مورد نیاز بر اساس تقاضا به LUN اختصاص داده می شود (On-demand). در واقع یک Shared pool مانند Raid set در روش قبلی عمل می کند. مانند Raid set در Shared pool نیز تمامی دیسک ها می بایست دارای یک Raid Level باشند. این روش باعث می شود که از فضاهای بلااستفاده در دیسک ها بصورت بهینه استفاده کرد و هیچ فضایی هدر نرود و در نتیجه هزینه های مربوط به خرید استوریج نیز بسیار کاهش پیدا کند. استفاده از این روش به خصوص برای نرم افزارهایی که پیش بینی فضای مورد استفاده در آن، دشوار می باشد، توصیه می گردد.
اجازه دهید با یک مثال تفاوت بین thin LUN و thick LUN را بیان کنیم. فرض کنید شما برای یکی از ماشین های مجازی خود به ۱ ترابایت فضا نیاز دارید. اگر شما یک LUN از نوع thin با فضای ۱ ترابایت بسازید و ماشین شما تنها از ۴۰% این فضای اختصاص داده شده استفاده کند، مابقی فضای ۶۰% توسط LUN های دیگر قابل بهره برداری است و چیزی هدر نمی رود. در حالیکه اگر thick LUN ساخته بودید این فضای باقیمانده قابل استفاده برای هیچ LUN دیگری نبود و بلااستفاده باقی می ماند. البته هر دو نوع LUN می تواند در یک استوریج وجود داشته باشد و مدیر شبکه می تواند براساس نیازمندی ها دیتا را از thin LUN به thick LUN و یا برعکس منتقل کند. در عکس زیر می توانید تفاوت های این دو LUN را مشاهده نمایید:

LUN Masking
به روندی که در آن مشخص می کنیم هر LUN به کدام سرور اختصاص داده شود Masking گفته می شود. با استفاده از این روش مطمئن می شویم که تنها سرور مورد اشاره به یک LUN دسترسی دارد و امنیت دیتای درون آن حفظ می گردد. بعد از آشنایی با مفهوم NPIV خواهید دید که LUN Masking را می توان در سطح ماشین های مجازی نیز انجام داد.




