Linux中SCSI日志详解 (linux scsi log)

在Linux系统中,SCSI(Small Computer System Interface,小型计算机系统接口)是一种标准的接口,用于连接磁盘驱动器、磁带驱动器、扫描仪、CD-ROM等外部设备。当使用SCSI设备时,当然需要了解SCSI日志(SCSI Log),本文将对此进行详解。

一、SCSI日志是什么

SCSI日志是一种能够跟踪、记录SCSI设备活动的机制,它允许系统管理员监视、诊断SCSI设备的性能和错误,帮助了解SCSI设备在系统中的运行状态。

SCSI日志有如下两种:

1. Command Status SCSI Log Page(命令状态SCSI日志页)

命令状态SCSI日志页记录了执行SCSI命令的状态,包括已经执行和尚未执行的命令,以及它们的执行结果。这种SCSI日志对于故障排除和性能调整很有用。

2. Error Information SCSI Log Page(错误信息SCSI日志页)

错误信息SCSI日志页记录了SCSI设备的错误信息,包括错误代码、错误描述和事件类别。这种SCSI日志对于故障排除至关重要。

二、SCSI日志的配置

在Linux系统中,SCSI日志的配置通常是通过 SCSI Logging 页面来完成的。可以使用 sg_logs 命令来查看SCSI日志页。

首先要确定SCSI设备的编号(例如,/dev/sda),然后执行以下命令:

# sg_logs -p 0x3 /dev/sda

这样就会显示命令状态SCSI日志页。如果想要显示错误信息SCSI日志页,执行以下命令:

# sg_logs -p 0x1 /dev/sda

可以通过修改 /etc/modprobe.conf 文件来配置SCSI日志。例如,要开启SCSI日志,可以添加如下配置:

options scsi_mod scsi_logging_level=1

三、SCSI日志的应用

SCSI日志可以应用于以下方面:

1. 错误排查

当SCSI设备出现问题时,可以使用SCSI日志来诊断问题所在。错误日志会包含相关错误的信息,例如驱动器错误、读写错误等。

2. 性能调优

当系统中的SCSI设备的性能较差时,可以使用命令状态SCSI日志页来确定瓶颈。例如,可以使用 sg_monitor 命令来查看相同的SCSI设备上的IO操作的执行情况。

3. 监控

如果想要监控SCSI设备的性能和状态,可以在CRON中定期运行 sg_logs 命令,并将结果写入日志文件中。将来可以分析这些日志文件以进行容量规划和预测。

四、SCSI日志的局限性

SCSI日志不是银弹。它有以下几个局限性:

1. 不支持所有设备

不是所有的SCSI设备都支持SCSI日志。如果SCSI设备不支持SCSI日志,就不能使用此功能。

2. 配置复杂

开启SCSI日志可能会增加系统的负载,提高IO延迟。此外,还需要花费一定的时间和精力来配置和监控SCSI日志。

3. 局限性较大

SCSI日志只能监视SCSI设备的活动。要了解系统的完整性能和状态,还需要其他监视工具和机制。

结论

SCSI日志是一种用于跟踪SCSI设备活动的机制,在错误排查、性能调优和监控方面有很大的作用。然而,它也有许多限制,包括不支持所有设备、配置复杂和局限性较大。在实际应用中,需要根据系统需求和场景,灵活选择是否使用SCSI日志功能。

相关问题拓展阅读:

linux系统这段时间每隔1,2小时重启,不知什么原因

有可能是下面的几种情况:1、Linux 服务器因 CPU 温度过高自动重启

服务器明宴不明原因重启查看系统日志和APACHE日志。

先看看会不会是硬件问题造成的重启,电源,cpu风扇,很多扮空自动重启的问题都是因为硬件造成的。

重启的信息可以通过

dmesg来看

系统的log一般都是记录在/var/log/messages里

至于apache的那个,还得看看激缺银LZ你手工启动是如何做的,然后才好判断为什么不能随开机自动启动。

建议。从log和硬件。环境。温度。查看。应该有事件记录吧。

  我刚安装时也遇到了这个问题,怕把自己原来的分区弄丢!不过,现在对Liunx分区有了

