آموزش رایگان Data Storage؛ کنترلرها چه نقشی در دنیای آرایههای ذخیرهساز دارند؟
کنترلکننده آرایه (array controller) قطعهای است که مسئولیت مدیریت دیسک درایوهای فیزیکی را بر عهده دارد، بهطوری که دیسکها را به عنوان یک واحد یکپارچه به میزبانها نشان میدهد. کنترلر رید، کارت یا تراشهای است که نقش واسط را میان سیستمعامل و درایوهای ذخیرهساز بر عهده دارد. کنترلرهای آرایهها بر مبنای معماریهای مختلفی طراحی میشوند که هر یک مزایا و معایب خاص خود را دارند. در ادامه به معماری دو کنترلری و معایب آن؛ معماری های ذخیره ساز مشبک، LUN، آرایههای کلاس سازمانی و… میپردازیم. با فالنیک همراه باشید.
اگر قصد دریافت قیمت استوریج یا خرید استوریج hp را دارید، میتوانید با زدن روی لینکها وارد فروشگاه اینترنتی فالنیک شوید و پس از بررسی مشخصات فنی محصول موردنظر خود را انتخاب کنید.
- معماری دو کنترلری در ذخیره سازی چیست؟
- معایب معماری دو کنترلر
- معماریهای ذخیرهساز مشبک
- مالکیت واقعی LUN بر مبنای یک معماری فعال/فعال (Active/Active)
- کاهش اثرات جانبی خرابی کنترلرها
- قابلیت مقیاسپذیری افقی
- آرایههای کلاس سازمانی
- آرایههای میان رده
- آرایههای تمام فلش
معماری دو کنترلری در ذخیره سازی چیست؟
در معماریهای دو کنترلری شما آرایههای ذخیرهسازی با دو کنترلر در اختیار دارید. کنترلکنندهها اغلب با نامهای دیگری مانند گرهها یا موتورها و به عنوان هدها (head) در دنیای NAS شناخته میشوند.
در تمام پیکربندیهای کنترلکننده دوگانه، زمانی که بهنظر میرسد هر دو کنترلر همزمان فعال هستند، در وضعیت فعال/فعال قرار ندارند. هر LUN فقط با یکی از کنترلکنندهها در ارتباط است. بهعنوان یک قاعده کلی LUNهای با اعداد فرد متعلق به یک کنترلکننده و LUNهای زوج متعلق به کنترلکننده دیگری هستند. فقط کنترلکنندهای که مالک LUN است، قادر به خواندن و نوشتن مستقیم روی LUN است. آرایههای کنترلکننده دوگانه بر اساس هر LUN فعال/غیرفعال عمل میکنند. یک کنترلکننده مالک LUN است و بنابراین برای آن LUN فعال است، در حالی که کنترلکننده دیگر غیرفعال است و مستقیماً روی LUN اطلاعاتی را نمیخواند یا نمینویسد. این معماری بهنام دسترسی به واحد منطقی غیر متقارن (ALUA) سرنام asymmetric logical unit access شناخته میشود.
اگر یک میزبان از طریق کنترلکننده غیرمالک به یک LUN دسترسی پیدا کند، کنترلکننده غیرمالک باید درخواست را به کنترلکننده مالک ارسال کند، که تاخیری در عملیات خواندن و نوشتن به وجود میآورد.
اگر این وضعیت ادامه پیدا کند، مالکیت LUN (کنترلکنندهای که عملیات خواندن و نوشتن مستقیما به LUN را مدیریت میکند) باید تغییر کند. نرمافزار ویژه نصب شده روی میزبان که به آن نرمافزار چند مسیری (multipathing) گفته میشود به مدیریت این فرآیند کمک میکند و مالکیت کنترلکننده را بهطور خودکار و بدون دخالت کاربر تغییر میدهد.
برای روشن شدن بحث مثالی در ارتباط با یک سیستم کنترلکننده دوگانه که ALUA را پیادهسازی میکند ارائه میکنیم. فرض کنید یک سیستم کنترلکننده دوگانه دارید که یک کنترلر به نام CTL0 و دیگری به نام CTL1 است.
این سیستم دارای 10 عدد LUN است. CTL0 مالک تمام LUNهای فرد است و CTL1 مالک تمام LUNهای زوج است. وقتی میگوییم یک کنترلر دارای LUN است، منظورمان این است که قابلیت خواندن و نوشتن انحصاری در اختیار LUN وجود دارد. در این پیکربندی، ممکن است مشاهده کنید که هر دو کنترلر فعال هستند و به همین دلیل برخی از کارشناسان آنها را فعال/فعال مینامند. تنها یک کنترلر در هر مقطع زمانی به هر LUN دسترسی خواندن/نوشتن دارد.
در اینجا، نکته ظریف، اما مهمی وجود دارد. اگر یکی از کنترلکنندهها در یک سیستم کنترلکننده دوگانه از کار بیفتد، کنترلکننده دیگر مالکیت LUNهایی را که قبلاً متعلق به کنترلکننده سالم بود در اختیار میگیرد. چنین تکنیکی عالی بهنظر میرسد، اما مشکل این جاست که حجم کار کنترلر باقی مانده دو برابر شده است.
سیستمهای کنترلکننده دوگانه سالهاست وجود دارند و پیادهسازی نسبتاً سادهای دارند و به دلیل هزینه نه چندان بالا، مورد توجه فروشندگان و البته مصرفکنندگان قرار دارند. این معماری در محیطهای کوچک تا متوسط محبوب است و اغلب به عنوان آرایه میانرده شناخته میشود.
معایب معماری دو کنترلر (Dual-Controller Shortcomings)
موارد زیر مهمترین نکاتی هستند که باید در مورد معماریهای کنترل کننده دوگانه بدانید:
- وقتی یک کنترلر از کار بیفتد، کنترلر دیگر حجم کار کنترلر خراب را بر عهده میگیرد، اینکار باعث افزایش حجم کار کنترلر باقی مانده میشود. یک آرایه کنترلکننده دوگانه با هر دو کنترلکننده که با 80 درصد ظرفیت طراحی شده کار میکنند، در صورت خرابی یکی از کنترلکنندهها با مشکلات عملکردی زیادی روبرو میشود.
- هنگامی که کنترلر در سیستم کنترلکننده دوگانه از کار میافتد، سیستم باید به حالت Write-through به معنای انتقال دادههای حافظه کش به فضای پشتیبان برود. در این حالت، I/O باید قبل از صدور تاییدیه (ACK) برای میزبان از ایمن بودن دیسک پشتیبان اطمینان حاصل کند. این موضوع اهمیت زیادی دارد، زیرا صدور یک ACK زمانی که دادهها در حافظه نهان هستند، خطرناک است، زیرا ممکن است کنترلکننده دیگر نیز از کار بیفتد و دادهها از دست بروند. هنگام آغاز عملیات I/O در حافظه نهان و در وضعیت نوشتن هیچ پیام ACK صادر نمیشود، عملکرد آرایه به شدت کاهش پیدا میکند.
- معماریهای دو کنترلری از نظر مقیاسپذیری به شدت محدود هستند و نمیتوانند بیش از دو گره کنترلکننده داشته باشند.
کارشناسان شاهد مشکلات عملکردی بسیاری در محیطهای SAN بودهاند، آرایههای کنترلکننده دوگانه، هنگامی که یکی از کنترلکنندهها از کار میافتد در حداکثر ظرفیت خود کار میکنند، اما کنترلر توانایی پاسخگویی سریع به حجم زیادی از بارهای کاری را ندارد.
کارشناسان سیستمهای ایمیلی را مشاهده کردهاند که قادر نبودند به موقع ایمیلها را ارسال و دریافت کنند. این مشکل زمانی بهوجود میآید که آرایه ذخیرهساز مرکزی مجبور است روی یک کنترلکننده اجرا شود. حتی زمانی که کنترلر خراب تعویض میشود، صفهای ایمیل ممکن است ساعتها و گاهی چند روز طول بکشد تا ارسال یا دریافت شوند و سیستم دوباره به حالت اولیه خود بازگردد. طبیعی است در چنین شرایطی هیچ متخصصی دوست ندارد مدیر/معمار شبکه یا مسئول سرویسهای ذخیرهسازی چنین محیطی باشد.
معماریهای ذخیرهساز مشبک (Grid Storage Architectures)
معماریهای ذخیرهساز شبکهای یا همان مشبک که بهعنوان معماریهای خوشهای یا مقیاسپذیر شناخته میشوند، راهکاری برای غلبه بر محدودیتهای معماریهای کنترلکننده دوگانه هستند. آنها بیش از دو کنترلر دارند و نسبت به معماریهای دو کنترلر قدیمی بسیار مدرنتر و با نیازهای امروزی سازگارتر هستند.
مالکیت واقعی LUN بر مبنای یک معماری فعال/فعال (Active/Active)
تفاوت اصلی معماری جدید در مقایسه با اکثر معماریهای کنترلکننده دوگانه این است که همه کنترلکنندهها در یک آرایه مبتنی بر شبکه به عنوان یک واحد منطقی و در یک پیکربندی فعال/فعال واقعی عمل میکنند. وقتی میگوییم فعال/فعال واقعی، یعنی با محدودیتهای معماری ALUA کنترلکننده دوگانه روبرو نیستیم. در معماریهای شبکه، چندین گره میتوانند مالکیت و نوشتن بر روی هر یک و همه LUN را داشته باشند.
یک میزبان میتواند از طریق هر یک از مسیرهای موجود به LUN که در دسترس است، عملیات I/O را ارسال کند، بدون اینکه تاخیری از بابت تغییر مالکیت کنترلکننده بهوجود آید. در آرایههای کنترلکننده دوگانه، میزبان میتواند دستورات I/O را به یک LUN خاص (دقت کنید به یک LUN) و آن هم از طریق مسیرهای کنترلکننده مالک بدون ایجاد تأخیر اضافی ارسال کند که در دنیای محاسبات امروزی چندان جالب نیست، در حالی که معماری فعالفعال چنین نیست.
نکته: در این ارتباط اصطلاحی بهنام scale-out وجود دارد که ترجمه مفهومی آن مقیاسپذیری افقی است (در نقطه مقابل مقیاسپذیری عمودی scale up) و شما میتوانید بهطور مستقل گرههای بیشتری را اضافه کنید که میتوانند شامل پردازنده مرکزی، حافظه و پورتها به سیستم و همچنین درایوهای بیشتری باشند. این معماری متفاوت از معماری سیستمهای مبتنی بر مقیاسپذیر عمودی است که فقط امکان اضافه کردن درایوهای بیشتری را میدهند. مثال ساده در معماریهای کنترلکننده دوگانه را دوباره بررسی میکنیم، 10 عدد LUN در آرایه با چهار کنترلکننده داریم. معماری ما از نوع شبکهای یا همان مشبک است، هر چهار گره میتوانند برای هر 10 LUN فعال باشند و روی آنها بنویسند پس به میزان قابل توجهی باعث بهبود کارایی میشود.
کاهش اثرات جانبی خرابی کنترلرها (Controller Failures)
آرایههای ذخیرهساز شبکه به شکل کارآمدتری با خرابیهای کنترلر مقابله میکنند زیرا سعی میکنند به حالت نوشتن در حافظه کش (cache write through) وارد نشوند، اما همه آرایهها در انجام اینکار به اندازه کافی هوشمند نیستند. یک آرایه چهار گرهای که یکی از کنترلرهای آن با خرابی روبرو شود، هنوز هم سه کنترلر فعال دیگر دارد که پاسخگوی بارهای کاری خواهند بود. اگر معماری آرایه بهشکل درستی پیادهسازی نشده باشد، سه کنترلر باقیمانده نمیتوانند به عنوان یک کش قرینه (محافظت شده) به کار خود ادامه دهند و تا زمانیکه کنترلر خراب جایگزین شود، ظرفیت قابل استفاده کمتری در دسترس خواهد بود.
فرض کنید هر کنترلکننده در آرایه چهار کنترلری ما دارای 10 گیگابایت حافظه کش است که در مجموع 40 گیگابایت حافظه نهان برای سیستم در دسترس قرار دارد. حافظه کش با تکنیک قرینهسازی محافظت میشود، یعنی نیمی از 40 گیگابایت و تنها 20 گیگابایت قابل استفاده است. هنگامیکه یک کنترلر واحد از کار باز ایستد، کل کش موجود به 30 گیگابایت کاهش مییابد. این خرابی بهشکل زنجیرهوار روی سه کنترلر باقیمانده قرینه شده اثرگذار است و تنها 15 گیگابایت کش قابل استفاده در دسترس قرار میگیرد. اگرچه مقدار حافظه نهان کاهش مییابد، اما بازهم سیستم مجبور نیست به حالت نوشتن در حافظه پنهان برود. این موضوع باعث کاهش قابل توجه عملکرد در هنگام خرابی یک گره میشود.
یک آرایه چهار گرهای که یک گره کنترلکننده را از دست میدهد، عملکرد آن (سیپییو، حافظه پنهان و تعداد پورتهای جلویی) به میزان 25 درصد به جای 50 درصد کاهش مییابد.
یک آرایه هشت گره تنها 12.5 درصد کاهش عملکرد را تجربه میکند و بازهم نیازی به رفتن به حالت نوشتن حافظه پنهان نیست و سیستمی قابل اعتمادتر و مقاومتر در برابر خطا خواهید داشت.
قابلیت مقیاسپذیری افقی (Scale Out)
آرایههای مشبک در بحث گسترشپذیری، عملکرد بهتری نسبت به آرایههای کنترلکننده دوگانه دارند. میتوانید پردازنده مرکزی، حافظه پنهان، پهنای باند و دیسک بیشتری را به آرایه اضافه کنید. معماریهای کنترلکننده دوگانه اغلب به شما امکان میدهند فقط درایوها را اضافه کنید.
یک کنترلر دارید که با 10000 عملیات ورودی/خروجی در ثانیه (IOPS) کار میکند. اگر یک آرایه کنترلکننده دوگانه داشته باشید به حداکثر 20000 IOPS دست پیدا میکنید، اما اگر یکی از کنترلکنندهها خراب شود، این تعداد به 10000 کاهش مییابد. اگر دیسک درایوهای کافی را به کنترلرها اضافه کنید تا به عملیاتی در مقیاس 40000 IOPS برسید، کنترلرها نمیتوانند عملکرد را بهگونهای تنظیم کنند تا درایوها به پتانسیل 40000 IOPS برسانند. اگر از یک معماری مشبک استفاده کنید، میتوانید کنترلکنندههای بیشتری اضافه کنید، تا کنترلهای اصلی بهاندازهای قدرتمند شوند که از درایوها به بهترین شکل استفاده کنند.
این افزایش مقیاسپذیری، عملکرد و انعطافپذیری هزینهبر است. آرایههای مبتنی بر شبکه یا آرایههای مشبک معمولاً در کلاس سازمانی طراحی و استفاده میشوند، زیرا سازمانها مشکلی بابت هزینههای زیاد ندارند.
آرایههای کلاس سازمانی (Enterprise)
اغلب میشنوید که مردم از آرایهها به عنوان کلاس سازمانی یاد میکنند. این حرف چه معنایی دارد؟ متأسفانه، هیچ تعریف رسمی وجود ندارد و فروشندگان به سوء استفاده از این اصطلاح میپردازند، معمولاً اصطلاح کلاس سازمانی در موارد زیر را استفاده میشود:
- کنترلرهای متعدد
- تأثیر حداقلی هنگام از کار افتادن کنترلرها
- ارتقاهای غیر مخرب آنلاین (NDU)
- مقیاسپذیری به بیش از 1000 درایو
- دسترسپذیری بالا
- عملکرد بالا
- مقیاسپذیری بالا
- فعالیت مستمر
- عملکرد قابل پیشبینی
- گرانقیمت
این فهرست میتواند ادامه پیدا کند، کلاس سازمانی مکانیزمی ارائه میکند که اگر توانایی مالی خرید آن را داشته باشید، یک محیط بی دردسر برای شما پدید میآورد.
امروزه بیشتر فروشندگان تجهیزات ذخیرهسازی، آرایههای میان رده و کلاس سازمانی را عرضه میکنند. معماریهای مبتنی بر شبکه در گروه سازمانی قرار میگیرند، در حالی که معماریهای کنترلکننده دوگانه اغلب میانرده در نظر گرفته میشوند.
آرایههای کلاس سازمانی واقعا تخریبناپذیر هستند.
آرایههای کلاس سازمانی برترین انتخاب در دنیای آرایههای ذخیرهساز بهشمار میروند و فروشندگان این آرایهها از اصطلاحاتی همچون غیرقابل تخریب یا ضد گلوله برای توصیف آنها استفاده میکنند. این موضوع به اندازهای توسط شرکتها جدی گرفته شد که چند سال قبل، شرکت HP تصمیم گرفت در محیط آزمایشگاهی یکی از آرایههای XP کلاس سازمانی خود را در معرض شلیک گلوله قرار دهد تا ثابت کند که ضد گلوله است. البته گلوله را بدون مشکل از آرایه عبور داد، اما تنها نیمی از زیرساخت فیزیکی کنترلکننده آرایه را از بین برد، زیرا طراحی به گونهای انجام شده بود تا تجهیزات ذخیرهساز اطلاعات در معرض تخریب قرار نگیرند. البته اینکار با هدف بازاریابی انجام شد.
در نمونه دیگری، HP دو آرایه کلاس XP خود را بهگونهای پیکربندی کرد که قرینه یکدیگر باشند و این بار یکی از آرایهها را با مواد منفجره، منفجر کرد. آرایه باقیمانده حجم کار اضافی را برداشت و به سرویسدهی ادامه داد!
آرایههای میان رده
در حالیکه آرایههای سازمانی، مشتریان خاص خود را دارند که مشکلی بابت هزینه خرید این محصولات ندارند، آرایههای میان رده نیز مشتریان خاص خود را دارند که نسبت به مسائل مربوطه به هزینهها حساسیت بیشتری دارند. آرایههای میانرده معمولاً با معماریهای کنترلکننده دوگانه مرتبط هستند. آرایههای میان رده در مقایسه با آرایههای سازمانی محدودیتهایی دارند که از مهمترین آنها به موارد زیر باید اشاره کرد:
- عملکرد
- مقیاسپذیری
- دسترسپذیری
آرایههای میان رده هزینههای قابل توجه کمتری (هزینههای سرمایهای و هزینههای عملیاتی) نسبت به آرایههای سازمانی دارند. آنها برای انجام فعالیتهایی در مقیاس بزرگ و سنگین عملکرد پایینترین نسبت به نمونههای سازمانی دارد. این آرایهها ممکن است با آرایههای سازمانی مشابه نباشند، اما اغلب با عملکرد خوب، دسترسپذیری و مجموعهای از ویژگیهای مناسب که متناسب با قیمتی است که برای آنها پرداخت میکنید شما را راضی نگه میدارند.
آرایههای تمام فلش
آرایههای ذخیرهساز تمام فلش عملکرد یکسانی با آرایههای ذخیرهساز سنتی دارند، با این تفاوت که عملکرد سریعتری ارائه میدهند.
هر دو مدل، الگوی رفتاری یکسانی دارند، شما به مجموعهای از پورتها در جلوی دستگاه دسترسی دارید، مقداری کش DRAM در آنها تعبیه شده، از باسهای داخلی استفاده میکنند، میزبان درایوهایی هستند و…
آنها ظرفیت و سایر پارامترهای درایوهای فلش را با هم ترکیب میکنند و از طریق رید یا سایر الگوهای محافظتی یک مکانیزم ذخیرهسازی یکپارچه و ایمن را ارائه میکنند. بسیاری از آنها سرویسهای اسنپشات با قابلیت تکثیرشوندگی، thin provisioning، deduplication و فشردهسازی ارائه میدهند. آرایههای تمام فلش میتوانند دو کنترلکننده (dual-controller)، تککنترلکننده (single-controller) یا مبتنی بر مقیاسپذیری افقی (scale-out) باشند.
تفاوتهای ظریف و قابل توجهی در این زمینه وجود دارد که باید در مورد آنها آگاه باشید.
فناوری حالت جامد در حال تغییر صنعت ذخیرهسازی و تغییر خطمشیها و چکلیستهای مرتبط با این حوزه است. یعنی نمیتوانید به سادگی از یک معماری قدیمی که سالها قبل در مورد هارد دیسکها تدوین کردهاید و عملکرد خوبی داشته در مورد حافظههای حالت جامد استفاده کنید.
به لحاظ عملی، اینکار امکانپذیر است و حتی برخی فروشندگان اینکار را انجام میدهند، اما از آرایه خود یا درایوهای حالت جامد که در آن قرار دادهاید، عملکرد خوبی به دست نخواهید آورد. در چند سال آینده، ذخیرهسازی حالت جامد تغییرات بزرگی در محیطهای شبکه و بهویژه مراکز داده به وجود خواهد آورد، زیرا از مکانیزم کاملا متفاوتی نسبت به هارد دیسکها استفاده میکند. تمام تنظیمات دقیقی که در طراحی آرایههای ذخیرهساز در یک دهه گذشته انجام دادهاید، همچون کشهای فوقالعاده بزرگ، ذخیرهسازی بهینه دادهها، الگوریتمهای واکشی اولیه، پروتکلهای مسیریابی و…. با تغییرات قابل توجهی روبرو میشوند.
سلام.من استوریج emc میخوام بخرم. ممنون میشم راهنماییم کنین.
درود بر شما
حسام عزیز،
شما میتوانید به صفحه استوریج emc مراجعه کنید.