我们有一个运行oracle rac的数据库服务器.我们最近在它所连接的主LUN上空间不足.我创建了一个新的100GB LUN并将其连接到现有LUN上,创建了一个新的MetaLUN.经过一番混乱后,我设法让
linux识别出新的空间.然后我在伪设备上创建了一个新分区,以使用新空间.以前,当我在其他系统上完成此操作时,下一步是在新分区上创建ASM磁盘并将此磁盘添加到oracle磁盘组.然而,这失败了.我知道ASM和powerpath存在各种问题,但我认为这不是问题所在.在调查问题的同时,我发现其中一个底层逻辑设备没有反映出尺寸的变化.见下文;
Powermt显示所有基础逻辑单元
[root@XXXXX~]# powermt display dev=emcpowerd Pseudo name=emcpowerd CLARiiON ID=CKM00091500009 [VFRAC2] Logical device ID=6006016030312200787502866C65DE11 [LUN 30] state=alive; policy=CLAROpt; priority=0; queued-IOs=0 Owner: default=SP A,current=SP A Array failover mode: 1 `==============================================================================` ---------------- Host --------------- - Stor - -- I/O Path - -- Stats --- `### HW Path I/O Paths Interf. Mode State Q-IOs Errors` `==============================================================================` 3 qla2xxx sde SP A0 active alive 0 0 3 qla2xxx sdj SP B0 active alive 0 0 4 qla2xxx sdo SP A1 active alive 0 0 4 qla2xxx sdt SP B1 active alive 0 0 **Fdisk on the pseudo device shows correct space.** [root@XXXXX ~]# fdisk -l /dev/emcpowerd Disk /dev/emcpowerd: 429.4 GB,429496729600 bytes 255 heads,63 sectors/track,52216 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/emcpowerd1 1 39162 314568733+ 83 Linux /dev/emcpowerd2 39163 52216 104856255 83 Linux **fdisk on one of the logical units is wrong** [root@XXXXX~]# fdisk -l /dev/sde Disk /dev/sde: 322.1 GB,322122547200 bytes 255 heads,39162 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sde1 1 39162 314568733+ 83 Linux /dev/sde2 39163 52216 104856255 83 Linux **fdisk on the rest of the units is fine** [root@XXXXX ~]# fdisk -l /dev/sdj Disk /dev/sdj: 429.4 GB,52216 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdj1 1 39162 314568733+ 83 Linux /dev/sdj2 39163 52216 104856255 83 Linux
此外,当我创建分区时,linux没有在/ dev目录中为第二个分区创建任何条目,因此我手动创建了这些条目
[root@XXXXX dev]# mknod sde2 b 8 66 [root@XXXXX dev]# ls -al sd[ejot]? brw-r----- 1 root disk 8,65 Dec 29 14:20 sde1 brw-r--r-- 1 root disk 8,66 Apr 8 20:31 sde2 brw-r----- 1 root disk 8,145 Dec 29 14:19 sdj1 brw-r--r-- 1 root disk 8,146 Apr 8 20:33 sdj2 brw-r----- 1 root disk 8,225 Apr 6 23:12 sdo1 brw-r--r-- 1 root disk 8,226 Apr 8 20:33 sdo2 brw-r----- 1 root disk 65,49 Dec 29 14:19 sdt1 brw-r--r-- 1 root disk 65,50 Apr 8 20:33 sdt2
这是一个我们无法轻松重启的生产服务器.
任何想法将不胜感激.
Ĵ
解决方法
除了partprobe之外,请尝试使用blockdev实用程序重新读取设备的分区表:
blockdev --rereadpt /dev/sde
然后,问题可能是LUN本身未正确更新.
您可以尝试通过/ sys文件系统对光纤通道或SCSI主机发出重新扫描命令.
前段时间,我编写了这个scsi_rescan_bus.sh脚本来处理我们的EMC Clariion设备:
#!/bin/sh host_number="$1" echo "1" > /sys/class/fc_host/host${host_number}/issue_lip sleep 10 echo "- - -" > /sys/class/scsi_host/host${host_number}/scan
我不完全确定它仍然适用于现代内核和设备.在生产中尝试之前,请始终在专用测试环境中对此进行测试!
有很多陷阱,所以请务必阅读以下相关主题:
http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1454807
官方Red Hat文档(“在线存储重新配置指南”):
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Online_Storage_Reconfiguration_Guide/index.html