一些也解后就不怕了! Linux 的分区规定   1. 设备管理 在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等

IDE 或 SCSI 设备也不例外。  Linux 把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI

设备,则分配了一个由 sd 前缀组成的文件。  例如,之一个 IDE 设备,Linux 就定义为 hda;第二个 IDE 设备就定义为

hdb;下面以此类推。而 SCSI 设备就应该是 sda、sdb、sdc 等。  2. 分区数量

要进行分区就必须针对每一个硬件设备进行册前乱操作,这就有可能是一块IDE硬盘或是一块SCSI硬盘。  对于每一个硬盘(IDE 或

SCSI)设备,Linux 分配悔升了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。  例如,之一个 IDE

硬盘的之一个分区,在 Linux 下面映射的就是 hda1,第二个分州档区就称作是 hda2。对于 SCSI 硬盘则是 sda1、sdb1 等。

明白后,就可以根据提示进行了!

linux命令SCSI_ID

用fdisk -l

Device Boot Start End Blocks Id System

/dev/hda+ 83

IDE的会显示/dev/孝察hda.

SCSI的者物会首慎液显示/dev/sda.

echo “scsi add-single-device x y z u” > /proc/scsi/scsi

其中:

x是硬盘所在SCSI控制器号(一般机器就一个喊磨SCSI控制器,郑闭斗所以就是0);

y是硬盘所态蔽在SCSI通道的编号(一般单通道的就是0,多通道的要看是哪个通道了);

z是硬盘的SCSI ID号(可以通过具体插入的硬盘插槽来判断);

u是硬盘的lun号(默认情况都是0)

list scsi devices on Linux system: cat /悉梁proc/scsi/scsi

List partition table: fdisk -l

SCSI ID Number Linux Device (raw name)

0 /dev/sga

1 /dev/sgb

2 /悔敬dev/sgc

3 /dev/sgd

4 /dev/睁前运sge

5 /dev/sgf

6 /dev/sgg

7 /dev/sgh

linux磁盘重新挂载?

VMware虚拟机中,Linux系统下挂载、卸载新硬盘的方法

装载:

1、启动vm,选择vm->Settings,按向导旅册添加一块SCSI磁盘。进入Linux系统。

2、 fdisk -l 会看到有一块新的设置,如果你先前有一块硬盘(sda1, sda3…),新加的这块应该是(/dev/sdb)。 (如果添加的第二块硬盘是IDE硬盘,应该看到hdb,如果是姿改SCSI硬盘,看到的就是应该sdb)

# fdisk -l

Disk /dev/sda: 8589 MB,bytes

255 heads, 63 sectors/track, 1044 cylinders

Units = cylinders of* 512 =bytes

Device Boot StartEnd Blocks Id System

/dev/sda1 * Linux

/dev/sda+ 83 Linux

Disk /dev/sdb: 8589 MB,bytes

255 heads, 63 sectors/track, 1044 cylinders

Units = cylinders of* 512 =bytes

Disk /dev/sdb doesn’t contain a valid partition table

3、分区:

# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content won’t be recoverable.

The number of cylinders for this disk is set to 1044.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): m ##在这里按m ,就会输出帮助;

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition ##这是删除一个分区的动作;

l list known partition types ##:l是列出分区类型,以拆册宏供我们设置相应分区的类型;

m print this menu

n add a new partition ##添加一个分区;

o create a new empty DOS partition table

p print the partition table ##p列出分区表;

q quit without saving changes ##不保存退出;

s create a new empty Sun disklabel

t change a partition’s system id ##t 改变分区类型;

u change display/entry units

v verify the partition table

w write table to disk and exit ##把分区表写入硬盘并退出;

x extra functionality (experts only) ##扩展应用,专家功能;

Command (m for help): n

Command action

e extended ##扩展分区

p primary partition (1-4) ##选p建主分区

p

Partition number (1-4): 1

First cylinder (, default 1): ##注:这个就是分区的Start 值;这里更好直接按回车,如果你输入了一个非默认的数字,会造成空间浪费;

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (, default 17849): 8920

Using default value 500

