ospite Debian su host Windows usando discard/TRIM.
Questa non è una risposta diretta di per sé, perché sto affrontando il problema, non la domanda. Invece di compattare periodicamente l'immagine, questa soluzione utilizza lo scarto per rimuovere automaticamente i blocchi inutilizzati nell'immagine disco VM dell'host.
Questa soluzione richiede un filesystem guest che supporti TRIM continuo. Il wiki di Arch Linux ha una lista di filesystem che supportano le operazioni TRIM .
FDE e cryptoroot non sono specificamente coperti, poiché ci sono problemi di sicurezza e nessuna delle altre soluzioni a questa domanda permetterebbe di compattare. Il wiki di Arch Linux ha informazioni su TRIM e dispositivi dm-crypt .
In teoria, questo funzionerà per tutti gli ospiti Linux su host VBox che utilizzano lo storage VDI.
Configurazione host
Con VBox uscito e nessuna VM in esecuzione, aggiungere il supporto allo scarto ai dischi impostando sia discard
che nonrotational
per ogni disco nel file di configurazione per la VM. In questo momento discard
non è nella GUI, ma nonrotational
è esposto come casella di controllo “Solid-state Drive”. (rif: vbox forums, discard support )
<AttachedDevice discard="true" nonrotational="true" type="HardDisk" [..other options..] >
``` ```
sudo hdparm -I /dev/sda | grep TRIM
Avviare la VM e verificare che il supporto TRIM sia abilitato:
devices {
...
issue_discards = 1
}
Guest Configuration
Se LVM è in uso, modificare l'impostazione di disinserimento in /etc/lvm/lvm.conf
. (rif: debian wiki, lvm.conf example )
UUID=8db6787f-1e82-42d8-b39f-8b7491a0523c / ext4 discard,errors=remount-ro 0 1
UUID=70bfca92-8454-4777-9d87-a7face32b7e7 /build ext4 discard,errors=remount-ro,noatime 0 1
``` ```
sudo mount -o remount /
sudo mount -o remount /build
In fstab, aggiungere l'opzione discard
ai filesystem che si desidera scartare automaticamente (rif: debian wiki, fstab example )
fstrim /
fstrim /build
Rimontare i filesystem per fargli prendere le nuove opzioni.
&001 &001
Tagliare manualmente i blocchi liberi ora con fstrim
. fstrim
usa il filesystem montato, non il dispositivo a blocchi che lo supporta. Invece di impostare lo scarto continuo in fstab
, questo potrebbe essere fatto su un cron settimanale. (Il cron settimanale è raccomandato per SSD fisici che possono avere un supporto discutibile per TRIM, ma questo non è rilevante in questo caso poiché gli SSD sottostanti sono gestiti dal sistema operativo host. vedi: ssd trim warning ).
&001 &001
A questo punto, la dimensione dei filesystem all'interno della VM e la dimensione delle immagini della VM dovrebbero essere abbastanza vicine in valore.
Testato con:
- Guest1: Debian 8.7, kernel: linux 4.8 grsec da backports, filesystem: ext4
- Guest2: Debian 9 RC2, kernel: linux 4.9, filesystem: ext4
- Host1: VBox 5.1.14, Win7, immagine fmt: VDI
- Host2: VBox 5.1.14, Win8.1, immagine fmt: VDI