سرور و دیتاسنتر | بلاگ وب‌داده

رم ECC چیست و چگونه داده‌های سرور را از خطای پنهان حافظه نجات می‌دهد؟

از منشأ فیزیکی خطای حافظه تا کد همینگ، انواع ماژول‌های Registered و روش بررسی ECC در لینوکس و ویندوز را قدم‌به‌قدم مرور می‌کنیم تا حافظه سرورتان را آگاهانه انتخاب کنید.

💡 خلاصه مقاله در ۳ خط

✅ حافظه ECC با ذخیره بیت‌های کنترلی اضافه، خطای تک‌بیتی را خودکار اصلاح و خطای دوبیتی را شناسایی می‌کند.
✅ این قابلیت به پشتیبانی هم‌زمان پردازنده، مادربرد و ماژول نیاز دارد و On-die ECC در DDR5 جایگزین آن نیست.
✅ برای دیتابیس، مجازی‌سازی و سرویس‌های شبانه‌روزی، سرور با حافظه ECC انتخابی منطقی در برابر خرابی خاموش داده است.
رم ECC (مخفف Error-Correcting Code) نوعی حافظه اصلی است که کنار داده، بیت‌های کنترلی هم ذخیره می‌کند؛ در ماژول‌های DDR4 به ازای هر ۶۴ بیت داده، ۸ بیت. کنترلر حافظه در هر بار خواندن این بیت‌ها را دوباره محاسبه می‌کند؛ اگر یک بیت وارونه شده باشد، پیش از رسیدن داده به پردازنده اصلاح می‌شود و اگر دو بیت خراب شده باشد، دست‌کم خطا شناسایی و گزارش می‌شود.
✅ جلوگیری از خرابی خاموش داده: در سیستم بدون ECC، خطای حافظه معمولاً هیچ پیامی تولید نمی‌کند.
✅ پایداری سرویس: خطاهای تک‌بیتی در لحظه و بدون ری‌استارت اصلاح می‌شوند.
✅ هشدار زودهنگام: شمارش خطاهای اصلاح‌شده، ماژول رو به خرابی را نشان می‌دهد.
✅ اهمیت در ظرفیت بالا: هرچه رم بیشتر و زمان روشن‌بودن طولانی‌تر باشد، بیت‌های بیشتری در معرض خطا هستند.

💡 حافظه ECC = رمی که خطای خودش را پیدا و اصلاح می‌کند

✅ خطای تک‌بیتی را اصلاح و خطای دوبیتی را شناسایی می‌کند.
✅ فقط وقتی فعال است که پردازنده، مادربرد و ماژول هر سه از آن پشتیبانی کنند.
✅ سرور اختصاصی HPE با رم Registered ECC، آماده تحویل در وب‌داده
حتماً زمانی که این مقاله را باز کرده‌اید، به دنبال پاسخ این پرسش هستید که آیا حافظه ECC واقعاً پایداری سرور را بیشتر می‌کند یا فقط عبارتی در برگه مشخصات است. در این راهنما گام‌به‌گام از منشأ خطای حافظه و منطق کد همینگ شروع می‌کنیم، انواع ماژول‌ها و نسل‌های DDR4 و DDR5 را مقایسه می‌کنیم و روش بررسی ECC روی سرور خودتان را یاد می‌گیرید. پس همراه ما باشید 😉👇

🔶 سرور اختصاصی ایران با حافظه Registered ECC

پلن PRIME 9 وب‌داده روی سرور HPE ProLiant DL360 Gen9 با 64GB رم Registered ECC DDR4 ارائه می‌شود. مشخصات کامل را در صفحه سرور اختصاصی ایران ببینید 👇

رم ECC چیست و چگونه خطای حافظه را اصلاح می‌کند؟