##这个是定义分区大小的,+200M 就是大小为200M ;当然你也可以根据上面提示的单位cylinder的大小来算,然后来指定 End的数值,在fdisk –l命令中可以看到Units = cylinders of* 512 =bytes,这个就是单位cylinder的大小,我这里选的End的数值是8920,正好是总大小的一半,71G左右

##然后再来建一个主分区

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (, default 8921):8921

Using default value 8921

Last cylinder or +size or +sizeM or +sizeK (, default 17849):17849

Using default value 17849

##最后保存并退出,切记,一定要保存,不然不会生效的。

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

##使用fdisk –l命令来查看磁盘状况:

# fdisk -l

Disk /dev/sda: 8589 MB,bytes

255 heads, 63 sectors/track, 1044 cylinders

Units = cylinders of* 512 =bytes

Device Boot StartEnd Blocks Id System

/dev/sda1 * Linux

/dev/sda+ 83 Linux

Disk /dev/sdb: 8589 MB,bytes

255 heads, 63 sectors/track, 1044 cylinders

Units = cylinders of* 512 =bytes

Device Boot StartEnd Blocks Id System

/dev/sdb+ 83 Linux

/dev/sdb+ 83 Linux

##磁盘/dev/sdb已经被划分为2个分区,每个分区大小大概是71G左右。

##在挂载文件系统之前,需要将/dev/sdb1和/dev/sdb2重新用mkfs -t ext3 命令格式化一下,否则在挂载时会报错。

4、格式化分区:使用mkfs.ext3 /dev/sdb命令格式化磁盘 注:也可以使用mkfs -t ext3 /dev/sdb命令

# mkfs -t ext3 /dev/sdb1 ##指将该磁盘格式化成ext3文件系统

mke2fs 1.39 (29-May-2023)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

inodes,blocks

blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=

64 block groups

32768 blocks per group,fragments per group

16384 inodes per group

Superblock backups stored on blocks:

, 98304,,,,,,

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

补充:挂载

挂载文件系统,目前有两种方法:

一是通过 mount 来挂载,使用mount挂载系统,一旦系统重启之后就需要重新挂载。

二是通过/etc/fstab文件来开机自动挂载。

我把/dev/sdb1挂载到/test下

# mkdir /test ## 首先建立挂载的目录test

(或者# cd /

# mkdir test

)

# df –h ##挂载前的分区

FilesystemSize Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

.7G 5.8G 576M 92% /

/dev/sda 99M 12M 82M 13% /boot

tmpfs 233MM 0% /dev/shm

# mount /dev/sdb1 /test

# df –h ##挂载后的分区

FilesystemSize Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

.7G 5.8G 576M 92% /

/dev/sda 99M 12M 82M 13% /boot

tmpfs 233MM 0% /dev/shm

/dev/sdb7.9G 147M 7.4G 2% /test

6、通过/etc/fstab文件来开机自动挂载(不然重启电脑后系统将不会保存之前的挂载操作):

# vi /etc/fstab

/dev/VolGroup00/LogVol00 /ext3 defaults

LABEL=/boot/boot ext3 defaults

devpts /dev/pts devpts gid=5,mode=

tmpfs /dev/shm tmpfs defaults

proc /proc proc defaults

sysfs /sys sysfs defaults

/dev/VolGroup00/LogVol01 swap swap defaults

/dev/sdb/testextdefaults1 1

/dev/sdb/testextdefaults1 1

# Beginning of the block added by the VMware software

.host:/ /mnt/hgfs vmhgfs defaults,ttl=

# End of the block added by the VMware software

之一字段:设备名,在这里表示是文件系统; 有时我们把挂载文件系统也说成挂载分区;

第二字段:文件系统的挂载点;

第三字段:文件系统类型;

第四字段:mount 命令的选项,和mount 中的-o 同理;defaults包括这些选项 rw, suid, dev, exec, auto, nouser, async;

第五字段:表示文件系统是否需要dump 备份,1是需要,0 是不需要;

第六字段: 是否在系统启动时,通过fsck磁盘检测工具来检查文件系统,1是需要,0是不需要,2是跳过;

卸载:

# umount /dev/sdb1

# df -h

FilesystemSize Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

.7G 5.8G 576M 92% /

/dev/sda 99M 12M 82M 13% /boot

