19.6. udev ルールを使用したディスクスケジューラーの設定
この手順では、udev
ルールを使用して、特定ブロックデバイスに、特定のディスクスケジューラーを設定します。この設定は、システムを再起動しても持続します。
以下のコマンドと設定で、以下の内容を置き換えます。
-
device をブロックデバイスの名前に置き換えます (例:
sdf
)。 -
selected-scheduler を、デバイスに設定するディスクスケジューラーに置き換えます (例:
bfq
)。
手順
ブロックデバイスのシステム固有の識別子を見つけます。
$ udevadm info --name=/dev/device | grep -E '(WWN|SERIAL)' E: ID_WWN=0x5002538d00000000 E: ID_SERIAL=Generic-_SD_MMC_20120501030900000-0:0 E: ID_SERIAL_SHORT=20120501030900000
注記この例のコマンドは、指定したブロックデバイスに関連付けられた World Wide Name (WWN) またはシリアル番号として識別されるすべての値を返します。WWN を使用することが推奨されますが、WWN は特定のデバイスで常に利用できる訳ではなく、コマンド例で返される値は、デバイスのシステム固有の ID として使用することが許容されます。
udev
ルールを設定します。以下の内容で/etc/udev/rules.d/99-scheduler.rules
ファイルを作成します。ACTION=="add|change", SUBSYSTEM=="block", ENV{IDNAME}=="device system unique id", ATTR{queue/scheduler}="selected-scheduler"
ここでは、以下のようになります。
-
IDNAME を、使用されている識別子名に置き換えます (例:
ID_WWN
)。 -
device system unique id を、選択した識別子の値に置き換えます (例:
0x5002538d00000000
)。
-
IDNAME を、使用されている識別子名に置き換えます (例:
udev
ルールを再読み込みします。# udevadm control --reload-rules
スケジューラー設定を適用します。
# udevadm trigger --type=devices --action=change
検証
アクティブなスケジューラーを確認します。
# cat /sys/block/device/queue/scheduler