仮想マシン内のハードディスク ファイルを圧縮する必要がありますか?

仮想マシン内のハードディスク ファイルを圧縮する必要がありますか?

Windows 7 32 ビットがインストールされた仮想マシンがあり、ホストは Windows 7 64 ビットです。動的にサイズ変更可能な VDI ディスク イメージを選択しました。ディスク イメージに Windows をインストールすると、サイズは約 5 GB になります。

仮想マシンを頻繁に使用するつもりはないので、ディスク イメージを圧縮して自分のディスク領域を節約したいと考えています。しかし、私は仮想マシンについて非常に初心者で、最適なオプションが何であるかわかりません。

  1. 圧縮しないでください。パフォーマンスが著しく低下する可能性があります。または、VDI がすでに圧縮形式になっている可能性があり、自分で圧縮しても時間の無駄です。
  2. ファイル プロパティを使用して、ホスト Windows で .vdi ファイルを圧縮します。
  3. 仮想マシン内で、ハードディスクのプロパティに移動し、ドライブの圧縮を選択します。

どの選択肢が最善だと思いますか?

ありがとう。

答え1

オプション1を選択してください - 絶対にないVDI を圧縮します。

オプション 2 - 圧縮された 5GB のディスク イメージを開いたり閉じたり、操作したりすると、速度が著しく低下します。 非常に遅くなる場合もあり、耐え難いほど遅くなることもあります。 また、動的にサイズ変更可能なディスクでは、速度がさらに低下します。

オプション3 - これは実際には仮想ディスクのサイズを縮小するものではなく、単にデータディスク全体の圧縮は、一般的には、小容量から中容量のディスクにのみ適用する必要があります。データファイル、または頻繁にアクセスされないファイル用です。

答え2

仮想マシン内での NTFS 圧縮 (私はその経験があります) は本当に悪い考えです。

これにより、CPU の使用率が大幅に上昇し、VDI によるファイル サイズの削減によるメリットはわずか 1/1.13 で、私が見た限りでは最大でも 20% のメリットしかありません (すべてのシステム パーティションで圧縮が有効になっているゲスト NTFS についての話です)。

VDI を縮小するには、「CloneVDI」というツールを検索し、バージョン 2.51 を使用します (ダウンロードした場所を覚えていません)。このツールは、既存の VDI ファイルから別の VDI ファイルを作成し、それを「圧縮」 (つまり、縮小) するオプションがあります。

このようなツールを使用すると、ゲスト パーティション内で使用されていないすべてのスペースが、作成された VDI 上のスペースを占有しなくなります。UUID を変更しないようにし、古いものを一時フォルダーに移動し、新しいものを元の場所に移動/名前変更して起動し、すべてがうまくいけば (ツールのマニュアルには失敗する可能性があると記載されていますが、失敗するのを見たことはありません)、古いものを削除します。

例: 新しい Windows 7 にすべての更新プログラム (WSUS + OnLine を使用) をインストールした後、VDI は 15 GiB を超えます。「cleanmgr」とその他の調整を行った後、パーティションは 9.5 GiB が使用されていることを示しますが、VDI はまだ 15 GiB です。CloneVDI を使用した後、ファイルは 9.5 GiB に縮小されます。

ああ、そうです。NTFS 圧縮を有効にすると、CloneVDI を使用した後の VDI は 8.4 GiB になります。確かに 1 GiB しか減りませんが、起動時間は 10 倍になります。

私は主に、不変の VDI で CloneVDI を使用しており、別の場所にある別の PC に VDI を「コピー」する必要がある場合 (64GiB USB 3.1 スティックで持ち運び)、すべての XP、7、8、8.1、10 (HOME と PRO の両方) (32 ビットと 64 ビットの両方) が必要 (ソフトウェア テスト目的) なので、5 * 2 * 2 = 20 個の VDI ファイルが作成されます。最悪の場合、最新の Service Pack とすべての更新プログラムのみを含む「クリーンな」最新のインストール状態でも必要になります。その数は 3 倍になるため、60 個の VDI ファイルになります。その 64GiB では足りません。300GiB の USB HDD が必要なので、3.1 USB Type C エンクロージャで 500GiB Sata III 2.5 HDD を持ち運び、CloneVDI を使用してファイルを縮小しています。

運が良ければ、コンピューターに USB 3.1 ポートがあり、十分な速度の 2.5 インチ Sata III HDD (1TiB または 500GiB) があれば十分です。3.1 タイプ C エンクロージャは非常に安価 (AliExpress で 20 ユーロ未満) で、完璧に機能し、ポケットなどに収まります。私は USB タイプ B コネクタ (microUSB) が嫌いです。安定性が失われがちです (不要なときに自動的にプラグが抜けます)。タイプ C コネクタを使用してからは、その問題は発生しませんでした (miniUSB コネクタも非常に優れていますが、3.1 速度も 3.0 速度も得られず、2.0 速度のみになります)。

