質問: virtualboxおよびssdのtrimコマンドのサポート これはうまくいかず、なぜかという理由でインターネット上に膨大な数の投稿があることを承知しており、数か月前に解決策を探すために何日も費やしましたが、昨日、ゲストマシンで「trimコマンドサポートを有効にする」方法のヒントを見つけました。私はそれを試しました、そして、それは働くように見えます。私が知りたいのは、どこに問題があるのか、それとも実際に機能しているのかということです。出典: https://forums.virtualbox.org/viewtopic.php?f=7&t=51768 http://jaysonrowe.blogspot.com/2013/08/compacting-virtualbox-vdi.html ディスクファイルを添付する正確なコマンド: vboxmanage storageattach "guestosmachinename" --storagectl "sata" --port 1 --device 0 --nonrotational on --discard on --medium "c:\ path\to\file.vdi" --type hdd マシンの* .vboxファイルでこのエントリを生成したもの:<attacheddevice nonrotational="true" discard="true" type="harddisk" port="1" device="0"> <image uuid="{3836a042-a83e-4000-9a59-e95ad65162ce}"/> </attacheddevice> データを失わないようにするために、このドライブはマシンに接続されている2番目のドライブでした。ドライブにファイルをコピーし、そのままにし、マシンを再起動し、マシンをシャットダウンし、再起動後にそこにあるかどうかを確認し、ホストosでのディスクファイルの使用状況を確認するなどの簡単なテストを行いました。結果は次のとおりです。 オプションなしで添付されたディスクファイル--nonrotationalおよび--discardは、ゲストosでファイルを削除した後でも(動的)サイズを維持します 上記の両方のオプションで添付されたディスクファイルは、データが削除された後にスペースを解放します これが私の質問です: -正確に--discardオプションは何をしますか? virtualboxのマニュアルには記載されていません( http://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach ) -それは実際にtrimをホストosに渡すのですか、それとも単に次のように見えますか?
回答: これがgoogleでのトップの結果なので、これは古い投稿ですが、他の回答を少し明確にさせてください。実際には、ゲストファイルシステム上の未使用の仮想ブロックが、フラッシュの使用率を高めるために、対応するフラッシュの物理ブロックを未使用としてマークできるという意味で、trimを機能させることができます。作品はすでに他の回答やコメントにも存在しています。最初に、空きスペースがトリムされるようにホストを設定する必要があります。 -o discardを使用してファイルシステムをマウントするか、cronを介してファイルシステムでfstrimを定期的に実行できます。最初のオプションは、一度に多くのファイルを削除するときにシステムがハングアップする可能性があるため、後者を好みます。使用するディスクフォーマットは、qarmaが書き込むときのvdi動的サイズである必要があります。opで説明されているように、.vboxファイルにnonrotational = "true" discard = "true"が設定されていることを確認します。次に、通常どおりゲストosでtrimを有効にします。 linuxでは、fstrimを実行するcronジョブをもう一度お勧めします。イメージを小さくするためにデータが移動されるため、仮想ディスクイメージでtrimを実行するコストは物理ssdよりはるかに高いため、これはおそらくここでさらに重要です。これで、ディスクイメージは定期的に圧縮されるため、使用される実際のスペースと、qarmaが書き込むときの1 mbのブロックサイズのオーバーヘッドのみが使用されます。これは、ホストssdの空き領域がトリムされることを意味します。