LSI Logic 3ware 9750-4iを導入する(Gentoo Linux)
LSI Logic 3ware 9750-4iを購入したのでGentooLinuxに突っ込んだときのログです。カーネルモジュールの有効〜ユニットの作成までをまとめてみました。
中で触れていませんが、ユニットの作成は3BM(BIOSベース)や3DM2(ブラウザベース)でやった方が簡単です。
環境
カーネルモジュールを有効にする
下記、モジュール各々を有効にします。
Device Drivers SCSI device support <*> SCSI disk support [*] SCSI low-level drivers ---> <M> 3ware 97xx SAS/SATA-RAID support # 起動ディスクにする場合は、 initrdにモジュールを含めるか、*にする
tw_cliの導入
tw_cliを導入します。tw_cliは3ware向けのコンフィギュレーションツールです。9750シリーズは、バージョン10以降が必要になります。
インストールパッケージのダウンロード
自分でパッケージのダウロードが必要です(ダウンロード時にライセンスに同意しないといけないから?)。また、ダウンロード先は変更される可能性があるので注意です。
ダウンロード後"/usr/portage/distfiles/"にコピーします。
http://www.lsi.com/DistributionSystem/AssetDocument/cli_linux_10.1.zip
package.keywordsへの追加
$sudo sh -c "echo 'sys-block/tw_cli' >> /etc/portage/package.keywords"
ユニット(とボリューム)の作成
ユニット/ボリュームの作成を行います。ユニットとボリュームの詳細は備考欄をご覧ください。
まずは、tw_cliを起動します。
#tw_cli
コントローラオブジェクトの番号確認とフォーカスの移動
追加したRAIDカードが何番目のコントローラーオブジェクトに割り当てられているかを調べます。
実行すると下記のようになります。
//xx>show Ctl Model (V)Ports Drives Units NotOpt RRate VRate BBU ------------------------------------------------------------------------ c6 9750-4i 3 3 1 0 1 1 -
c6に割り当てられているのでフォーカスを変更します。
//xx>focus /c6
ディスクの確認
RAIDカードに接続しているディスクのポートを確認します。
VPort 0-2にディスクが接続されていることが確認できます。今回は0-2のディスクを用いてRaid5を構築します。
//xx>show Unit UnitType Status %RCmpl %V/I/M Stripe Size(GB) Cache AVrfy ------------------------------------------------------------------------------ VPort Status Unit Size Type Phy Encl-Slot Model ------------------------------------------------------------------------------ p0 OK u0 1.82 TB SATA 0 - ST32000542AS p1 OK u0 1.82 TB SATA 1 - ST32000542AS p2 OK u0 1.82 TB SATA 2 - ST32000542AS
ユニット作成
ユニットの作成はaddコマンドを用いて行います。
//xx>/c6 add type=raid5 disk=0-2
- type:raidの種類(raid0,1....)を指定します。今回はraid5を指定しています。
- diskに使用するディスクのポート番号を指定します。今回はp0-2を指定しています。
また、下記項目は任意設定項目です。変更する必要がないので変更していません。他の設定値は備考やマニュアルをご覧ください。
- Read Cache:標準で有効
- Write Cache:標準で有効
- 先読み処理:標準で有効
- ストリップサイズ:256kb
- 他
ユニットの確認
作成したユニットを確認します。まずはコントローラオブジェクトレベルからです。
u0が作成されています。
//xx>/c6 show Unit UnitType Status %RCmpl %V/I/M Stripe Size(GB) Cache AVrfy ------------------------------------------------------------------------------ u0 RAID-5 OK - - 256K 3725.27 RiW ON VPort Status Unit Size Type Phy Encl-Slot Model ------------------------------------------------------------------------------ p0 OK u0 1.82 TB SATA 0 - ST32000542AS p1 OK u0 1.82 TB SATA 1 - ST32000542AS p2 OK u0 1.82 TB SATA 2 - ST32000542AS
次にユニットレベルで確認します。u0/v0というボリュームが作成されています。
このボリュームが実際にカーネルからディスクとして認識されます。(ボリュームの詳細は備考をご覧ください)。
//xx>/c6/u0 show Unit UnitType Status %RCmpl %V/I/M VPort Stripe Size(GB) ------------------------------------------------------------------------ u0 RAID-5 OK - - - 256K 3725.27 u0-0 DISK OK - - p0 - 1862.63 u0-1 DISK OK - - p1 - 1862.63 u0-2 DISK OK - - p2 - 1862.63 u0/v0 Volume - - - - - 3725.27
以上で作成完了です。dmesgからディスクが認識されていることが分かります。
$dmesg scsi 6:0:0:0: Direct-Access LSI 9750-4i DISK 5.12 PQ: 0 ANSI: 5 sd 6:0:0:0: [sdc] 7812456448 512-byte logical blocks: (3.99 TB/3.63 TiB) sd 6:0:0:0: Attached scsi generic sg4 type 0 sd 6:0:0:0: [sdc] Write Protect is off sd 6:0:0:0: [sdc] Mode Sense: 23 00 10 00 sd 6:0:0:0: [sdc] Write cache: disabled, read cache: enabled, supports DPO and FUA sdc1 sd 6:0:0:0: [sdc] Attached SCSI disk
今回は約3.7TBのディスクを作成しました。2Tバイト以上のパーティションはMBR(現行PC/ATで使用されているパーティションテーブル)で扱えないのでGPTを必要とします。GPTの扱いについては http://d.hatena.ne.jp/ktomoya/20100912/1284256525 を参照ください。
備考
LSI Logic 3ware 9750-4iについて
選択した理由は単純に3wareが枯れているからという理由です。。。あとは、メモリキャッシュが欲しかったけです。
- 4ポートSATA+SAS 6Gb/s
- ロープロファイル対応
- x8 PCI Express® 2.0 インターフェース
- 512MB DDRII ECC cache (800MHz)
- バッテリーバックアップオプション対応
- 最大96ディスク接続可能
- RAIDレベル0, 1, 5, 6, 10, 50,Single Disk対応
- リビルドにおけるオートリジューム
- 再編成におけるオートリジューム
- 動作中にディスクのサイズ変更可能
- 動作中にRAIDレベルの変更可能
- Global hot spare with revertible hot spare support
- 自動リビルド対応
- Single controller multipathing (failover)
- I/Oロードバランシング
- 広範囲に渡るRAID管理スイート
ユニットについて
ユニットは複数のディスクを束ねたオブジェクトを指します。束ね方はraidtypeで指定します。
ボリュームについて
ユニットを任意の容量で切り出し、実際にディスクとして認識されるオブジェクトです。
ユニット作成コマンド引数詳細
ユニット作成コマンドの引数について少し細かく説明します。
# 全体 /cx add type=<RaidType> disk=<p:-p> [stripe=size] [noscan] [group=<3|4|5|6|7|8|9|10|11|12|13|14|15|16>] [nowrcache] [nordcache| rdcachebasic] [autoverify] [noqpolicy] [ignoreECC] [name=string] [storsave=<protect|balance|perform>] [rapidrecovery=all|rebuild|disable] [v0=n|vol=a:b:c:d]
- type:作成するユニットのタイプを設定します。 タイプにはraid0,raid1,raid5,raid6,raid10,raid50,single(ディスク1つでユニットを作成するときに選択する), spare(スペアディスクとして設定) と多数あります。
# RAID0を選択した場合(diskは0と1) //xx>/cx add type=raid0 disk=0:1
- disk:ユニットに割り当てるディスクを選択する
# p0〜p2とp4を選択した場合 //xx>/cx add type=raid6 disk=0-1:4
- stripe(任意):RAIDカードがデータを管理する際のブロックサイズの設定です。16KB,64KB,256KBから選択可能です(RaidTypeによって選択可能なサイズはことなりますのでマニュアル参照)。
# Stripサイズに64Kを指定した場合 //xx>/cx add type=raid1 disk=1:2 stripe=64
- v0,vol(任意):ボリュームのサイズを指定します。
-
- v0:1つ目のボリュームのサイズを指定します。残り領域はもう一つのボリュームが作成されます
- vol:先頭から4つまでの任意のボリュームサイズを指定できます。4つで全て使い切らなかった場合には、carveサイズ単位でボリュームを作成します(標準:1TB, 最大:32TB)。carveサイズは変更可能です。
-
# v0で1つ目のボリュームサイズ(1024GB)のみを指定する。 //xx>/cx add type=raid5 disk=0-2 v0=1024 # volで複数のボリュームを作成します。10GB,5GB,200GB,5GBで切っています。 # ディスクの残りはcarveサイズ単位となります。 //xx>/cx add type raid5 disk=0-3 vol=10:5:200:5
下記以降はマニュアルをどぞ。
- group=3,4,5,6,7,8,9,10,11,12,13,14,15,16
- noscan(任意)
- nocache,nowrcache(任意):ライトバックキャッシュを無効にするとパフォーマンスが非常に落ちるのでおすすめしません。(10MB/sとかになりました。。。)
- nordcache,rdcachebasic(任意)
- autoverify(任意)
- noqpolicy(任意)
- ignorECC(任意)
- name=string(任意)
- rapidrecovery=all,rebuild,disable(任意)
- storsave=protect,balance,perform(任意)
その他のコマンド
- /cx/ux del:ユニットを削除します
- /cx/ux migrate:作成済みのユニットの構成を変更します(RAIDレベルの変更やstripeサイズの変更など)
今後
- 3DM2入れてみる
- ベンチとってみる(ストリップサイズの違いで)
参考
公式のマニュアルです。。