منظور از VMware vSphere APIs – Array Integration یا VAAI چیست؟ VAAI نشان میدهد که چگونه کمکهای سختافزاری را برای Vendorهای ذخیرهسازی فراهم میکند. همواره عملیات ذخیرهسازی مربوط به یک محیط مجازی از لحاظ منابع بسیار هزینهبر بوده است و عملکردهایی مانند Cloneکردن و Snapshotها اگر با تجهیزات ذخیرهسازی صورت گیرند به صرفهتر از حالتی هستند که توسط Host انجام شوند.
VMware vSphere® Storage APIs – Array Integration یا VAAI که با عنوان Hardware Acceleration یا Hardware Offload APIs نیز از آن یاد میشود مجموعهای از APIهاست تا ارتباط میان Hostها و تجهیزات ذخیرهسازVMware vSphere ESXi™ را برقرار سازد. این APIها مجموعهای از Storage Primitiveها که امکان Offload کردن برخی عملیات ذخیرهساز به Array را برای ESXi Host فراهم میکنند تعریف مینمایند. این امر بار اضافی منابع را در Hostهای ESXi کاهش داده و میتواند عملیات متمرکز ذخیرهساز مانند Cloneکردن ذخیرهساز، Zeroing و غیره را بطور چشمگیری کاهش دهد. هدف VAAI کمک به Vendorهای ذخیرهساز در فراهمسازی کمکهای سختافزاری جهت تسریع عملیات VMware® I/O است که در سختافزار ذخیرهساز بهتر صورت میگیرند.
انتقال ماشینهای مجازی توسط vSphere VMkernel Data Mover
بدون استفاده از VAAI ،Cloneکردن یا انتقال ماشینهای مجازی توسط vSphere VMkernel Data Mover مستلزم انتقال دادههای نرمافزاری نیز میباشد. Data Mover برای خواندن و نوشتن Blockها از منبع و Datastoreهای مقصد I/O را صادر میکند. با کمک VAAI، Data Mover میتواند در صورت امکان از Primitiveهای API جهت Offloadکردن عملیات به Array استفاده نماید. به عنوان مثال، اگر عملیات موردنظر کپیکردن یک فایل دیسک ماشین مجازی یا VMDK از یک Datastore به دیگری در یک Array یکسان باشد، Array مورد نظر هدایت میشود تا نسخه کپی بصورت کامل در Array قرار گیرد. هر زمان که عملیات انتقال دادهها صورتگیرد و در پی آن عملیات Offloadکردن سختافزار انجام شود، Data Mover ابتدا به Offloadکردن سختافزار میپردازد. اگر عملیات Offloadکردن سختافزار ناکام بماند، Data Mover به روش قدیمی انتقال دادههای نرمافزاری میپردازد.
جهت مشاوره رایگان و یا راه اندازی زیرساخت مجازی سازی دیتاسنتر با کارشناسان شرکت APK تماس بگیرید. |
تقریبا در تمامی موارد، انتقال دادههای سختافزاری عملکرد بهتری نسبت به انتقال دادههای نرمافزاری دارد و از CPU و پهنای باند کمتری در ساختار ذخیرهساز استفاده میکند. با زمانگیری عملیاتی که برای پیگردی مقادیری مانند CMDSها، READها، WRITEها، MBREADها و MBWRITEهای Adapterهای ذخیرهساز در طی عملیات از Primitiveهای VAAI و Esxtop استفاده میکنند، میتوان پیشرفتهای عملیات را مشاهده نمود.
در موارد اولیه بکارگیری VMware vSphere 4.1، سه Primitive مربوط به VAAI منتشر شدند و از آنها تنها برای Blockکردن ذخیرهساز Fiber Channel ،iSCSI ،FCoE استفاده شد. در این نسخه ابتدایی هیچگونه Primitive مربوط به VAAI برای ذخیرهساز NAS درنظر گرفته نشد اما در vSphere 5.0 ،Primitiveهای VAAI برای ذخیرهساز NAS و VMware vSphere Thin Provisioning معرفی شدند. پس از آن در نسخههای مختلف vSphere، روشهای مختلفی برای رسیدگی به بازیابی Dead Space از طریق UNMAP معرفی شد. این مقاله به آخرین مکانیزمهای معرفیشده در vSphere 6.5 میپردازد.
VAAI Block Primitives: این بخش انواع مختلف VAAI Block Primitives را به همراه قابلیتها و عملکردهای مختلف آنها توضیح میدهد.
Atomic Test & Set یا ATS: در VMware vSphere VMFS، بسیاری از عملیات باید هنگام به روزرسانی یک منبع، یک قفل برای Volume ایجاد کنند زیرا از آنجایی که VMFS یک سیستم فایل کلاسترشده است، بسیاری از Hostهای ESXi میتوانند این Volume را به اشتراک بگذارند. زمانی که یک Host بخواهد Metadata مربوط به VMFS را بهروزرسانی کند، یک مکانیزم قفلکننده لازم است تا یکپارچگی سیستم فایل را حفظ نموده و از بروزرسانی همان Metadata توسط Host دیگر جلوگیری کند. عملیات زیر نیازمند این قفل هستند:
- بدست آوردن قفلهای On-Disk
- ارتقا یک قفل Optimistic به یک قفل Exclusive/Physical
- بازگشایی یک قفل Read-Only/Multi-Writer
- بدست آوردن Heartbeat
- حفظ Liveness مربوط به Heartbeat
- پاکسازی یک Heartbeat
- اجرای دوباره یک Heartbeat
- بازیابی یک Heartbeat
- بدست آوردن قفل On-Disk با Dead Owner
منظور از ATS در VAAI چیست؟
ATS یک مکانیزم قفل کننده پیشرفته است که برای جابجایی Reservationهای SCSI در Volumeهای VMFS به هنگام ارتقا Metadata طراحی شده است. زمانی که یکHost ، Volume را به اشتراک گذاشته و داراه قفل باشد، یک SCSI Reservation تمامی LUN را قفل نموده و از بروزرسانی Metadata مربوط به VMFS Volume توسط Hostهای دیگر جلوگیری میکند. وقتی ماشینهای مجازی بسیاری از یک Datastore استفاده نمایند، این امر میتواند درگیریهای بسیاری را ایجاد کند و یک فاکتور محدود کننده برای توسعه به Volumeهای بزرگ VMFS است.
بیشتر بخوانید: مفهوم VMware vStorage VMFS و بررسی آن در مجازی سازی
ATS یک مکانیزم قفل کننده است که تنها یک Disk Sector را در Volume VMFS اصلاح میکند. هنگامی که این امر با موفقیت انجام شود، این امکان را به یک ESXi Host میدهد تا بروزرسانی Metadata را در Volume اجرا کند. چنین امری شامل اختصاص دادن فضا به یک VMDK در طی آمادهسازی است زیرا برخی از مشخصات باید در Metadata بروزرسانی شوند تا اندازه جدید فایل را بازتاب کنند. معرفی ATS به مشکل درگیری با Reservationهای SCSI پرداخته و Volumeهای VFMS را قادر میسازد تا به اندازههای بزرگتری توسعه یابند. ATS دارای مفاهیم Test-Image و Set-Image میباشد بنابراین تا زمانی که Image On-Disk در طی Compare طبق انتظار باشد، Host میداند که میتواند به بروزرسانی قفل ادامه دهد.
در vSphere 4.0 ،VMFS3 از Reservationهای SCSI برای ایجاد قفل استفاده مینمود زیرا هیچگونه پشتیبانی VAAI در آن نسخه وجود نداشت. در vSphere 4.1، درون یک Array با VAAI فعال، VMFS3 از ATS تنها برای عملیات 1 و 2 که پیشتر لیست شده بود استفاده مینمود و این کار را تنها زمانی انجام میداد که هیچگونه درگیری برای دریافت قفل دیسک وجود نداشته باشد.
در بحث VAAI چیست؟ استفاده از ATS به منظور حفظ Liveness مربوط به Heartbeat در vSphere 5.5U2 معرفی شده بود. پیش از این نسخه، Reservationهای SCSI برای حفظ Liveness مربوط به Heartbeat استفاده میشدند.
یک نکته برای VMFS3 با استفاده از ATS که باید به آن توجه نمود این است که اگر یک برخورد Mid-Air میان دو Host که با استفاده از ATS سعی در قفل کردن یک Sector را داشتند صورت گیرد، Hostها برای تلاش دوباره به Reservationهای SCSI بازمیگردند. برای Datastoreهای VMFS6 و VMFS5 که در Array دارای VAAI فعال Format شدهاند، تمامی عملکرد کلیدی عملیات 1 تا 9 که در بالا لیست شدهاند با استفاده از ATS صورت میگیرند و دیگر هیچگونه Reservationهای SCSI نباید در VMFS5 دارای VAAI فعال قرار گیرد.
در انتشار اولیه VAAI ،Primitiveهای ATS باید در هر Array بصورت متفاوتی اجرا میشدند و بسته به Vendor، مستلزم ATS Opcode متفاوتی بودند. اکنون ATS یک دستور T10 SCSI است و از Opcode 0x89 استفاده میکند. در ذخیرهساز بدون VAAI فعال، Reservationهای SCSI به کاربرد خود جهت ایجاد بخشهای حیاتی در VMFS5 ادامه میدهند.