注: USB 3.1 を USB 3.0 と誤って呼んでいる人もいますが、USB 3.1 Gen 2 (HDD の速度が非常に速い) であることを確認してください。また、Gen 2 はタイプ C コネクタでのみ動作します。エンクロージャ コネクタがタイプ C でない場合、最高速度は実際には得られません。

USB 3.0 および USB 3.1 (Gen 1) と呼ばれる規格は 5Gib/s (ギガビット) しかありませんが、USB 3.1 Gen2 (Type C コネクタのみ) は 10Gib/s で動作できます。Windows ホストでは 1 ギガバイト/秒 (1GiB/s) をかなり上回る速度なので、10GiB の VDI ファイルのコピーには 10 秒もかかりませんでした。

注意: USB 3.1 Gen 2 は大量の電力を消費するため、熱に注意してください (メモリ スティックの場合は特に)。SanDisk 64 GiB USB 3.1 Gen 2 は非常に熱くなり、加熱されたオーブンに手を置いたときと同じ感覚になることがあります。そのため、プラグを抜いた後は、少し待って冷めるまで待つか、風を吹きかけるなどしてください。

50 ユーロを支払うことができる場合は、USB 3.1 Gen 2 Type C + 3-1 ケーブル USB C から USB A + 500GiB Sata III 2.5" を入手してください... そうすれば、もう「圧縮」は必要なくなるでしょう (重要なゲスト変更を行った後は CloneVDI ツールを使用することを忘れないでください)。このような Shrink/Compact で十分であることがわかります。

補足: ベスト プラクティス... CloneVDI を使用するときは、2 つの異なる高速ディスク (1 つから読み取り、パイプラインで並列にもう 1 つに書き込み) を使用します... 内部 HDD と 3.1 Gen2 Type C などの外部 HDD... その後、1 つからもう 1 つにコピーします。 同じディスクで読み取りと書き込みを行い、その後に別のディスクにコピーするよりも、この方が実際に時間がかかりません (ヘッドの移動が少なくなります)... SSD ディスクを持っている非常に幸運な場合を除きます... その場合は、外部エンクロージャに別の SSD を配置します。

私は実際に (テストとして) 1GiB ストレージ (PCI express 3.0 x16 コントローラーに接続) を手にしており、書き込み持続速度が 35GiB/s、そうです、毎秒 35 ギガバイトです... ストレージは 1/35 = 0.029 秒でいっぱいになります (ほとんどの最新の PC メモリ バンクよりも高速です)。明らかに、これは液体窒素で冷却した「概念実証」でした。アイデアは、PC の通常のメモリ「概念」を無効にすることです... メモリを保持するために電力が必要なくなるため、PC は古い PDA のように (瞬時に) 起動します... 市場が拡大するかどうか、いつになるかはわかりません (価格? 考えない方がよいでしょう。プロトタイプは 1,300 万ドル以上かかりました)。

それまでは、USB 3.1 Gen 2 Type C エンクロージャ上の Sata III 2.5 1TiB (または 1.5TiB) が安価な方法です。USB 3.1 ポートがない場合は、10GiB/s 転送用の安価な PCI Express USB 3.1 Gen 2 Type C カードと USB ケーブル CC を購入してください。

そのような「速度」を許容できず、USB 2.0 のままにする必要がある場合、私の最善の提案は 2 つあります。ゲストの速度が大幅に低下してもまったく問題ない場合は NTFS ゲスト圧縮を有効にし、重要な変更を行った後は CloneVDI を使用して VDI サイズを縮小します。

注意: CloneVDI では、ゲスト上で事前に何かを行う必要はありません (空き領域をゼロにするなど)。CloneVDI は完全な作業を実行し、実際に使用されていないセクターを確認して、ゼロがあるものとして処理するため、生成された VDI には含まれません。

15GiB の VDI ファイルに非常に「遅い」 HDD (30MiB/s) を使用して CloneVDI を渡し、9GiB (同じパーティション上) を取得するのに 25 分強かかりました... 1 つの USB 3.1 Gen 2 Type C エンクロージャから別のエンクロージャに実行すると、30 秒もかかりませんでした。これが、USB 3.1 Gen 2 Type C (10Gib/s) について私があれほど話している理由です... 30 分近く待つのではなく、30 分待つのです。

私は常にすべての VDI を 2 つの USB 3.1 Gen 2 Type C エンクロージャ (それぞれ 500GiB 2.5 インチ HDD) に格納しているので、バックアップと非常に「高速」なゲスト I/O パフォーマンスが得られ、内部 OS HDD のスペースを占有しません。

