در این راهنما قرار است سلامت هارد و سختافزار سرور اختصاصی لینوکسی بهصورت عملی بررسی شود تا قبل از بروز قطعی یا از دست رفتن اطلاعات مشکلات احتمالی شناسایی شوند.
مرحله اول: ورود به سرور اختصاصی از طریق SSH
در این مرحله هدف برقراری دسترسی مستقیم به سیستمعامل سرور است تا بتوان وضعیت سختافزار را بدون واسطه بررسی کرد. اتصال SSH این امکان را میدهد که دستورات سطح پایین اجرا شوند و خروجی واقعی هسته لینوکس دیده شود. برای انجام این بررسیها باید با کاربری که دسترسی root یا امکان استفاده از sudo داشته باشد وارد سرور شوید؛ زیرا بیشتر ابزارهای بررسی سلامت سختافزار به سطح دسترسی مدیریتی نیاز دارند. اگر اتصال SSH پایدار نباشد یا دسترسی کامل وجود نداشته باشد نتایج بررسی قابل اعتماد نخواهد بود.

مرحله دوم: بررسی شناسایی صحیح هاردها توسط سیستمعامل
در این مرحله بررسی میشود که آیا هاردها و دیسکها بهدرستی توسط کرنل لینوکس شناسایی شدهاند یا نه. این بررسی نشان میدهد که از نظر اتصال فیزیکی و ارتباط با کنترلر مشکلی وجود ندارد. دستور lsblk ساختار کلی دیسکها، پارتیشنها و محل mount شدن آنها را نمایش میدهد و کمک میکند مشخص شود چه تعداد هارد فعال هستند و هر کدام چه ظرفیتی دارند. اگر هاردی در این خروجی دیده نشود معمولاً مشکل از کابل اتصال کنترلر یا خرابی کامل دیسک است.
برای دیدن جزئیات بیشتر و تشخیص مدل هارد میتوان از دستور زیر استفاده کرد تا اطلاعات کاملتری نمایش داده شود.
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL

مرحله سوم: نصب ابزارهای پایه بررسی سلامت هارد
قبل از بررسی سلامت واقعی هارد باید ابزارهای لازم روی سرور نصب شوند. ابزار smartmontools مهمترین بسته برای بررسی وضعیت داخلی هارد است و اطلاعاتی را نمایش میدهد که مستقیماً از کنترلر هارد خوانده میشوند. بدون این ابزار امکان بررسی خطاهای داخلی، سکتورها و وضعیت عمر هارد وجود ندارد. در کنار آن نصب ابزار util-linux و pciutils کمک میکند اطلاعات سختافزاری دقیقتری از دیسکها و کنترلرها در دسترس باشد.
برای نصب این ابزارها کافیست از دستور زیر استفاده کنید تا پکیجها مستقیماً از مخازن رسمی سیستمعامل دانلود و نصب شوند.
apt update && apt install smartmontools util-linux pciutils -y

مرحله چهارم: بررسی گزارش کامل SMART هارد
در این مرحله وضعیت واقعی و فعلی هارد بررسی میشود. دستور smartctl -a گزارشی کامل شامل وضعیت کلی سلامت، تعداد خطاها، عمر تقریبی هارد و اطلاعات مربوط به سکتورها را نمایش میدهد. مقدار SMART overall-health اولین شاخص برای تشخیص سلامت است اما بهتنهایی کافی نیست و باید جزئیات دیگر گزارش نیز بررسی شوند. این گزارش نشان میدهد هارد در چه شرایطی کار میکند و آیا نشانهای از خرابی تدریجی وجود دارد یا خیر.
در هاردهای NVMe مسیر دیسک متفاوت است و باید از دستور مخصوص آنها استفاده شود تا گزارش بهدرستی نمایش داده شود.
smartctl -a /dev/nvme0n1

مرحله پنجم: تحلیل پارامترهای بحرانی SMART
در این مرحله تمرکز روی مقادیری از گزارش SMART است که مستقیماً به خرابی فیزیکی هارد اشاره دارند. پارامتر Reallocated Sector نشان میدهد که هارد چه تعداد سکتور خراب را کنار گذاشته و از سکتورهای جایگزین استفاده کرده است. مقدار Current Pending Sector به سکتورهایی اشاره دارد که هنوز قابل خواندن نیستند و احتمال از دست رفتن داده در آنها وجود دارد. افزایش این مقادیر حتی در صورتی که وضعیت کلی سلامت PASSED باشد نشانه شروع خرابی است و نباید نادیده گرفته شود.
برای نمایش سریع این مقادیر حساس میتوان از دستور زیر استفاده کرد تا فقط پارامترهای مهم فیلتر شوند.
smartctl -A /dev/sda | egrep "Reallocated|Pending|Uncorrectable"

