CentOS 4.9 で iSCSI ディスクをマウントする

CLIENT


iSCSI ディスクをマウントする

EZ-NET: CentOS 5.3 で iSCSI ターゲットを構築する で構築した iSCSI ターゲットが提供している iSCSI ディスクを、CentOS 4.6 からマウントしてみることにします。

そのためには、まず CentOS 4.6 の場合は、次のようにして iSCSI イニシエーターをインストールします。

yum install iscsi-initiator-utils

これによって update リポジトリから iSCSI イニシエーターをインストールすることができました。

 

iSCSI イニシエーターのインストールが完了したら、設定ファイル "/etc/iscsi.conf" を編集します。

DiscoveryAddress=192.168.0.10:3260

Enabled=no

 

TargetName=iqn.2001-03.jp.ez-net.iscsi:storage.backup.disk1

Enabled=yes

このようにして、iSCSI Target のアドレスを "192.168.0.10" として、ポート番号を "3260" としています。

その上で、その iSCSI Target で提供されているターゲット "iqn.2001-03.jp.ez-net.iscsi:storage.backup.disk1" に接続するようにしています。

なお、DiscoveryAddress の次に指定している "Enabled=no" を指定していますが、これがないと、もし iSCSI Target が複数のターゲットを提供しているような場合に、見つかったターゲット全てをデバイスとしてシステムに割り当ててしまう感じでした。

 

接続情報を設定したら、次のようにして iSCSI イニシエーターを起動します。

service iscsi start

chkconfig iscsi on

設定に問題がなければ、これで iSCSI サービスが稼働します。

"iscsi-ls" コマンドを実行すれば、この iSCSI イニシエーターが認識している iSCSI ターゲットを確認することができるようになりました。

次のように "-l" オプションを指定して実行することで、マウントされているデバイス名も確認することができます。

iscsi-ls -l

これで、例えば "/dev/sdb" 等を経由して、iSCSI ターゲットにアクセスすることができるようになりました。

 

UUID でマウントできるようにする

しかし、このままでは、例えば今回の場合では、タイミングや状況によっては /dev/sdb ではなくなる可能性も出てきてしまいます。

そうなると、マウントしてそれを使用したい場合にも、再起動の度にマウント間違いがないか等に注意して運用しなければならなくなってしまいます。

 

それを回避するために、パーティションに UUID を割り当てて、その UUID を用いてマウントするようにしてみます。

まず、ここでは "/dev/sdb" に iSCSI ターゲットが割り当てられたとして、そのデバイスを初期化するところから始めます。

fdisk /dev/sdb

普段通りの操作でパーティションを分割したら、分割したパーティションをフォーマットします。ここでは ext3 形式でフォーマットしておくことにします。

mkfs.ext3 /dev/sdb1

パーティションが生成できたら、ここで UUID を割り当てます。

 

まず、次のようにして UUID を生成します。

uuidgen > ~/uuid-sdb1

これで、ホームディレクトリに "uuid-sdb1" というファイルが生成されて、その中に UUID が記録されました。

続いて次のようにして、/dev/sdb1 に、先ほど生成した UUID を割り当てます。

tune2fs -U `cat ~/uuid-sdb1` /dev/sdb1

これで、ファイル "~/uuid-sdb1" に記載されている UUID が /dev/sdb1 に割り当てられました。

 

これで、この UUID を使用して、ドライブをマウントすることができるようになりました。

たとえば "/etc/fstab" に次のように記載します。ここで指定している UUID は、先ほど生成した "~/uuid-sdb1" に記されている UUID です。

UUID=f3e7724c-182b-4b17-8a23-330314219457 /iscsi ext3 defaults,n
oauto 1 0

これで、先ほど作成したパーティションが /iscsi にマウントされるように設定できたと思います。

このとき、iSCSI サービスが起動するまではこの UUID がシステム上に存在しないので、"noauto" を指定して、自動マウントを行わないようにしています。また、起動時の強制ディスクチェックも同様の理由で無効 (0) にしてあります。

このパーティションをマウントしたいときには、次のように、マウントポイントを指定して mount コマンドを実行するのが簡単です。

mount /iscsi

これで、UUID を設定した iSCSI ターゲット上のパーティションを、マウントポイントにマウントすることができるようになりました。

このマウントコマンドを、iSCSI がスタートした後で実行すれば、起動後に iSCSI 上のパーティションを利用できる状態にすることができます。