このような HDD についてお話しします (私のものは本当に高価で、短いテストにしか使用しません)。これらは、持続的に 6Gib/s 近くで書き込み可能 (Sata III がボトルネック) で、SSD ではありませんが、マルチアームを備えているため、一度に複数のプレートに書き込むことができ、NCQ 最適化、1GiB の内部キャッシュ (8MiB や 16MiB だけのものではありません) を備えています... 価格... 1 台あたり約 1 ドルです... SSD はあまり好きではありませんし、「消去」サイクル数も少ないので... 集中的な使用 (仮想マシン VDI) に適しています。

私は決して仮想マシンを SSD 上に置きません。2、3 年で SSD が損傷する可能性があります (「消去」サイクルが最大に達します)。私がよく使うのは、非常に安価な 500GiB の高速 Sata III 2.5 インチ 2 台で、それぞれが独自の USB 3.1 Gen 2 Type C エンクロージャに取り付けられているため、書き込み速度は 200MiB/s 近くになります。これにより、CloneVDI の 15GiB から 9Gib への縮小には 3 分近くかかります。安価で十分に高速です。

お役に立てれば幸いです... USB スティックや大きな HDD (1.5TiB) よりも、2 つの小さな HDD (500GiB) を使用する方が、すべての VDI に十分な容量があり、速度も速くなる場合があります... cloneVDI (1 つから読み取り、別のものに書き込み) と組み合わせると理想的です。

私の主なアイデアは、考え方を変えることです...問題が「スペース」である場合、OK、少し作業を行います (ゲストの速度に影響を与えない)。つまり、CloneVDI を Compact/Shrink に使用し、ポケットに収まる 2 つのほぼ高速な外付けポータブル HDD を入手します。こうすることで、VDI の最新の 2 つの良好な状態も保持できます。そしてもちろん、このような外付け HDD は VDI 専用として使用し、将来的に十分なスペースを確保します...また、内部 HDD に VDI の別のコピーを保持します (PC が複数ある場合)。こうすることで...速度、PC 間での転送の待機時間の短縮、4 つのバックアップ コピー (PC が 2 台だけの場合、内部 2 つ、外部 2 つ)、および外部 HDD 上の「古い状態」のバックアップ コピー 2 つが得られます。

私の場合、60 個の VDI が 300 GiB 以上を使用することはありません (使用する内部ゲスト HDD の最大サイズは 20 GiB)。実際にかかったのは 200 GiB 程度で、すべてを不変として使用しているため古い状態を保持していないため、さらに 280 GiB 近く拡張できます (500 GiB HDD の場合)。将来の Windows バージョンのためだけに、1 TiB または 1.5 TiB を使用するとどうなるか想像してみてください (スペースの無駄です)。

Windows ゲストの場合、VDI ファイルは通常 10 GiB より大きくならないことがわかります (デフォルトのインストールで Windows のみ、アプリなどがないことに注意してください)。また、すべての Windows 更新プログラムを適用すると (cleanmgr などと CloneVDI が成功した後)、13 GiB または 15 GiB に増加します (システム パーティションに 20 GiB を定義したため、増加は最大 20 GiB に制限されます)。

そうすれば、すべての OS、最近インストールされた OS、OS + アップデート、32 ビット / 64 ビット OS、Windows バージョン XP、7、8、8.1、10 などでアプリ インストーラーをテストして、どれが機能し、どれが失敗するかなどを確認できます。それらを不変として構成したので、電源をオフにした後、次に電源を入れたときに VirtualBox が最初に行うことは変更を削除することです。そのため、別のアプリ インストーラーなどをテストできます。

VirtualBOX には隠し機能があり、変更不可能な HDD に対して、仮想マシンの電源がオンになったときに変更が失われないように指示できますが、変更不可能なままです...そのため、マシンの電源をオフにする必要があるアプリ インストーラーもテストできます。

答え3

Pismo File Mount をチェックしてみてください。これは、高い比率と低い CPU 使用率で「オンザフライ」圧縮できる優れたツールです。

私はすべての .vdi ファイルを .pfo ファイル内 (圧縮オン) に保存しており、Windows のクリーン インストール (Update がある場合も) を 50% 未満に圧縮するため、50% 以上のスペースを確保できます。

このような .pfo ファイルは「C:\Volumes\bla_bla_bla.pfo」にマウントされるため、そこに保存するには .vbox ファイルのパスを編集するだけです。

私は Windows ホストについて話しています。Linux ホストではまだ Pismo File Mount を使用していません。

.pfo ファイルはフォルダーとして読み取りおよび書き込みモードでマウントされ、その中に必要なもの (ファイルとフォルダー) を置くことができます。

警告: .pfo ファイルを縮小する方法がわかりません

主な用途: 不変の VirtualBOX マシンのメイン .VDI 用ですが、スナップショット フォルダーに存在する vdis 用ではありません。これは autoReset="true" に設定されているものです (拡大したり縮小したりするため)。

それが役に立てば幸い!

関連情報