مکانیزم ATS در دیتا استور در ساختار مجازی سازی
فایل سیستم vmfs فایل سیستم ذخیره سازی در vmware میباشد یعنی دیتا استورها یا فضای ذخیره سازی که به lun نیز معروف هستند با این فایل سیستم پارتیشن بندی میشوند و دیسک های مجازی ماشین های مجازی یا vmdk ها روی این ساختار ذخیره میشوند. درواقع این فایل سیستم مخصوص ساختار کلاسترینگ طراحی شده است که همزمان چندین سرور به آن دسترسی دارند و روی آن عملیات read,write انجام میدهد. در این فایل سیستم مکانیزمی بنام on-disk-locking طراحی شده تا بوسیله آن مطمئن شویم متادیتا و فایلهای ساختار vmfs تغییر نکرده و یا بعبارت دیگر consistency دیتاها حفظ میشود.
دیتا استور vmfs
حال فرض کنید یک تغییری در متادیتای فایلها در این ساختار در حال رخ دادن است. (روشن خاموش شدن vm، ایجاد یک vm از روی template، عملیاتvmotion و ... ) بوسیله مکانیزم ATS (Atomic Test & Set) محدوده مربوط به متادیتای مربوطه در زمان آپدیت آن، lock میشود و هاست های دیگر توانایی تغییر آن متادیتا را در آن واحد ندارند. با این عمل هم یکپارچگی دیتای آن فایل در ساختار vmfs تضمین میشود. ضمنا ATS طوری عمل میکند و که فقط سکتورهای محدوده فایل مربوطه lock میشود و کل lun قفل نمیشود در صورتی که در تکنولوژی قدیمی تر از ATS که scsi reservation نام دارد کل lun مدت کوتاهی lock میشود که همین موضوع روی کارایی تاثیبر منفی میگذارد. برای ATS اصطلاح hardware-assisted locking نیز اطلاق میگردد. عملکرد الگوریتم ATS در زیر نشان داده شده است:
ATS یک کاربرد دیگر نیز در محیطهای کلاسترینگ در ساختار مجازی سازی دارد و آن اینست که هر هاست یا سرور esxi برای اعلام زنده بودن خود روی ساختار vmfs منطقه مربوط به خود را که heartbeat slot نام دارد را بصورت پریودیک آپدیت میکند. این محدوده معمولا یک سکتور است و در partition table مربوط به دیتا استور جای میگیرد. در حقیقت در فاصله های زمانی متوالی تعریف شده دستور ATS به این محدوده برای آپدیت ارسال میگردد. لازم به ذکر است قابلیت ATS بایستی توسط تجهیزات ذخیره سازی یا arraye موجود در شبکه پشتیبانی گردد که برای اطلاع از این موضوع بایستی در محیط کامند یکی از سرورهای esxi دستور زیر اجرا گردد تا نتیجه را نمایش دهد: esxcli storage core device vaai status get
خروجی دستور به شکل زیر میباشد :
الگوریتم ATS این اجازه را بما نمیدهد که بتوانیم یک ماشین مجازی را روی چندین سرور روشن کنیم.