راه اندازی Share Storage به کمک CEPH برای زیرساخت ابری در Ubuntu 16.04 – (بخش اول)

۱۰ دی ۱۳۹۶

ما در این سلسه مقالات قصد داریم در رابطه با یک راه‌کار نرم‌افزاری یا Software Defined Storage به نام CEPH صحبت کنیم، مزایای آن را مورد بررسی قرار داده و در نهایت نحوه‌ی راه‌اندازی آن در چند سناریوی مختلف را بررسی کتیم. و خواهیم گفت که آیا این راه‌کار، تنها یک نرم‌افزار خوش بر و رو است یا واقعا در محیط‌های عملیاتی قابل استفاده خواهد بود. پیش از قضاوت لطفا با ما در این سلسله مقالات همراه شوید. حتما شگفت‌زده خواهید شد!

نیاز به شیوه‌های نوین ذخیره‌سازی امروز بیش از هر زمان دیگری احساس می‌شود. توسعه نرم‌افزارهای پیام‌رسان موبایلی و زیرساخت‌های ابری ذخیره‌سازی که به کاربران امکان می‌دهد در هر زمان و مکانی فایل‌های حجیم خود را برروی شبکه‌ی اینترنت قرار دهند، باعث رشد روزافزون فضای ذخیره‌سازی شده است. تحقیقات نشان می‌دهد حجم داده موجود در اینترنت در سال ۲۰۲۰ به عدد بزرگ ۴۵ زتابایت خواهد رسید! هم اکنون میزان زیادی از بودجه شرکت‌ها و سازمان‌ها صرف تهیه و راه‌اندازی زیرساخت‌های ذخیره‌سازی می‌شود. روش‌هایی مانند استفاده از SAN در کنار مزایایی که دارد، هزینه‌ی سرسام‌آوری را به سازمان‌ها تحمیل می‌کند. علاوه بر آن، این خود بحث و چالشی دیگر است که آیا زیرساخت‌هایی مانند SAN و یا NAS با دنیای امروزی که به سمت ابر پیش رفته است، سازگاری دارد یا خیر.

CEPH چیست؟

سف یک نرم‌افزار ذخیره‌سازی توزیع‌شده‌ی متن‌باز است که هدف اصلی آن ایجاد قابلیت توسعه، کارایی بالا و احتراز از مدیریت متمرکز (که امکان Fail شدن خواهد داشت) بوده است. سف یک راه‌کار واقعی و جامع در زمینه‌ی «سرویس‌های یکپارچه ذخیره‌سازی» است و امکاناتی مانند Block Storage و Object Storage را در اختیار ما می‌گذارد. قابلیت توسعه و اتصال از طریق API را نیز به این فهرست اضافه کنید. نسخه‌ی اولیه این محصول در سال ۲۰۱۲ و آخرین نسخه‌ی آن هم در دسامبر ۲۰۱۷ ارائه شده است.

آیا با وجود RAID و SAN استفاده از این راه‌کار منطقی و عملی است؟

سوال اساسی که همواره در سازمان‌ها پرسیده می‌شود این است که پس نقش RAID و SAN این وسط چه می‌شود؟ آیا می‌توان به راه‌کار نرم‌افزاری اعتماد کرد و از خیر SAN Storage گران‌قیمت گذشت؟ در چند بخش به این سوال پاسخ خواهیم داد.

ابتدا بگذارید کمی واقع‌بینانه به قضیه نگاه کنیم. در حالت کلی استفاده از سخت‌افزار مهم‌ترین مزیتی که به همراه می‌آورد نگه‌داری راحت‌تر نسبت به نرم‌افزار است. به صورت معمول اینگونه است که شرکت‌ها و سازمان‌ها سخت‌افزار ذخیره‌سازی گران‌قیمتی از خانواده‌های EMC مانند VNX و یا از HP مانند ۳PAR خریداری می‌کنند و بعد از راه‌اندازی، تنها در حد جابجا کردن هاردهای سوخته به آن سرک می‌کشند! بنابراین در این بخش مسلما استفاده از سخت‌افزار برتری خواهد داشت.

