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

板块导航

浏览  : 1672
回复  : 0

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

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

  包括以下六大主题:

  Linux SCSI子系统概述

  Linux主机LUN识别

  动态SAN网络重配

  LUN发现步骤

  Linux设备命名

  SCSI磁盘限制

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

  系列文章第一篇看这里:

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

  作为系列之二,本文主要介绍LUN发现步骤和Linux设备命名两大主题,解答用户常见问题乳:Linux驱动除了LUN 0以外,没有自动配置其他LUN怎么办?Linux磁盘的命名规则是什么?

  LUN发现步骤:

  如果用户的Linux驱动除了LUN 0以外,没有自动配置其他LUN,用户可以根据SCSI中间层驱动使用的参数和设置来手动配置。以下示例显示了Linux主机/proc/scsi/scsi文件中,各适配器端口仅配置了第一个LUN,即LUN 0的情况。

  # cat proc/scsi/scsi

  ...

  Host: scsi0 Channel: 00 Id: 00 Lun: 00

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  Host: scsi0 Channel: 00 Id: 15 Lun: 00

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  Host: scsi2 Channel: 00 Id: 00 Lun: 00

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  Host: scsi3 Channel: 00 Id: 00 Lun: 00

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  Host: scsi3 Channel: 00 Id: 01 Lun: 00

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  解决这一问题有两种方式:

  创建脚本在/proc/scsi/scsi文件中手动添加磁盘设备

  通过修改initrd设置系统启动时自动发现LUN

  创建脚本echo /proc文件系统

  使用scsi add-single-device命令连续配置分配给主机的所有LUN。写一个脚本为各主机适配器重复scsi add-single-device命令,从而给每一个LUN配置ID。该脚本必须扫描所有主机适配器端口并识别分配给各端口的所有LUN。

  脚本运行结束之后,用户可以在/proc/scsi/scsi文件中查看分配的所有LUN。

  以下示例列出脚本配置所有LUN之后的/proc/scsi/scsi文件。

  # cat proc/scsi/scsi

  ...

  Host: scsi3 Channel: 00 Id: 01 Lun: 00

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  Host: scsi3 Channel: 00 Id: 00 Lun: 01

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  Host: scsi3 Channel: 00 Id: 00 Lun: 02

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  Host: scsi3 Channel: 00 Id: 00 Lun: 03

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  Host: scsi3 Channel: 00 Id: 00 Lun: 04

  Vendor: EMC Model: SYMMETRIX Rev: 5773

  Type: Direct-Access ANSI SCSI revision: 04

  ...

  在系统启动时自动发现LUN

  第二种方法是通过设置SCSI中间层驱动的参数来完成,此参数控制在SCSI总线扫描过程中扫描LUN的数量。以下步骤同时适用于2.4和2.6内核版本,但假定SCSI中间层驱动编译为scsi_mod模块,并在系统启动时自动加载。对于Linux 2.4内核版本,为了发现所有卷,通常在系统中设置为磁盘设备的最大数量,用户需要设置SCSI中间层驱动的max_scsi_luns参数。例如,如果max_scsi_luns设置为1则SCSI总线只扫描到LUN 0。此参数应当设置为内核能够支持的最大磁盘数量,例如,128或256。在Linux 2.6内核中,可使用同样的步骤,除了参数名从max_scsi_lun更改为max_lun。

  编辑/etc/modules.conf文件

  添加以下内容:

  options scsi_mod max_scsi_luns=(n表示探测的LUN总数)

  保存文件

  运行mkinitrd命令重新编译当前内核相应的ram-disk。以下命令示例中,为当前运行内核版本,可参见”uname -r”命令的输出,例如:2.4.21-292-smp。

  SUSE中命令如下:

  cd /boot

  mkinitrd –k vmlinuz- -i initrd-

  Red Hat中命令如下:

  cd /boot

  mkinitrd –v initrd-.img

  重启主机

  验证 /boot/grub/menu.lst文件中,已正确配置了新创建的initrd镜像。

  Linux设备命名:

  内核驱动可使用特定的设备文件来控制磁盘设备。映射到同一物理磁盘设备的设备文件可能不止一个。例如,在多路径环境下某一设备配置四条路径,则会有四个不同的设备文件映射到同一设备。

  设备文件位于/dev目录下,通过major和minor编号访问。光纤通道连接的设备通过sd驱动作为SCSI磁盘设备管理。因此,每一个LUN在/dev目录下有一个对应的设备文件。

  SCSI磁盘设备有一个以“sd”为前缀的特定设备文件,具有如下命名格式:

  /dev/sd[a-z][1-15]

  名称中不带数字表示整个磁盘,而名称中有数字则表示磁盘的一个分区。依据惯例,一个SCSI磁盘设备最多可以有16个minor编号。因此,对于一整块磁盘,每块磁盘最多有15个分区,使用一个minor编号来标示整块磁盘(例如/dev/sda),其他15个minor编号用来标示该磁盘的分区(例如/dev/sda1,/dev/sda2,等等)。以下示例显示整块磁盘/dev/sda的设备文件,该设备major编号为8,minor编号为0,有15个分区。

  # ls -l /dev/sda*

  brw-rw---- 1 root disk 8, 0 May 24 08:09 /dev/sda

  brw-rw---- 1 root disk 8, 1 May 24 08:09 /dev/sda1

  brw-rw---- 1 root disk 8, 10 May 24 08:09 /dev/sda10

  brw-rw---- 1 root disk 8, 11 May 24 08:09 /dev/sda11

  brw-rw---- 1 root disk 8, 12 May 24 08:09 /dev/sda12

  brw-rw---- 1 root disk 8, 13 May 24 08:09 /dev/sda13

  brw-rw---- 1 root disk 8, 14 May 24 08:09 /dev/sda14

  brw-rw---- 1 root disk 8, 15 May 24 08:09 /dev/sda15

  brw-rw---- 1 root disk 8, 2 May 24 08:09 /dev/sda2

  brw-rw---- 1 root disk 8, 3 May 24 08:09 /dev/sda3

  brw-rw---- 1 root disk 8, 4 May 24 08:09 /dev/sda4

  brw-rw---- 1 root disk 8, 5 May 24 08:09 /dev/sda5

  brw-rw---- 1 root disk 8, 6 May 24 08:09 /dev/sda6

  brw-rw---- 1 root disk 8, 7 May 24 08:09 /dev/sda7

  brw-rw---- 1 root disk 8, 8 May 24 08:09 /dev/sda8

  brw-rw---- 1 root disk 8, 9 May 24 08:09 /dev/sda9

  对于Red Hat版本,内核实际上为128个设备创建了设备文件。对于SUSE,只有前16块磁盘有设备文件。用户必须使用mknod命令为其他磁盘创建设备文件。在2.6内核版本中,只有在内核发现并识别出设备时才能创建设备文件。/proc/partitions文件列出所有SCSI磁盘驱动识别出的“sd”设备,包括sd名,major编号,minor编号,以及各磁盘设备的大小。

  以下示例列出/proc/partitions文件的内容:

  # cat /proc/partitions

  major minor #blocks name

  8 0 17774160 sda

  8 1 1052226 sda1

  8 2 208845 sda2

  8 3 10490445 sda3

  8 16 976576 sdb

  8 32 976576 sdc

  8 48 976576 sdd

  8 64 976576 sde

  8 80 976576 sdf

  8 96 976576 sdg

  8 112 976576 sdh

  8 128 976576 sdi

  8 144 976576 sdj

  8 160 976576 sdk

  8 176 976576 sdl

  8 192 976576 sdm

  8 208 976576 sdn

  8 224 976576 sdo

  8 240 976576 sdp

  65 0 976576 sdq

  65 16 1048576 sdr

  65 32 1048576 sds

  65 48 1048576 sdt

  65 64 1048576 sdu

  65 80 1048576 sdv

  65 96 1048576 sdw

  65 112 1048576 sdx

  65 128 1048576 sdy

  65 144 1048576 sdz

  65 160 1048576 sdaa

  65 176 1048576 sdab

  65 192 1048576 sdac

  65 208 1048576 sdad

  65 224 1048576 sdae

  65 240 1048576 sdaf

  66 0 1048576 sdag

  66 16 1048576 sdah

  66 32 1048576 sdai

  66 48 1048576 sdaj

  66 64 1048576 sdak

  66 80 1048576 sdal

  66 96 1048576 sdam

  66 112 1048576 sdan

  66 128 1048576 sdao

  66 144 1048576 sdap

  66 160 1048576 sdaq

  66 176 1048576 sdar

  66 192 1048576 sdas

  66 208 1048576 sdat

  66 224 1048576 sdau

  66 240 1048576 sdav

原文作者:EMC中文技术社区 来源:开发者头条

相关帖子

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

本版积分规则

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