Marvell's 88SE6480 @Debian part4 HDD認識!
話を最初から振り返ると、自宅ファイルサーバを構築しようとするとどうしても大容量HDDであっても接続出来るHDDの台数の限界というものがありまして、うちの場合はオンボードで8portのSATAを使える有り難いマザーボードなのですが(現在グラフィックオンボードでSATAのポート数はおそらくこのマザーが最大数 GIGABYTE GA-G33-DS3R)、そうするとHDDを更に増設するにはSATA拡張ボードが必要になります。PCIのものであれば、玄人志向より2portと4portが安価で入手出来る価格で販売されておりますが、PCIeのものでは、2portは安価ですが4port以上になるといきなりRAID仕様の高価品になってしまいます。
そこで、見つけたのがSUPERMICROのAOC-SASLP-MV8というPCIe(X4)の8port SASカードで、RAID機能が省かれているために価格も18,000円程度と相当安く購入する事が可能です。 そこで早速飛びついて購入はしてみたわけですが、付属のドライバはRedHatやSUSE、FedoraなどのディストリビューションのみでDebianで使おうにもドキュメントにあるようなソースは付属しておらず、メーカーに問い合わせても提供していないと言われる始末。
Debianのパッケージの方で正式対応するまで待とうかとか諦めていた所に、ドライバの開発者がいることがわかり、情報を集め、ソースをコンパイルする所までが前回part3までのあらすじとなります。
今回はその続きになります。
ソースに付属のREADMEを読み進めると、ドライバのコンパイルが終わったらドライバのロードが必要との事で
# modprobe libsas
# insmod scst.ko
# insmod mvsas.ko
という感じでドライバのロードを行います。READMEではinsmod scst.koの行が抜けておりましたが、これがないとmvsas.koのロードに失敗するみたいですので追加しております。
この状態で
/sys/class/scsi_host
を参照すると、host0~host?までの複数のhost?が見えると思います。この中のおそらく一番番号が新しいものがこのカードにあたります。
# cat /sys/class/scsi_host/host16/target_mode
という風に実行して、
phy dev sas address attach dev type attach sas address target mode 0 5003048000805890 0 0 1 5003048000805890 0 0 2 5003048000805890 0 0 3 5003048000805890 0 0 4 5003048000805890 0 0 5 5003048000805890 0 0 6 5003048000805890 0 0 7 5003048000805890 0 0の様に返ってくるデバイスがこのカードになります。ちゃんとphyが0~7までの8台分ありますね。 他のカードですと、target_modeが見つからない旨のエラーが出ると思います。
host番号を変えてみて下さい。
この状態でHDDが取り付けられていると
phy dev sas address attach dev type attach sas address target mode 0 5003048000805890 0 0 1 5003048000805890 0 0 2 5003048000805890 0 0 3 5003048000805890 0 0 4 5003048000805890 0 0 5 5003048000805890 0 0 6 5003048000805890 0 0 7 5003048000805890 SATA END DEVICE 700000000000000 0この様にSATA END DEVICEとしてHDDが認識します。
あとは
# echo "enable 7" > /sys/class/scsi_host/host16/target_mode
(7の部分はphy番号が入る)
とする事で、phyをtarget_modeで動作させる事ができます。
解除は
# echo "disable 7" > /sys/class/scsi_host/host16/target_mode
となります。(今回はSASカードがhost16、HDDがphy7である事を前提に記述しております)
あとは
# echo "add 16:0:0:0:0 0" >/proc/scsi_tgt/groups/Default/devices
の様にしてやれば一通り完了となります。(16:0:0:0の部分はhost?の数字を入れてやる)
あとは、普通にHDDとしてfdiskなりで処理してやればokです。