برای فهم این فناوری، ابتدا باید بدانیم رم در سطح فیزیکی چه می‌کند. هر بیت داده در یک سلول DRAM به شکل بار الکتریکی بسیار کوچکی در یک خازن نگهداری می‌شود. این بار باید مدام تازه‌سازی (Refresh) شود و یک اختلال فیزیکی کافی است تا صفر به یک یا یک به صفر تبدیل شود. به این رخداد «وارونگی بیت» یا Bit Flip می‌گویند.
حافظه ECC برای مقابله با همین مشکل، در DDR4 به‌جای کلمه ۶۴ بیتی، کلمه‌ای ۷۲ بیتی ذخیره می‌کند. طبق مستندات هسته لینوکس، کنترلر حافظه هنگام نوشتن، ۸ بیت اضافه را با کد همینگ یا کدهای مشابه محاسبه می‌کند و همراه داده می‌نویسد. هنگام خواندن، محاسبه تکرار می‌شود و حاصل مقایسه که «سندروم» نام دارد، وجود خطا و محل آن را نشان می‌دهد.
یک تشبیه ساده: رقم آخر کد ملی «رقم کنترل» است و از ۹ رقم دیگر ساخته می‌شود؛ اگر یک رقم را اشتباه تایپ کنید، سامانه متوجه نادرستی کد می‌شود. حافظه ECC یک قدم جلوتر است و مثل حسابداری که با جمع‌های کنترلی سطری و ستونی عدد اشتباه جدول را پیدا می‌کند، جای دقیق بیت خراب را هم نشان می‌دهد.
WRITE: CPU ➡️ Memory Controller ➡️ [64 data bits] + [8 ECC bits] = 72 bits ➡️ DIMM
READ:  DIMM ➡️ 72 bits ➡️ recompute ECC ➡️ compare = syndrome
       syndrome = 0   ➡️ data OK ✅
       1-bit error    ➡️ corrected ➡️ CE logged ✅
       2-bit error    ➡️ detected only ➡️ UE ⚠️

۱- خطای حافظه از کجا می‌آید؟ خطای نرم و خطای سخت

خطای نرم (Soft Error) گذراست و آسیب دائمی به تراشه نمی‌زند. استاندارد JESD89 از نهاد JEDEC دو منشأ اصلی آن را در سطح زمین معرفی می‌کند: ذرات آلفا ناشی از ناخالصی‌های رادیواکتیو در مواد بسته‌بندی و تراشه؛ همچنین پرتوهای کیهانی.
خطای سخت (Hard Error) از فرسودگی یا نقص فیزیکی سلول، تراشه یا اتصال می‌آید و با هر بار خواندن آدرس معیوب تکرار می‌شود. ECC هر دو نوع را در محدوده توان کد اصلاح می‌کند، اما تکرار گزارش‌ها یعنی باید ماژول را تعویض کرد.

۲- منطق SEC-DED و کد همینگ

رایج‌ترین طرح در ماژول‌های ECC، کد همینگ توسعه‌یافته با نام SEC-DED است؛ یعنی اصلاح خطای تک‌بیتی (Single Error Correction) و تشخیص خطای دوبیتی (Double Error Detection). در این طرح هر بیت کنترلی، توازن (Parity) گروه مشخصی از بیت‌های داده را پوشش می‌دهد. گروه‌ها طوری هم‌پوشانی دارند که ترکیب بیت‌های کنترلی نامعتبر، شماره دقیق بیت خراب را مشخص می‌کند.
اگر فقط یک بیت عوض شده باشد، کنترلر آن را برمی‌گرداند و یک خطای قابل اصلاح (CE) ثبت می‌کند. اگر دو بیت در یک کلمه خراب شوند، کد متوجه خطا می‌شود اما نمی‌تواند محل آن را قطعی تعیین کند؛ نتیجه یک خطای غیرقابل اصلاح (UE) است. خطاهای سه‌بیتی و بیشتر ممکن است حتی به‌درستی تشخیص داده نشوند و این مرز طبیعی SEC-DED است.

🔸 نکته فنی: Lockstep و Advanced ECC

طبق مستندات هسته لینوکس، برخی کنترلرها در حالت Lock-Step دو ماژول را با هم و به‌صورت ۱۲۸ بیتی می‌خوانند و ۱۶ بیت برای اصلاح خطا دارند؛ تصحیح قوی‌تر می‌شود، اما هنگام خطا معلوم نیست کدام ماژول مقصر است. HPE هم در سرورهای Gen9 قابلیتی با نام Advanced ECC ارائه می‌کند که طبق QuickSpecs، خطای تک‌بیتی و همه خطاهای چندبیتی درون یک تراشه DRAM را اصلاح می‌کند.

