후지쯔 D2607 IT 모드 (HBA) 펌웨어 크로스플래시

HP Microserver Gen8은 시스템 칩셋으로 인텔 C204를 사용하고, 기본적으로 하드 베이에서 나온 SFF-8087 케이블이 인텔 C204의 SATA 컨트롤러에 연결되어 있다. 그래서 0, 1번 베이만 SATA 6Gbps를 지원하기 때문에 PCIe 슬롯에다가 SAS HBA를 붙여서 모든 베이에서 6Gbps를 사용하도록 하는 개조를 자주 당하고는 한다. ZFS 같은 소프트웨어 RAID를 사용할 거라면 굳이 하드웨어 RAID 카드를 붙일 필요가 없어서 IT 모드로 플래싱할 수 있는 캐시 안 달린 RAID 카드를 사용하기도 한다.

LSI(Avago를 거쳐서 Broadcom에 인수됨) RAID/HBA 카드는 SAS 계열에서 본좌 중 하나로 취급된다. LSI는 자체적으로 카드를 만들어서 팔 뿐만 아니라 서버 제조사에 OEM으로도 칩셋을 납품한다. LSI 버전 리테일 카드보다 OEM 버전 카드가 더 싸긴 한데, OEM 버전 카드는 LSI 버전보다 최신 펌웨어가 더 늦게 올라오거나 IR/IT 모드 펌웨어 중 하나마 올라오기도 한다. LSI SAS 칩셋과 카드 정보를 보려면 serverthehome에 있는 정보를 참조하면 된다. 덕분에 2cpu에서 인기 있었던 하드웨어가 IBM M1015인데, 이건 그냥 LSI 펌웨어를 강제로 밀어 넣으면 LSI 카드로 변신하고 IR/IT 모드 전환도 자유롭기 때문이다. 아직까지 국내에 후지쯔 D2607 카드로 시도해 보았다는 사람은 안 보이는데, 사실 후지쯔 카드의 SBR 구조가 다른 LSI 칩셋 카드와는 달라서 2016년에서야 성공했다는 블로그 글이 나왔다. 독일 이베이를 눈팅하다가 D2607이 꽤 싸게 풀린 걸 하나 낚아채서 이걸 시도해 보았다.

martan.st에 의하면 후지쯔 카드의 SBR은 0x12번째 바이트가 다른 LSI 카드와는 살짝 달라서, 다른 회사의 SBR을 그대로 밀어 넣으면 2개의 SFF-8087 포트 중 하나만 인식하는 경우가 생긴다. serverthehome에 올라온 글에 의하면, D2607 카드에는 A11과 A21 리비전이 있는데 문제의 0x12번째 바이트가 A11과 A21 리비전끼리도 서로 달라서(A11: 0x04, A21: 0x00) IT 모드로 플래싱할 때에도 하드웨어 리비전을 맞춰서 플래싱해야 한다. 내가 받은 카드도 A21 리비전이라서 D2607-A21용 SBR을 구해야 했다.

준비물은 UEFI 부팅 가능한 보드, D2607 카드와 포맷해도 상관 없는 USB 메모리다. Microserver Gen8은 UEFI를 지원하지 않지만, marcan.st 블로그에서는 sas2flash의 UEFI 버전을 수정해서 Mfg Page 2 validation을 건너뛰도록 만들어 놨기 때문이다. sas2flash의 DOS 버전의 같은 부분을 수정하면 UEFI 부팅 가능한 보드가 없어도 되지만, 아직까지 사람들이 거기까지는 시도해 보지 않은 것 같다. lime-technology 사이트에 A21과 A11 리비전용 SBR, sas2flash, IT 모드 펌웨어를 모아 놓은 압축 파일을 누군가가 올려 두었다. Rufus로 DOS 부팅용 USB를 만든 다음 이 파일을 USB 메모리의 루트에 압축을 풀어 놓으면 된다.

다운로드 링크: https://mega.nz/#!bp1lwAwZ!qrQics2qslPxCRFSI7pCaL-JECCauM_xqp00GQPloSg
미러: http://www93.zippyshare.com/v/BqbeVa7Y/file.html

우선 DOS로 부팅한 다음

megacli -adpallinfo -aall | find /i "sas address"

명령을 내려서 RAID 카드의 SAS 주소를 기록해 둔다. 혹시나 카드가 맛이 갈 때를 대비해서

megarec -readsbr 0 orig_sbr.bin

명령을 내려서 원본 SBR을 백업해 둔다. 그 다음 카드를 초기화한 다음 IT 모드용 SBR을 플래시해 주고 다시 한 번 더 초기화한다. 여기까지는 다른 LSI 칩셋 카드와 같다.

megarec -cleanflash 0 (카드에 따라서 여러 번 실행해야 할 수도 있음)
megarec -writesbr 0 SBR-A21.bin (카드가 A21 리비전인 경우)
megarec -writesbr 0 SBR-A11.bin (카드가 A11 리비전인 경우)
megarec -cleanflash 0

그 다음 UEFI 셸로 부팅해서 IT 모드 펌웨어를 밀어넣는다. 저 사이트에 올라온 2118it.p20.bin 파일은 Broadcom 사이트에 올라와 있는 LSI 9211-8i의 20.00.07.00 펌웨어와 동일하다. MD5 체크섬은 동일하나, 찝찝하면 공식 사이트에 있는 파일로 새로 밀어넣어도 상관 없다.

fs0: (UEFI 셸 진입 시 표시되는 USB 메모리 경로로 입력)
sas2hax -o -f 2118it.p20.bin

이 단계에서 카드를 초기화할 수 없다는 오류 메시지가 뜨데, 의도된 결과다. 그래서 시스템을 UEFI 셸로 재부팅한 다음 다시 한 번 더 명령을 수행해 준다.

fs0: (이전 단계에서 실행했던 것과 동일한 경로)
sas2hax -o -f 2118it.p20.bin -b mptsas2.p20.rom
sas2hax -o -sasadd (이전에 기록해 둔 SAS 주소)

마지막으로 DOS로 재부팅한 다음 SBR을 한 번 더 기록해 준다.

megarec -writesbr 0 SBR-A21.bin 또는
megarec -writesbr 0 SBR-A11.bin

IBM M1015 같은 것과는 SBR 및 펌웨어 구조가 달라서 후지쯔용 SBR을 사용하고 sas2flash의 LSI 버전을 사용할 수 없다는 게 차이점이지만, 한 번 플래싱해 두면 HBA 모드로 계속 사용할 수 있다. 후지쯔 카드에 LSI 펌웨어를 올리는 방법 자체가 2016년 5월에서야 최초로 알려졌기 때문에 LSI 펌웨어를 올린 후에 펌웨어 업그레이드는 아직까지는 아무도 시도해 보지 않은 것 같다.

공장 상태의 D2607을 연결하면 MegaRAID Configuration Utility 진입 메뉴가 뜨지만, IT 모드 플래싱이 완료되면 이런 게 뜬다. 이제 이 상태에서는 MegaRAID Storage Manager를 설치해도 HDD 정보만 표시되며, sas2ircu로도 할 수 있는 일은 HBA와 하드디스크 정보 보기밖에 없다. megacli/storcli는 컨트롤러를 인식하지 못한다.

LSI SAS BIOS