私のc5 EC2インスタンスでnvme_core.io_timeoutを増やす方法

私のc5 EC2インスタンスでnvme_core.io_timeoutを増やす方法

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 version4294967295 sec for kernel 4.15+.latest 4.16.1 kernel4294967295 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

  1. /etc/default/grubファイルに設定してみてください
  2. システムコマンド
  3. /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インスタンスを起動すると、正しい設定が提供されます。

明らかに、これはカーネルパラメータを設定するために変更することができます。

関連情報