Pregunta :¿Cómo activar los mensajes de depuración extendidos scsi? ¿Cuáles son las definiciones de campo/marca de scsi_logging_level?
Se pueden habilitar mensajes de registro scsi adicionales escribiendo a /proc/sys/dev/scsi/logging_level ya sea mediante el uso del echo o preferiblemente el sysctl dominio. El parámetro del kernel consta de diez campos empaquetados, cada uno de 3 bits de longitud. Cada campo puede tener un valor de 0 a 7. Cuanto mayor sea el valor del campo, más detallado será el registro de mensajes asociados con ese tipo de campo.
NOTA :Activar niveles altos de registro extendido y/o varios tipos de registro extendido puede ralentizar el rendimiento del sistema, especialmente durante el arranque y el apagado. A menos que sea necesario, evite activar el registro scsi durante el arranque.Tiempo de ejecución
1. Habilitar:
# sysctl -q -w dev.scsi.logging_level=[N]
o
# echo [N] > /proc/sys/dev/scsi/logging_level
Donde N especifica qué campos habilitar y en qué nivel de detalle.
2. Deshabilitar:
# sysctl -q -w dev.scsi.logging_level=0
o
# echo 0 > /proc/sys/dev/scsi/logging_level
Tiempo de arranque
Habilitar (CentOS/RHEL 5)
1. Modifique /etc/modprobe.conf con “opciones scsi_mod scsi_logging_level=N “.
2. Reconstruya el archivo de imagen initrd para recoger el nuevo /etc/modprobe.conf expediente.
CentOS/RHEL 5:Cómo reconstruir la imagen inicial de Ramdisk3. Edite el arranque línea en /boot/grub/grub.conf , elimine 'silencio ' si está presente, agregue 'debug ' o 'nivel de registro=10 ' (Ambos hacen la misma cosa). También agregue 'log_buf_len=8M ‘ para aumentar el tamaño fifo del registro del núcleo, ya que el registro adicional creará muchos más mensajes.
4. Reinicie y capture la salida de mensajes.
# shutdown -r now
Habilitar (CentOS/RHEL 6)
1. Edite el arranque línea en /boot/grub/grub.conf y agregue “scsi_logging_level=N “.
2. Edite el arranque línea y eliminar 'quit ' si está presente, agregue 'debug ' o 'nivel de registro=10 ' (Ambos hacen la misma cosa). También agregue 'log_buf_len=8M ‘ para aumentar el tamaño fifo del registro del núcleo, ya que el registro adicional creará muchos más mensajes.
3. Reinicie y capture la salida de mensajes:
# shutdown -r now
Habilitar (CentOS/RHEL 7 y 8)
1. Edite el "GRUB_CMDLINE_LINUX línea ” en /etc/default/grub y agregue “scsi_logging_level=N “.
2. Edite el "GRUB_CMDLINE_LINUX ” y elimine 'silencio ' si está presente, agregue 'debug ' o 'nivel de registro=10 '(Ambos hacen la misma cosa). También agregue 'log_buf_len=8M ‘ para aumentar el tamaño fifo del registro del núcleo, ya que el registro adicional creará muchos más mensajes.
3. Cambios en /etc/default/grub requiere la reconstrucción del archivo grub.cfg.
# grub2-mkconfig -o /boot/grub2/grub.cfg
4. Reinicie y capture la salida de mensajes.
# shutdown -r now
Lo que hacen los indicadores anteriores es aumentar el nivel de registro extendido de scsi para incluir mucha información sobre errores y tiempos de espera y durante el procesamiento de escaneo, además de cualquier io que complete la cola de alto nivel. Para crear manualmente un valor de máscara, consulte scsi_logging.h y elija los campos que desea habilitar.
/* * 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;
Para activar el registro máximo asociado con ioctls y errores, por ejemplo, se establecería un valor octal de 7000000007 (0x38000007) a través de 'sysctl -q -w dev.scsi.logging_level=0x38000007 '. Por el contrario, si se usó 'sysctl -q dev.scsi.logging_level' para consultar el valor establecido actual y se devolvió 402653425 (0x180000F1 u octal 3000000361), entonces actualmente las máscaras de campo tienen ioctl=3, scan=3, timeout=6, y error=1 valores establecidos.