ولی اگر واقع‌بینانه به قضیه نگاه کنیم، آیا برای سازمانی که اطلاعات آن اهمیت حیاتی دارد استفاده از SAN کافی است؟ البته که نه. پس سازمان‌ها به لایسنس‌های Mirroring روی آورده‌اند و از هر تجهیز دو عدد یا بیشتر تهیه می‌کنند، هزینه‌ی بسیار زیاد لایسنس می‌دهند تا در نهایت بتوانند از بابت اطلاعات خیالشان را راحت کنند. اگر هزینه‌ی راه‌اندازی ۱۰۰ ترابایت فضای ذخیره‌سازی RAID شده و نه RAW، با وجود مکانیزم‌های Mirroring را بخواهیم سرانگشتی حساب کنیم، با انتخاب RAID5 و سخت افزار EMC گمان نمی‌کنم خوشبینانه‌ترین قیمت برای این سناریو کمتر از ۷ میلیارد تومان از آب دربیاید.

با وجود اینکه RAID سال‌ها محافظ اطلاعات ما بوده است، باید گفت با حجم زیاد داده‌های امروز دیگر جواب‌گو نیست. به راحتی می‌توانید تست کنید با حجم بالای دیسک‌های امروزی که هر کدام بیش از ۶ ترابایت است، در صورت از دست رفتن هارد چند ساعت و با حتی چند روز برای ریکاوری و بازسازی اطلاعات زمان نیاز خواهد بود.

مساله بعدی وجود شبکه‌های Cloud در دنیای امروزی است. یکی از مهمترین خواسته‌های این فضا، استفاده از Object Storage می‌باشد که سیستم‌های SAN قدیمی امکان ارائه چنین سرویسی را ندارد. هر چند تجهیزات جدیدی مانند ECS نیز روانه‌ی بازار شده است، اما آیا واقعا این سخت‌افزارها یک راه حل واقعی «ذخیره‌سازی یکپارچه» است؟ به نظر ما خیر. «ذخیره‌سازی یکپارچه» باید تمامی امکانات را به صورت همزمان و با بالاترین کیفیت ارائه دهد.

با تمامی این بحث‌ها، مورد اصلی در مقایسه بحث کارایی است که باید مورد بررسی دقیق قرار گیرد.

کارایی راه‌کار نرم‌افزاری بیشتر است یا سخت‌افزاری؟

در بسیاری از موارد تجهیزات سخت‌افزاری به مراتب کارایی بهتری نسبت به نرم‌افزار از خود نشان می‌دهد. نمونه‌ی بارز این موضوع تجهیزات سیسکو است که با توجه به اینکه بسیاری از کارها را به صورت سخت‌افزاری واقعی انجام می‌دهد، سرعت و کارایی بهتری دارد. اما در خصوص تجهیزات ذخیره‌سازی به نظر می‌رسد علت بهتر بودن نمونه‌های سخت‌افزاری نسبت به نرم‌افزاری، راحتی کار و پایداری مناسب باشد و نه لزوما کارایی بهتر. بگذارید به صورت موردی و دقیق این موضوع را بررسی کنیم.

