質問 :scsi 拡張デバッグ メッセージをオンにする方法は? scsi_logging_level のフィールド/フラグの定義は何ですか?
/proc/sys/dev/scsi/logging_level に書き込むことで、追加の scsi ログ メッセージを有効にできます echo を使用して またはできれば sysctl 指図。カーネル パラメータは、それぞれ長さが 3 ビットの 10 個のパック フィールドで構成されます。各フィールドには 0 ~ 7 の値を指定できます。フィールドの値が大きいほど、そのフィールド タイプに関連付けられたメッセージのロギングが詳細になります。
注意 注:高レベルの拡張ログや複数の種類の拡張ログを有効にすると、特に起動時とシャットダウン時にシステムのパフォーマンスが低下する可能性があります。必要な場合を除き、起動時に scsi ログを有効にしないでください。実行時間
1. 有効にする :
# sysctl -q -w dev.scsi.logging_level=[N]
または
# echo [N] > /proc/sys/dev/scsi/logging_level
どこで N 有効にするフィールドと詳細レベルを指定します。
2. 無効にする:
# sysctl -q -w dev.scsi.logging_level=0
または
# echo 0 > /proc/sys/dev/scsi/logging_level
起動時間
有効にする (CentOS/RHEL 5)
1. /etc/modprobe.conf を変更します 「オプション scsi_mod scsi_logging_level=N」で 「.
2. initrd イメージ ファイルを再構築して、新しい /etc/modprobe.conf を取得します。 ファイル。
CentOS / RHEL 5 :初期 RAM ディスク イメージを再構築する方法3. ブーツを編集します /boot/grub/grub.conf の行 、「静か」を削除 ' 存在する場合は、'debug' のいずれかを追加します ' または 'loglevel=10 ' (どちらも同じことをします)。 「log_buf_len=8M」も追加 ‘ 追加のロギングによってさらに多くのメッセージが作成されるため、カーネルのログ fifo サイズを増やします。
4. 再起動してメッセージ出力をキャプチャします。
# shutdown -r now
有効にする (CentOS/RHEL 6)
1. ブーツを編集します /boot/grub/grub.conf の行 「scsi_logging_level=N」を追加します 「.
2. ブーツを編集します 行を削除して「quiet」を削除します ' 存在する場合は、'debug' のいずれかを追加します ' または 'loglevel=10 ' (どちらも同じことをします)。 「log_buf_len=8M」も追加 ‘ 追加のロギングによってさらに多くのメッセージが作成されるため、カーネルのログ fifo サイズを増やします。
3. 再起動してメッセージ出力を取得します:
# shutdown -r now
有効にする (CentOS/RHEL 7 &8)
1.「GRUB_CMDLINE_LINUX」を編集します 」の行 /etc/default/grub 「scsi_logging_level=N」を追加します 「.
2.「GRUB_CMDLINE_LINUX」を編集します 」行を削除し、「quiet」を削除します ' 存在する場合は、'debug' のいずれかを追加します ' または 'loglevel=10 「(どちらも同じことをします)。 「log_buf_len=8M」も追加 ‘ 追加のロギングによってさらに多くのメッセージが作成されるため、カーネルのログ fifo サイズを増やします。
3. /etc/default/grub への変更 grub.cfg ファイルの再構築が必要です。
# grub2-mkconfig -o /boot/grub2/grub.cfg
4. 再起動してメッセージ出力をキャプチャします。
# shutdown -r now
上記のフラグが行うことは、scsi 拡張ログ レベルを上げて、エラーやタイムアウト、スキャン処理中、および高レベル キューからの io の完了に関する多くの情報を含めることです。マスク値を手動で作成するには、scsi_logging.h を参照して、有効にするフィールドを選択してください。
/* * This defines the scsi logging feature. It is a means by which the user * can select how much information they get about various goings on, and it * can be really useful for fault tracing. The logging word is divided into * 8 nibbles, each of which describes a loglevel. The division of things is * somewhat arbitrary, and the division of the word could be changed if it * were really needed for any reason. The numbers below are the only place * where these are specified. For a first go-around, 3 bits is more than * enough, since this gives 8 levels of logging (really 7, since 0 is always * off). */ #define SCSI_LOG_ERROR_SHIFT 0 #define SCSI_LOG_TIMEOUT_SHIFT 3 #define SCSI_LOG_SCAN_SHIFT 6 #define SCSI_LOG_MLQUEUE_SHIFT 9 #define SCSI_LOG_MLCOMPLETE_SHIFT 12 #define SCSI_LOG_LLQUEUE_SHIFT 15 #define SCSI_LOG_LLCOMPLETE_SHIFT 18 #define SCSI_LOG_HLQUEUE_SHIFT 21 #define SCSI_LOG_HLCOMPLETE_SHIFT 24 #define SCSI_LOG_IOCTL_SHIFT 27 #define SCSI_LOG_ERROR_BITS 3 /* additional logging associated with errors and recovery */ #define SCSI_LOG_TIMEOUT_BITS 3 /* additional logging associated with command timeouts */ #define SCSI_LOG_SCAN_BITS 3 /* additional logging associated with device scans and discovery */ #define SCSI_LOG_MLQUEUE_BITS 3 /* additional logging associated with mid-level command queueing */ #define SCSI_LOG_MLCOMPLETE_BITS 3 /* additional logging associated with mid-level command completions */ #define SCSI_LOG_LLQUEUE_BITS 3 /* additional logging associated with low-level command queueing */ #define SCSI_LOG_LLCOMPLETE_BITS 3 /* additional logging associated with low-level command completions */ #define SCSI_LOG_HLQUEUE_BITS 3 /* additional logging associated with hi-level command queueing */ #define SCSI_LOG_HLCOMPLETE_BITS 3 /* additional logging associated with hi-level command completions */ #define SCSI_LOG_IOCTL_BITS 3 /* additional logging associated with ioctl (typ: non-data commands) */ extern unsigned int scsi_logging_level;
たとえば、ioctl とエラーに関連する最大ログを有効にするには、「sysctl -q -w dev.scsi.logging_level=0x38000007」を介して 7000000007 (0x38000007) の 8 進数値を設定します。 '。逆に、「sysctl -q dev.scsi.logging_level」を使用して現在の設定値を照会し、402653425 (0x180000F1 または 8 進数の 3000000361) が返された場合、現在、フィールド マスクには ioctl=3、scan=3、timeout=6、 error=1 の値が設定されています。