环境介绍:

存储:华为S5500T    服务器:华为RH5885 V2    操作系统:linux redhat6.4 64bit  

问题描述:

在服务器安装好操作系统后,默认情况下本地磁盘是以sda开始。在划分为好相应的lun并映射到相应的服务器上时,本地磁盘与映射过来的lun顺序发生了变化。例如在盘阵上划分3个lun给相应的服务器,映射到服务器后盘符也是以sd*开头且以盘阵的盘符为主(华为存储工程师这样解释的),本地磁盘直接就排到后面去了。

映射前磁盘

[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000add9

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          66      524288   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              66         458     3145728   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             458        2611    17300480   83  Linux

映射后磁盘
[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000add9

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          66      524288   83  Linux

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000add9

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1          66      524288   83  Linux

Disk /dev/sdc: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000add9

   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1   *           1          66      524288   83  Linux

Disk /dev/sdz: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000add9

   Device Boot      Start         End      Blocks   Id  System

/dev/sdz1   *           1          66      524288   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdz2              66         458     3145728   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sdz3             458        2611    17300480   83  Linux

这样会导致什么问题呢?接着后面部署应用程序需要挂载映射磁盘,类似于下面的操作

mount /dev/sda1 /data/a

mount /dev/sdb1 /data/b
mount /dev/sdc1 /data/c

到目前为止,程序都是能正常运行的。突然放服务器的地方关电了,后面却又来电了。现在的这情况是这样的,华为的RH5885 V2这款服务器自动启动了,盘阵并没有启时,这时相关人员去启动盘阵,一段时间过后服务器上的应用程序使用不了。

导致上面问题出现的原因是有几点:

第一点:正常情况下应先启动盘阵再启动服务器。当服务器先启动时,可以把服务器正常关机,然后启动盘阵再启动服务器,这样应用能正常使用。

说明:这里为什么说正常关机,当时操作人员是直接按的服务器前关机按钮,然后启动盘阵再启动服务器。结果服务器进入不了系统,因为grub.conf文件的丢失了(这种不是经常发生,结果运气好让咱给遇上了,后面接着修复完grub.conf,正常进入系统)

第二点:当使用了盘阵的情况下,可以关闭服务器的加电自启动功能,华为的这款RH5885 V2服务器,在管理端口上才能关闭这个功能。后面先启动盘阵再启动服务器,这样应用能正常使用。

第三点:多路径映射时是不是能设置映射的盘符,例如映射过来的盘符不要以sd*开头(华为工程师当时给的答复不能改,宏杉的盘阵映射后就不是以sd开头,所以个人认为是可以改的),后面与华为工程师沟通,通获取映射盘符的UUID,在/etc/fstab中绑定方式来处理:

1、获取映射盘符的UUID与文件系统格式的方式

这里映射盘符为sda1、sdb1、sdc1,本地磁盘为sdz

blkid /dev/sda1

8e8265ce-f9cc-46e0-a952-14fa7a36862c
blkid /dev/sdb1
8e8265ce-f9cc-46e0-a952-14fa7a36863c
blkid /dev/sdc1
8e8265ce-f9cc-46e0-a952-14fa7a3686dc

2、在/etc/fstab文件中添加映射磁盘的挂载

这样即服务器先启动,盘阵后启动挂载映射磁盘的顺序也不会乱,因为sda已经空出来了。

UUID=8e8265ce-f9cc-46e0-a952-14fa7a36862c /dev/sdb1               ext4    defaults        0 0

UUID=8e8265ce-f9cc-46e0-a952-14fa7a36863c /dev/sdc1               ext4    defaults        0 0
UUID=8e8265ce-f9cc-46e0-a952-14fa7a3686dc /dev/sdd1               ext4    defaults        0 0

3、后面部署应用程序挂载映射磁盘到目录

mount /dev/sdb1 /data/a

mount /dev/sdc1 /data/b
mount /dev/sdd1 /data/c

4、也可以直接在fstab文件中添加挂载映射磁盘到目录(未测试)

UUID=8e8265ce-f9cc-46e0-a952-14fa7a36862c /data/a               ext4    defaults        0 0

UUID=8e8265ce-f9cc-46e0-a952-14fa7a36863c /data/b               ext4    defaults        0 0
UUID=8e8265ce-f9cc-46e0-a952-14fa7a3686dc /data/c               ext4    defaults        0 0