بررسی مقدماتی سیستم seagate kinetic و نقاط ضعف و قدرت آن

مقدمه

استورج های دیتا یکی از مهمترین ارکان سیستم های IT که ما روزمره از آنها استفاده می کنیم هستند. از مرورکردن ایمیل های ما در gmail، نگاه کرده به ویدئوهای youtube، یا بررسی حساب های بانکی، ما هرروز با حجم زیادی از اطلاعات که روی انواع data storage نگهداری می شوند سر و کار داریم. طوری که پیش بینی می شود حجم اطلاعات نگهداری شده بشر تا سال 2017 به 138 اگزابایت برسد، تا این چیزی که ما آنرا digital universe می نامیم بتواند در خود نگهداری کند.

اما سیستم های سنتی بر مبنای RAID مدت ها است که نشان داده اند در رسیدن به این هدف ناتوان هستند، و به همین خاطر است که انواع و اقسام استورج های Big Data با مفهوم object storage پا به عرصه وجود نهاده اند. در استورج های object storage به جای آنکه یک کنترلر راید اطلاعات را بین هارد دیسک های مختلف تقسیم کند، این خود کلاینت ها و نودها هستند که اطلاعات را روی تعداد زیادی نود که هرکدام تعداد زیادی دیسک دارند تقسیم کرده و از آنها می خوانند. مفهومی مانند فایل سیستم در این استورج ها دیگر معنای چندانی ندارد و دغدغه های این سیستم ها، در ابعاد پتابایت است، نه ترابایت!

اما نکته ای که در تمامی این استورج های جدید وجود دارد، این است که در تمامی آنها، هر نود استورج، از یک سرور به همراه تعدادی هارددیسک تشکیل شده است، که نرم افزار object storage روی سرور اجرا شده، و توسط آن نود به شبکه وصل می شود.

اما اگر ما بتوانیم سرور را حذف کنیم و خود هارد دیسک را به شبکه متصل کنیم بهتر نیست؟!

 

معرفی سیستم seagate kinetic

این همان ایده ای است که سیگیت، یکی از سه سازنده اصلی هارد درایو با مفهوم kinetic خود به دنبال آن است. اگرچه این مفهوم خیلی جدید نیست و قبلا هم افراد دیگری روی آن کار کرده اند، اما سیگیت معتقد است که اکنون زمان ارائه راه حل های object based و software defined است و به همین خاطر آستین را بالا زده است و خودش وارد این عرصه شده است.

سیستم کینتیک از تعداد زیادی هارد، که روی خودشان پورت اترنت دارند و مستقیم به شبکه وصل می شوند، و می توانند اطلاعات را بصورت یک زوج key / value تحویل گرفته و بنویسند یا بخوانند تشکیل می شود.

سیستم کینتیک در واقع از چهار بخش تشکیل شده است:

ماژول های استورج کینتیک: این ها همان هارد دیسک ها، SSD ها و درایوهای هایبریدی هستند که از پروتکل kinetic پشتیبانی می کنند. این ها روی خود یک کنترلر کوچک برای اتصال به شبکه اترنت و خواندن / نوشتن اطلاعات بصورت یک زوج key /value و یک مجموعه دستور RESTful برای api اتصال به هارد دارند.

شاسی: این در واقع یک جور کیس است که داخل خود یک سوییچ اترنت دارد و هاردهای کینتیک داخل آن چیده می شوند. هدف این است که تا 60 دیسک یا بیشتر در 4U روی یک شاسی جا شود.

پروتکل swift openstack object storage protocol: این پروتکلی است که هر دیسک object storage با سرورهای خود با آن متصل می شود.

سیستم object storage: که می تواند هر سیستم سازگار با این پروتکل، مانند RIAK, Ceph, Basho, Hadoop و مانند این باشد.

 

حالا باید با جزئیات بیشتر هرکدام از اجزا را بررسی کرد:

هارد کینکتیک: اولین هارد کینتیک که اکنون بصورت نمونه در سه ماهه چهارم 2014 به بازار ارائه شده است، هارد 4 ترابایت Terascale سیگیت است. این هارد بر پایه هاردهای NearLine-SAS شرکت سیگیت که قبلا Constellation CS و اکنون Terascale نامیده می شود، و سرعت گردش 5900 rpm دارند ساخته شده است ولی به جای پورت SAS یا SATA، دو پورت شبکه گیگابیت اترنت دارد. به عبارت دیگر ساختار مکانیکی داخل هارد تغییری نکرده است، اما اینترفیس آن پورت گیگابیت اترنت با استاندارد SGMII شده است (البته قیافه این اینترفیس از نظر فیزیکی مانند SAS است، اما عملکرد آن فرق می کند). این دو پورت بصورت active/active کار می کنند، اما نمی توان آنها را با هم bond کرد تا پهنای باند 2 گیگابیت بر ثانیه بدهند. یک پورت سریال هم روی این کانکتور برای کار با درایو بصورت sideband در نظر گرفته شده است. سرعت داخلی read / write این هارد هم 50 MByte/S است.

هر هارد خودش جداگانه IP می گیرد، که هم با IPv4 و هم IPv6 سازگار است. هارد بصورت پیش فرض از DHCP آی پی می گیرد، اما می توان دستی هم برای آن IP تعریف کرد.

نمونه های اولیه (prototype) های سیستم در واقع یک هارد SAS عادی بوده است که پشت آن یک برد ارتباطی برای اتصال به شبکه وصل می شده است، اما اکنون سیگیت نمونه عملیاتی که خودش اینترفیس اترنت دارد را ارائه کرده است. کنترلر دیسک از یک مکانیزم ساده key / value برای نگهداری ابجکت ها روی دیسک استفاده می کند که در نسل اول این دیسکها، مقدار key می تواند تا 4096 بایت باشد. این اجازه می دهد تا این ساختار هم برای shingled disk ها (یعنی استورج هایی که اطلاعات بیشتر روی آنها append می شود، به جای اینکه delete شود) و هم بتوان یک سیستم multi master درست کرد، یعنی تعداد زیادی نود پروسسور، بتوانند همزمان از اطلاعات ذخیره شده روی این دیسک ها استفاده کنند. این مکانیزم key / value با یک api که اجازه دستورات get / put / delete / getnext / putnext و مانند اینرا می دهد کنترل می شود و همینطور مکانیزم هایی برای repair کردن اطلاعات خراب در آن دیده شده است.

 

شاسی یا enclosure یا tray: انکلوژر در واقع همان کیسی است که قرار است این هاردها داخل آن قرار گیرند و در واقع از یک کیس که داخل آن یک سوییچ گیگابیت اترنت و پاور و بقیه متعلقات قراردارد تشکیل شده است. باید در نظر داشت که به همین خاطر انکلوژر خودش توان پردازشی خاصی ندارد.

این انکلوژر می تواند ابعاد مختلفی داشته باشد و قرار است نمونه هایی که 60 عدد هارد در یک 4U چیده می شوند (تقریبا حداکثر تراکم فیزیکی ممکن) هم ساخته شوند. در این حالت، و با استفاده از هارد 4 ترابایت هر انکلوژر 240 ترابایت فضا می دهد که تراکم نسبتا خوبی است. سیگیت این انکلوژر ها را JBOK یا Just a Bunch Of Kinetics می نامد. (به جای JBOD که مخفف Just a Bunch Of Disks است)

انکلوژر توسط شرکای سیگیت ساخته می شود و به عنوان مثال اکنون شرکت supermicro یک نمونه این انکلوژر که در ابعاد 1U داخل آن 12 تا هارد قرار می گیرد، و 4 پورت 10 GbE (اترنت 10 گیگابیت) برای اتصال به مابقی شبکه دارد، بصورت آزمایشی ساخته است و در اختیار شرکت های سازنده نرم افزار object storage برای کار روی آن قرارداده است. (هاردها داخل خود شاسی چیده می شوند و کشویی نیستند).

قرار است شرکت های supermicro, dell, hewisys و xyratex این شاسی ها را بسازند، هر چند هنوز نمونه ای که به عنوان محصول تجاری در بازار ارائه شود و قیمت مشخصی داشته باشد وجود ندارد.

 

پروتکل سویفت اپن استک: این یک پروتکل ساده است که برای ارتباط بین سیستم ابجکت استورج و هاردهای کینتیک استفاده می شود. این پروتکل باز است، و جزئیات آن منتشر شده است. با استفاده از این پروتکل، سرور ابجکت استورج، مانند Ceph می تواند داده های unstructured را به دیسک بدهد، تا دیسک آنها را روی خودش نگهداری کند. این پروتکل شبیه سایر پروتکل های REST است که در انواع و اقسام سیستم های scale out object storage استفاده می شوند.

 

