Hướng Dẫn Flash Dell PERC H310Mini Sang Firmware LSI IT Mode Để Chạy SDS
Tản mạn
Khi sử dụng các SDS (Software-Defined-Storage) thì việc lựa chọn các Storage Controller có tính năng “Passthrough” hay “IT mode” để thay thế cho các HBA SAS Adapter “đắt đỏ” thì khá là bình thường, trong bài viết này chúng ta sẽ tìm hiểu cách để Flash Dell H310 Mini PERC sang Firmware LSI IT Mode để phục vụ mục đích như trên
Case thực tế: mình đang build một hệ thống vSAN nhỏ sử dụng SDS là VMware vSAN vì kinh phí eo hẹp nên lựa chọn cách này
Buồn trong anh: trước khi được cao nhân (Credit cuối bài) chỉ điểm cho thì mình đã “phá hoại” mất 1 em H310 Mini (giá thị trường đâu đó 1 củ khoai) cho trò “nghịch ngu” này rồi
Theo thông tin trên “thị trường” Ebay thì giá cả H310 Mini là khoảng 800k – 900k VNĐ, còn hàng đã flash IT mode thì giá khoảng 1500k – 1800k, nên đây cũng là một cách làm giàu không khó cho anh em ??
Note chút:
- SDS: thuật ngữ trong Storage chỉ việc sử dụng các Software (hoặc HĐH như: FreeNAS, Xpenology, vSAN, CEPH,..) dùng sức mạnh của chính CPU để tính toán, phân chia dữ liệu tới các Hard Drive mà không sử dụng tới Storage Controller (nôm na là Cạc rết đó)
- Trong thế giới của Storage Controller thì LSI là ông trùm đứng đầu của tổ chức với số lượng sản phẩm áp đảo và chiếm đa số trên thị trường, và LSI chia làm 2 trường phái cho các Storage Controller là: IT và IR
IT (Initiator Target) mode là một Firmware của LSI được biết đến là chế độ cho phép Storage Controller “pass-through” trực tiếp Hard Drive tới Host mà không xử lý bất cứ gì ở Storage Controller (Tương tự như HBA SAS)
IR (Intergrated RAID) mode: như tên gọi, chế độ này tích hợp sẵn và hỗ trợ cơ chế RAID cho các Hard Drive nhằm mục đích gộp ổ, tăng dung lượng, giảm rủi do,… chế độ này được đóng gói sẵn trong đa số sẵn phẩm của LSI -
Việc sử dụng IR Mode cho các SDS thường mang lại hiệu năng không cao (giảm 10% -15%) IOPS và tốc độ (test trực tiếp trên cùng một cấu hình DELL R720XD – LSI 9217 -8i), và hệ thống SDS không thể quản lý toàn bộ thông tin của Hard Drive như: thông số S.M.A.R.T,… của từng Hard Drive
-
Việc flash firmware từ firmware của nhà sản xuất sang firmware khác được gọi là “Crossflash” (phờ lát chéo =)))), và không được nhà sản xuất khuyến nghị cũng như hỗ trợ, vui lòng ĐỌC KỸ HƯỚNG DẪN SỬ DỤNG và TỰ CÓ TRÁCH NGHIỆM VỚI SẢN PHẨM CỦA MÌNH, MÌNH KHÔNG CHỊU BẤT CỨ TRÁCH NGHIỆM NÀO NẾU XẢY RA RỦI RO TRONG QUÁ TRÌNH THỰC HIỆN
Chuẩn bị
- Vì mình sử dụng DELL R620 và H310 Mini là Stock của con này nên mình sử dụng luôn DELL R620 để flash, các bạn có thể dùng R610 ,R620, R710, R720XD vì có khe cắm tích hợp sẵn
- CPU mình sử dụng: E5 2665
- RAM: SAMSUNG PC3 8GB ECC REG
- HĐH: Ubuntu, Centos, ở đây mình dùng Ubuntu 14.04
- USB: 2x16GB sử dụng tạo bộ cài và cài đặt OS lên USB (vì không có RAID Controller mà nhận ổ cài chứ sao, nếu bootlive CD thì mỗi lần reboot lại phải cài đặt lại một đống app đi kèm bên dưới :LOL )
- Package cần cài cho Distro lựa chọn: git-core build-essential python3 pciutils p7zip-full (xíu dưới có link)
Tiến hành
- Vào BIOS bằng F2 sau đó tắt 2 tính năng là I/OAT DMA Engine và SR-IOV Global Enable
trong System => Integrated Devices - Dùng Rufus tạo USB bộ cài Ubuntu
- Cắm cả USB vào máy và cài đặt HĐH lên USB còn lại
- Boot lên HĐH, tiến hành tiếp
Tải package cần thiết và Firmware LSI IT mode
sudo apt-get install git-core build-essential python3 pciutils p7zip-full -y
mkdir /home/raid cd /home/raid https://docs.broadcom.com/docs-and-downloads/host-bus-adapters/host-bus-adapters-common-files/sas_sata_6g_p20/9211-8i_Package_P20_IR_IT_FW_BIOS_for_MSDOS_Windows.zip unzip unzip 9211-8i* cp /home/raid/9211-8i_Package_P20_IR_IT_FW_BIOS_for_MSDOS_Windows/Firmware/HBA_9211_8i_IT/2118it.bin /home/raid
Đầu tiên để đọc được địa chỉ SAS hiện tại mà card đang sử dụng, chúng ta cần MegaCli trước được (copy từng dòng)
wget https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/8-07-14_MegaCLI.zip unzip 8-07-14_MegaCLI.zip 7z x Linux/MegaCli-8.07.14-1.noarch.rpm 7z x MegaCli-8.07.14-1.noarch.cpio chmod 755 opt/MegaRAID/MegaCli/MegaCli64
Lấy SAS addresss
opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -a0 | grep SAS\ Address
kết quả: hãy ghi ra giấy hoặc lưu lại dãy chữ số này (16 ký tự) vì về sau sẽ sử dụng để nạp lại
Tải và build lsiulti để sử dụng nạp firmware
- Lưu ý: workfolder vẫn ở /home/raid, chúng ta sẽ thực hiện ở folder này từ đầu tới cuối
wget https://github.com/exactassembly/meta-xa-stm/raw/master/recipes-support/lsiutil/files/lsiutil-1.72.tar.gz tar xzf lsiutil-1.72.tar.gz make -C lsiutil -f Makefile_Linux git clone https://github.com/marcan/lsirec make -C lsirec
Gỡ kernel module hiện tại đang điều khiển HBA
rmmod megaraid_sas
Kích hoạt Hugepages để load Firmware từ Host vào card
echo 16 > /proc/sys/vm/nr_hugepages
Tìm địa chỉ PCI của Card và vào chế độ Reset
lspci -nnv | grep H310 -B1
lsirec/lsirec 0000:03:00.0 unbind lsirec/lsirec 0000:03:00.0 halt
Trích xuất SBR và tiến hành sửa đổi
lsirec/lsirec 0000:03:00.0 readsbr H310MN.sbr
Convert và sửa đổi SBR
- Định dạng của SBR chúng ta không thể đọc cũng như chỉnh sửa được, vì vậy cần convert để sửa đổi
python3 lsirec/sbrtool.py parse H310MN.sbr H310MN.cfg
- Có 2 trường chúng ta cần sửa đổi là PCIPID thành 0x0072 và Interface thành 0x00
vi H310MM.cfg
:wq
Build lại files SBR và tiến hành nạp SBR
python3 lsirec/sbrtool.py build H310MM.cfg mod1.sbr
lsirec/lsirec 0000:03:00.0 writesbr mod_H310MM.sbr
Thoát khỏi Reset Mode và tiến hành preload Firmware cho card
lsirec/lsirec 0000:03:00.0 hostboot 2118it.bin
Rescan lại card để Kernel biết card đã được thay đổi và có thể điều trong IT mode
lsirec/lsirec 0000:03:00.0 rescan
Dùng lsiulti để nạp firmware cho card
lsiutil/lsiutil -e
- Chọn 1 để lựa card
- Nhập vào 46 (Upload Flash) tiếp theo chọn 5 (Complete all section) để tiến hành tạo backup, sau đó điền đường dẫn và filename để tạo files backup firmware
- Chọn 33 (Erase non-volatile adapter storage) để xóa config, tiếp đó chọn 3 (FLASH)
Chọn tiếp 8 (Persistent manufacturing config pages), bước này có thể phải chờ khá lâu (1 – 3p)
- Thoát ra bằng Ctrl + C, chạy lại lsiulti để tiếp tục
- Chọn 2 và điền đường dẫn chính xác của files 2118it.bin, nếu bạn làm như các lệnh của mình thì files 2118it.bin nằm ở /home/raid và chỉ việc điền như hình là ok
Điền “YES”
- Thoát ra và chạy lệnh reboot để khởi động lại máy
- Sau khi máy khởi động, chạy lại lsiulti 1 lần nữa và chọn 18 sau đó điền lại SAS Address đã get lúc đầu vào
- Cắm một bộ bất kỳ vào (như mình là SSD 240GB) và chạy fdisk -l và hưởng thụ thành quả
Flash BIOS cho card (tùy chọn)
- Khi làm tới bước trên là bạn đã hoàn thành, nếu muốn có BIOS để quản lý dễ dàng hơn thì cần flash ROM BIOS cho Card
- Sử dụng Rufus tạo USB trong môi trường DOS (Search Google)
- Download files nén tại đây về
- Giải nén ra đồng thời copy files sas2flsh.exe trong thư mục sas2flash_dos_rel và mptsas2.rom trong sasbios_rel vào USB DOS vừa tạo (để ở ngoài)
- Boot vào USB DOS và chạy lệnh
-
sas2flsh -o -b mptsas2.rom
Tác giả: Nguyễn Văn Long – ITFORVN.COM
Bạn có thể tương tác và cập nhật thông tin mới nhất của Nhóm Facebook ITFORVN, Các khóa học mới do group tổ chức tại «Portal»
Nguồn: Reddit
Chia sẻ bởi @Hạnh Thịnh