۳- وقتی خطا اصلاح نمی‌شود چه اتفاقی می‌افتد؟

طبق مستندات هسته لینوکس، اگر خطای غیرقابل اصلاح در بخش حیاتی مانند کد کرنل رخ دهد، تنها راه مطمئن برای جلوگیری از خرابی داده، توقف یا ری‌استارت ماشین است؛ اما اگر در حافظه یک پردازه کاربری باشد، می‌توان فقط همان پردازه را متوقف و دوباره اجرا کرد.
نکته کلیدی اینجاست: سرور مجهز به حافظه ECC هم ممکن است در شرایط نادر ری‌استارت شود، اما آگاهانه و با ثبت دلیل. در سیستم بدون ECC همان خطا بی‌صدا عبور می‌کند و شاید مدت‌ها بعد به شکل جدول خراب دیتابیس خودش را نشان دهد.

رم ECC چیست و چگونه خطای حافظه را اصلاح می‌کند؟

مقایسه حافظه ECC و Non-ECC

جدول زیر تفاوت‌های اصلی دو نوع حافظه را بر اساس مستندات هسته لینوکس، JEDEC و سازندگان حافظه خلاصه می‌کند:
ویژگیحافظه ECCحافظه Non-ECC
پهنای هر کانال در DDR472 بیت (64 داده + 8 کنترلی)64 بیت
اصلاح خطای تک‌بیتیداردندارد
تشخیص خطای دوبیتیدارد (SEC-DED)ندارد
گزارش خطا به سیستم‌عاملاز طریق EDAC و MCAخطا اصلاً تشخیص داده نمی‌شود
پیش‌نیاز سخت‌افزاریپشتیبانی CPU، چیپ‌ست و مادربردندارد
اثر بر کاراییاندک، بسته به پیاده‌سازیبدون سربار اصلاح خطا
تراشه‌های روی ماژولتراشه اضافه برای بیت‌های کنترلیفقط تراشه‌های داده
کاربرد رایجسرور و ایستگاه کاریکامپیوتر خانگی، اداری و لپ‌تاپ

چرا سرور اختصاصی به حافظه ECC نیاز دارد؟

کامپیوتر خانگی چند ساعت در روز روشن است، اما سرور اختصاصی ماه‌ها بدون خاموشی کار می‌کند، ده‌ها گیگابایت داده را هم‌زمان در رم نگه می‌دارد و خروجی آن مستقیم در دیسک و دیتابیس ذخیره می‌شود. در چنین شرایطی حتی یک بیت خراب می‌تواند به اطلاعات مشتری یا یک تراکنش مالی راه پیدا کند.
✅ یکپارچگی داده: خطای تک‌بیتی پیش از رسیدن به پردازنده اصلاح می‌شود و به دیسک نمی‌رسد.
✅ پایداری بیشتر: خطاهای تک‌بیتی بدون کرش برطرف می‌شوند و این موضوع مستقیم روی آپتایم سرور اثر دارد.
✅ نگهداری پیشگیرانه: شمارنده خطاهای اصلاح‌شده، ماژول ضعیف را پیش از ایجاد قطعی نشان می‌دهد.
✅ تعویض هدفمند: زیرسیستم EDAC تلاش می‌کند هر خطا را به اسلات مشخصی نسبت دهد تا فقط قطعه مشکل‌دار عوض شود.

📚 از منابع معتبر

در مستندات رسمی هسته لینوکس (kernel.org) درباره شمارنده خطاهای قابل اصلاح آمده است: «CEs provide early indications that a DIMM is beginning to fail». یعنی خطاهای قابل اصلاح، نشانه‌های اولیه خراب شدن یک ماژول حافظه هستند و این شمارنده باید پایش و به مدیر سیستم گزارش شود.

چه کاربردهایی بدون ECC ریسک دارند؟

