环境介绍:
存储:华为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