とうとう自宅でiSCSIボリュームをESXiにマウントして使用できた。
もっとうまく解説していることろが多いのと、あまり構築記録残ってないので構成と設定例、トラブルシューティング方法など中心
環境
ESXi用マシン(iSCSIイニシエータ側)
最低限必要なもの
- CPUとメモリはゲストOSに必要なスペック×1.2倍程度?+ESXi動作に必要なスペック(メモリ0.5GBほど?)。
- ESXiに対応した1Gbps以上のNIC(Intel製なら大丈夫?)
- 起動用ディスク(USBメモリでも可。容量8GB程度でOK(4GBでも動くはず))
SAN用NICは高負荷なので別に用意したほうが良いが、SANとVM用、本体マネジメント用を1ポートにまとめることもできる。
私が使用した環境
このベアボーン
バックパネルのRealtekのNICは認識してくれなかったが、拡張スロットのIntel EXPI9301CT(1Gbps x1)は認識してくれた。ISOにドライバを組み込むなりすれば、RealtekのNICも認識できるらしい。
IPは10.72.73.10
iSCSIターゲット側ファイルサーバー構成
最低限必要なもの
- CPU:なんでもいいが、iSCSIの負荷に耐えられるもの。DT版Core2Duo相当以上は必要かも?
- メモリ:OSがサクサク動く程度でよいかと
- NIC: 最低1Gbps出ればなんとか
- ストレージ:iSCSIのバックエンドにブロックデバイスを使用する場合は、起動ドライブ以外に(物理でなくLVMなどの論理ディスクでもよいので)専用ボリュームが必要(パーティーションではない)。ゲストOSに必要な分の容量+ゲストOSのメモリ容量分のストレージが必要(※)
※ESXiのデフォルト設定では、ゲスト起動時にゲストOSをインストールしたディスクに割り当てメモリと同じ大きさのキャッシュが確保されるため(ゲストに割り当てたディスク範囲とは別に)
私が使用した環境
一応こんなスペックでも動く。iSCSIはメモリはほとんど食わず、メモリは不足していない。
- OS:Ubuntu Server 18.04
- CPU: E1-2100(ソケットAM1のAthron 5000番台と同設計) 2コア2スレッド1.0Ghz
- メモリ: 3GB
- 起動ドライブ&iSCSI用ブロックストレージ:SSD3台をLVMで結合して使用。OS領域とiSCSI用領域は別の論理ボリュームに分割
IPは10.72.72.11、OSはタイトル通りUbuntu Server 18.04
VMware ESXiのインストール
技術書展で買ったこの本を参考にISOを入手。
ISO入手までの道のりが最初の難関(どのページからどういう手順で入手するかがやや複雑)なので、手間取りたくなければなんらか参考になる本を買ったほうがいいかも。
VMWareのサイトが変更される可能性はあるが、2019/5月現在は上記の本の通りでISOがダウンロードできた。
インストール自体はrootパスワードの設定など一般的なので苦労はしなかったので省略。
iSCSI(targetcli)の設定(ファイルサーバー)
iSCSIのターゲットについてはいろいろあるが、targetctlを使用した。apt-get install targetcliでインストール
設定方法などはhttps://www.server-world.info/query?os=Ubuntu_16.04&p=iscsi&f=1を参考にした。Ubuntu以外でもtargetcliならおそらく設定方法は同じ。
上記ページではディスクイメージを作成し、これをiSCSIディスクとして提供しているが、ブロックストレージを使用したほうが性能がいいらしいので、今回はブロックストレージを使用。
私の環境ではbackstore/blockで
create name=lum0 dev=/dev/vg0/volforwin
としてブロックストレージを使用した(LVMの論理ディスクを使用)。
大まかな設定の流れは、
- ①でバックストアとして使用するストレージを登録
- ②に③のようなポータルを追加し、接続相手などの情報を登録する
である。
ポータル名、イニシエータ名の規則はちょっと厳しい。なるべくネット上の設定例に合わせた。
(一部都合により文字列をsampleに置き換えています)
- イニシエータ側(マウントする側)iqn.2019-04.tokyo.sample:tarforwin(③)
- ターゲット側(マウントされる側)iqn.2019-04.tokyo.sample.esxi(④)
とした。
o- / …………………………………………………………… […]
o- backstores …………………………………………………. […]①
| o- block ………………………………………. [Storage Objects: 2]
| | o- lum0 …………. [/dev/vg0/volforwin (160.0GiB) write-thru activated]
| | o- lum1 …………. [/dev/subvg/bigesxi (298.2GiB) write-thru activated]
| o- fileio ……………………………………… [Storage Objects: 0]
| o- pscsi ………………………………………. [Storage Objects: 0]
| o- ramdisk …………………………………….. [Storage Objects: 0]
o- iscsi ……………………………………………….. [Targets: 1]②
| o- iqn.2019-04.tokyo.sample:tarforwin …………………….. [TPGs: 1]③
| o- tpg1 ……………………………………. [no-gen-acls, no-auth]
| o- acls ……………………………………………… [ACLs: 1]
| | o- iqn.2019-04.tokyo.sample.esxi:initi1 ……….. [Mapped LUNs: 2]④
| | o- mapped_lun0 ………………………… [lun0 block/lum0 (rw)]
| | o- mapped_lun1 ………………………… [lun1 block/lum1 (rw)]
| o- luns ……………………………………………… [LUNs: 2]
| | o- lun0 ………………………. [block/lum0 (/dev/vg0/volforwin)]
| | o- lun1 ………………………. [block/lum1 (/dev/subvg/bigesxi)]
| o- portals ………………………………………… [Portals: 1]⑤
| o- 0.0.0.0:3260 …………………………………………. [OK]
o- loopback …………………………………………….. [Targets: 0]
o- vhost ……………………………………………….. [Targets: 0]
トラブル
targetcliでtpgを作成すると自動的にデフォルトのポータルが作成されるが、作成されないことがあった。
また、⑤のportals以下でポータルをcreateしようとすると
portal not created tpgs within a target targetcli portals create fail iscsi
kernel_bind failed -98
というエラーが発生した。
原因は不明だが、targetcliが2重起動しているのかもう一方ですでに同じポートが使用されていることが原因だった。
service tgt disableで解決した。
ESXi側設定
こちらのサイトの
iSCSIデーターストアを追加する
の項目のとおりにiSCSIアダプタを追加。
iSCSIアダプタを右クリック>プロパティ>動的検出タブ
以上のように設定。
以下のようになればOKで、閉じるとスキャンが始まる。
スキャンが終わると、検出されたボリュームが表示されるので、あとはストレージタブでマウントすれば完了。
余談など
- このボリュームにWindows10を入れて動かしてみた。コンソールからGUIで操作できる
- Windows10のVMを3台ほど作成したが、2台同時に動かすと負荷(CPU? NIC?)でファイルサーバーが落ちる。重めのOSで、ESXiホストマネジメント用NIC、iSCSI、VM用NICを1つのNICにまとめるのは無理があるか
- なお、ファイルサーバーが落ちるとVMは当然フリーズするが、ファイルサーバーの再起動後は何事もなかったかのように動いた
- ファイルサーバーにNFS共有を設定して、ESXiからNFSのマウントも試してみた。Ubuntu 18.04でapt-getでインストールしたNFSのバージョンは3系であった。3系は使用するポートがデフォルトでは不定であり、ESXiマシンへは全ポート開放という設定としたところ、ようやくマウントできた。
- 自宅SA~N♪ 自宅SA~N♪ し~あわせ~♪
コメント