Gość Debiana na hoście Windows przy użyciu odrzucenia / TRIM.
Nie jest to bezpośrednia odpowiedź jako taka, ponieważ zajmuję się problemem, a nie pytaniem. Zamiast okresowego kompaktowania obrazu, to rozwiązanie wykorzystuje odrzucanie, aby automatycznie usuwać nieużywane bloki na obrazie dysku maszyny wirtualnej hosta.
To rozwiązanie wymaga systemu plików gościa obsługującego ciągły TRIM.
Wiki z Arch Linux ma lista systemów plików obsługujących operacje TRIM .
FDE i kryptoroot nie są specjalnie omówione, ponieważ istnieją obawy związane z bezpieczeństwem, a żadne inne rozwiązanie tego pytania również nie pozwoliłoby na kompaktowanie. Wiki o Arch Linux ma informacje na ten temat Urządzenia TRIM i dm-crypt .
Teoretycznie będzie to działać dla wszystkich gości Linuksa na hostach VBox korzystających z pamięci VDI.
Konfiguracja hosta
Po zamknięciu VBox i braku uruchomionych maszyn wirtualnych dodaj obsługę dysków do dysków, ustawiając oba discard
i nonrotational
dla każdego dysku w pliku konfiguracyjnym maszyny wirtualnej. W tym czasie discard
nie ma w GUI, ale nonrotational
jest widoczne jako pole wyboru „Dysk SSD”. (ref: fora vbox, odrzuć wsparcie )
<AttachedDevice discard="true" nonrotational="true" type="HardDisk" [..other options..] >
Uruchom maszynę wirtualną i sprawdź, czy obsługa TRIM jest włączona:
sudo hdparm -I /dev/sda | grep TRIM
Konfiguracja gościa
Jeśli LVM jest w użyciu, zmień ustawienie odrzucania /etc/lvm/lvm.conf
. (ref: debian wiki, przykład lvm.conf )
devices {
...
issue_discards = 1
}
W fstab dodaj discard
opcja dla systemów plików, które chcesz automatycznie odrzucić (ref: debian wiki, przykład fstab )
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
Ponownie zainstaluj systemy plików, aby odebrać nowe opcje.
sudo mount -o remount /
sudo mount -o remount /build
Ręcznie przycinaj teraz wolne bloki fstrim
. fstrim
używa zamontowanego systemu plików, a nie urządzenia blokowego, które go wspiera. Zamiast ustawiać ciągłe odrzucanie fstab
, można to zrobić na cronie tygodniowym. (Cotygodniowy cron jest zalecany dla fizycznych dysków SSD, które mogą mieć wątpliwe wsparcie dla TRIM, ale nie ma to znaczenia, ponieważ podstawowe dyski SSD są obsługiwane przez system operacyjny hosta. ssd ostrzeżenie trym ).
fstrim /
fstrim /build
W tym momencie rozmiar systemów plików w maszynie wirtualnej i rozmiar obrazów maszyn wirtualnych powinny być bardzo zbliżone.
Testowane z:
- Guest1: Debian 8.7, jądro: linux 4.8 grsec z backportów, system plików: ext4
- Guest2: Debian 9 RC2, jądro: linux 4.9, system plików: ext4
- Host1: VBox 5.1.14, Win7, obraz fmt: VDI
- Host2: VBox 5.1.14, Win8.1, obraz fmt: VDI