هر سرویسی که داده را در رم پردازش و سپس ماندگار می‌کند، از خطای خاموش حافظه آسیب می‌بیند. کاربردهای زیر بیشترین حساسیت را دارند:
◀️ دیتابیس‌ها: MySQL، PostgreSQL و SQL Server صفحات داده را در حافظه نگه می‌دارند و از همان‌جا روی دیسک می‌نویسند.
◀️ پایگاه‌داده‌های درون‌حافظه‌ای: ابزارهایی مانند Redis داده فعال را در رم نگه می‌دارند.
◀️ مجازی‌سازی: در مجازی‌سازی چندین ماشین مجازی روی رم مشترک اجرا می‌شوند و یک ماژول معیوب همه را درگیر می‌کند.
◀️ نرم‌افزارهای مالی و حسابداری: یک رقم جابه‌جا در تراکنش، گران‌تر از صرفه‌جویی در سخت‌افزار تمام می‌شود.
◀️ فایل‌سرور و بکاپ: داده‌ای که در رم خراب شده، ممکن است بی‌صدا به نسخه پشتیبان هم برسد.
در کنار این مزایا، محدودیت‌های حافظه ECC را هم باید صادقانه بدانید:
❌ طرح SEC-DED اصلاح خطاهای بیش از یک بیت در یک کلمه را تضمین نمی‌کند؛ این کار به طرح‌هایی مانند Advanced ECC یا Lockstep نیاز دارد.
❌ خرابی دیسک، باگ نرم‌افزاری یا حذف اشتباه فایل ربطی به ECC ندارد.
❌ بدون پشتیبانی پردازنده و مادربرد، نصب ماژول ECC به‌تنهایی قابلیت اصلاح خطا را فعال نمی‌کند.
❌ ماژول‌های ECC معمولاً گران‌تر هستند و انتخاب مدل سازگار با هر سرور محدودتر است.

⚠️ ECC جایگزین بکاپ و RAID نیست

حافظه ECC فقط از داده‌ای محافظت می‌کند که در رم در حال پردازش است. برای تحمل خرابی دیسک به RAID و برای بازگشت از خطای انسانی یا باج‌افزار به بکاپ منظم نیاز دارید. این سه لایه مکمل یکدیگرند و هیچ‌کدام جای دیگری را نمی‌گیرد.

سناریوی رایج در پشتیبانی وب‌داده

یک سناریوی رایج در مشاوره‌های پیش از خرید این است: کسب‌وکاری فروشگاه اینترنتی خود را روی یک کامپیوتر رومیزی قدرتمند با رم معمولی اجرا کرده و گاه‌به‌گاه با ری‌استارت بی‌دلیل یا جدول خراب MySQL روبه‌رو می‌شود. لاگ سیستم‌عامل هم نشانه روشنی ندارد، چون این سخت‌افزار اصلاً توان تشخیص خطای حافظه را ندارد.
در چنین موقعیتی ابتدا پیشنهاد می‌شود سلامت دیسک و نرم‌افزار بررسی شود، چون همه کرش‌ها از رم نیستند. اگر مشکل سخت‌افزاری محتمل باشد، مهاجرت به سروری با حافظه Registered ECC دو مزیت دارد: خطاهای تک‌بیتی اصلاح می‌شوند و اگر ماژولی ضعیف باشد، شمارنده EDAC آن را آشکار می‌کند. نتیجه، به‌جای حدس‌زدن، داده‌ای قابل اندازه‌گیری برای تصمیم‌گیری است.

چرا سرور اختصاصی به حافظه ECC نیاز دارد؟

انواع ماژول ECC؛ UDIMM، RDIMM و LRDIMM

