今回は、ハードディスクを接続し、iSCSIターゲットとして設定するまで。
将来的には、ESXiのデータストアとして500GBx2程度のRAID1と、ファイルサーバー用のディスク領域として(iSCSI越しに)直接マウントして使用する2TBx3のRAID5を構成する。まずは、500MBx1でDegraded RAID1として設定し、iSCSIで問題なく使えるかを確認する。
電源が停止した状態で、500GBのハードディスクを接続した。電源を投入すると、OSは無事に起動。ただ、ここでUSBメモリが/dev/sdbになり、ハードディスクが/dev/sdaになった。
/etc/fstabはUUIDで設定されているので、大きな問題ではない。とは言っても、ハードディスクの順番はSATAのポートの位置によって変化するので、ディスクのデバイスファイル名に依存しない構成にすべき。
必要なパッケージのインストール
まず、iSCSIターゲットとRAIDの管理ツールをインストールする。
sudo apt-get install mdadm && sudo apt-get install tgt && sudo service tgt start
mdadmのインストールの際に、postfixもついでにインストールされ、設定が画面が出てくる。メールサーバーとしては使わないので、構成としてLocal onlyを選択する。System mail nameは、domino.example.netとする。
RAID1の設定
/dev/sdaに認識されているディスクを使用して、degraded RAID1を設定する。まず、/dev/sdaをfdiskする。
sudo fdisk /dev/sda
基本パーティションを1つ作成し、ディスクIDを0xfd (Linux raid auto detect) に設定する。
次に、degraded RAID1を設定する。
sudo mdadm --create /dev/md/vmstore --level=1 --raid-devices=2 \ /dev/sda1 missing
これで、片方のディスクが欠損しているRAID1として運用される。現在のRAIDの状態は、
cat /proc/mdstat
で見ることができる。
RAIDドライブがどのデバイスファイルに割り当てられるかは起動時に勝手に決まってしまうので、設定ファイル/etc/mdadm/mdadm.confを書くことでそれを固定化する。ただし、設定ファイルが存在すると、設定ファイルの書かれているRAIDしか認識しなくなるので注意が必要。
まず、現在の構成を/etc/mdadm/mdadm.confに書き出す。
sudo sh -c "mdadm --detail --scan >> /etc/mdadm/mdadm.conf"
適当に編集して、
ARRAY /dev/md/vmstore metadata=1.2 UUID=493e9bab:bf4f4d93:13ae5ef2:1f277881
のようにする(ただし、UUIDは環境依存)。
/etc/mdadm/mdadm.confを編集した後は、initramを作り直す必要がある。
sudo update-initramfs -u
これで再起動すると、このRAIDはdegradedの状態なので、ブートスクリプトの途中でエラーが出て、そこで手動でyを入力しないと起動しない。当面は暫定処置としてこのままで運用する。早くちゃんとしたRAIDにしなければ。
iSCSI設定のテスト
iSCSIターゲットをコマンドライン上で設定し、ESXiから認識できるかを確認する。
sudo tgtadm --lld iscsi --op new --mode target --tid 1 \ --targetname iqn.2012-03.net.example.domino:vmstore sudo tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 \ --backing-store /dev/md/vmstore sudo tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
tidは0ではうまくいかなかった。lunは0はコントローラなので、1から順に指定する。
下記コマンドで状態を確認できるので、適宜確認する。
sudo tgtadm --lld iscsi --op show --mode target
vSphere Clientで 構成->ハードウェア->ストレージアダプタ から、iSCSI Software Adapterを追加し、Propertyから動的検出で192.168.0.3を指定する。今回設定したターゲットが見えることを確認。
iSCSI設定の固定化
コマンドラインから設定した内容は、iSCSIターゲットを再起動するとすべて忘れてしまう。そのため、設定ファイルに書いて、起動時に自動で設定するようにする。
sudo sh -c " cat > /etc/tgt/targets.conf << EOF <target iqn.2012-03.net.example.domino:vmstore> backing-store /dev/md/vmstore </target> EOF"
sudo service tgt restart
でiSCSIターゲットを再起動しても、PC自体を再起動しても、無事にESXiから見えることを確認。