mesosクラスタがあり、awsでcentos7インスタンスを実行していますc5
。カーネルバージョンは最新です4.16.1-1
。
c5
インスタンスタイプでボリュームがnvme drivers
.nvmeボリュームを使用している場合、上記のような動作が発生するようです。ここどこif there is an io timeout on a volume, the volume mount becomes read only and no further writes can happen. So if there is heavy read-write operations on your device like on root drive then after the io timeout no further writes can happen so its dangerous.
AWSでは文書io時間制限をできるだけ高く設定すると言われていますが、そうです4294967295 sec
。
AWS ドキュメントでは を指定しdefault io timeout
ますが、30sec
これは最大値なので、255 sec
わかるように最大値に設定する必要があります。kernel prior to 4.15 version
4294967295 sec for kernel 4.15+.
latest 4.16.1 kernel
4294967295 sec
ただし、パラメータを最大値に設定しようとするとnvme_core.io_timeout
反映されません。私はこれを試しました
sh-4.2# modprobe nvme_core io_timeout=123457
sh-4.2# cat /sys/module/nvme_core/parameters/io_timeout
30
sh-4.2#
これを設定する正しい方法は何ですかnvme_core.io_timeout
?
/etc/default/grub
ファイルに設定してみてください- システムコマンド
/sys/module/nvme_core/parameters/io_timeout
ファイルの上書き
しかし、何も役に立ちません。
答え1
私の実験では、AMIを構築するときにこれを行います。
cp /etc/default/grub /tmp/grub cat >>/tmp/grub <<'EOF' GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX} nvme_core.io_timeout=255" EOF sudo mv /tmp/grub /etc/default/grub sudo update-grub
次に、インスタンスからAMIを作成します。 AMIで新しいEC2インスタンスを起動すると、正しい設定が提供されます。
明らかに、これはカーネルパラメータを設定するために変更することができます。