حافظه ECC در قالب چند نوع ماژول عرضه می‌شود که تفاوتشان در تراشه‌های بافر است. طبق واژه‌نامه Kingston، ماژول RDIMM یک تراشه رجیستر به نام RCD دارد و LRDIMM علاوه بر آن بافر داده هم دارد تا بار روی کنترلر حافظه کم شود و ماژول‌های پرظرفیت‌تر ممکن شوند. مقایسه کامل‌تر این ماژول‌ها و نکات انتخاب ظرفیت را در راهنمای رم سرور و انواع RDIMM و LRDIMM بخوانید.
ویژگیUDIMMRDIMMLRDIMM
بافر روی ماژولنداردRCD برای فرمان و آدرسRCD و بافر داده
نسخه ECCهر دو نوع ECC و Non-ECCدر سرورها همراه ECCدر سرورها همراه ECC
کاربرد رایجPC، لپ‌تاپ و ورک‌استیشنبیشتر سرورهاسرورهای با رم بسیار زیاد
بیشینه ظرفیت در DL360 Gen9پشتیبانی نمی‌شود768GB (24 × 32GB)3TB (24 × 128GB)
عبارت «Registered ECC» یعنی ماژول هم تراشه رجیستر دارد و هم بیت‌های ECC. طبق QuickSpecs سرور HPE ProLiant DL360 Gen9، ماژول‌های UDIMM، RDIMM و LRDIMM فناوری‌های متمایزی هستند و نمی‌توان آن‌ها را در یک سرور ترکیب کرد. این سرور ۲۴ اسلات رم دارد (۱۲ اسلات برای هر پردازنده)؛ مشخصات کامل این نسل را در مقاله سرور HP G9 ببینید.

آموزش بررسی و انتخاب حافظه ECC برای سرور

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

۱- رم DDR4 ECC و DDR5 ECC چه تفاوتی دارند؟

در نسل DDR4، ماژول ECC یک کانال ۶۴ بیتی داده دارد که ۸ بیت کنترلی به آن اضافه شده و پهنای کل به ۷۲ بیت می‌رسد. طبق توضیح Kingston، در DDR5 هر ماژول به دو زیرکانال مستقل ۳۲ بیتی تقسیم می‌شود و در ماژول‌های ECC سرور به هر زیرکانال ۸ بیت اضافه می‌شود؛ یعنی دو زیرکانال ۴۰ بیتی. در این پیکربندی، سهم بیت‌های کنترلی نسبت به داده دو برابر شده است.
رم DDR4 ECC هنوز در بسیاری از سرورهای نسل‌های قبلی به کار می‌رود. در مقابل، JEDEC در اطلاعیه انتشار استاندارد DDR5 در سال 2020 پهنای باند آن را دو برابر DDR4 اعلام کرد. ماژول‌های این دو نسل جایگزین یکدیگر نمی‌شوند و نسل رم را پلتفرم سرور تعیین می‌کند.

📌 On-die ECC در DDR5 همان حافظه ECC نیست

تراشه‌های DDR5 قابلیتی به نام On-die ECC دارند که خطا را درون خود تراشه DRAM اصلاح می‌کند. Kingston تصریح می‌کند این فناوری نمی‌تواند خطاهای بیرون از تراشه یا خطاهای مسیر انتقال میان ماژول و کنترلر حافظه را اصلاح کند. پس رم DDR5 معمولی، حافظه ECC به معنای سروری آن نیست.

۲- شرط سازگاری: پردازنده، چیپ‌ست و مادربرد

طبق توضیح PassMark، سازنده ابزار MemTest86، ECC به مدار اضافه‌ای نیاز دارد و باید هم‌زمان در چیپ‌ست، مادربرد و ماژول حافظه پشتیبانی شود. ساده‌ترین راه بررسی پردازنده، صفحه مشخصات رسمی آن است. برای نمونه صفحه Intel ARK پردازنده Xeon E5-2680 v4 پشتیبانی از حافظه ECC، چهار کانال حافظه و DDR4 با سرعت‌های 1600، 1866، 2133 و 2400 را تأیید می‌کند.
در پلتفرم‌های رومیزی وضعیت یکدست نیست؛ برخی پردازنده‌ها و چیپ‌ست‌ها ECC را پشتیبانی می‌کنند و برخی نه. پس پیش از خرید ماژول، دفترچه مادربرد و فهرست حافظه‌های تأییدشده سازنده را بررسی کنید. برای انتخاب پردازنده‌ای که این قابلیت را کامل پشتیبانی کند، راهنمای CPU سرور و مقاله تفاوت Xeon و Core i7 را ببینید.

۳- بررسی حافظه ECC در لینوکس

