Otázka :Jak zapnout scsi rozšířené ladicí zprávy? Jaké jsou definice pole/příznaku scsi_logging_level?
Další protokolovací zprávy scsi lze povolit zápisem na adresu /proc/sys/dev/scsi/logging_level buď pomocí echo nebo nejlépe sysctl příkaz. Parametr jádra se skládá z deseti zabalených polí, každé o délce 3 bitů. Každé pole může mít hodnotu 0 až 7. Čím vyšší je hodnota pole, tím podrobnější bude protokolování zpráv souvisejících s daným typem pole.
POZNÁMKA :Zapnutí vysoké úrovně rozšířeného protokolování a/nebo více typů rozšířeného protokolování může zpomalit výkon systému, zejména během spouštění a vypínání. Pokud to není nutné, nezapínejte protokolování scsi během spouštění.Doba běhu
1. Aktivujte:
# sysctl -q -w dev.scsi.logging_level=[N]
nebo
# echo [N] > /proc/sys/dev/scsi/logging_level
Kde N určuje, která pole mají být povolena a na jaké úrovni výřečnosti.
2. Zakázat:
# sysctl -q -w dev.scsi.logging_level=0
nebo
# echo 0 > /proc/sys/dev/scsi/logging_level
Doba spouštění
Povolit (CentOS/RHEL 5)
1. Upravte /etc/modprobe.conf s „možnostmi scsi_mod scsi_logging_level=N “.
2. Znovu sestavte soubor s obrázkem initrd, abyste získali nový /etc/modprobe.conf soubor.
CentOS / RHEL 5 :Jak znovu vytvořit počáteční obraz Ramdisku3. Upravte boot řádku v /boot/grub/grub.conf , odstraňte „tichý ‘ pokud existuje, přidejte buď ‘ladit ‘ nebo ‘loglevel=10 “ (oba dělají totéž). Přidejte také ‘log_buf_len=8M ‘ ke zvětšení velikosti logu fifo jádra, protože dodatečné protokolování bude vytvářet mnohem více zpráv.
4. Restartujte a zachyťte výstup zpráv.
# shutdown -r now
Povolit (CentOS/RHEL 6)
1. Upravte boot řádku v /boot/grub/grub.conf a přidejte „scsi_logging_level=N “.
2. Upravte boot řádek a odstraňte „tichý ‘ pokud existuje, přidejte buď ‘ladit ‘ nebo ‘loglevel=10 “ (oba dělají totéž). Přidejte také ‘log_buf_len=8M ‘ ke zvětšení velikosti logu fifo jádra, protože dodatečné protokolování bude vytvářet mnohem více zpráv.
3. Restartujte a zachyťte výstup zpráv:
# shutdown -r now
Povolit (CentOS/RHEL 7 a 8)
1. Upravte „GRUB_CMDLINE_LINUX ” v /etc/default/grub a přidejte „scsi_logging_level=N “.
2. Upravte „GRUB_CMDLINE_LINUX “ a odstraňte „tichý ‘ pokud existuje, přidejte buď ‘ladit ‘ nebo ‘loglevel=10 “ (oba dělají totéž). Přidejte také ‘log_buf_len=8M ‘ ke zvýšení velikosti logu fifo jádra, protože dodatečné protokolování bude vytvářet mnohem více zpráv.
3. Změní se na /etc/default/grub vyžaduje opětovné sestavení souboru grub.cfg.
# grub2-mkconfig -o /boot/grub2/grub.cfg
4. Restartujte a zachyťte výstup zpráv.
# shutdown -r now
Výše uvedené příznaky zvyšují úroveň rozšířeného protokolování scsi tak, aby zahrnovala spoustu informací o chybách a vypršeních času a během zpracování skenování a také o dokončení fronty na vysoké úrovni. Chcete-li ručně vytvořit hodnotu masky, přejděte na stránku scsi_logging.ha vyberte, která pole chcete povolit.
/* * 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;
Chcete-li například zapnout maximální protokolování spojené s ioctls a chybami, nastaví se osmičková hodnota 7000000007 (0x38000007) pomocí „sysctl -q -w dev.scsi.logging_level=0x38000007 ‘. Naopak, pokud bylo k dotazu na aktuální nastavenou hodnotu použito 'sysctl -q dev.scsi.logging_level' a bylo vráceno 402653425 (0x180000F1 nebo osmičková 3000000361), pak mají aktuálně masky polí ioctl=3, scan=3, timeout=6, a nastaveny hodnoty error=1.