我们有一个运行oracle rac的数据库服务器。 最近我们在连接的主LUN上空间不足。 我创build了一个新的100GB LUN,并将其连接到现有LUN上,创build一个新的MetaLUN。 经过一番弄乱后,我设法让Linux认识到新的空间。 然后,我在伪设备上创build了一个新的分区,使用新的空间。 以前,当我在其他系统上完成此操作时,下一步是在新分区上创build一个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, 63 sectors/track, 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, 429496729600 bytes 255 heads, 63 sectors/track, 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
另外,当我创build的分区linux没有创build/ dev目录中的任何条目为第二个分区,所以我手动创build这些
[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
我不完全相信,它仍然可以与现代内核和设备一起工作。 总是在专门的testing环境中进行testing,然后在生产环境中进行testing
有很多陷阱,所以请确保你阅读这些相关的线程:
http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1454807
正式的红帽文档(“在线存储重新configuration指南”): http : //docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Online_Storage_Reconfiguration_Guide/index.html
尝试运行/sbin/partprobe /dev/emcpowerd
partprobe告诉您的内核重新扫描分区
我一直在与EMC进行调查,似乎没有办法解决这个问题,没有重新启动。 然而,作为一个工作,我创造了一个全新的伦,并有dynamic的拿起,并能够得到甲骨文认识到这一点。 Ĵ