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 EngineSR-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 0x0072Interface 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 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 LongITFORVN.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

 

 

 

Đánh giá post

Leave a Reply

Your email address will not be published. Required fields are marked *