UDN-企业互联网技术人气社区

板块导航

浏览  : 1779
回复  : 0

[运维] Linux系统SCSI磁盘管理全攻略(三)

[复制链接]
呵呵燕的头像 楼主
发表于 2016-11-12 10:22:13 | 显示全部楼层 |阅读模式
  本系列文章系统、全面地介绍了Linux 的SCSI设备管理机制和整套操作命令。包括以下六大主题:

  Linux SCSI子系统概述

  Linux主机LUN识别

  动态SAN网络重配

  LUN发现步骤

  Linux设备命名

  SCSI磁盘限制

  附:SCSI磁盘问题识别与解决方法

  系列文章第一篇看这里:

  Linux系统SCSI磁盘管理全攻略(一)

  Linux系统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,表示不可中断的状态,这是由于进程一直在内核中等待。在错误的情形下,进程可能永久停留在这个状态,需要系统重启才能回复。

原文作者:佚名  来源:开发者头条

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部