tmpfs 233MM 0% /dev/shm

补充知识:

1. mount可以用来挂载什么:

不同的操作系统使用不同的文件系统格式。MS-DOS支持FAT16文件系统,Windows98支持FAT16、FAT32文件系 统,WindowsNT支持FAT16、NTFS文件系统,Windows2023则支持FAT16、FAT32、NTFS三种文件系统格式,现在的xp 可以支持FAT32,NTFS,现在最新版本的windows 7 引入了新的WinFS文件系统。 而 Linux差不多支持所有的文件系统格式,但一般使用ext2或ext3文件系统。很多用户使用的是windows操作系统,如果想在运行的Linux下 访问其它文件系统中的资源的话,就要用Linux mount命令来实现。

2. mount使用格式:

mount命令

说明:

必须是一个已经存在的目录,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,umount以后会恢复正常。

可以是一个分区,一个u设备,光驱,软盘,网络共享等。

常见参数说明:

Mount 挂载文件系统使用帮助

参数 说明

挂载指定的设备类型:adfs, affs, autofs, coda, coherent, cramfs,

devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix,

msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs,

romfs, bfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs,

xiafs

一般文件类型,可以不需要指定就可以有相同自动检测(adfs, bfs,

cramfs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, ntfs,

qnx4, reiserfs, romfs, udf, ufs, vxfs, xfs, xiafs 等文件系统),如

果探测失败,就将访问/etc/filesystems ,以指定文件系统探测。说

明:如果清楚文件系统,更好指定具体类型。探测错误将带来灾难性

的。

多个文件系统可以用“,”分割开来.

-t vfstype mount -a -t nomsdos,ext

将挂载fstab文件指定所有的文件系统,除了类型为 msdos 和 ext 的

那一些。

linux 重新挂载需要先卸载再重新挂载,如果要一条命令可以通过&&符号将两个命令组合到一个命令里,例如:

umount -l /mnt/test && mount -o ro /dev/hda1  /mnt/test

linux中挂载命令是mount,卸载是umount,在命令行中使用&&可以将多条命令组合成一条命令并顺序执行,以达到快速执行的目的。

扩展资料

linux挂载命令mount的用法介岁源笑绍:

1、语法

mount device dir

2、参数说明:

-V:显示程序版本

-h:显示辅助讯息

-v:显示裂配较讯息,通常和 -f 用来除错。

-a:将 /etc/fstab 中定义的所有档案系统挂上。

-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。

-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。

-n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这乎含个选项取消这个动作。

1. 将 /usr 里的所有文件 完全 复制到 空分区中。历族注意软硬链接文件的问题。 可使用 cp -a 命令。 如果新分区够大,建议 采取压缩再释放的方法。cd /usr ; tar cvf (/新分区挂在目录/usr.tar) . ;cd /新分区挂在目录 ;tar xvf usr.tar -C .

2.安全起见,不要删除原来的 /usr 目录,建议改名,比如usr_ ,新建 /usr 文件夹

3.修改 /etc/fstab 文件,新建返敬 挂载规则,/usr 新分区 ……….(详细的可参考 fstab 的帮漏烂慎助文件)

还有一个偏门方法:

使用 aufs 或者 unionfs 绑定一个新的分区。这样新的文件就自动被转到新分区上建立。旧文件还在原来的分区上。

但玩这个需要一定的技术。如果楼主有闲心,可以试试。

我建议转换分区的时候。直旅铅接用 mv 把 /usr 的老文件转移到新的分区上。转移的时候可以先把新的 usr 分区挂载到一个临时的目录上,比如 /mnt/temp 。

注猜扰意这么操作之前先修改好 /etc/fstab 。穗镇旦之后到纯文本状态下(如果可以用 LiveCD )进行移动,之后立即重启。不然系统可能会找不到重要的文件而挂掉。

linux scsi log的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux scsi log,Linux中SCSI日志详解,linux系统这段时间每隔1,2小时重启,不知什么原因,linux命令SCSI_ID,linux磁盘重新挂载?的信息别忘了在本站进行查找喔。


数据运维技术 » Linux中SCSI日志详解 (linux scsi log)