25.6. システムの起動時に FCoE インターフェイスを自動マウントする設定
注記
本セクションの手順は、Red Hat Enterprise Linux 6.1 の時点で
/usr/share/doc/fcoe-utils-バージョン/README
で入手できます。マイナーリリース全体で考えられる変更については、そのドキュメントを参照してください。
新しく検出されたディスクは、udev ルール、autofs、およびその他の同様の方法でマウントできます。ただし、特定のサービスの起動時に FCoE ディスクのマウントが必要になる場合があります。このような場合は、fcoe サービスが実行され るとすぐ に、FCoE ディスクを必要とするサービスが開始される 前 に、FCoE ディスクをマウントする必要があります。
システムの起動時に FCoE ディスクを自動的にマウントするように設定するには、fcoe サービスの起動スクリプトに適切な FCoE マウントコードを追加します。fcoe 起動スクリプトは
/lib/systemd/system/fcoe.service
です。
FCoE マウントコードは、単純なフォーマットの FCoE ディスク、LVM、またはマルチパスデバイスノードのいずれを使用しているかに関係なく、システム設定ごとに異なります。
例25.2 FCoE マウントコード
以下は、
/etc/fstab
のワイルドカードで指定されたファイルシステムをマウントするための FCoE マウントコードの例です。
mount_fcoe_disks_from_fstab() { local timeout=20 local done=1 local fcoe_disks=($(egrep 'by-path\/fc-.*_netdev' /etc/fstab | cut -d ' ' -f1)) test -z $fcoe_disks && return 0 echo -n "Waiting for fcoe disks . " while [ $timeout -gt 0 ]; do for disk in ${fcoe_disks[*]}; do if ! test -b $disk; then done=0 break fi done test $done -eq 1 && break; sleep 1 echo -n ". " done=1 let timeout-- done if test $timeout -eq 0; then echo "timeout!" else echo "done!" fi # mount any newly discovered disk mount -a 2>/dev/null }
mount_fcoe_disks_from_fstab 関数は、fcoe サービススクリプトが fcoe mon デーモンを起動した 後 に呼び出す必要があります。これにより、
/etc/fstab
で以下のパスで指定された FCoE ディスクがマウントされます。
/dev/disk/by-path/fc-0xXX:0xXX /mnt/fcoe-disk1 ext3 defaults,_netdev 0 0 /dev/disk/by-path/fc-0xYY:0xYY /mnt/fcoe-disk2 ext3 defaults,_netdev 0 0
fc-
および _netdev
サブ文字列を持つエントリーにより、mount_fcoe_disks_from_fstab 関数が FCoE ディスクマウントエントリーを識別できます。/etc/fstab
エントリーの詳細は、man 5 fstab を参照してください。
注記
fcoe サービスは、FCoE ディスク検出のタイムアウトを実装しません。このため、FCoE マウントコードには独自のタイムアウト期間を実装する必要があります。