目次~
#contents

*概要 [#saddd416]
ESXi5.xにおけるストレージ関連のトラブル対処

**vSphere Clientで内部エラーが発生しました。詳細:入力文字列の形式が正しくありません。 [#yc3085ec]
-原因~
vSphere Client 日本語版のバグ。~

-対処方法~
vSphere Client 英語版、もしくはWeb版を使用する。~

-対処手順~
vSphere Clientは起動時に引数を与えることで英語版として起動することが可能。~
以下のようなバッチファイルを作成し、英語版で使用したい時はバッチから起動すると便利。~
~
 @echo off
 cd /d "C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\"
 VpxClient.exe  -locale en_US


**(ケース1) Call "HostDatastoreSystem.QueryVmfsDatastoreCreateOptions" for object "datastorename" on vCenter Server "servername" failed. [#e2c96c67]
-原因~
ストレージ上にパーティションが作成されている場合に発生するエラー。(他の理由でも出るかも)~

-対処方法~
ESXiに付属するfdiskまたはpartedUtilコマンドにてパーティションを削除する。~

-対処手順(fdisk)~
ESXiのfdiskにてパーティションを削除するには、ESXi上でのディスクの固有IDを把握する必要がある。~
[構成]→[ストレージアダプタ]を開き、ディスクが接続されているストレージアダプタを選択し、詳細の[名前]欄に表示される内容が固有IDとなる。~
~
固有IDを把握できたら、以下のコマンドを実行する。~
~
 # fdisk -u /vmfs/devices/disks/[固有ID]
~
パーティションテーブルを確認し、削除する。~
fdiskの操作はLinuxと同じであるため割愛。~
~
-例~
 # fdisk -u /vmfs/devices/disks/t10.AMCC____A13L2C3C9DFD9F00D6E2
 
 The number of cylinders for this disk is set to 3889.
 There is nothing wrong with that, but this is larger than 1024,
 and could in certain setups cause problems with:
 1) software that runs at boot time (e.g., old versions of LILO)
 2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
 
 Command (m for help): p
 
 Disk t10.AMCC____A13L2C3C9DFD9F00D6E2: 31.9 GB, 31988908032 bytes
 255 heads, 63 sectors/track, 3889 cylinders, total 62478336 sectors
 Units = sectors of 1 * 512 = 512 bytes
 
 Device Boot      Start         End      Blocks  Id System
 t10.AMCC____A13L2C3C9DFD9F00D6E2p1   *        63   1028159    514048+  83  Linux
 t10.AMCC____A13L2C3C9DFD9F00D6E2p2       1028160  17816084   8393962+  82  Linux swap
 t10.AMCC____A13L2C3C9DFD9F00D6E2p3      17816085  62524979  22354447+  83  Linux
 
 Command (m for help): d
 Partition number (1-4): 1
 
 【以下、繰り返し削除】
 
 Command (m for help): p
 
 Disk t10.AMCC____A13L2C3C9DFD9F00D6E2: 31.9 GB, 31988908032 bytes
 255 heads, 63 sectors/track, 3889 cylinders, total 62478336 sectors
 Units = sectors of 1 * 512 = 512 bytes
 
 Device Boot      Start         End      Blocks  Id System
 
 Command (m for help): w
 The partition table has been altered!
 
 Calling ioctl() to re-read partition table
~

以上の処理の上、改めてvCenterよりストレージの追加を試みる。~

-対処手順(partedUtil)~
fdiskではパーティションを破棄できない場合があり、このような時は partedUtilコマンドを使用する。~
fdiskと同様にディスク固有のIDを指定して処理内容を引数で渡す操作となる。~
~
引数なしで実行すると、以下の様なヘルプが表示される。~
~
 Usage: 
 Get Partitions : get <diskName> 
 Set Partitions : set <diskName> ["partNum startSector endSector type attr"]* 
 Delete Partition : delete <diskName> <partNum>
 Resize Partition : resize <diskName> <partNum> <start> <end>
 Get Partitions : getptbl <diskName> 
 Set Partitions : setptbl <diskName> <label> ["partNum startSector endSector type/guid attr"]* 
 Fix Partition Table : fix <diskName> 
 Create New Label (all existing data will be lost): mklabel <diskName> <label> 
 Show commonly used partition type guids : showGuids 
 Get usable first and last sectors : getUsableSectors <diskName> 
 Fix GPT Table interactively : fixGpt <diskName> 
~
パーティションテーブルを表示する場合には以下の様なコマンドとなる。~
~
 # partedUtil get /vmfs/devices/disks/[ディスクID]
~
パーティションを削除する場合は以下となる。~
~
 # partedUtil delete /vmfs/devices/disks/[ディスクID] [パーティションID]

~
-実行例~
 # partedUtil get /vmfs/devices/disks/vml.01000000003834484b4e334545323532463141303041343830393639305341
 182361 255 63 2929643520
 1 63 2929643519 131 0
 
 # partedUtil delete /vmfs/devices/disks/vml.01000000003834484b4e334545323532463141303041343830393639305341 2
 Unable to retrieve partition 2 from device
 vml.01000000003834484b4e334545323532463141303041343830393639305341
 # partedUtil delete /vmfs/devices/disks/vml.01000000003834484b4e334545323532463141303041343830393639305341 1
 182361 255 63 2929643520



**(ケース2) Call "HostDatastoreSystem.QueryVmfsDatastoreCreateOptions" for object "datastorename" on vCenter Server "servername" failed.  [#ge40aa9f]
-原因~
別の用途で使用していたディスクを初期化せずに使用した際に発生する。~
ディスクが保持している情報が影響を与えるRAID1では発生し、再構築されるRAID0では発生しない。~
~

-対処~
パーティションテーブルを上書きすることで解消することができる。~
fdiskにて新たなパーティションを作成し、partedUtilにて作成したパーティションを削除することで解消する。~

-実行例~
以下、対処の実行例~
~
--partedUtilにてパーティション情報を確認(エラーが発生)
 # partedUtil get  /dev/disks/naa.600050e049886e0073540000d2c30000
 
 Error: The primary GPT table states that the backup GPT is located beyond the end of disk. This may happen if the disk has shrunk or partition table is corrupted. Fix, by writing backup table at the end? This will also fix the last usable sector appropriately as per the new reduced size. diskPath (/dev/disks/naa.600050e049886e0073540000d2c30000) diskSize (1464821760) AlternateLBA (2929643519) LastUsableLBA (2929643486)
 Warning: The available space to /dev/disks/naa.600050e049886e0073540000d2c30000 appears to have shrunk. This may happen if the disk size has reduced. The space has been reduced by (1464821760 blocks). You can fix the GPT to correct the available space or continue with the current settings ? This will also move the backup table at the end if it is not at the end already. diskSize (1464821760) AlternateLBA (2929643519) LastUsableLBA (2929643486) NewLastUsableLBA (1464821726) 
 Error: Can't have a partition outside the disk!
 Unable to read partition table for device /dev/disks/naa.600050e049886e0073540000d2c30000
~

--fdiskにてパーティションを作成
 # fdisk -u /dev/disks/naa.600050e049886e0073540000d2c30000
 
 ***
 *** The fdisk command is deprecated: fdisk does not handle GPT partitions.  Please use partedUtil
 ***
 
 Device contains neither a valid DOS partition table, nor Sun, SGI, OSF or GPT disklabel
 Building a new DOS disklabel. Changes will remain in memory only,
 until you decide to write them. After that the previous content
 won't be recoverable.
 
 
 The number of cylinders for this disk is set to 91180.
 There is nothing wrong with that, but this is larger than 1024,
 and could in certain setups cause problems with:
 1) software that runs at boot time (e.g., old versions of LILO)
 2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
 
~
 Command (m for help): p
 
 Disk /dev/disks/naa.600050e049886e0073540000d2c30000: 749.9 GB, 749988741120 bytes
 255 heads, 63 sectors/track, 91180 cylinders, total 1464821760 sectors
 Units = sectors of 1 * 512 = 512 bytes
 
                                           Device Boot      Start         End      Blocks  Id System
~
 Command (m for help): n
 Command action
    e   extended
    p   primary partition (1-4)
 
 p
 Partition number (1-4): 1
 
 First sector (63-1464821759, default 63): Using default value 63
 
 Last sector or +size or +sizeM or +sizeK (63-1464821759, default 1464821759): Using default value 1464821759
~
 Command (m for help): p
 
 Disk /dev/disks/naa.600050e049886e0073540000d2c30000: 749.9 GB, 749988741120 bytes
 255 heads, 63 sectors/track, 91180 cylinders, total 1464821760 sectors
 Units = sectors of 1 * 512 = 512 bytes
 
                                            Device Boot      Start         End      Blocks  Id System
 /dev/disks/naa.600050e049886e0073540000d2c30000p1              63  1464821759   732410848+ 83 Linux
~
 Command (m for help): w
 
 The partition table has been altered.
 Calling ioctl() to re-read partition table
~

--partedUtilにてパーティション情報を確認
 # partedUtil get  /dev/disks/naa.600050e049886e0073540000d2c30000
 
 91180 255 63 1464821760
 1 63 1464821759 131 0
~

--partedUtilにてパーティションを削除
 # partedUtil delete /dev/disks/naa.600050e049886e0073540000d2c30000
 1
 91180 255 63 1464821760
~

--データストアとして登録~
vShpere Clientからデータストアを登録する。~


**SSDが非SSDとして認識される場合の対処 [#s92f8f3d]
SSDが非SSD(non-SSD)として認識される場合の対処。~

-手順
CLI上から以下の操作を行うことでSSDとして認識させることができる。~
~
以下のコマンドで対象となるデバイスの固有IDを確認~
 #esxcli storage nmp device list
~
確認したデバイスの固有IDを元に以下のコマンドを実行する。~
 # esxcli storage nmp satp rule add -s 【Storage Array Type】 --device 【固有ID】 --option=enable_ssd    
 # esxcli storage core claiming unclaim --type device --device 【固有ID】
 # esxcli storage core claimrule load 
 # esxcli storage core claimrule run
~
以上の処理の上、vSphere Clientよりデータストアとして登録する。~

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS