مقدمه
یکی از نمونه های اولیه و پیاده سازی های خوب اما خیلی گران استورج های توزیع شده (distributed storage)، سیستم Isilon می باشد. این سیستم که از سال 2001 پایه گذاری شده است، یک scale-out nas است که در حال حاضر می تواند تا دهها پتابایت اطلاعات را روی خود نگهداری کند.
از آنجا که isilon یکی از استورج های مشهور می باشد و شاید برای بسیاری یکی از گزینه های خرید استورج به شمار بیاید، آشنایی با خصوصیات آن می تواند راهنمای خوبی برای شناخت خوبی ها، بدی ها و مدل های مختلف این سیستم باشد.
ساختار کلی و معماری سیستم
سیستم آیسیلون یک scale-out nas است که دو ویژگی مهم سیستم در همین تعریف نمایان می شود.
در سیستم های scale-up مانند انواع استورج SAN، برای اضافه کردن حجم سیستم، باید به آن هارد اضافه کرد، اما با اضافه کردن هارد جدید الزاما پهنای باند read/write سیستم بالا نمی رود. علاوه بر این هر کنترلر استورج یک محدودیت ذاتی برای تعداد هاردی که پشتیبانی میکند و پهنای باندی که ارائه می کند دارد که نمی تواند از آن بالاتر برود. به عبارت دیگر وقتی شما به این محدودیت می رسید، چاره ای به جز تعویض استورج وجود ندارد، که به آن ارتقای لیفتراکی هم می گویند! به عبارت دیگر شما باید با لیفتراک استورج قبلی را بیرون گذاشته، ویک استورج جدید جایگزین آن کنید.
در سیستم های scale-out مانند isilon یا Xendure، با اضافه کردن نودهای جدید، هم پهنای باند و هم حجم بالا میرود. به عبارت دیگر هر موقعی که شما نیاز به پهنای باند یا حجم بیشتری داشته باشید، می توانید نود جدید اضافه کنید و ظرفیت و پهنای باند سیستم بدون ایجاد وقفه در کار بالاتر خواهد رفت.
علاوه بر این آیسیلون یک NAS است. به همین خاطر اطلاعات روی آن بصورت فایل ذخیره و خوانده می شوند. اگر با مبانی استورج آشنا باشید، می دانید که سه روش اصلی برای دسترسی به اطلاعات روی استورج وجود دارد:
- block level access در این حالت به تک تک بلوک های دیتا روی استورج دسترسی وجود دارد و مدیر سیستم می تواند استورج را با فایل سیستم دلخواه (مثلا ext4, ntfs) فرمت کند.
- file level access در این حالت به اطلاعات روی استورج فقط بصورت فایل می توان دسترسی داشت. در این حالت استورج برای خود یک فایل سیستم داخلی دارد، که دیگران فقط می توانند فایل ها را از پشت آن ببینند و امکان دسترسی مستقیم به بلوک های اطلاعات را ندارند.
- object level access در این حالت اطلاعات بصورت آبجکت، که هر آبجکت یک payload باینری به همراه متادیتای آن است ذخیره می شود. جزییات بیشتر در مورد آبجکت استورج ها نیاز به یک مقاله مجزا دارد.
کاربرد اصلی سیستم های block level access جایی است که اپلیکیشن باید بصورت مستقیم به بلوک های روی دیسک دسترسی پیدا کند. این کاربردها شامل دیتابیس ها، ماشین های مجازی و مثل این می شود. اما در isilon امکان دسترسی مستقیم به بلوک ها وجود ندارد و دسترسی فقط در سطح فایل ممکن است. دسترسی به فایل های روی کلاستر با پروتکل های http, smb, nfs, ftp, hdfs و openstack swift ممکن است.
پایه استورج isilon نودها هستند. هر نود همانند یک سرور به همراه تعدادی هارد دیسک است که روی آن سیستم عامل OneFS در حال اجراست و از طریق دو شبکه متفاوت به کاربر و بقیه نودها متصل می شود. یعنی هر نود یک شبکه اینفینی باند (infiniband) دارد که از طریق آن به سایر نودها متصل می شود و یک شبکه گیگابیت (یا 10GbE) اترنت دارد که از طریق آن به شبکه کاربری کلاینت متصل می شود. توجه داشته باشید چون آیسیلون بصورت NAS کار می کند، اتصال شبکه FC که در کنترلرهای DAS و SAN دیده می شود اینجا وجود ندارند.
مجموعه چند نود در کنار هم یک کلاستر نامیده می شود. حداقل تعداد نود در یک کلاستر 3 عدد و حداکثر تعداد نود 144 عدد است. باید توجه داشت که عدد 144 نود محدودیت ذاتی خود Isilon نیست، بلکه حداکثر تعداد پورتی است که یک سوییچ Infiniband در حال حاضر دارد، و در آینده اگر سوییچ اینفینی باند با تعداد پورت بیشتر ساخته شود می توان تعداد نود یک کلاستر را افزایش داد.
هر نود در آیسیلون از یک سخت افزار سرور معمولی به همراه سیستم عامل خاص شده (customized) برای اینکار تشکیل شده است.
سخت افزار سرور، بر پایه پروسسور اینتل است و دقیقا مانند یک سرور x86 معمولی می ماند و می تواند مدل های مختلفی بر اساس قدرت پروسسور، مقدار رم، تعداد دیسک و نوع آن (هارددیسک یا ssd) و تعداد پورت شبکه داشته باشد، که در بخش سخت افزار بصورت مفصل به آن خواهیم پرداخت.
سیستم عامل هر نود هم OneFS است که بر پایه FreeBSD می باشد. به عنوان مثال OneFS 8.0 بر پایه FreeBSD 10 می باشد.
روی هر نود مجموعه ای از سرویس های نرم افزاری مختلف در کنار هم در حال کار هستند که نتیجه کار آنها، عملکرد استورج isilon می باشد. سرویس هایی که به کاربر سرویس می دهند (مثلا سرور ftp، سرور smb و بقیه) سرویس های کلاینت (client services) نامیده می شوند. به پروتکل هایی هم که کاربر می تواند با آنها به سیستم متصل شود (مثلا ftp, smb و بقیه) پروتکل های فرونت اند (front end protocols) نامیده می شوند.
سرویس هایی که عملیات داخلی کلاستر را انجام میدهند عملیات کلاستر (cluster operations) نامیده می شوند. این ها یکسری وظیفه (job) را انجام میدهند که برای مدیریت عملیات داخلی کلاستر (internal operations) لازم است. همه این جاب های توسط یک job engine که خودش یک سرویس داخلی OneFS است مدیریت می شوند.
سیستم آیسیلون از نظر طراحی، جزو انواع بدون سرور کنترل مرکزی است. به عبارت دیگر در این سیستم یک نود مرکزی که عملیات را مدیریت کند و نرم افزار متفاوتی داشته باشد، وجود ندارد، و همه نودها دقیقا با هم از نظر نرم افزاری برابر هستند. به همین خاطر، کافی است هر موقعی که لازم می شود فقط یک نود جدید به کلاستر اضافه کرد و بصورت خودکار ظرفیت و پهنای باند نود به کلاستر اضافه می شود. اما چطور چنین چیزی ممکن است؟
کلید قابلیت بالا، در رفتار دوگانه هر نود نهفته است. به عبارت دیگر در آیسیلون هر نود هم به عنوان کلاینت برای بقیه نودها و هم به عنوان مدیر یک عملیات کار می کند.
به عبارت دیگر هر نود دو حالت initiator (آغاز کننده) و participator (مشارکت کننده) دارد. هنگامی که کلاینت می خواهد یک فایل را بنویسد یا بخواند (یعنی یک IO Operation را شروع کند)، به یکی از نودها وصل می شود و آن نود به عنوان initiator کار را شروع می کند. تمام عملیات روی فایل با نود initiator میباشد و آن نود نقش کاپیتان (captain) را در عملیات ایفا میکند، اما بقیه نودها در خواندن و نوشتن اطلاعات روی خودشان مشارکت میکنند و به نوعی تا پایان آن عملیات به عنوان زیردست این نود کاپیتان کار می کنند.
روی سیستم عامل OneFS برحسب لیسانس خریداری شده، قابلیت های مختلفی ممکن است فعال باشد. به عنوان مثال اگر قابلیت SmartConnect روی سیستم فعال باشد، وقتی یک کلاینت به یک نود متصل شود که سر آن نود شلوغ باشد، بصورت خودکار درخواست کاربر به یک نود دیگر منتقل می شود تا از طریق آن نود مدیریت شود. در مورد این قابلیت ها نیز بصورت مفصل در بخش نرم افزار صحبت خواهیم کرد.
از آنجا که آیسیلون می تواند با ترکیب کردن نودهای مختلف، به حجم بالا، پهنای باند بالا و یا IOPS بالا و ترکیبی از آنها دست یابد، کاربردهای متنوعی دارد. به عنوان مثال یکی از کاربردهایی که EMC آیسیلون را برای آن پیشنهاد می کند، نگهداری تصاویر دوربین های امنیتی به مدت طولانی است. در این حالت با استفاده از نودهای X410 و ترکیب آنها تا 2.5 پتابایت، می توان تصویر 1000 دوربین امنیتی full HD را به مدت 30 روز نگهداری کرد. امری که در حراست بسیاری از سازمانها ممکن است بسیار لازم باشد.
از کاربردهای دیگر isilon می توان به نگهداری اطلاعات پزشکی، صنعت مدیا، صنعت نفت و گاز و آرشیو برای حجم های زیاد اطلاعات اشاره کرد.
تا اینجا باید دید کلی نسبت به کلیات عملکرد سیستم آیسیلون پیدا شده باشد. در بخش بعد ما به بررسی سخت افزار نودها و قابلیت ها و مشخصات آنها خواهیم پرداخت.
متخصص در زمینه سیستم های استورج، استریمینگ و برودکست