iSCSIドライブがインストールされているFreeBSD 10.2サーバーがあります。これらのドライブが再起動後も維持されるように、fstabに自動的にマウントされたいと思います。
私がコマンドを実行すると
mount /dev/da0p1 /mnt
完璧に動作します。
mount
/dev/ada0p2 on / (ufs, local, journaled soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/da0p1 on /mnt (ufs, local, soft-updates)
ただし、/etc/fstab
システムにエントリを入れると起動プロセスが停止し、そのエントリが/dev/dap1
無効であるというメッセージが表示されます。これは、ネットワークおよび iSCSI サービスがまだ開始されていないためであると仮定します。
私の/etc/fstab
ファイルシステムに「late」オプションを追加しましたが、うまくいきません。
# cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0p2 / ufs rw 1 1
/dev/ada0p3 none swap sw 0 0
#User Added Entries
#/dev/da0p1 /mnt ufs rw,late 3 3
起動プロセスが「ファイルまたはディレクトリ/dev/da0p1を持っていません。ls /dev/da*
そのディレクトリで実行すると表示されます(下の画像を参照)。
実際にいくつかのテストを行った後、シングルユーザーモードで数秒待ってから、プロンプトに「exit」と入力すると、システムが起動し続け、ドライブが正常にマウントされます。
マウントが失敗しないようにiscsiデバイスを作成できるように5秒の遅延を設定する方法はありますか?
答え1
免責事項:これが正しいかどうかわかりません。正しいやるべきことがありますが、これは私にとって効果的でした。
したがって、ネットワークサービスのロードを完了し、何かをマウントできるようにiSCSIマウントを作成できるようにするには、起動プロセスに少し時間がかかります。
私がしたことはそれをスクリプトsleep 5
に追加するだけでした。/etc/rc.d/mountlate
# PROVIDE: mountlate
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: nojail
. /etc/rc.subr
name="mountlate"
start_cmd="mountlate_start"
stop_cmd=":"
mountlate_start()
{
local err latefs
sleep 5 <-------- Added this line
# Mount "late" filesystems.
#
err=0
私には5秒が良い数字のようです。マイレージはさまざまであり、異なる値をテストする必要があります。
繰り返しますが、これがこの特定の問題を解決する正しい方法であるかどうかはわかりません。誰でも良いか正しい方法があれば投稿してください。
答え2
現在最高のソリューション(FreeBSD 11.0+が必要)は次のとおりです。
- fstab エントリには以下が含まれます。
- 「遅い」オプション(起動プロセスの速度を遅くしない)
- "failok"オプション(iSCSI接続エラーが発生した場合はシングルユーザーモードに切り替えません)
- ダンプ/パス値が0に設定されている
- iscsictlがiscsi接続を待つように(最大10秒)、rc.confのiscsictl_flagsに「-w 10」を追加します。
/etc/fstab:
/dev/PARTITION.journal /mnt ufs rw,async,failok,late 0 0
/etc/rc.conf:
iscsictl_enable="YES"
iscsictl_flags="-Aa -w 10"
iscsid_enable="YES"
PS:理由はわかりませんが、iSCSIではGPTラベルを使用できません(作成時には機能しますが、再起動時にラベルはここにあります。「gpart show -l」と表示されますが、/ dev / gptでは使用できません)。 /)。
答え3
/etc/rc.d/mountlateにスリープモードを追加する必要はないことがわかりました。代わりに、/etc/fstabでダンプ番号を0に、fsckパス番号を0に変更しました。 fsckは起動時に実行されませんが、パーティションはマウントされます。
/dev/da0p1 /opt ufs rw,late 0 0