سیستم object storage: این در واقع نرم افزاری است که با هاردهای کینتیک از طریق پروتکل سوییفت ارتباط برقرار کرده و اطلاعات را روی آنها می نویسد و می خواند. سیگیت یک api به نام libkinetic، که سورس باز هم هست ارائه کرده است که با استفاده از آن می توان نرم افزارهای جاری را برای کار با کینتیک سازگار کرد، یا اینکه نرم افزارهای جدید نوشت. ظاهرا basho (riak / riak cs) و scality تا کنون آمادگی خود را برای ایجاد نرم افزار برای این سیستم اعلام کرده اند. نکته جالب این است که این sdk ارائه شده توسط سیگیت، اولین و تنها نرم افزار سورس باز ارائه شده توسط سیگیت است، و مشخص نیست که تعهد سیگیت به سورس باز نگه داشتن آن چقدر باشد، مخصوصا اینکه این فقط open standard است، و به معنی اینکه سیگیت فرم ویر داخلی دیسک را هم بصورت open source می دهد نیست.

 

هدفگیری سیگیت از ارائه این استورج بازار اپراتورهای مخابراتی بزرگ، ارائه دهندگان سرویس کلود و شرکت های بسیار بزرگ است که همگی نیاز به حجم بسیار بالایی از استورج دارند.

 

مزایای سیستم

سیستم های RAID تقریبا از 30 سال پیش، برای دستیابی به پهنای باند، IOPS، حجم و مقاوم کردن داده ها در مقابل خرابی دیسک ایجاد شدند. اما با ورود به عرصه داده های پتابایتی و بیشتر، RAID به سرعت در حال نشان دادن نقاط ضعف خود است و به همین خاطر است که انواع سیستم های object based storage پا به عرصه گذاشته اند. تا قبل از ایجاد RAID روند کلی صنعت استورج، روی هوشمند کردن خود هاردها بود و اکنون بعد از 25 سال وقفه، سیگیت این روند را دوباره از سر گرفته است. توزیع هوشمندی (intelligence) سیستم به پایین ترین کمپوننت آن، یعنی هارددیسک، فکر خوبی است، مخصوصا چون سخت افزار کنترلر داخلی هارددیسک نیاز به تغییر چندانی ندارد.

علاوه بر این فرم ویر داخلی هارددیسک ها، به خاطر اینکه سازندگان هارد با عجله مدل های جدید را با تغییر کمی روی فرم ویر به بازار داده اند، به کدی درهم و برهم با باگهای زیاد تبدیل شده است، که شاید این سیستم جدید انگیزه لازم برای بازنویسی کد را در تولید کنندگان هارد فراهم کند.

اگر این سیستم به درستی پیاده شود، می تواند با حذف یک لایه سخت افزار / نرم افزار (یعنی سخت افزار سرور هر storage node و نرم افزار سیستم عامل آن) نگهداری ساده تری داشته باشد. علاوه بر این مصرف انرژی سیستم هم کمتر می شود. به عنوان قابلیت های اضافی می توان به این سیستم رمزنگاری اطلاعات در روی خود هارد، ایجاد چک سام داخلی در سطح command و دیتا و قابلیت اضافه کردن TLS (Transport Layer Security) برای امنیت اطلاعاتی که روی شبکه مبادله می شوند هم اضافه کرد. حتی می توان بعدا تعریف کرد که سرور چه کارهایی مجاز است با اطلاعات روی هارد بکند (مثلا فقط آنها را بخواند) و چه کارهایی را مجاز نیست.

 

معایب

