web-dev-qa-db-ja.com

Linuxがemc疑似デバイスで新しいパーティションを正しく取得しない

Oracleracを実行しているデータベースサーバーがあります。最近、接続されているメインLUNのスペースが不足していました。新しい100GBLUNを作成し、これを既存のLUNに連結して、新しいMetaLUNを作成しました。少し混乱した後、私はLinuxに新しいスペースを認識させることができました。次に、新しいスペースを使用するために、疑似デバイス上に新しいパーティションを作成しました。以前、他のシステムでこれを行った場合、次のステップは、新しいパーティションにASMディスクを作成し、このディスクをOracleディスクグループに追加することです。ただし、これは失敗します。 ASMとpowerpathのさまざまな問題を認識していますが、これはここでは問題ではないと思います。問題を調査しているときに、基になる論理デバイスの1つがサイズの変更を反映していないことを発見しました。下記参照;

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  

また、パーティションを作成したとき、Linuxは2番目のパーティションの/ 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  

これは、簡単に再起動できない運用サーバーです。

どんなアイデアでも大歓迎です。

J

3
James

partprobeとは別に、blockdevユーティリティを使用してデバイスのパーティションテーブルを再読み込みしてみてください。

blockdev --rereadpt /dev/sde

次に、問題は、LUN自体が適切に更新されていないことである可能性があります。

/sysファイルシステムを介して、ファイバーチャネルまたはSCSIホストに対して再スキャンコマンドを発行してみてください。

少し前に、EMCClariionデバイスに対処するために次のscsi_rescan_bus.shスクリプトを作成しました。

#!/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

/sbin/partprobe /dev/emcpowerdを実行してみてください

partprobeは、カーネルにパーティションを再スキャンするように指示します

1
JeffG

私はEMCでこれを調査してきましたが、再起動しないとこれを回避する方法はないようです。ただし、回避策として、新しいlunを作成し、それを動的に取得して、Oracleにこれを認識させることができました。 J

0
James