ページ ツリー

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

LSI 2008チップ系RAIDカードをZFSに使用したり、ライセンスの関係でRAID0のRAIDカードをZFSに使用したり、ライセンスの関係でRAID0/1のみしか使えないRAIDカードでS/W RAID5を組みたいときなど、JBODでディスクが見えた方が都合が良いときにJBODを有効にする方法。LSI 220X系でも同様らしいRAID5を組みたいときなど、

試したハードウェア

JBODでディスクが見えた方が都合が良いときにJBODを有効にする方法のメモです。

おそらくLSI SAS 2000/21000/2200系のチップを使っているカードでは有効だと思われます。

 

有効だったハードウェア

  • D2607-A21
    • LSI SAS 9211-8i相当だけど全くの独自設計
    • LSI SAS 2008チップ使用
    • 富士通 RX100S7にデフォルトでついてたカード(RAID0/1/10版)
    • 日立のDeskstarシリーズ、東芝のDT01/MD03/MD04シリーズをJBODで使う場合は要注意
  • N8103-150
    • MegaRAID SAS 9267-8iのNEC-OEM
    • LSI SAS 2208チップ使用
    • D2607に比べてかなり熱い
  • PIKE 2008
    • eBayでZ9PE-D16に追加するために購入
    • そもそもITモードでしか動かない。ebayで買った中古なのでデフォルトがITなのかは不明
    • MSMで見るとUnconfiguredデバイスとしてぶら下がっているドライブが見えるが、そこからArray作成はできない
    • storcli/Megacliでもコントローラーが見えない
    • 9217のファームが当たるが、それでも変わらず
    • ドライブを挿せばfdiskやWindowsのディスク管理ツールに出てくる
  • ServeRAID H1110
    • LSI 2004チップ採用
    • ドライブを刺しただけで見える
    • 論理ドライブも作れる
    • 論理ドライブを作成したあとでも、LDを削除してUnconfiguredにすると単体のドライブとして再び見える謎の多いカード
    • 帯域としては読み書きともに1GB/s、70kIO/s程度が限界
  • 検証次第追加予定

だめだったハードウェア

  • N8103-129
    • LSI SAS 2108チップを使用
    • カードに対して

      コード ブロック
      MegaCli -AdpSetProp -EnableJBOD 1 -a0

      は通るものの、ディスクに対して

      コード ブロック
      MegaCli -PDMakeJBOD -physdrv[252:2] -a0

      をやると

      コード ブロック
      Adapter: 0: Failed to change PD state at EnclId-252 SlotId-2.

      と帰ってきて有効に出来ず。

    • その代わり、

      コード ブロック
      smartctrl -x /dev/sdb -d megaraid,2

      を行うと正常にSMARTの値を取得できる。

  • N8103-129(9260-8iファーム適用)
    • そもそもカードに対して

      コード ブロック
      MegaCli -AdpSetProp -EnableJBOD 1 -a0

      が通らなくなる

    • LSI SAS 2108の仕様と同じ
    •  MR 5.8以降のファームを適用すると、4kセクタのディスクを接続して論理ディスクの定義しても、しっかり4kセクタとしてOSに返してくれる。それ以前は512B固定で返す。
  • MegaRAID SAS 8708EM2
    • JBODを有効にすることは出来ず
    • 2TB+以上のディスク容量を認識できず
  • D2507-D11
    • LSI SAS 1064Eチップ使用
    • 2TB+以上のディスク容量を認識できず
    • MegaCLIから見えない
    • TX120S3pについてたやつ
    • そもそも起動時のRAID設定画面でRAIDアレイを作らなければ、未定義ディスクはJBODディスクとして見える
  • 検証次第追加予定

検証環境

root@ubuntu:~# uname -a
Linux ubuntu 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux No LSB modules are available.

root@ubuntu:~/linux# lsb_release  -a
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty

 

設定手順