مرحله ششم: اجرای تست کوتاه SMART
تست کوتاه SMART برای بررسی سریع وضعیت داخلی هارد استفاده میشود و معمولاً چند دقیقه طول میکشد. این تست بدون ایجاد فشار زیاد روی دیسک اجرا میشود و برای بررسیهای دورهای مناسب است. اجرای این تست کمک میکند خطاهای واضح و فوری شناسایی شوند. پس از پایان تست باید نتیجه بررسی شود تا مشخص شود آیا هارد توانسته تست را بدون خطا کامل کند یا خیر.
اجرای تست کوتاه و مشاهده نتیجه آن به شکل زیر انجام میشود.
smartctl -t short /dev/sda
smartctl -l selftest /dev/sda

مرحله هفتم: اجرای تست کامل SMART
تست کامل SMART تمام سکتورهای هارد را بررسی میکند و دقیقترین روش برای شناسایی خرابیهای پنهان است. این تست زمانبر است و ممکن است چند ساعت طول بکشد اما برای تصمیمگیری درباره تعویض هارد اهمیت زیادی دارد. اجرای این تست معمولاً در زمانهایی با مصرف کمتر سرور توصیه میشود تا فشار اضافی روی سرویسها ایجاد نشود. نتیجه این تست مشخص میکند آیا سکتورهای غیرقابل بازیابی روی هارد وجود دارند یا خیر.
دستور اجرای تست کامل و بررسی نتیجه آن به شکل زیر است.
smartctl -t long /dev/sda
smartctl -l selftest /dev/sda
مرحله هشتم: بررسی دما و شرایط محیطی هارد
در این مرحله دمای هارد بررسی میشود چون بالا بودن دما یکی از دلایل اصلی کاهش عمر هارد در سرورهای اختصاصی است. با این بررسی میتوان فهمید مشکل از تهویه رک است یا فنهای سرور درست کار نمیکنند. وقتی دمای هارد در محدوده مناسب و پایدار باشد هم عمر آن بیشتر میشود و هم احتمال بروز خطاهای ناگهانی کمتر خواهد بود.
برای مشاهده و مانیتورینگ دما بهصورت لحظهای میتوان از دستور زیر استفاده کرد:
watch -n 5 smartctl -A /dev/sda | grep Temperature

در این تصویر بجای Temperature از celsius استفاده شده و ممکن است در سیستم شما متفاوت باشد.
مرحله نهم: بررسی خطاهای I/O در لاگ سیستم
در این مرحله بررسی میشود که آیا سیستمعامل هنگام خواندن یا نوشتن اطلاعات روی دیسک با خطا مواجه شده است یا نه. خطاهای I/O معمولاً قبل از خرابی کامل هارد در لاگهای سیستم ثبت میشوند. بررسی آنها کمک میکند مشکلاتی شناسایی شوند که ممکن است هنوز در وضعیت سلامت هارد بهصورت واضح مشخص نشده باشند. اگر این خطاها تکرار شوند باید آن را یک هشدار جدی در نظر گرفت.
برای بررسی لاگهای مربوط به خطاهای دیسک میتوان از دستورات زیر استفاده کرد.
dmesg | grep -i "I/O error"
journalctl -k | grep -i disk

مرحله دهم: بررسی سلامت RAID در سرور
اگر سرور از RAID استفاده میکند بررسی وضعیت آن ضروری است؛ زیرا خرابی یک دیسک میتواند کل آرایه را تحت تأثیر قرار دهد. این مرحله نشان میدهد که RAID در وضعیت پایدار قرار دارد یا در حالت degraded است. بررسی منظم وضعیت RAID باعث میشود خرابی دیسکها قبل از از دست رفتن اطلاعات شناسایی شوند.
برای بررسی RAID نرمافزاری و دریافت جزئیات بیشتر از وضعیت آن میتوان از دستورات زیر استفاده کرد.
cat /proc/mdstat
mdadm --detail /dev/md0

مرحله یازدهم: بررسی سلامت CPU و حافظه RAM
در این مرحله وضعیت کلی منابع سرور بررسی میشود تا مشخص شود آیا فشار غیرعادی روی CPU یا حافظه وجود دارد یا خیر. مشکلات سختافزاری RAM میتوانند باعث خراب شدن فایلها و بروز خطاهای دیسک شوند. بررسی مصرف منابع کمک میکند تشخیص داده شود مشکلات مشاهدهشده مربوط به هارد است یا از فشار کلی سختافزار ناشی میشود.
برای بررسی وضعیت پردازنده و حافظه میتوان از دستورات زیر استفاده کرد.
top
htop
free -h

مرحله دوازدهم: بررسی خطاهای حافظه RAM
در این مرحله پیامهای مربوط به خطاهای حافظه بررسی میشوند. در سرورهایی که از RAM با ECC استفاده میکنند خطاهای اصلاحشده و اصلاحنشده در لاگ سیستم ثبت میشوند. مشاهده این پیامها نشانه وجود مشکل سختافزاری در ماژولهای RAM است و باید جدی گرفته شود زیرا میتواند باعث خرابی دادهها روی دیسک شود.
برای مشاهده پیامهای مرتبط با خطاهای حافظه میتوان از دستور زیر استفاده کرد.
dmesg | grep -i ecc

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