Linux没有在emc伪设备上正确获取新分区

前端之家收集整理的这篇文章主要介绍了Linux没有在emc伪设备上正确获取新分区前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个运行oracle rac的数据库服务器.我们最近在它所连接的主LUN上空间不足.我创建了一个新的100GB LUN并将其连接到现有LUN上,创建了一个新的MetaLUN.经过一番混乱后,我设法让 linux识别出新的空间.然后我在伪设备上创建了一个新分区,以使用新空间.以前,当我在其他系统上完成此操作时,下一步是在新分区上创建ASM磁盘并将此磁盘添加到oracle磁盘组.然而,这失败了.我知道ASM和powerpath存在各种问题,但我认为这不是问题所在.在调查问题的同时,我发现其中一个底层逻辑设备没有反映出尺寸的变化.见下文;

Powermt显示所有基础逻辑单元

  1. [root@XXXXX~]# powermt display dev=emcpowerd
  2. Pseudo name=emcpowerd
  3. CLARiiON ID=CKM00091500009 [VFRAC2]
  4. Logical device ID=6006016030312200787502866C65DE11 [LUN 30]
  5. state=alive; policy=CLAROpt; priority=0; queued-IOs=0
  6.  
  7. Owner: default=SP A,current=SP A Array failover mode: 1
  8. `==============================================================================`
  9. ---------------- Host --------------- - Stor - -- I/O Path - -- Stats ---
  10. `### HW Path I/O Paths Interf. Mode State Q-IOs Errors`
  11. `==============================================================================`
  12. 3 qla2xxx sde SP A0 active alive 0 0
  13. 3 qla2xxx sdj SP B0 active alive 0 0
  14. 4 qla2xxx sdo SP A1 active alive 0 0
  15. 4 qla2xxx sdt SP B1 active alive 0 0
  16.  
  17. **Fdisk on the pseudo device shows correct space.**
  18.  
  19. [root@XXXXX ~]# fdisk -l /dev/emcpowerd
  20.  
  21. Disk /dev/emcpowerd: 429.4 GB,429496729600 bytes
  22. 255 heads,63 sectors/track,52216 cylinders
  23. Units = cylinders of 16065 * 512 = 8225280 bytes
  24.  
  25. Device Boot Start End Blocks Id System
  26. /dev/emcpowerd1 1 39162 314568733+ 83 Linux
  27. /dev/emcpowerd2 39163 52216 104856255 83 Linux
  28.  
  29. **fdisk on one of the logical units is wrong**
  30.  
  31. [root@XXXXX~]# fdisk -l /dev/sde
  32.  
  33. Disk /dev/sde: 322.1 GB,322122547200 bytes
  34. 255 heads,39162 cylinders
  35. Units = cylinders of 16065 * 512 = 8225280 bytes
  36.  
  37. Device Boot Start End Blocks Id System
  38. /dev/sde1 1 39162 314568733+ 83 Linux
  39. /dev/sde2 39163 52216 104856255 83 Linux
  40.  
  41. **fdisk on the rest of the units is fine**
  42.  
  43. [root@XXXXX ~]# fdisk -l /dev/sdj
  44. Disk /dev/sdj: 429.4 GB,52216 cylinders
  45. Units = cylinders of 16065 * 512 = 8225280 bytes
  46. Device Boot Start End Blocks Id System
  47. /dev/sdj1 1 39162 314568733+ 83 Linux
  48. /dev/sdj2 39163 52216 104856255 83 Linux

此外,当我创建分区时,linux没有在/ dev目录中为第二个分区创建任何条目,因此我手动创建了这些条目

  1. [root@XXXXX dev]# mknod sde2 b 8 66
  2. [root@XXXXX dev]# ls -al sd[ejot]?
  3. brw-r----- 1 root disk 8,65 Dec 29 14:20 sde1
  4. brw-r--r-- 1 root disk 8,66 Apr 8 20:31 sde2
  5. brw-r----- 1 root disk 8,145 Dec 29 14:19 sdj1
  6. brw-r--r-- 1 root disk 8,146 Apr 8 20:33 sdj2
  7. brw-r----- 1 root disk 8,225 Apr 6 23:12 sdo1
  8. brw-r--r-- 1 root disk 8,226 Apr 8 20:33 sdo2
  9. brw-r----- 1 root disk 65,49 Dec 29 14:19 sdt1
  10. brw-r--r-- 1 root disk 65,50 Apr 8 20:33 sdt2

这是一个我们无法轻松重启的生产服务器.

任何想法将不胜感激.

Ĵ

解决方法

除了partprobe之外,请尝试使用blockdev实用程序重新读取设备的分区表:
  1. blockdev --rereadpt /dev/sde

然后,问题可能是LUN本身未正确更新.

您可以尝试通过/ sys文件系统对光纤通道或SCSI主机发出重新扫描命令.

前段时间,我编写了这个scsi_rescan_bus.sh脚本来处理我们的EMC Clariion设备:

  1. #!/bin/sh
  2. host_number="$1"
  3. echo "1" > /sys/class/fc_host/host${host_number}/issue_lip
  4. sleep 10
  5. 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

猜你在找的Linux相关文章