今回検証した手順は以下の通り。手順ではLinuxからMegaCLIを利用していますが、サーバ起動時にCtrl+YでPreBootCLIに入ることにより設定することも出来ます。

目次
minLevel3

Megacliをインストールする

LSI(現Avago)のページから    MegaCLI 5.5 P2 をDLします。

メモ

MegaCli-8.07.14-1-Linux.tgz

ダウンロード後、Unzipで解凍するとrpmファイルがあるので、Debian系であればAlienでパッケージを変換し、dpkgコマンドでインストールします。

...

を摘出すれば動きます。まあ一度Alienで変換してしまえばそのdebパッケージを使い回せば良いだけですが…。

アダプタの設定を変更しJBODを有効にする

アダプターの設定を変更し、JBODを有効にします。

root@ubuntu:~/# megacli AdpSetProp enablejbod  -1 -aALL
Adapter 0: Set JBOD to Enable success.
Exit Code: 0x00
    
root@ubuntu:~/# megacli AdpGetProp enablejbod -aALL
Adapter 0: JBOD: Enabled
Exit Code: 0x00

ディスクをJBOD用ディスクに設定する

アダプターの設定を変更後、ディスクをJBODとして使うように設定します。

...

その後、[Enclosure Device ID:Slot Number]形式でディスクをJBODとして定義します。形式でJBODとして使うポートを定義します。

root@ubuntu:~# megacli PDMakeJBOD -PhysDrv[64:0,64:1,64:2,64:3] -a0

Adapter: 0: EnclId-64 SlotId-0 state changed to JBOD.
Adapter: 0: EnclId-64 SlotId-1 state changed to JBOD.
Adapter: 0: EnclId-64 SlotId-2 state changed to JBOD.
Adapter: 0: EnclId-64 SlotId-3 state changed to JBOD.

Exit Code: 0x00

JBODとして定義後は、ディスクは他のRAIDメンバーに追加などは出来なくなります。JBODとして定義後は、定義したポートに挿したディスクは他のRAIDメンバーに追加などは出来なくなります。

root@ubuntu:~linux# megacli PDList -aALL|grep -E "(^Inquiry|^Enclosure Device|^Slot Number|^Firm)" 
Enclosure Device ID: 64
Slot Number: 0
Firmware state: JBOD
Inquiry Data: S1DMASK     Samsung SSD 840 EVO 120GB               EXT0AB0Q
Enclosure Device ID: 64
Slot Number: 1
Firmware state: JBOD
Inquiry Data: S1DMASK     Samsung SSD 840 EVO 120GB               EXT0AB0Q
Enclosure Device ID: 64
Slot Number: 2
Firmware state: JBOD
Inquiry Data: S1DMASK     Samsung SSD 840 EVO 120GB               EXT0AB0Q
Enclosure Device ID: 64
Slot Number: 3
Firmware state: JBOD
Inquiry Data: S1DMASK     Samsung SSD 840 EVO 120GB               EXT0AB0Q

...

定義後は、通常のディスクとして同じように利用できます。

...

JBOD用ポートを通常のRAIDアレイのメンバー用ポートに戻す場合

ディスクをアンマウント後、以下のコマンドでRAIDアレイのメンバー用ディスクとして定義することにより以前と同じようにRAID1などのメンバーに出来ます。ディスクをアンマウント後、以下のコマンドでJBOD用ポート定義を消すことにより、

以前と同じようにその配下にささっているディスクをRAID1などのメンバーに出来ます。

megacli PDMakeGood  -PhysDrv[64:0,64:1,64:2,64:3]  -Force -a0

ForceをつけないとOS起動状態でJBODの状態を解除できません。

また、JBODとして定義されているポートは、定義を戻さない限りディスクを変更してもJBODディスクとして見えます。

 

情報
JBODとして定義後は、smartctrlなどからも見えるようになります。

ラベル別コンテンツ
showLabelsfalse
max5
spacesINFLA
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ("megaraid","hardware","linux") and type = "page" and space = "INFLA"
labelsLinux Megaraid Hardware

...