Help us understand the problem. What is going on with this article?

Vagrantでtrimを有効化する

きょうびVagrantの話なんて聞かねぇなというご指摘はさておき、Vagrantを使っていて、Diskサイズが目に見えて減ってきたので確認してみると、仮想Diskのサイズが結構でかい。

自家製のVagrant boxを使っているせいかな、とも思ったけれど、種になった仮想マシンイメージは、TRIMは有効化してあった。

きょうびtrimが出来ない環境ってのもどうなんだよ、て調査したらTRIM有効化できたのでその記録

調査結果

Vagrant環境でもTRIMは有効化できる

環境

  • ホストOS : Windows 10
  • コマンドライン環境 : Msys2
  • 仮想マシンモニタ : VirtualBox 6.0.12
  • ゲストOS : CentOS 7.7

※ホストOSがLinuxの場合は試していないですが、おそらく、ほぼ同様の手順が適用可能なはず。

原因

Virtual BoxでTRIMを有効化するには、現状、vdiのイメージであることが必須。
vagrant packageすると、そのタイミングでVirutal Boxが、vdiのイメージをvmdk化してしまう様子(exportするときの仕様?)。
vmdk化してあると、どうあがいてもゲストOS内部からTRIM出来ない
ということで、vdiのイメージに再度戻して、再度TRIM有効化してやるだけ。

手順

  1. 当該のdiskのpathかuuidを調べて、保管場所へcd

    $ vboxmanage showvminfo nkit_ccu_1562122225630_32992 | grep vmdk
    SATA (0, 0): C:\Users\hogehoge\VirtualBox VMs\nkit_ccu_1562122225630_32992\box-disk001.vmdk (UUID: aba133fa-fca4-4e45-8bef-64029f968ab4)
    $ cd /c/Users/hogehoge/VirtualBox VMs/nkit_ccu_1562122225630_32992

  2. vmdkをvdiに(再)変換
    生成されたVDIのuuidが出るから、次の手順で使う。

    $ vboxmanage clonehd ./box-disk001.vmdk ./box-disk001.vdi --format vdi
    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
    Clone medium created in format 'vdi'. UUID: bee87b4c-e65a-47dd-b396-9e8742a82918

  3. 再アタッチ
    discardをonにして、2の手順で出たuuidか、絶対pathを、--mediumに指定してやる。

    $ vboxmanage storageattach nkit_ccu_1562122225630_32992 --storagectl SATA --port 0 --device 0 --discard on --medium bee87b4c-e65a-47dd-b396-9e8742a82918

  4. VMを起動してTRIM有効化可能か確認して、TRIM

    [root@bccu02 ~]# yum install hdparm -y
    読み込んだプラグイン:fastestmirror
    ==中略==
    完了しました!
    [root@bccu02 ~]# hdparm -I /dev/sda1 | grep -i trim
    * Data Set Management TRIM supported (limit unknown)
    [root@bccu02 ~]# fstrim -av
    /boot: 861.1 MiB (902881280 bytes) trimmed
    /: 25.9 GiB (27746865152 bytes) trimmed

なお、vdiファイルははTRIMしたら小さくなるが、Virtual Boxの仮想メディアマネージャ側がそれを認識するのは、VMの電源が落ちてから、の模様。
起動して問題がなければ、適宜vmdkファイルは削除していただければ。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away