در لینوکس دو ابزار داخلی کافی است. دستور dmidecode اطلاعات SMBIOS را می‌خواند؛ طبق مستندات هسته لینوکس، اگر Total Width با Data Width برابر باشد، ماژول ECC ندارد و مقدار 72 در برابر 64 یعنی ۸ بیت اضافه برای تصحیح خطا وجود دارد. زیرسیستم EDAC هم شمارنده خطاها را در مسیر sysfs نگه می‌دارد:
sudo dmidecode -t memory | grep -E "Error Correction Type|Total Width|Data Width"
# ECC     : Total Width: 72 bits , Data Width: 64 bits
# Non-ECC : Total Width: 64 bits , Data Width: 64 bits

grep -H . /sys/devices/system/edac/mc/mc*/ce_count
grep -H . /sys/devices/system/edac/mc/mc*/ue_count
مقدار صفر برای ce_count یعنی از آخرین ریست شمارنده، خطای قابل اصلاحی ثبت نشده است. نبودن پوشه edac لزوماً به معنای نبود ECC نیست؛ شاید درایور EDAC آن پلتفرم بارگذاری نشده باشد. این شمارنده‌ها را در سامانه مانیتورینگ سرور خود زیر نظر بگیرید. بررسی آن‌ها در کنار تست استرس رم، بخشی از تست سلامت و بنچمارک سرور بعد از تحویل هم هست.

۴- بررسی حافظه ECC در ویندوز سرور

در ویندوز سرور می‌توانید از کلاس‌های WMI استفاده کنید. طبق مستندات Microsoft Learn، ویژگی MemoryErrorCorrection در کلاس Win32_PhysicalMemoryArray مقدار 3 را برای None، مقدار 5 را برای Single-bit ECC و مقدار 6 را برای Multi-bit ECC برمی‌گرداند:
Get-CimInstance Win32_PhysicalMemoryArray | Select-Object MemoryErrorCorrection
Get-CimInstance Win32_PhysicalMemory | Select-Object BankLabel, DataWidth, TotalWidth
این مقادیر از جدول SMBIOS خوانده می‌شوند و به گزارش درست فریم‌ور وابسته‌اند. طبق همین مستندات، اگر بیت تصحیح خطا وجود نداشته باشد، TotalWidth با DataWidth برابر است.

۵- نکات خرید و ارتقای حافظه ECC

  1. نوع ماژول را از مشخصات سرور بخوانید: UDIMM، RDIMM و LRDIMM را با هم ترکیب نکنید.
  2. سرعت را هماهنگ کنید: طبق QuickSpecs سرور DL360 Gen9، حافظه بسته به پیکربندی و مدل پردازنده روی 2400، 2133، 1866 یا 1600 مگاهرتز کار می‌کند.
  3. از راهنمای چیدمان سازنده پیروی کنید: ترتیب پرکردن اسلات‌ها روی کارایی و حتی بوت‌شدن سرور اثر دارد.
  4. ماژول تأییدشده بخرید: در سرورهای HPE، ماژول‌های سازگار با نام HPE SmartMemory در QuickSpecs فهرست شده‌اند.
  5. ظرفیت را با نیاز واقعی بسنجید: راهنمای رم سرور مجازی چقدر باشد برای برآورد اولیه مفید است.

آموزش بررسی و انتخاب حافظه ECC برای سرور

مقایسه رم DDR4 ECC و DDR5 ECC

خلاصه تفاوت دو نسل بر اساس اطلاعات Kingston و JEDEC:
ویژگیDDR4 ECCDDR5 ECC
ساختار کانال ماژولیک کانال 64 بیتی + 8 بیت ECCدو زیرکانال 32 بیتی + 8 بیت ECC برای هرکدام
پهنای کل72 بیت2 × 40 بیت
On-die ECC درون تراشهندارددارد
ولتاژ کاری1.2V1.1V
سرعتتا 3200MT/sشروع از 4800MT/s
مدیریت توانبدون PMIC روی ماژولPMIC روی خود ماژول

رم ECC در سرور اختصاصی وب‌داده؛ پایداری از روز اول

