هدف: ارتقای فریمور درایوهای HPE SSD (مدل MO003200PZWSK) از نسخه HPD3 به HPD4 جهت رفع باگ بحرانی Data Loss پیش از ایجاد Storage Pool. محیط عملیاتی:
- سختافزار سرور: Supermicro (سرور غیر HPE)
- کنترلر ذخیرهسازی: Avago/Broadcom MegaRAID (مدل ۹۴۸۰-8i8e)
- سیستمعامل: لینوکس سفارشی
- ابزار مدیریت: storcli و ابزار رسمی فلش HPE
پیشنیازها
- دانلود فایل فریمور دقیقاً منطبق با پارتنامبر دیسکها از سایت پشتیبانی HPE. (در این سناریو: فایل
firmware-hdd-dd1bfa0fad-HPD4-2.1.x86_64.rpmمخصوص هاردهای سری MO).
مراجعه به سایت HPE: سرچ مدل نامبر هارد در اینجا MO003200PZWSK و دانلود فریمور نسخه لینوکس https://support.hpe.com/connect/s/?language=en_US
- اطمینان از قرار داشتن دیسکها در وضعیت JBOD (یا Unconfigured Good) و عدم درگیری آنها با سیستمعامل (عدم وجود Mount یا Pool فعال).
مراحل اجرا
گام اول: استخراج پکیج فریمور (RPM)
از آنجا که ابزار storcli لینوکس به صورت مستقیم فایلهای .rpm را فلش نمیکند، ابتدا فایل را در مسیر دلخواه (مثلاً /root) استخراج میکنیم:
# Extract the RPM package
rpm2cpio firmware-hdd-dd1bfa0fad-HPD4-2.1.x86_64.rpm | cpio -idmv
# Navigate to the extracted directory
cd ./usr/lib/x86_64-linux-gnu/firmware-hdd-dd1bfa0fad-HPD4-2.1
گام دوم: حل مشکل وابستگی سیستمعامل (ساخت دستور which موقت)
در سیستمعاملهای مینیمال یا سفارشی که دستور which در آنها نصب نیست، اسکریپت آپدیت HPE متوقف میشود. برای دور زدن این محدودیت بدون نیاز به نصب پکیجهای اضافی، یک اسکریپت شبیهساز موقت در همان مسیر ایجاد میکنیم:
# Create a temporary 'which' command
echo '#!/bin/bash' > which
echo 'command -v "$1"' >> which
# Make scripts executable
chmod +x which setup hpsetup
# Add the current directory to PATH so the script uses our fake 'which'
export PATH=$(pwd):$PATH
گام سوم: اجرای ابزار فلش HPE (ارتقای گروهی)
به جای آپدیت دستی با storcli (که ممکن است به دلیل هدر اختصاصی فایلهای HPE با خطای ۴۵ یا Device Busy مواجه شود)، از اسکریپت هوشمند خود پکیج استفاده میکنیم. این اسکریپت سختافزارها را اسکن کرده و فریمور را به صورت ایمن نصب میکند:
# Run the HPE setup utility
./setup
- پس از اجرای دستور بالا، ابزار لیستی از درایوهای سازگار متصل به کنترلر را نمایش میدهد.
- برای آپدیت همزمان تمام درایوها، کلید
A(به معنای All) را تایپ کرده و Enter کنید. - منتظر بمانید تا پیام
NDU flashing completed successfullyوExit Status: 0نمایش داده شود.
بررسی و صحتسنجی (Verification)
پس از پایان عملیات، برای اطمینان از صحت آپدیت و پایداری درایوها پیش از زیر بار بردن سیستم، دو بررسی زیر روی دیسکها انجام میشود:
۱. تایید نسخه فریمور:
/usr/MegaRaid/storcli/storcli64 /c0 /eall /sall show all | grep -i "Firmware"
خروجی مورد انتظار:
Firmware Revision = HPD4
برای دیدن فریمور تک دیسک: مثلا دیسک شماره ۲
/usr/MegaRaid/storcli/storcli64 /c0/e240/s2 show all | grep -i "Firmware"
۲. بررسی سلامت فیزیکی و شمارنده خطاها:
/usr/MegaRaid/storcli/storcli64 /c0 /eall /sall show all | grep -i -E "State|Error Count|Predictive|S.M.A.R.T"
خروجی مورد انتظار:
Media Error Count = 0(سلامت کامل سکتورها)Other Error Count = 0(پایداری ارتباط با کنترلر)Predictive Failure Count = 0(عدم وجود ریسک خرابی)S.M.A.R.T alert flagged by drive = No
برای دیدن ارور تک دیسک: مثلا دیسک شماره ۲
/usr/MegaRaid/storcli/storcli64 /c0/e240/s2 show all | grep -i -E "State|Error Count|Predictive|S.M.A.R.T"
پس از تایید موارد فوق، درایوها آماده ایجاد Storage Pool و استفاده در محیط پروداکشن هستند.