LennyでiSCSI 【その3】Xen環境でイニシエーター open-iscsiの導入と設定 | 雲の上はいつも青空

雲の上はいつも青空

不思議な経歴をもつエンジニア!?の徒然なブログです。
お仕事関係の話が多いと思いますが、コメントとかもらえると中の人はとても喜びます(^O^)/

Lenny上に構築したXen環境でiSCSIを動かしてみました。
手順さえわかってしまえば、安定して動作をさせる事が可能ですが、実際にやってみると色々知らない事が多くて、ネットで情報を集めても結局最後は自分で試行錯誤が必要です。
※単に思いつきでやってもダメで、系統だった論理的推論は要求されますね(苦笑)


今回の検証に使った環境(サーバ構成)を書いてみます。
1.iSCSIターゲット機:ストレージ本体になります。    マシン名:kitty
  192.168.0.155  ASUS ITX-220, Celeron 220 1.2GHz, memory 2G
          HDD HDT721025SLA380 (250GB)
          Debian GNU Linux 5.0 Lenny
          kernel 2.6.26-2-686, iscsitarget 0.4.16+svn162-3
          RTL8169 Gigabit Ethernet(怪しい… でもちゃんと動いているww)

2.Xen環境、Domain-0:検証用Xenマシン1号機       マシン名:poporon
  192.168.0.154  ZOTAC nForce630i-ITX, Core2Duo E7400 2.8GHz, memory 4G
          HDD WD10EADS-00L (1TB)
          Debian GNU Linux 5.0 Lenny
          kernel 2.6.26-2-686, open-iscsi 2.0.870~rc3-0.4
          Marvel Yukon 88E8053 Gigabit Ethernet

3.Xen環境、Domain-0:検証用Xenマシン2号機       マシン名:aster
  192.168.0.5   EPSON NP-11v, ATOM 230 1.6GHz, memory 1G
          HDD ST9160310AS (160GB)
          Debian GNU Linux 5.0 Lenny
          kernel 2.6.26-2-686, open-iscsi 2.0.870~rc3-0.4
          RTL8168B Gigabit Ethernet
※このNP-11vにLennyをインストールするには注意が必要です。
普通にインストールするとNICを誤認識して、動作が不安定になります。
やり方はいろいろあるようですが、私はまずUSBタイプのLANアダプターを接続してインストールして、それからNICのドライバーをダウンドロードして組み込みました。

○使ったUSB接続のLANアダプター:CG-FEUSBTXCW USB1.1仕様なのでしょぼいですww
○NICドライバーの組み込み方は、ここを参考にしました。
丁寧な文章で、とっても助かりました。neetseさん、ありがとうございます!
※Xen環境を構築する時は、当然kernelが変わるので、ドライバーの再組み込みが必要です。
そのときは、xenカーネル用のkernel headerをインストールするのを忘れずに~!
※私はこれで数時間悩みました(苦笑)


ちょっと、前段の話が長くなりましたが、ここからイニシエーターの組み込みと設定の話です。
順番的には…

1.open-iscsiのインストールと設定
2.既存のXen環境への組み込み
3.動作確認及び、ライブマイグレーションのテスト
4.排他制御に関する考察


1.open-iscsiのインストールと設定
Debianパッケージでは、このopen-iscsiがiSCSIのイニシエーターとなります。
aptitude install open-iscsi
で、サクッとインストールできます。

設定に入ります。
まずは /etc/iscsi/iscsi.conf を変更します。
targetの設定で、認証等の設定をしていなければ、この3行が設定されていればOKです。
isns.address = 192.168.0.155  ←Targetが動いているサーバのIPアドレス
isns.port = 3205
node.startup = automatic


次に、/etc/iscsi/initiatorname.iscsi を変更します。
※これは、iSCSI上でのイニシエーターの名前です。 Target機でどこから接続されているか調べた時に、ここで設定した名前が表示される。
InitiatorName=iqn.2009-10.jp.it-tutor:aster   ←わかりやすい名前であればOK!
注)=(イコール)の前後にスペース or TAB等を入れないこと!

それでは、実際にTargetが動いているサーバに接続し、iSCSIで論理ドライブを作成します。

【ターゲット名確認コマンド】
iscsiadm -m discovery -t st -p 192.168.0.155
このコマンドで、公開されているターゲット名が表示されます。

【ログインコマンド】
iscsiadm -m node -p 192.168.0.155 -l
公開されているターゲットを一気に全部(複数あっても)に対して接続(ログイン)します。
※もちろん、ターゲット名を指定して個別にログインも可能です。

【設定ファイル変更コマンド】
iscsiadm -m node -p 192.168.0.155 --op update -n node.conn[0].startup -v automatic
ログインコマンドを実行すると、自動的に /etc/iscsi/node に設定ファイルが作られます。
その設定ファイルに対して、再起動したときに自動的にログインするよう設定を変更するコマンドです。
※実際には、node.conn[0].startup = automatic と、設定を変更します。デフォルトは、node.conn[0].startup = manual
※再度ログインコマンドを実行した場合には設定ファイルがデフォルトへ戻ってしまうので、必ずこの自動起動への変更コマンドも実行する必要があります。

さて、これまでの操作に誤りがなければ、fdisk -l で新しい論理ドライブが見えるはずです。
※一番最初にこのドライブを使うときは、フォーマットされていないので初期化が必要です。
※例:fdisk /dev/sdc で、パーティションを一つ作ります。
 それから、mkfs.ext3 /dev/sdc1 で、初期化をします。

初期化が終了したら、
mkdir /mnt/iscsi
mount /dev/sdc1 /mnt/iscsi
  ←iSCSIのドライブが /dev/sdc1 と仮定します。
問題なくマウントできたら、ひとまず設定は終了です。

【重要】恒常的に使うには、この後にfstabを編集して起動時に自動的にiSCSIボリュームをマウントする必要があります。 この設定については後述します。

■長くなってきたので、今日はここまでにします。