شما یک دستگاه سخت‌افزاری EMC VNX خریداری می‌کنید. برای هر سرور کارت HBA گرفته و به صورت اختصاصی و با پروتکل FC سرورها را به SAN Storage متصل می‌کنید. فکر می‌کنم بهترین راه‌کار در حال حاضر تقریبا این‌گونه باشد. با این سناریو کارت HBA و یا SAN Switch ما می‌تواند سرعتی معادل ۸Gbps را ارائه دهد. البته بله، سرعت‌های ۱۶ و ۳۲ نیز در بازار وجود دارد و حتی سال‌ها است در خود ایران نیز عملیاتی هم شده است. حتی می‌توانیم بجای استفاده از SAN Switch از سوییچ‌های نکسوس استفاده کنیم، سرعت را تا ۸۰Gbps و یا حتی بیشتر نیز بالا ببریم. (راه‌کار مورد علاقه‌ی من در این سال‌ها) اما موضوع مهم این مسائل نیست. موضوع مهم نقطه‌ی ورودی به SAN Storage است که با یک Bottleneck بزرگ روبرو می‌شویم. اینکه هر سرور پهنای باندی معادل ۸۰Gb داشته باشد و تمامی این سرورها همزمان بخواهند وارد یک گذرگاه مثلا ۳۲Gb شوند. باز هم شاید بگویید از هارد فلش FASTVP استفاده می‌کنیم. اما بیایید واقع بین باشیم. هر کاری هم کنید نمی‌توانید این محدودیت بزرگ را از بین ببرید. ضمن اینکه تمامی داده‌های شما توسط یک یا دو کنترلر SAN مدیریت می‌شود که فاجعه است. در شکل زیر این موضوع در ساده ترین حالت نشان داده شده است.

software defined storage

اما در سف چه اتفاق میفتد؟

در این سناریو شما باز هم همان توپولوژی قبلی را پیاده‌سازی می‌کنید. اگر خواستید می‌توانید از سوییچ نکسوس استفاده کنید، و یا اگر هم نه از سوییچ سری ۳۸۰۰ که پورت ۴۰Gb در اختیار ما قرار می‌دهد. هر سرور یا کارت CNA به سوییچ متصل می شود و تمام! با فرض اینکه ۱۵ سرور داشته باشیم، هر کدام از این ۱۵ سرور کنتلرر خواهد بود. پس Single Point Of Failure نخواهیم داشت. ۱۵ سرور هر کدام ۴۰Gb پهنای باند دارد، و در نتیجه پهنای باند کلی و واقعی ما مضرب این دو عدد می شود! ۶۰۰Gb در ثانیه!

اما هزینه‌ی این راه‌کار چقدر خواهد شد؟ ۱۵ سرور هرکدام با CPU مدل اینتل ۲۶۵۰v4 و با ۶۴ گیگ رم بیشتر از ۲۰ میلیون تومان نخواهد شد. مجموعا ۳۰۰ میلیون. بر روی هر سرور نیز ۵ هارد ۴ ترابایتی ببندیم مجموعا چیزی حدود ۱۵۰ میلیون تومان خواهد شد. در هر سرور نیز ۲ هارد  SSD Enterprise 1 TB برای افزایش سرعت ببندیم، مجموعا چیزی در حدود ۱۲۰ میلیون خواهد شد.  با این کانفیگ حدودا ۳۳۰ ترابایت فضا خواهیم داشت و تنها با حدود ۶۰۰ میلیون تومان هزینه. به این موضوع هم فکر کنید که این توپولوژی به راحتی قابلیت توسعه به صورت افقی خواهد داشت و می‌توانیم در هر زمان سرور جدید و هارد جدید به این ساختار اضافه کنیم، بدون نیاز به  هزینه‌ی گزاف. معماری این توپولوژی به صورت زیر است.

Ceph Architecture

همان‌طور که مشخص است هر چقدر تعداد سرورها در این سناریو بیشتر شود، برخلاف راه‌کارهای سنتی، پهنای باند و کارایی افزایش چشمگیری پیدا می‌کند.

در خصوص پایداری و نحوه‌ی ذخیره‌سازی داده‌ها (که از الگوریتمی به نام CRUSH استفاده می‌شود) در بخش های بعدی و در هنگام راه‌اندازی توضیحات کاملی خواهیم داد تا با توانایی ساختار جدید ذخیره‌سازی دنیا بیشتر آشنا شوید. در بخش بعد با راه اندازی ابتدایی سف آشنا خواهیم شد. فراموش نکنید برای دنیای کلود، نیاز به راه حل های کلودی خواهید داشت!

بدون دیدگاه
برچسب‌ها:
× برای اطلاع از آخرین اخبار و مقالات آروان عضو خبرنامه ما شوید