VMware イメージを縮小するにはどうすればよいですか?

VMware イメージを縮小するにはどうすればよいですか?

無料の VMware Player を使用して Windows Server 2008 システムのイメージを作成し、ハード ドライブの最大サイズを 100 GB に設定しました。その後、そのイメージ ファイル (当時は 30 GB) をサーバー ホスティング会社に渡しました。数週間後、そのコピーを返して欲しいと依頼したところ、イメージのサイズはあまり変わっていないはずでしたが、返ってきたファイルは 100 GB のままでした。

私は VMware の専門家ではないので、2 つの質問があります。

  1. ダイナミック ディスク全体をどのようにして、またなぜ拡張したのでしょうか?
  2. この画像を、実際にデータが含まれるサイズまで何とか縮小する方法はありますか?

VMware コンバーターを試してみましたが、イメージ (vmdk) ファイルを読み取ることができないようで、一般的なエラーが出力されるだけです。

答え1

私の推測では、イメージから VM を作成するときに、イメージのフルサイズを事前に割り当てた (これによりパフォーマンスが向上する可能性があります) と考えられます。エクスポートすると、フルイメージが取得されます。

VMware プレーヤーでイメージを縮小できるとは思えません。VMware Workstation には vmware-vdiskmanager が付属しており、固定サイズのディスクを拡張可能なディスクに変換してイメージのサイズを縮小できるようです。私はこれを試したことがないので、どの程度うまく機能するかはわかりません。

マニュアルはここにあります:http://www.vmware.com/support/developer/vddk/vddk12_diskmanager.pdf

答え2

VMWare Player についてはわかりませんが、VMWare Workstation には vmware-vdiskmanager.exe コマンド ライン ユーティリティが付属しています。C:\Program Files\VMware\VMware Workstation フォルダーにあります。

コマンドラインオプションは次のとおりです。

    VMware Virtual Disk Manager - build 385536.
    Usage: vmware-vdiskmanager.exe OPTIONS <disk-name> | <mount-point>
    Offline disk manipulation utility
      Operations, only one may be specified at a time:
         -c                   : create disk.  Additional creation options must
                                be specified.  Only local virtual disks can be
                                created.
         -d                   : defragment the specified virtual disk. Only
                                local virtual disks may be defragmented.
         -k                   : shrink the specified virtual disk. Only local
                                virtual disks may be shrunk.
         -n <source-disk>     : rename the specified virtual disk; need to
                                specify destination disk-name. Only local virtual
                                disks may be renamed.
         -p                   : prepare the mounted virtual disk specified by
                                the mount point for shrinking.
         -r <source-disk>     : convert the specified disk; need to specify
                                destination disk-type.  For local destination disks
                                the disk type must be specified.
         -x <new-capacity>    : expand the disk to the specified capacity. Only
                                local virtual disks may be expanded.
         -R                   : check a sparse virtual disk for consistency and attempt
                                to repair any errors.
         -D                   : make disk deletable.  This should only be used on disks
                                that have been copied from another product.

      Other Options:
         -q                   : do not log messages

      Additional options for create and convert:
         -a <adapter>         : (for use with -c only) adapter type
                                (ide, buslogic, lsilogic). Pass lsilogic for other adapter types.
         -s <size>            : capacity of the virtual disk
         -t <disk-type>       : disk type id

      Options for remote disks:
         -h <hostname>        : hostname of remote server
         -u <username>        : username for remote server
         -f <filename>        : file containing password
         -P <port>            : optional TCP port number (default: 902)
         -S                   : specifies that the source disk is remote, by default
                                the remote options are assumed to refer to the
                                destination.
      Disk types:
          0                   : single growable virtual disk
          1                   : growable virtual disk split in 2GB files
          2                   : preallocated virtual disk
          3                   : preallocated virtual disk split in 2GB files
          4                   : preallocated ESX-type virtual disk
          5                   : compressed disk optimized for streaming
          6                   : thin provisioned virtual disk - ESX 3.x and above

         The capacity can be specified in sectors, KB, MB or GB.
         The acceptable ranges:
                               ide adapter : [1MB, 2040.0GB]
                               scsi adapter: [1MB, 2040.0GB]
            ex 1: vmware-vdiskmanager.exe -c -s 850MB -a ide -t 0 myIdeDisk.vmdk
            ex 2: vmware-vdiskmanager.exe -d myDisk.vmdk
            ex 3: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
            ex 4: vmware-vdiskmanager.exe -x 36GB myDisk.vmdk
            ex 5: vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
            ex 6: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 4 -h esx-name.mycompany.com \
                  -u username -f passwordfile "[storage1]/path/to/targetDisk.vmdk"
            ex 7: vmware-vdiskmanager.exe -k myDisk.vmdk
            ex 8: vmware-vdiskmanager.exe -p <mount-point>
                  (A virtual disk first needs to be mounted at <mount-point>)

VMWare Workstation の無料トライアルを入手できます。

答え3

仮想ディスクの縮小には通常、次の 2 つのフェーズがあります。

  1. 拭きます。 これにより、ゲスト ファイル システムの未使用ブロックがゼロになります。 これはゲスト内で実行する必要があります
  2. 圧縮。 これにより、.vmdk ファイルのゼロ化されたブロックが消去フェーズから削除されます。 これはホストによって実行される必要があります(ただし、ゲストによってトリガーされる可能性もあります)。

vmware-vdiskmanagerホスト上で実行すると、圧縮フェーズは実行できますが、ワイプ フェーズは実行できません。ワイプを実行するには、いくつかの方法があります。

  • を実行しますvmware-toolbox-cmd disk shrink LOCATIONvmware-toolbox-cmd help disk詳細については、 を実行してください。(vmware-toolbox-cmdは Windows ゲストで名前が付けられますVMwareToolboxCmd。) これにより、ワイプが完了すると、圧縮段階がトリガーされます。

  • プログラムvmshrinkVM バックサードパーティツールパッケージこれは、VMware Tools が利用できないゲストにとって良い代替手段となります。これにより、ワイプが完了すると圧縮段階も開始されます。

  • おそらくddゲストでは (または同等のもの) を使用できますが、これは読者の課題として残しておきます。

ワイピング フェーズが不要な状況もあります。たとえば、ゲストがファイル システムからファイルを削除するときにファイルの内容をすでにゼロにしている場合や、ゲストが Windows の場合、VMware Workstation は NTFS ゲスト パーティションを検査して未使用のブロックを判別する方法を独自に認識しています。

関連情報