خرابی سیستم حافظه ( رم های سرور ) اگر اصلاح نشود می تواند منجر به حتی خرابی سرور شود.
هر چقدر آرایه های حافظه افزایش یابد، ظرفیت حافظه نیز افزایش خواهد یافت در نتیجه احتمال خرابی های پیش روی سیستم حافظه بیشتر خواهد شد. خرابی های سیستم حافظه (ram) از شایع ترین خرابی های سرور محسوب می شوند.
سرور های Proliant gen10 از پردازنده های Intel® Xeon® Scalable استفاده می کنند؛که این پردازنده ها مجهز به تکنولوژی RAS می باشند.
RAS مخفف (reliability, availability, and serviceability)، (قابلیت اطمینان، در دسترس بودن و سرویس پذیری) می باشد. مزایای این تکنولوژی شامل مواردی چون :
- تشخیص و تصحیح خطا
- افزونگی و انعطاف پذیری
- نگهداری سیستم
می باشد.
در این مقاله قصد داریم مروری کلی بر تکنولوژی RAS داشته باشیم و با حداقل ویژگی و امکانات آن آشنا شویم.
چرا به تکنولوژی حافظه RAS نیاز است؟
uptime سرور هنوز هم یکی از حیاتی ترین جنبه های کنترل نگهداری سرور در مرکز داده است. متأسفانه سرورها ممکن است هر از چند گاهی با مشکلاتی مواجه شوند که گاهی به دلیل مشکلات نرم افزاری، قطع برق و یا خطاهای حافظه است. سه دسته اصلی از خطاهای حافظه که ما ردیابی و مدیریت می کنیم عبارتند از
- خطاهای قابل اصلاح،
- خطاهای غیر قابل اصلاح و
- خطاهای قابل بازیابی
تشخیص اینکه کدام خطاها قابل تصحیح و غیرقابل اصلاح هستند می باشد کاملاً به توانایی memory controller بستگی دارد.
خطاهای قابل اصلاح
طبق تعریف، خطاهایی هستند که توسط پردازنده قابل شناسایی و اصلاح هستند. خطاهای قابل اصلاح عموما تک بیتی می باشند.
همه ی سرورهای HPE قادر به تشخیص و تصحیح خطاهای تک بیتی و با پشتیبانی پیشرفته کد تصحیح خطا (ECC) هستند. در سیستمهای سرور اچ پی، به کاربر از طریق چراغ های روی پنل جلوی سرور یا برد سیستم (در صورت وجود) ویا از طریق HPE Integrated Management Log (IML)، هشدار داده میشود که DIMM از آستانه خطای قابل تصحیح فراتر رفته است و در صورت ادامه موجب خرابی و یا خاموشی سرور خواهد شد.
خطاهای غیر قابل اصلاح
خطاهایی هستند که توسط پردازنده قابل شناسایی هستند اما اصلاح نمی شوند. این خطا ها، همیشه خطاهای حافظه چند بیتی هستند. خطاهای وارد شدهIML (نشانه گذاری) خواهند شد. خطاهای غیرقابل اصلاح معمولاً بلافاصله منجر به خرابی یا خاموش شدن سرور می شوند.
خطاهای DRAM به طور کلی در دو نوع مختلف خطاهای سخت و خطاهای نرم وجود دارند.
- خطاهای سخت افزاری قابل تصحیح توسط سیستم تصحیح می شود و منجر به خرابی سیستم یا خرابی داده ها نمی شود، ولی آنها همچنان نشان دهنده یک مشکل سخت افزاری هستند.
- خطاهای نرم افزاری هیچ مشکلی در DIMM نشان نمی دهد. آنها زمانی اتفاق میافتند که دادهها ویا بیتهای ECC روی DIMM نادرست هستند، اما خطا دارند پس و از تصحیح دادهها ویا بیتهای ECC روی DIMM ادامه پیدا نمیکنند. هر نوع خطایی، اگر به درستی مدیریت نشود، در نهایت می تواند باعث خاموش شدن سیستم شود.
Memory RAS technologies
HPE Fast Fault Tolerance یک ویژگی جدید HPE Memory RAS است که برای اولین بار در سرورهای HPE Gen10 با پردازنده های Intel Xeon Scalable معرفی شد. سرورهایی که با HPE SmartMemory و HPE Fast Fault Tolerance کانفیگ شده اند، یک لایه حفاظتی اضافی در برابر خرابی سرور ها ارائه می دهند.
HPE Fast Fault Tolerance، نسخه پیشرفته ADDDC است. این باعث می شود راندمان حافظه به طور قابل توجهی بهتر شود. قابلیت اطمینان بیشتر و دسترسی آسان تر نسبت به آنچه که تنها با استفاده از ADDDC. در سرورهای نسلهای گذشته ، پیشرفته ترین فناوری حفاظت از حافظه در سرورهای ProLiant، (DDDC) بود. بزرگترین مشکل در این مورد این بود که در هنگام boot فعال می شد و در هنگام فعال شدن نیز، توان حافظه را به میزان قابل توجهی کاهش می داد. در نتیجه مشتریان باید بین انعطاف پذیری و عملکرد یکی را انتخاب می کردند. HPE Fast Fault Tolerance بهبود قابل توجهی را نسبت به DDDC ارائه داد. HPE Fast Fault Tolerance به سیستم اجازه می دهد تا عملکرد حافظه کامل boot شود و تنها بخش های کوچک (بانک) حافظه را در حالت قفل قرار می دهد، که در نتیجه عملکرد بسیار بهتری نسبت به DDDC ارائه می دهد.
پس تا به این جا متوجه شدیم که،
- HPE Fast Fault Tolerance تا دو مرحله خطا (تشخیص و تصحیح) باقی می ماند.
- ویژگی RAS انعطاف پذیری DDDC را با عملکرد SDDC ترکیب می کند.
چگونه HPE Fast Fault Tolerance را فعال کنیم ؟
HPE Fast Fault Tolerance را می توان در هر سرور Gen10 از طریق RBSU یا HPE RESTful API فعال یا غیرفعال کرد. برای تغییر تنظیمات پیشفرض در Workload Profile ، ابتدا باید گزینه مورد نظر را انتخاب کرده و سپس به «Custom» تغییر دهید. در آن مرحله، HPE Fast Fault Tolerance ممکن است بر این اساس از طریق منوی Memory Options Advanced Memory Protection فعال یا غیرفعال شود.
الزامات کانفیگ HPE Fast Fault Tolerance برای هر سری سرور متفاوت است، اما به پشتیبانی سیستم عامل یا نرم افزار خاصی فراتر از سیستم ورودی/خروجی اولیه (BIOS) نیاز ندارد.
HPE Fast Fault Tolerance مستلزم آن است که سرور در حالت « closed-page » اجرا شود که این باعث می شود در برخی از بارهای کاری کاهش جزئی در توان عملیاتی داشته باشد. انتظار نمی رود حالت closed-page افت عملکرد قابل توجهی برای الگوهای حافظه با دسترسی تصادفی (مانند SQL یا سایر پایگاه های داده) داشته باشد، اما برای الگوهای حافظه دسترسی متوالی (به عنوان مثال، جریان داده ها) قطعا کاهش عملکرد وجود خواهد داشت.
اگر یک DRAM از کار بیفتد، تاثیر بسزایی درperformance سرورنخواهد داشت ، اما فقط در ناحیه بسیار کوچکی (متداول ترین اندازه یک بانک) حافظه که تحت تأثیر قرار می گیرد. هیچ ضرر قابل توجهی برای الگوهای حافظه با دسترسی تصادفی پیش بینی نمی شود زیرا DRAMدر مرحله قفل به ندرت قابل دسترسی خواهد بود.
پشتیبانی از Advanced ECC
ECC استاندارد فقط می تواند خطاهای حافظه تک بیتی را تصحیح کند و خطاهای حافظه چند بیتی را تشخیص دهد. هنگامی که خطاهای چند بیتی با استفاده از ECC استاندارد شناسایی می شوند، با بروز این خطا به سرور سیگنال داده شده، و باعث توقف سرور می شود.
Advanced ECC بیش از دو دهه است که طرح تصحیح خطای پیش فرض در سرورهای HPE بوده است. این نه تنها از سرورها در برابر خطاهای تک بیتی محافظت می کند، بلکه از برخی از خطاهای حافظه چند بیتی محافظت می کند – به ویژه آنهایی که در یک DRAM رخ می دهند.
Advanced ECC می تواند هم خطاهای حافظه تک بیتی و هم خطاهای حافظه چهار بیتی را تصحیح کند اگر همه بیت های ناموفق در یک دستگاه DRAM روی DIMM باشند. Advanced ECC حفاظت بیشتری نسبت به ECC استاندارد ارائه می دهد، زیرا می تواند برخی از خطاهای حافظه را اصلاح کند که در غیر این صورت اصلاح نمی شوند و منجر به خرابی سرور می شوند. با استفاده از فناوری Advanced ECC اچ پی، زمانی که DIMM رو به زوال است، به سرور اعلان می دهد و احتمال خاموشی و از دست رفتن داه ها تا حد ممکن کاهش می یابد
نحوه فعال کردن پشتیبانی advanced ECC
Advanced ECC حالت پیش فرض dvanced memory protection mode در RBSU >> Memory Options است.
اگرچه advanced ECC از سرور در مقابل خرابی های متعدد محافظت می کند، اما می تواند خطاهای چند بیتی را زمانی که تنها در یک DRAM رخ می دهد تصحیح کند. advanced ECC قابلیت Failover را ارائه نمی دهد. در نتیجه، در صورت خرابی حافظه، قبل از تعویض حافظه، سیستم خاموش می شود. آخرین نسل سرورهای HPE ProLiant/Synergy/Blade با استفاده از پردازندههای Intel Xeon Scalable سه سطح از حفاظت پیشرفته از حافظه (از جمله HPE Fast Fault Tolerance) را ارائه میکنند که تحمل خطای سرور را برای برنامههایی که نیاز به سطوح بالاتری از در دسترس بودن دارند، افزایش میدهد.
Mirrore کردن حافظه با advanced ECC
حافظه Mirrored با پشتیبانی advanced ECC محافظت در برابر خطاهای غیرقابل تصحیح را فراهم می کند که در غیر این صورت منجر به خرابی سیستم می شود. برای mirrore کردن سیستم حافظه دو حالت وجود دارد
- Mirrore کردن کامل حافظه
در این روش از نیمی از ظرفیت حافظه استفاده میشود تا نسخه ایی که از کل دیتا کپی گرفته شده است، در آنجا نگهداری شود.
- Mirror کردن بخشی از حافظه
با این روش کاربران می توانند، مقدار کمتری از حافظه سیستم را به mirrore کردن اختصاص دهند. این ویژگی فقط در advanced CPU SKUs ، پردازنده های اینتل زئون پلاتینیوم و گلد موجود می باشد.
اگر یک خطای غیرقابل اصلاح در محدوده محافظت شده از حافظه mirrore رخ دهد، سیستم به طور خودکار دیتای سالم را از کپی اضافی بازیابی میکند. این سیستم به طور معمول بدون دخالت کاربر به کار خود ادامه می دهد. با ایجاد افزونگی اضافی در memory subsystem ، انعکاس حافظه بیشترین محافظت را در برابر خرابی حافظه فراهم می کند که توسط ECC، SDDC، DDDC، ADDDC قابل اصلاح نبوده است.
تمامی پلتفرم های سرور های gen10 اچ پی از دو متد متفاوت برای mirrore کردن حافظه استفاده می کنند(mirrore کردن دو کاناله و mirrore کردن سه کانله حافظه ).
mirrore کردن سه کانله حافظه
حافظه را در هر سه کانال حافظه در هر طرف CPU منعکس می کند.
mirrore کردن دو کاناله
بین دو کانال از سه کانال در هر طرف CPU (2 و 3؛ 5 و 6) منعکس می شود. در هر دو حالت، همه کانال های پر شده در هر طرف پردازنده باید به طور یکسان پر شوند (تعداد DIMM یکسان، نوع DIMM یکسان، ظرفیت یکسان).
نحوه فعال کردن memory mirroring
به RBSU رفته، این قابلیت اینجا امکان فعال سازی دارد.
- configuring the advanced memory protection option.
- “mirrored memory with advanced ECC.
- و نوع کانفیگ mirrore را انتخاب می کنید.
Memory scrubbing (Patrol و Demand)
Memory scrubbing یک ویژگی استاندارد RAS محسوب می شود، که درجهت جلوگیری از تجمع خطاهای نرم افزاری در حافظه و در نهایت پیشگیری از تبدیل شدن به uncorrected error طراحی شده است. این پیشگیری بدین صورت انجام می شود که داده های صحیح در حافظه هر بار که یک خطا شناسایی می شوند، نوشته می شود.
patrol scrubbing و هر دوی آنها یک کار را انجام می دهند. هنگامی که یک خطا پیدا شد، آن را در حافظه تصحیح می کنند. تفاوت بزرگ این است که چگونه خطا پیدا می شود. Patrol scrubbing بیشتر یک جستجوی فعال برای خطاهایی است که به طور مداوم در پسزمینه رخ میدهند، در حالی که demand scrubbing تنها زمانی رخ میدهد که حافظه واقعاً توسط سیستم عامل یا برنامه خوانده شود.
هنگامی که patrol scrubbing فعال است، به طور فعال حافظه سیستم را برای خطاهای قابل اصلاح جستجو می کند و آنها را تعمیر می کند. این اقدام مانع از تجمع خطاهای تک بیتی می شود که در صورت تجاوز از حد مجاز باعث ایجاد خطا های چند بیتی می شوند. برای هر IMC یک scrubber گشتی وجود دارد. Demand scrubbing همیشه به طور پیش فرض فعال است و نمی توان آن را خاموش کرد.
نحوه فعال کردن patrol scrubbing
- RBSU
- advanced memory protection mode
- Memory Options.
سخن پایانی
در این مقاله سعی داشتیم به مروری بر تکنولوی RAS (تمامی روش های حفاطت از داده ها بر روی حافظه ) داشته باشیم و شرایط و نحوه فعال سازی آنها بررسی کنیم. تمامی این روش های معرفی جهت جلوگیری از ایجاد خطا می باشند.