GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL で追加の SCSI ログを有効にする方法

質問 :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/grubscsi_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 の値が設定されています。


Cent OS
  1. CentOS / RHEL 7 で IPv6 を有効にする方法

  2. CentOS / RHEL 5 で IPv6 を有効にする方法

  3. CentOS/RHEL 5、6、7 で X11 転送を有効にする方法

  1. CentOS/RHEL で CUPS デバッグを有効にする方法

  2. CentOS/RHEL に言語サポートを追加する方法

  3. CentOS/RHEL 8 で IPv6 を有効にする方法

  1. Centos /RHEL8でスワップパーティションを作成して有効にする方法

  2. CentOS / RHEL 7 :Firewalld を起動 / 停止または有効 / 無効にする方法

  3. CentOS/RHEL 8 で firewalld ロギングを構成する方法