未解决
此帖子已超过 5 年
2 Intern
•
1.2K 消息
1
2286
Linux系统SCSI磁盘管理全攻略(三)
Linux系统SCSI磁盘管理全攻略(三)
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese
介绍
本系列文章系统、全面地介绍了Linux 的SCSI设备管理机制和整套操作命令。包括以下六大主题:
-
- Linux SCSI子系统概述
- Linux主机LUN识别
- 动态SAN网络重配
- LUN发现步骤
- Linux设备命名
- SCSI磁盘限制
附:SCSI磁盘问题识别与解决方法
作为系列之三,本文主要回答Linux磁盘设备数量与major和minor的关系,以及SCSI磁盘问题识别与解决方法。
更多信息
Linux磁盘限制:定义磁盘设备数量
Linux内核使用静态的major和minor编号来进行SCSI寻址。major可看作设备驱动程序,同一设备驱动程序管理的设备由相同的major编号。而minor编号代表被访问的具体设备。内核为SCSI磁盘设备保留了一定数量的major编号。因此,SCSI磁盘设备的数量受到可用的major编号的限制。这些可用的major编号数量又随内核版本不同而有所区别。
对于Linux 2.4内核版本,Linux主机系统上最大可配置设备数是128、256或2304。保留8位bit位用作minor编号,因此对于每一个major有256个可用的minor编号。按照惯例,每块SCSI磁盘要保留16个minor,因此每块磁盘最多可有15个分区(另1个minor代表整块磁盘)。这样,通过16个minor编号来定义一块磁盘和它的分区,而最多可以有2^8=256个minor,则每个major编号可支持256÷16=16块SCSI磁盘。
比较旧的内核版本为SCSI磁盘设备保留8个major编号。分别是8,65,66,67,68,79,70和71。REHL2.1和REHL3中,就是使用以上保留的major。有了这8个保留的major,和每个major有的16个minor编号,内核一共可支持8×16=128个磁盘设备。早期的SuSE SLES8内核由于保留16个major,共可以支持256个磁盘设备。额外的major编号是128, 129, 130, 131, 132, 133, 134, 135。
新的内核版本使用动态配置的方法,在头16个保留major编号用完之后,会使用任何可用的major编号。因此这些内核可支持2304个磁盘设备。
通常,可使用以下公式来计算Linux主机系统可支持的最大设备数:
最大磁盘数=major编号数×minor编号数÷分区数
例如:磁盘数=8×256÷16=128或 磁盘数=144×256÷16=2304
对于Linux2.6内核版本major数增长至12比特位而minor增长至20比特位,因此Linux 2.6内核支持上千块磁盘,每块磁盘最多15个分区的限制没有改变。由于major并不仅仅用于磁盘(/proc/devices),所以不能以2^12个major来计算磁盘个数。一个major可用的minor数就达到2^20=65536,而每个SCSI磁盘16个minor的限制仍然不变,每个major可支持2^20÷16=4096个。
其他限制磁盘数量的因素
如果主机适配器驱动作为模块加载在Linux系统中,则内核对可配置磁盘总数有一定的限制。有可能小于内核支持的最大值(通常128或256)。系统加载的第一个模块发现磁盘数可配置为内核支持的最大磁盘数,之后的驱动则达不到这个值。所有这些驱动共享一个pool中的设备结构,这些设备结构是在第一个主机适配器驱动加载后静态分配的。
SCSI磁盘问题识别与解决方法:
-
- SAN发生故障之后,内核可能永久禁用LUN并对磁盘设备记录一条消息:“device set offline”。如果这发生在2.4内核版本,则无法将LUN重新设为online,除非卸载底层设备驱动并重新加载,或重启系统。
-
- 在2.6内核版本上,设备可通过以下方法之一重新设置为online:
Redhat: echo "running" >/sys/class/scsi_host/hostH/device/targetH:C:T/H:C:T:L/state
SLES: echo "1" > /sys/class/scsi_host/hostH/device/H:C:T:L /online
-
- 系统ps命令可能周期性显示进程处于D-state,表示不可中断的状态,这是由于进程一直在内核中等待。在错误的情形下,进程可能永久停留在这个状态,需要系统重启才能回复。
参考
Linux系统SCSI磁盘扫描机制解析及命令实例
应用于
Linux操作系统
Chao_Ma
2 Intern
2 Intern
•
146 消息
0
2013年12月26日 02:00
”在2.6内核版本上,设备可通过以下方法之一重新设置为online。“能举个故障的例子吗?
Zhang_Jiawen
2 Intern
2 Intern
•
1.2K 消息
0
2013年12月26日 17:00
SAN发生故障之后,内核可能永久禁用LUN并对磁盘设备记录一条消息:“device set offline”。