اما با همه آنچه گفته شد، نباید معایب زیر را از یاد برد:

  • استورج کینتیک هنوز بیشتر یک مفهوم است، تا یک ساختار امتحان شده و جواب پس داده. سیگیت تازه در آخر سال 2014 یک درایو کینتیک 4 ترابایت، آن هم با ارائه محدود فقط به یکسری از OEM ها بیرون داده است که هنوز قیمت و عملکرد آن مشخص نیست، و این با حالتی که هزاران درایو کینتیک در عمل زیر بار باشند، فاصله زیادی دارد.
  • دنیای استورج پر از مواردی است که یک تکنولوژی نوظهور در بازار مد شده است، مدتی هم سازندگان تجهیزات سازگار با آن را ساخته اند و بعد از گذشتن آن مد، تجهیزات به همان سرعتی که مد شده اند، منسوخ شده اند، و استفاده کنندگان برای پیدا کردن قطعات یدکی آن دچار مشکلات جدی هستند. یک نمونه بارز آن، هاردهای SAN با پروتکل و اینترفیس FC است که اکنون به هیچ عنوان یافت نمی شوند، و کسانی که این تجهیزات را داشتند، باید به فکر تعویض کل آن باشند. این سرنوشتی است که ممکن است هاردهای کینتیک، به خاطر وابستگی به یک تولید کننده خاص، یعنی سیگیت، به آن دچار شوند.
  • بر خلاف یک سرور، مثلا با سیستم عامل لینوکس و یک مجموعه هارد متصل به آن، که در هر لحظه می توان نرم افزار آنرا بروز کرد یا با یک سیستم object storage دیگر آنرا تعویض کرد، firmware این دیسک ها فقط توسط سیگیت داده می شود، و هر مشکلی در آنها وجود داشته باشد، (چه امنیتی و چه عملیاتی)، باید توسط seagate برطرف شود. تصور اینکه هزاران دیسک کینکت در یک سیستم استورج به خاطر یک مشکل امنیتی تهدید شوند، و استفاده کننده هیچ راهی به جز انتظار برای ارائه رفع مشکل توسط سیگیت نداشته باشد، یا از آن بدتر به خاطر قدیمی بودن دیسک ها، seagate کلا پچ جدیدی برای آن ارائه ندهد، بسیار وحشتناک است.
  • قیمت دیسک و شاسی آن، که در واقع یک سوییچ اترنت است، هنوز مشخص نیست. به عبارت دیگر اصلا مشخص نیست که قیمت دیسک و شاسی آن، از قیمت دیسک و یک سرور با بک پلین SAS ارزانتر در بیاید. معمولا هزینه پهنای باند شبکه (یعنی عناصر سوییچینگ) از هزینه پروسسور بالاتر است و تولید بک پلینی که یک سوییچ 72 پورت شبکه لایه 2 یا 3 با کیفیت، برای اتصال مستقیم 36 دیسک به شبکه فراهم کند (هر دیسک دو پورت شبکه)، احتمالا خیلی گرانتر از یک مادربرد سرور و متعلقات آن در می آید.
  • این راه حل فقط برای دیسک های سری Terascale سیگیت ارائه می شود، که بر پایه NearLine SAS ها هستند. در حالت عادی، یک دیسک NL-SAS قیمتی حدود سه برابر ظرفیت مشابه desktop آن دارد، که حتی اگر قیمت دیسک های جدید با همین نسبت حفظ شود، قیمت آنها سه برابر مدل desktop آنها خواهد بود. در حالی که ما می دانیم استفاده کنندگان اصلی از دیسک، مانند گوگل، از این دیسک های انترپرایز استفاده نمی کنند، و از مدل های desktop استفاده می کنند، چون در طول دوره زمانی عمر استورج، که معمولا حدود 5 سال است، هر دو نوع دیسک در کاربردهای big data به خوبی هم کار می کنند.
  • سیگیت بیشتر یک شرکت سخت افزاری است، تا یک شرکت نرم افزاری، و حضور آن در عرصه ای که به نرم افزار خیلی گره خورده است، می تواند عواقب خاص خودش را داشته باشد. واقعیت این است که اکنون فرم ویر بسیاری از هارد دیسک ها، حتی مدل های enterprise، یک کد درهم و برهم (spaghetti code) است که وقتی تعداد دیسک ها به هزاران عدد می رسد، مشکلات زیادی، که بیشتر نرم افزاری هستند، تا واقعا سخت افزاری، برای مدیران سیستم ایجاد می کنند. در این حالت باید با احتیاط بسیار بیشتری، در مورد یک دیسک که جنبه نرم افزاری آن بیشتر هم شده است، اظهار نظر کرد.
  • مشخص نیست که از نظر performance اینکه ما 500 تا دیسک نیمه هوشمند داشته باشیم بهتر است، یا اینکه 10 سرور قدرتمند هرکدام با 50 تا دیسک غیر هوشمند! به عبارت دیگر به نظر می رسد استفاده از حالت 10 تا سرور با SAS Backplane که 50 تا هارد به هر سرور وصل شده است مزایای بیشتری داشته باشد.
  • و در نهایت، حتی اگر تمام موارد فوق بدون مشکل پیش برود، داشتن یک مجموعه آجر خوب، به معنی داشتن یک ساختمان خوب نخواهد بود! به عبارت دیگر، باید شرکتهای دیگری به عنوان integrator وارد میدان شوند و نیازهای مصرف کننده را با ترکیب نرم افزار و سخت افزار مناسب تامین کنند.

 

نتیجه گیری

در مجموع به نظر می رسد با وجود مزایای تئوری که سیستم seagate kinect در ظاهر دارد، اینکه آیا استفاده از آن واقعا این مزایا را ارائه می کند یا خیر، نیازمند گذشت زمان و ارائه عملی این محصول به بازار باشد. تنها بعد از اینکه این محصول واقعا یک یا دو سال در بازار ارائه شد و زیر بار رفت، می توان در مورد آن ارزیابی واقعی ارائه کرد، و اکنون برای قضاوت در مورد آن بسیار زود است. علاوه بر این باید منتظر شد و دید پاسخ رقبای سیگیت، یعنی western digital (و شاخه enterprise آن یعنی HGST) و Toshiba به ارائه این سیستم چه خواهد بود.