در گذشته در یک محیط مجازیسازیشده، همیشه عملیات Storage منابع زیادی را مصرف میکرده است. کارهایی مثل Cloning و Snapshotها توسط دستگاه Storage در مقایسه با Host بهطور کارآمدتری انجام میگردد.
APIهای VMware vSphere Storage: یکپارچهسازی Array یا همان VAAI که تحت عنوان APIهای سختافزار یا APIهای Offload سختافزار نیز شناخته میشوند، مجموعهای از APIها هستند که ارتباط را بین HostهایVMware vSphere ESXi و دستگاههای Storage ممکن میسازند. این APIها مجموعهای از مبناهای یا Primitiveهای Storage را تعریف میکنند که به ESXi Host توانایی Offload کردن عملیات Storage بهخصوصی را به Array میدهد و همین امر سربار منابع را روی Hostهای ESXi کاهش داده و میتواند به شدت عملکرد را برای عملیاتی مثل Storage Cloning، Zeroing و غیره، که نیاز شدیدی به Storage دارد بهبود بخشد. هدف از VAAI این است که به Vendorهای Storage کمک کند سختافزار را یاری کنند تا عملیات VMware I/O تسریع شده و بهطور کارآمدتری در سختافزار Storage انجام گردد.
بدون استفاده از VAAI، انتقال یا Cloning ماشینهای مجازی توسط vSphere VMkernel Data Mover شامل انتقال دادههای نرمافزاری است. Data Mover، I/O را به Blockهای Read و Write از Datastoreهای مبدا و مقصد و به آنها ارسال می کند. Data Moverبا VAAI میتواند از مبناهای API استفاده کند تا درصورت امکان عملیات را به Array، Offload نماید. برای مثال اگر عملیات مورد نظر کپی کردن یک فایل دیسک ماشین مجازی یا VMDK از یک Datastore به Datastore دیگری داخل یک Array یکسان بود، باید آن Array طوری هدایت شود که عملیات کپی کاملاً داخل آن انجام گردد. هر زمانی که یک عملیات انتقال داده آغاز شده و سختافزار مربوطه فعالسازی گردد، Data Mover در ابتدا تلاش میکند که از Offload سختافزاری استفاده کند. اگر عملیات Offload سختافزار دچار خرابی شود، Data Mover به روش قدیمی نرمافزاری انتقال داده بازمیگردد.
جهت مشاوره رایگان و یا راه اندازی زیرساخت مجازی سازی دیتاسنتر با کارشناسان شرکت APK تماس بگیرید. |
تقریباً در تمامی موارد، انتقال داده بهصورت سختافزاری بسیار بهتر از انتقال دادهی نرمافزاری کار میکند. این نوع از انتقال چرخههای CPU کمتر و همچنین پهنای باند کمتری را روی Storage مصرف میکند. بهبودهایی در عملکرد را میتوان با زمانبندی عملیاتی انجام داد که از مبناهای VAAI استفاده میکنند و با استفاده از esxtop مقادیری مثل CMDS/s، READS/s، WRITES/s، MBREAD/s و MBWRTN/s آداپتورهای Storage را در طول عملیات ردیابی مینمایند.
در پیادهسازی ابتدایی VMware vSphere 4.1، سه مبنای VAAI منتشر شده بودند. این مبناها فقط به Block Storage Fibre Channel، iSCSI، FCoE اعمال میشوند. هیچ مبنای VAAIی برای NAS Storage در این نسخهی ابتدایی وجود نداشت. در vSphere 5.0، مبناهای VAAI برای NAS Storage و VMware vSphere Thin Provisioning معرفی شدند. در نسخههای مختلفی از vSphere پس از آن، روشهای مختلفی برای بازیابی فضای از دست رفته از طریق UNMAP معرفی شدند.
قابلیت ها و عملکرد مبناهای VAAI Block
در این بخش انواع مختلفی از مبناهای VAAI Block، عملکرد و قابلیتهای آنها معرفی میگردند.
Atomic Test & Set یا ATS
در VMware vSphere VMFS، بسیاری از عملیات باید در هنگام بروزرسانی یک منبع، قفلی را روی Volume تنظیم کنند. از آنجایی که VMFS یک فایل سیستم کلاستربندیشده است، بسیاری از Hostهای ESXi میتوانند Volume را به اشتراک بگذارند. وقتی لازم باشد یک Host در فرادادهی VMFS ارتقایی انجام دهند، به یک مکانیزم قفل کردن نیاز است تا یکپارچگی فایل سیستم حفظ شود و از اینکه Host دیگری وارد شود و فرادادهی یکسانی را بروزرسانی نماید، جلوگیری گردد. عملیات زیر نیاز به این قفل دارند:
- به دست آوردن قفلهای روی دیسک
- ارتقای یک قفل Optimistic انحصاری یا فیزیکی
- باز کردن یک قفل Read-Only یا Multi-Writer
- به دست آوردن یک Heartbeat
- حفظ «Liveness» یک Heartbeat
- پاکسازی یک Heartbeat
- بازپخش یک Heartbeat
- بازیابی یک Heartbeat
- به دست آوردن قفلهای روی دیسک دارای صاحب فوت شده
ATS یک مکانیزم قفل بهبودیافته است که طراحی شده تا جایگزین استفاده از ذخایر SCSI در زمان بروزرسانیهای فراداده، روی Volumeهای VMFS شود. یک رزرو SCSI، یک LUN را بهطور کامل قفل کرده و وقتی یک Host که Volume را به اشتراک میگذارد دارای قفلی باشد، از اینکه Hostهای دیگر بروزرسانیهای فرادادهای را از VMFS Volume انجام دهند پیشگیری میکند. وقتی ماشینهای مجازی بسیاری از Datastore یکسانی استفاده کنند، این امر میتواند منجر به مشکلات زیادی گردد و یکی از عوامل محدودکننده برای توسعه به VMFS Volumeهای بسیار بزرگ محسوب میشود.
بیشتر بخوانید: VMware vSphere VMFS چیست؟ معرفی و بررسی عملکردها و قابلیت های آن – قسمت اول
ATS یک مکانیزم قفل است که فقط یک بخش دیسک را روی VMFS Volume اصلاح میکند. وقتی که این مکانیزم با موفقیت انجام شود، به یک ESXi Host این توانایی را میدهد که یک بروزرسانی فراداده را روی Volume اجرا نماید. این کار شامل تخصیص فضا به یک VMDK در طول آمادهسازی است، زیرا ویژگیهای بهخصوصی باید در فراداده بروزرسانی گردند تا نشانگر سایز جدید فایل باشند. معرفی ATS، پاسخگوی مشکلات مربوط به رزروهای SCSI میباشد و به VMFS Volume این توانایی را میدهد که خود را به سایزهای بسیار بزرگتری توسعه دهد. ATS دارای مفاهیم Test-Image و Set-Image میباشد. تا وقتی که Image روی دیسک درطول یک مقایسه همانچیزی باشد که از آن انتظار میرود، Host میداند که میتواند بروزرسانی قفل را ادامه دهد.
VMFS3 در vSphere 4.0، برای ایجاد قفل از رزروهای SCSI استفاده میکرد، زیرا پشتیبانی VAAI در آن نسخه وجود نداشت. اما VMFS3 در vSphere 4.1 روی یک Array دارای VAAI فعال فقط برای عملیات 1 و 2 که قبلاً فهرست شده بودند از ATS استفاده میکرد و فقط وقتی از آن استفاده میکرد که رقابتی برای به دست آوردن قفل دیسک وجود نداشت. درصورتی که در هنگام بهدست آوردن یک قفل روی دیسک با استفاده از ATS، یک فروپاشی با چند Host یا Multi-Host Collision رخ میداد، VMFS3 برمیگشت به استفاده از رزروهای SCSI.
بیشتر بخوانید: مفهوم VMware vStorage VMFS و بررسی آن در مجازی سازی
استفاده از ATS برای حفظ Liveness یا زنده بودن Heartbeatها در vSphere 5.5U2 معرفی شد. پیش از انتشار این نسخه، رزروهای SCSI برای حفظ Liveness یا زنده بودن Heartbeat مورد استفاده قرار میگرفتند.
یکی از نکتههای مهم درمورد VMFS3 که از ATS استفاده میکند این است که اگر یک فروپاشی mid-air از دو Host رخ میداد که سعی داشتند بخش یکسانی را با استفاده از ATS قفل کنند، Hostها به محض ورود به رزروهای SCSI بازمیگشتند. برای Datastoreهای VMFS5 و VMFS6 که روی یک Array با VAAI فعال فرمت میشوند، تمام عملکردهای بخش حیاتی از عملیات 1 تا 9 که بالاتر فهرست شدهاند، با استفاده از ATS انجام میپذیرد. دیگر نباید هیچ رزرو SCSI روی VMFS5 با VAAI فعال وجود داشته باشد. حتی اگر نزاع (Contention) وجود داشته باشد هم، استفاده از ATS ادامه پیدا میکند.
در نسخهی ابتدایی VAAI، مبناهای ATS باید بهطور متفاوتی روی هر Storage Array پیادهسازی میشدند که این امر بسته به Vendor نیازمند ATS Opcode متفاوتی بود. ATS اکنون یک دستور T10 SCSI استاندارد است و از Opcode 0*89 استفاده میکند. ی که VAAI فعال ندارد، رزروهای SCSI برای تثبیت بخشهایی حیاتی در VMFS5 مورد استفاده قرار میگیرند.
ATS Only Flag
یک ATS Only Flag روی Datastoreهای VMFS5 و VMFS6 که به تازگی ایجاد شدهاند پدیدار میگردد. وقتی که Host تشخیص میدهد که Array از ATS روی دستگاه پشتیبانی میکند، ATS Only Flag روی Datastore نوشته میشود. از آنجا به بعد، ATS همیشه روی آن Datastore مورد استفاده قرار میگیرد تا بتوان برای تمام عملیات فراداده آن را مورد استفاده قرار داد.
اما Flag روی Volumeهای VMFS5 که از VMFS3 ارتقا داده شده بودند فعال نیست که این امر ارتقا را از VMFS3 به VMFS5 تسهیل مینماید. دلیل این موضوع این است که VMFS3 دارای ATS کامل نبوده و درطول فرایند ارتقا، ممکن است برخی از Hostها از رزروهای SCSI برای برخی از عملیات فراداده استفاده نمایند.
نمیتوان ATS Only Flag را روی Volumeهای VMFS5 که از VMFS3 ارتقا داده شدهاند، فعال کرد. میتوان ATS Only Flag را بهصورت دستی روی یک VMFS5 که به تازگی ایجاد شده است، فعال یا غیرفعال نمود.
از آنجایی که هیچ مسیری برای ارتقا از VMFS3 یا VMFS5 به VMFS6 وجود ندارد، این مسئله برای Volumeهای VMFS6 صدق نمیکند.