وقتی سرور اختصاصی اجاره می‌کنید، قطعات را خودتان انتخاب نمی‌کنید؛ پس باید از ابتدا بدانید چه سخت‌افزاری تحویل می‌گیرید. سرورهای اختصاصی ایران وب‌داده روی سخت‌افزار HPE ProLiant ارائه می‌شوند و پلن آماده PRIME 9 از حافظه Registered ECC بهره می‌برد:
✅ سرور HPE ProLiant DL360 Gen9 با دو پردازنده Intel Xeon E5-2680 v4 (در مجموع 28 هسته و 56 رشته)
✅ 64GB حافظه Registered ECC DDR4 در پلن PRIME 9
✅ 1TB NVMe از سری Samsung 980/990 PRO و پورت 10Gbit/s روی شبکه‌ای با آپلینک 100Gbit
✅ نصب خودکار سیستم‌عامل و تحویل آنی پس از پرداخت، مستقل از ساعت کاری، با پنل مدیریت سرور
✅ پیکربندی سفارشی مانند رم یا فضای ذخیره‌سازی بیشتر، با بررسی از طریق تیکت یا تماس
✅ محافظت DDoS با ظرفیت 100Gbit/s، فایروال سخت‌افزاری و امنیت چندلایه
✅ مشاوره پیش از خرید با تیم فنی ۲۴ ساعته
اگر برای دیتابیس یا مجازی‌سازی به ظرفیت بیشتری از حافظه ECC نیاز دارید، نیازتان را از طریق تیکت یا تماس مطرح کنید تا پیکربندی مناسب بررسی شود. مشخصات کامل پلن‌ها در صفحه اجاره سرور اختصاصی آمده است.

سوالات متداول درباره حافظه ECC

ECC چیست و مخفف چه عبارتی است؟

ECC مخفف Error-Correcting Code به معنای «کد تصحیح خطا» است. در حافظه، این اصطلاح به بیت‌های کنترلی اضافه‌ای گفته می‌شود که کنترلر حافظه هنگام نوشتن محاسبه و هنگام خواندن با داده مقایسه می‌کند. منطق مشابهی در دیسک‌ها و شبکه هم به کار می‌رود، اما منظور از حافظه ECC ماژولی است که این بیت‌های اضافه را برای رم اصلی سیستم ذخیره می‌کند.

محاسبه ECC به‌صورت سخت‌افزاری در کنترلر حافظه انجام می‌شود. PassMark، سازنده MemTest86، می‌گوید بسته به پیاده‌سازی، فعال‌بودن ECC ممکن است حدود ۲ تا ۳ درصد از کارایی حافظه بکاهد و کمی انرژی بیشتر مصرف کند. برای سروری که درستی داده در آن اولویت دارد، این هزینه اندک در برابر خطر خرابی خاموش داده معمولاً قابل قبول است.

به نوع ماژول و مادربرد بستگی دارد. ماژول‌های RDIMM و LRDIMM برای مادربردهای سرور طراحی شده‌اند و در DDR5 حتی شکاف کلید آن‌ها با UDIMM متفاوت است. ECC UDIMM ممکن است روی برخی مادربردهای رومیزی کار کند، اما اگر پردازنده و مادربرد از ECC پشتیبانی نکنند، قابلیت اصلاح خطا فعال نمی‌شود و ماژول فقط مثل رم معمولی کار می‌کند.

هر دو بیت‌های ECC دارند و خطای تک‌بیتی را اصلاح می‌کنند. تفاوت در تراشه رجیستر (RCD) است که در RDIMM فرمان‌ها و آدرس‌ها را پیش از رسیدن به تراشه‌های DRAM بافر می‌کند. این کار بار الکتریکی روی کنترلر حافظه را کم می‌کند و نصب ماژول‌های بیشتر را ممکن می‌کند. به همین دلیل سرورها معمولاً Registered ECC دارند و ECC UDIMM بیشتر در ایستگاه‌های کاری دیده می‌شود.

خیر. On-die ECC در تراشه‌های DDR5 فقط خطاهای درون همان تراشه را اصلاح می‌کند و طبق توضیح Kingston، خطاهای مسیر انتقال میان ماژول و کنترلر حافظه را پوشش نمی‌دهد. ماژول DDR5 ECC واقعی بیت‌های اضافه روی خود ماژول دارد (معمولاً دو زیرکانال ۴۰ بیتی) و بررسی و اصلاح خطا را کنترلر حافظه در سطح کل سیستم انجام می‌دهد.

