معرفی XtremIO
اگر بیاد داشته باشید EMC در May سال 2012، XtremIO را به قیمت 340 میلیون دلار خریداری کرد. انتظار طولانی بود ولیکن بالاخره EMC نیز دست بکار شد و تصمیم گرفت وارد بازار All Flash Array Storage ها شود و به این انتظار مشتریان خود را پایان دهد. از May سال 2012 تا Nov سال 2013 شرکت EMC مشغول انجام کارهای تحقیقاتی بروی XtremIO بود و این محصول اصطلاحا تنها بصورت DA و یا Direct Availability در دسترس بود و از تاریخ Nov سال 2013 به بعد این محصول بصورت عمومی در دسترس قرار گرفت. از آن تاریخ و در طی این 2 سال این محصول رشد کرده و به بلوغ لازم رسیده و با توجه به نیاز دیتا سنترها امروزی به سرعت های بالاتر در زمینه Storage ، تصمیم گرفتم در این مقاله شما را با این رده از محصولات EMC آشنا کنم.
در ابتدا، مبانی:
در حال حاضر 6 انتخاب برای این محصول وجود دارد. اجزای تشکیل دهنده اصلی آن عبارتند از:
- 6 یونیت در ازای هر X-Brick ( در ادامه این مفهوم بررسی خواهد شد. )
- 5 یونیت در ازای هر X-Brick اضافه
- 750 وات
- 4 عدد پورت 8GB FC در قسمت Front End
- 4 عدد پورت 10GB ISCSI در قسمت Front End
- پشتیبانی از 5 TB الی 320 TB فضای خام (Raw Capacity )
تصویر شماره 1
یک آرایه XtremIO از 1 الی 8 عدد X-Brick تشکیل می شود. تصویر شماره 1، اولین X-Brick را نمایش می دهد. اولین X-Brick دارای دو تجهیز باتری پشتیبان است. در صورت استفاده از دو عدد X-Brick، آنگاه X-Brick دوم از یک عدد تجهیز باتری بهره می برد و بدین گونه هر X-Brick دارای یک باتری پشتیبان خواهد بود. ذکر این موضوع تنها برای انجام محاسبات جانمایی در رک و تعداد یونیتهای مورد نیاز بود. هر X-Brick خود شامل دو عدد کنترلر با معماری X86-based تک یونیت و یک DAE با سایز 3 یونیت و ظرفیت 25 عدد هارد دیسک 2.5” SSD می باشد. زمانی که شما قصد دارید که از X-Brick دوم نیز استفاده نمایید، جهت برقراری ارتباط میان X-Brick ها به یک سوئیچ Infiniband تک یونیت نیز، نیاز خواهید داشت. ( تصویر شماره 2 )
تصویر شماره 2
بیاد داشته باشید که کنترلرهای شما در واقع یک سرور تک یونیت مبتنی بر معماری X86-based می باشند و هیچ قطعه سخت افزاری خاصی، نسبت به سرورهای رایج در بازار ندارد. تمام معجزات XtremIO در بخش نرم افزاری آن رخ می دهد و این یک مزیت مهم این نوع طراحی است. زیرا تمامی قابلیتها و نوآوریهایی که در این زمینه رخ دهد تنها با بروز رسانی نرم افزار موجود برای شما نیز قابل دسترس خواهد بود.
تصویر شماره 3
تصویر شماره 3، معماری مورد استفاده در این محصول را آشکار می نماید. هر کنترلر از 16 هسته پردازنده فیزیکی و GB 256 ، RAM بهره می برد. دو کنترلر توسط یک واسط ارتباطی Infiniband RDMA با یکدیگر تبادل اطلاعات می نمایند. زمانیکه شما تنها از یک X-Brick استفاده می نمایید، کنترلرها مستقیما به یکدیگر متصل می گردند، اما در حالتی که بیش از یک X-Brick وجود داشته باشد، لازم است از یک Infiniband switch استفاده نماییم. هر دو کنترلر توسط کابلهای SAS به DAE متصل می شوند.
هر دو کنترلر بصورت Active/Active عمل می نمایند و LUN ها در یک لحظه توسط هر دو کنترلر قابل دسترسی است ( مانند حالتی که در EMC VNX شما از لایسنس Power Path استفاده میکنید و به نوعی از جمع پهنای باند هر دو کنترلر استفاده می نمایید.) و دیگر نیازی به بهره گیری از تکنولوژی ALUA یا همان Asymmetric Logical Unit Access نمی باشد.
بررسی عملکرد
XtremIO بسیار بسیار ……. سریع است. دیگر از یک Full Flash Array چه انتظاری دارید؟ موضوع بسیار جالب درباره EtremIO اینست که این Storage به اندازه کافی سریع است و جالب تر اینکه بدانید با بسط آن و افزایش تعداد X-Brick ها، سریعتر نیز می شود. EMC با ارائه این محصول به بازار سر و صدای زیادی راه انداخته است. معیار محاسبه سرعتهای ارائه شده، یک تجهیز با 80% توان آن Workload می باشد که عموما توسط Full Flash Array ها قابل تحمل نیست اما EMC قصد داشته تا تجهیز خود را در شرایط کاملا مشابه با شرایط واقعی بیازماید و تمامی IO بصورت ترکیبی از Read/Write می باشد.
Read IOPS
|
Read/Write IOPS |
Raw Capacity |
System |
250 K
|
150 K
|
5 TB
|
Starter X-Brick
|
250 K
|
150 K
|
10, 20, or 40 TB
|
1 X-Brick
|
500K
|
300 K
|
20, 40, or 80 TB
|
2 X-Brick Cluste
|
1M
|
600 K
|
40, 80, or 160 TB
|
4 X-Brick Cluster
|
1.5M
|
900 K
|
120 or 240 TB
|
6 X-Brick Cluster
|
2M
|
1.2 M
|
160 or 320 TB
|
8 X-Brick Cluster
|
جدول شماره 1
نکته قابل تامل رابطه خطی افزایش سرعت تجهیز با افزایش تعدادX-Brick ها می باشد. در واقع با افزایش X-Brick ها نه تنها ظرفیت را افزایش داده اید، بلکه سرعت تجهیز را نیز افزایش داده اید. بدین شیوه برای محاسبات Sizing سامانه Storage خود تنها نیاز دارید تا IOPS مورد نیاز را بدانید. آنگاه بر اساس جدول شماره 1 ، تعداد X-Brick های مورد نیاز را بیابید. سپس بررسی نمایید آیا این تعداد تکافوی ظرفیت درخواستی را نیز دارد یا خیر. به همین سادگی!
همچنین، بیاد داشته باشید که تمامی IOPS شما دارای latency کمتر از 1 ms خواهد بود. می توانید باور کنید؟ راستش واسه من تصورش هم سخته!!
ویژگیها
یکی از بزرگترین ویژگیهای XtremIO اینست که تمامی قابلیتهای آن همیشه قابل استفاده هستند و بمانند سری VNX شما نیاز به خرید لایسنسهای جداگانه جهت بهره برداری از این قابلیتها ندارید. این موضوع باعث سادگی بسیار زیاد مدیریت تجهیز شده است زیرا شما هیج نیازی به فعال و یا غیر فعال نمودن هیچ قابلیتی ندارید و تمامی آنها همیشه روشن هستند و در صورت نیاز بصورت اتوماتیک درگیر خواهند شد.
در XtremIO شما هیچ نیازی به Setup و Tuning ندارید. هیچ Raid Group، هیچ Pool، هیچ Stripe Sizes و حتی هیچ Tier وجود ندارد! در اینجا شما تنها مجموعه از Storage های بسیار بسیار سریع دارید و تنها باید تصمیم بگیرید که می خواهید سایز Lun شما چقدر باشد؟ این تنها کاری است که شما باید انجام دهید!
در ادامه خواهیم دید که دیتا بروی XtremIO چگونه Deduped و چگونه نوشته می شود ولیکن فعلا به این حد بسنده کنیم که XtremIO میتواند تمامی درخواستهای IO را روی تمامی SSD های موجود در کلاستر Balances می شود. به همین دلیل در XtremIO هیچ HotSpot در هیچ جا وجود ندارد و شما نمیتوانید هیچ SSD پیدا نمایید که تقریبا پر شده باشد در حالیکه SSD با ظرفیت تقریبا خالی وجود داشته باشد. تصویر شماره 4 این موضوع را نمایش می دهد.
تصویر شماره 4
همچنین هر چه بروی XtremIO نوشته می شود تنها بصورت Thin می باشد. XtremIO همچنین از VAAI نیز پشتیبانی می کند. قابلیتهای پشتیبانی شده در VAAI عبارتند از :
- Zero Blcoks/Write Same
- Clone Blocks / Full Copy / XCopy
- Atomic Test & Set
- Block Delete / UNMAP / TRIM
ظرفیت و راهکار جادویی XtremIO
همانگونه که تا کنون دیدیم در هر X-Brick محدودیت ظرفیت داریم ( تعداد حداکثر 25 عدد هارد SSD ) . برای رفع این نقیصه XtremIO از شیوه Full In-Line Deduplication بهره می برد و این قابلیت همیشه روشن است و بر خلاف دیگر مدلها نظیر VNX امکان غیرفعال نمودن آنرا ندارید. هماهنگونه نیز که ذکر شد این قابلیت بصورت In-Line عمل می نماید و شامل تمامی هارد دیسکها و X-Brick های موجود در کلاستر است. فرآیند این قابلیت بدین گونه است که هر داده ای که وارد آرایه می گردد ابتدا انگشت نگاری می شود و آنگاه آرایه یک Hash خاص برای آن تولید می نماید تا از نوشتن داده هایی با همان Hash در آینده بروی آرایه جلوگیری نماید.
تصویر شماره 5
نکته بسیار جالب در خصوص این فرآیند اینست که XtremIO جداول مربوط به Deduplication را پس از بوت شدن سامانه بروی Ram تمامی X-Brick های درون کلاستر نگاه می دارد تا بتواند به سرعت به جستجو درون آن بپردازد و بدین گونه سرعت این فرآیند را بشدت بالا ببرد.
حال سوال اصلی اینست که شما به چه فضایی نیار دارید؟ این کاملا بستگی به نوع داده های مورد استفاده در سازمان شما دارد زیرا که نرخ Deduplication می تواند از 3:1 تا 10:1 متغییر باشد.
حالت ارتجاعی
آیا می توان به XtremIO برای نگهداری داده ها اطمینان کرد؟ من فکر می کنم میشود. همه قطعات در XtremIO دارای Redundant هستند.
- Redundant controllers
- Backup power supplies
- Dual (redundant) power supplies
- Dual (redundant) InfiniBand ports
- Dual SAS Controller Modules
- Dual iSCSI and Fibre Channel ports on each storage controller
- Fail up to 6 SSDs per X-Brick
- N+2 row and diagonal parity
ذکر این موضوع لازم است که شما نمی توانید همزمان 6 عدد SSD را در یک X-Brick از دست بدهید، بلکه در هر زمان می توانید حداکثر تا 2 عدد SSD را بصورت همزمان بدون از بین رفتن داده ها، از دست بدهید. بعد از این رخداد XtremIO شروع به فرآیند باسازی می نماید و پس از پایان بازسازی، تجهیز شما می تواند 2 عدد SSD دیگر را از دست بدهد. بهمین ترتیب تا حداکثر 6 عدد SSD در هر X-Brick. حال فرض کنید که شما در کلاستر خود از 4 عدد X-Brick استفاده می نمایید. آنگاه کلاستر شما تحمل از دست دادن تا 24 عدد SSD را دارد! این تقریبا معادل تعداد کل درایوهای SSD یک X-Brick است.
نرم افزار های XtremIO برای محافظت از داده ها از مکانیزیمی بنام XDP (XtremIO Data Protection ) بهره می برند. XDP با بهره گیری از تکنولوژیهای بسیار پیشرفته می تواند حفاظت از داده های شما را تضمین نموده و بر خلاف روشهای معمول و سنتی Raid، I/O Overhead و هدر روی کمتر فضای دیسک (Capacity Overhead ) را به ارمغان می آورد. جالب است بدانید که در XDP، Capacity Overhead تولید شده کمتر از 8% است.
XDP بسیار کارآمد و موثر است. در بسیاری از All Flash Array Storage ها در هنگام نوشتن داده ها، تمامی SSD ها Lock می شوند. بدین معنا که در همان لحظه شما امکان خواندن دیتا بصورت همزمان را نخواهید داشت! بر خلاف آن XtremIO با بهره گیری از XDP هیچ نیازی به Lock کردن SSD ها نداشته و بلکه امکان دسترسی با سرعت به مراتب بالاتری را نیز فراهم می آورد.
XDP نیازی به هیچ گونه تنظیماتی ندارد و همچنین هیچ تعریفی بنام HotSpare در XDP وجود ندارد. در صورت بروز مشکلی برای SSD ها سیستم بصورت کاملا آگاهانه شروع به بازسازی می نماید و پس از آن بر خلاف حالتهای Raid سنتی، دوباره سیستم به سرعت طبیعی خود برمی گردد.
و در نهایت شما بدون نیاز به هیچ گونه Down Time و یا تولید اختلالی می توانید سامانه خود را بروز رسانی نمایید حتی بدون کوچکترین تاثیر در IO سرویس گیرنده ها.