March 21, 2011

CentOS5におけるudevを用いたiSCSIのデバイス名固定 とパーティションノードの作成に関して

iSCSIのデバイス名が固定されず不便なので、udevをつかってデバイス名を固定する
この手順は、multipath を使用していないホストのためだけに使用
multipathを使用する場合はこちら

まず、/etc/scsi_id.config ファイルを編集
options=-b の行がコメントアウトしてあることを確認し、以下の行を追加
options=-g
次に対象のiSCSIデバイス(/dev/sdX)のUUIDを調べる
# scsi_id -g -s /block/sdX
3600a0b800013275100000015427b625e
最後に、/ect/udev/rules.d/20-iscsi.rulesを作成し
KERNEL=="sd*", BUS=="scsi", PROGRAM="/lib/udev/scsi_id -g -s /block/%k", RESULT=="3600a0b800013275100000015427b625e", NAME="mydevice"
を記述して終わり
再接続すれば/dev/mydeviceができている.

[2011/11/15追記]
この手法でiscsiのブロックデバイスの名前を固定しても各パーティションまでは名前が固定されない。
つまり、
# parted /dev/mydevice
などとしてパーティションを切っても、mydevice1は見えず、/dev/sd*1だけが見える。
仮想マシンにブロックデバイスごと提供する場合は問題ないが、マウントして使う場合はだいぶ難儀なので、これを解決するためにパーティションノードも作成する。/ect/udev/rules.d/20-iscsi.rulesを
KERNEL=="sd*", BUS=="scsi", PROGRAM="/lib/udev/scsi_id -g -s /block/%k", RESULT=="3600a0b800013275100000015427b625e", NAME{all_partitions}="mydevice"
とする。これでmydevice1~15が作成される。
(1つしかパーティションを切ってなくても15個できるがキニシナイ)
cf. http://www.gentoo.gr.jp/transdocs/udevrules/udevrules.html#usbstorage-extra

検索で引っかかるサイトの記述が細かいところで抜けていて死ぬ

参考
http://www.gentoo.gr.jp/transdocs/udevrules/udevrules.html
http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/5/html/Virtualization/sect-Virtualization-Virtualized_block_devices-Configuring_persistent_storage_in_Red_Hat_Enterprise_Linux_5.html

No comments:

Post a Comment