خیر. SEC-DED فقط خطای تک‌بیتی را اصلاح و خطای دوبیتی را شناسایی می‌کند. خطاهای بزرگ‌تر، مانند از کار افتادن بخشی از یک تراشه، به طرح‌هایی مثل Advanced ECC در سرورهای HPE یا حالت Lockstep نیاز دارند. در صورت رخداد خطای غیرقابل اصلاح در بخش حیاتی هم سیستم برای حفظ سلامت داده متوقف یا ری‌استارت می‌شود. پس ECC جایگزین بکاپ، RAID و مانیتورینگ نیست.

در لینوکس دستور sudo dmidecode -t memory را اجرا کنید؛ در DDR4 مقدار Total Width برابر 72 بیت و Data Width برابر 64 بیت نشانه ECC است. در ویندوز سرور، کلاس Win32_PhysicalMemoryArray در PowerShell مقدار MemoryErrorCorrection را نشان می‌دهد که عدد 6 یعنی Multi-bit ECC. در سرورهای اجاره‌ای هم مشخصات پلن باید نوع حافظه را صریحاً اعلام کند.

یک خطای قابل اصلاح منفرد معمولاً نگران‌کننده نیست، چون ممکن است یک خطای نرم گذرا باشد. اما مستندات هسته لینوکس تأکید می‌کند که خطاهای CE نشانه‌های اولیه خرابی ماژول هستند. اگر شمارنده یک اسلات مشخص پیوسته افزایش می‌یابد، از داده‌ها بکاپ بگیرید، زمان تعمیر را برنامه‌ریزی کنید و ماژول را پیش از رسیدن به خطای غیرقابل اصلاح تعویض کنید.

خیر. طبق QuickSpecs سرور HPE ProLiant DL360 Gen9، ماژول‌های UDIMM، RDIMM و LRDIMM فناوری‌های متمایزی هستند و نباید در یک سرور ترکیب شوند. حتی در یک نوع ماژول، بهتر است ظرفیت، رنک و سرعت یکسان باشد و چیدمان طبق راهنمای سازنده انجام شود تا سرور بدون خطا بوت شود و بیشترین سرعت ممکن را ارائه دهد.

جمع‌بندی؛ آیا سرور شما به حافظه ECC نیاز دارد؟

در این مقاله دیدیم که رم ECC با افزودن بیت‌های کنترلی به داده (۸ بیت به ازای هر ۶۴ بیت در DDR4)، خطای تک‌بیتی را در لحظه اصلاح و خطای دوبیتی را شناسایی می‌کند. منشأ خطاها از ذرات آلفا و پرتوهای کیهانی تا فرسودگی تراشه متغیر است و هیچ رمی از آن‌ها مصون نیست؛ تفاوت در این است که سیستم متوجه خطا می‌شود یا نه.
همچنین یاد گرفتیم On-die ECC در DDR5 جایگزین ECC واقعی نیست، ماژول‌های RDIMM و LRDIMM را نباید با هم ترکیب کرد و با dmidecode، EDAC یا PowerShell می‌توان وجود ECC و سلامت ماژول‌ها را بررسی کرد. محدودیت‌ها را هم فراموش نکنید: ECC جایگزین بکاپ و RAID نیست و اصلاح همه خطاهای چندبیتی را تضمین نمی‌کند.
اگر دیتابیس، مجازی‌سازی یا سرویس مالی اجرا می‌کنید، سرور با حافظه ECC انتخابی منطقی است. پلن PRIME 9 وب‌داده با 64GB حافظه Registered ECC، نصب خودکار سیستم‌عامل و تحویل آنی، نقطه شروع مطمئنی است و برای نیازهای بزرگ‌تر، تیم فنی ۲۴ ساعته پیکربندی سفارشی را بررسی می‌کند. پیش از خرید هر سرور، نوع حافظه را در مشخصات آن بررسی کنید.
در صورتی که سوالی داشتید می‌توانید در بخش نظرات با ما در ارتباط باشید.
امیدوارم این مقاله از بلاگ وب‌داده برای شما مفید بوده باشد.
وب داده
وب داده

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

مقاله‌ها: 190
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *