منظور از Data Mover نرمافزاری چیست؟ پیش از VAAI، انتقال ماشینهای مجازی و دیسکهای مرتبط آنها بین Datastoreها از طریق جزئی به نام Data Mover نرمافزاری انجام میشد، یک ماژول VMkernel با توانایی بارگذاری که از طریق تماسهای Library مخصوص، ماژول قابلدسترسی داشت. یک درخواست انتقال داده، به شکل یک ساختار داده برای تکمیل بهصورت Asynchronous به Data Mover تحویل داده میشود.
Data Mover ساختار داده را به درخواستهای I/O کوچکتری تقسیم کرده و آنها را به Backend مناسب ارسال میکند. Data Mover برای دستیابی به حداکثر توان عملیاتی، روی یک Queue از درخواستهای ممتاز I/O حساب میکند که همواره پر می باشد. درخواستهای ورودی Data Mover به بخشهای کوچکتری تقسیم میگردد و I/Oهای Asynchronous شده بهطور همزمان برای هر بخش منتشر میگردند تا زمانیکه Queue پیکربندیشدهی Data Mover پر شود. سپس درخواست Data Mover،هAsynchronous به تماسگیرندهای برمیگردد که معمولاً کار خود را ادامه میدهد یا منتظر تکمیل شدن I/O میماند. درهمینحال، وقتی که یک درخواست Asynchronous تکمیل میشود، درخواست منطقی بعدی برای Data Mover Task کلی بعدی منتشر میگردد، فرقی نمیکند که این درخواست برای نوشتن دادهای باشد که به تازگی خوانده شده است یا برای رسیدگی به بخش بعدی باشد.
در مثال زیر، یک Clone از یک فایل VMDK با 64GB آغاز به کار کرده، از Data Mover درخواست میشود که دادهها را در حجمهای 32MBی منتقل کند. سپس آن 32MB به صورت موازی یاParallel و تکی منتقل میشود اما با استفاده از 32، Work Item که همگی بهصورت موازی Queue شدهاند، زیرا بهصورت Asynchronous اجرا میشوند و به بخشهای بسیار کوچکتر I/O، به حجم 64KB تقسیم میگردند. برای انتقال این 32MB، مجموعهای از 512 I/O به حجم 64KB توسط Data Mover منتشر میگردد.
جهت مشاوره رایگان و یا راه اندازی زیرساخت مجازی سازی دیتاسنتر با کارشناسان شرکت APK تماس بگیرید. |
برای مقایسه میتوان گفت که یک انتقال 32MBی مشابه از طریق VAAI از هشت Work Item استفاده میکند، زیرا XCOPY از حجم انتقال 4MBی استفاده مینماید. VMkernel میتواند بین سه نوع Data Mover زیر یکی را انتخاب کند:
- fsdm: این نوع، Data Mover قدیمی و سادهترین نسخهی آن بوده، همچنین کندترین نسخه می باشد زیرا داده تا Stack بالا میرود و سپس دوباره پایین میرود.
- fs3dm (نرمافزاری): این Data Mover نرمافزاری است که در vSphere 4.0 معرفی شد و حاوی بهینهسازیهایی اساسی بوده که باعث میشد داده در تمام Stackها حرکت نکند.
- fs3dm (سختافزاری): Data Mover مربوط به Offload سختافزار است که در vSphere 4.1 معرفی شد. وقتی قابلیتهای Offload سختافزاری VAAIدر دسترس نباشند، fs3dm در حالت نرمافزاری مورد استفاده قرار میگیرد.
نمودار زیر مسیرهای مختلفی را نشان میدهد که توسط Data Moverهای مختلف طی میشوند:
Data Mover نرمافزاری چیست؟ تصمیم برای انتقال با استفاده از Data Mover نرمافزاری یا Offload سختافزاری به Array با VAAI با نگاه به وضعیت تسریع سختافزاری Storage Array اتخاذ میگردد. اگر تصمیم گرفته شود که انتقال با استفاده از VAAI و سپس FAIL انجام گردد، سناریویی به نام حالت Degraded در VMkernel سعی خواهد کرد با استفاده از Data Mover نرمافزاری انتقال را انجام دهد. باید توجه شود که عملیات ریاستارت نمیشود، بلکه از جایی که انتقال قبلی متوقف شده بود، ادامه داده میشود؛ زیرا نباید گیگابایتهای زیادی از دادههای کپی شده، به خاطر یک خطای انتقال گذرا، از دست برود. در هنگام بازگشت به Data Mover نرمافزاری، به دلیل الزامات Buffer حافظه، نمیتوان براساس حجم انتقال 4MB در XCOPY عمل کرد، پس حجم انتقال به 64KB کاهش پیدا میکند.
تفاوتها در VAAI بین نسخههای vSphere
در این بخش به تفاوتهای بین مرحله یا نسخهی اول VAAI در vSphere 4.1 و مرحله یا نسخهی دوم VAAI در vSphere 5.0 پرداخته میشود.
چندین تفاوت بین مرحله یا نسخهی اول VAAI در vSphere 4.1 و مرحلهی دوم VAAI که در vSphere 5.0 منتشر شده بود، وجود دارد. در ادامه فهرستی از این تفاوتها ارائه میگردد:
- VAAI در نسخهی 5.0 از مبناهای T10 استاندارد استفاده میکند، نه از دستورات تولیدکنندگان در هر Array.
- اکنون برای تمام عملیات فراداده با VMFS5 پشتیبانی کامل از ATS وجود دارد.
- vSphere 5.0 پشتیبانی از مبناهای NAS، شامل VCAI و همچنین پشتیبانی از مبناهای Thin Provisioning شامل UNMAP را اضافه کرده است.
بیشتر بخوانید: نگاهی به تنظیم دقیق و مانیتورینگ مبناهای VAAI در vSphere
- VMware HCL اکنون نیازمند عملکرد مبناها، پیش از دریافت VAAI Certification توسط یک Array است. این امر بسیار مهم است، زیرا Arrayهای Storage بهخصوصی که در vSphere 4.1 HCL ظاهر میشوند، اگر عملکرد مبناهای Offload پاسخگوی الزامات نباشد، ممکن است در vSphere 5.0 HCL ظاهر نگردند.
- vSphere 6.5 قابلیت Automatic-UNMAP را برای VMFS6 معرفی کرد.
- VMware HCL تائید میکند که آیا یک Storage Array میتواند از ویژگی Automatic UNMAP پشتیبانی نماید یا خیر.
هشدارهای VAAI در Data Mover نرمافزاری چیست؟
در این بخش روی Data Mover و نحوهی استفاده از آن برای انواع مختلف هشدارهای VAAI یا VAAI Caveats تمرکز میگردد. در مواردی که شامل هشدارهای شناختهشدهی زیر در رابطه با VAAI باشد، Offloadهای سختافزار به Array مورد استفاده قرار نمیگیرند، بلکه در عوض Data Mover مورد استفاده قرار میگیرد؛
حجم VMFS Block
اگر Volumeهای VMFS مبدأ و مقصد دارای حجمهای Block متفاوتی باشند، انتقال داده باز میگردد به لایهی FSDM عمومی که فقط دادههای نرمافزاری را منتقل میکند.
بیشتر بخوانید: VMware vSphere VMFS چیست؟ معرفی و بررسی عملکردها و قابلیت های آن – قسمت اول
Mappingهای Raw Device
اگر نوع فایل مبدأ Mapping کردن Raw Device Mapping یا همان RDM باشد و نوع فایل غیر از RDM فایل عادی باشد، انتقال از طریق Data Mover رخ میدهد.
Sparse/Hosted Format VMDK: اگر VMDK مبدأ یا مقصد درگیر عملیات از فرمت Sparse یا Hosted باشد، از Data Mover استفاده میشود.
عدم انطباق و استفاده از Data Mover نرمافزاری چیست؟
اگر آدرس منطقی یا طول انتقال در عملیات درخواستی با حداقل همترازی یا Alignment که توسط دستگاه Storage موردنیاز است، انطباق نداشته باشد، Data Mover نرمافزاری مورد استفاده قرار میگیرد.
اگر Datastoreهای VMFS با استفاده از vSphere Client ساخته شوند، احتمالاً تمام درخواستها انطباق لازم را خواهد داشت. اگر یک LUN با استفاده از ابزار سطح پایین مثل fdisk یا partedUtil بهطور نادرستی بخشبندی شود، ممکن است عملیات به استفاده از Data Mover نرمافزاری بازگردد.
از آنجاییکه کاربران معمولاً برای یک Datastore ایجادشده، بهصورت اختصاصی از vSphere Client و vCenter استفاده میکنند، احتمال کمی دارد که چنین مشکلی ایجاد شود. درصورتیکه محیط یک کاربری در گذشتهای دور از ESX 2.x/VMFS2 منتقل شود، اما Volumeها انطباق لازم را نداشته باشند. این امر ممکن است در برخی از Arrayهای VAAI که دارای الزامات شدید انطباق هستند مشکلساز باشد.
Automatic UNMAP نیز روی انطباق روی VMFS6 یا In-Guest حساب میکند. به کاربران توصیه میشود که Footnote را در VMware HCL چک کنند تا مطمئن شوند که Storage Array آنها از Automatic UNMAP پشتیبانی میکند یا خیر.
VMFS Extentها و ATS
VMware با چندین LUN یا Extent از مبناهای VAAI روی VMFS پشتیبانی میکند، درصورتیکه همهی آنها روی Array یکسانی باشند و آن Array از Offloading پشتیبانی کند. محدودیتهایی در مورد این وجود دارد که ATS چگونه میتواند روی Volumeهای VMFS که Multi-Extent هستند مورد استفاده قرار بگیرد، اما تأثیر آنها نسبتاً کم است.
جدول زیر محدودیتهای ATS روی Volumeهای VMFS که Multi-Extent هستند را نشان می دهد.
روی سختافزار VAAI |
VMFS5/6 جدید |
Upgrade VMFS5 |
VMFS3 |
Single-extent Datastore |
فقطATS |
ATS، اما بازمیگردد به رزروهای SCSI2 |
ATS، اما بازمیگردد به رزروهای SCSI2 |
Multi-extent Datastore |
اجازهی Spanning فقط روی سختافزار ATS |
ATS، به غیر از زمانی که قفل میشود روی Non-head |
ATS، به غیر از زمانی که قفل میشود روی Non-head |
Array با مقصد متفاوت
VMware با چندین LUN یا Extent از مبناهای VAAI روی VMFS پشتیبانی نمیکند، درصورتیکه همهی آنها روی Arrayهای متفاوتی باشند، حتی تمام Arrayها از Offloading پشتیبانی کنند. Cloning سختافزاری بین Arrayها، حتی اگر در چارچوب VMFS Volume یکسانی باشدکار نمیکند، پس بازمیگردد به حرکت دادههای نرمافزاری.