Гість Debian на хості Windows за допомогою відкидання / TRIM.
Це не пряма відповідь сама по собі, тому що я розглядаю проблему, а не питання. Замість періодичного ущільнення зображення, це рішення використовує відмову для автоматичного видалення невикористаних блоків у зображенні диска VM хоста.
Для цього рішення потрібна гостьова файлова система, яка підтримує постійний TRIM. У вікі Arch Arch є список файлових систем, що підтримують операції TRIM .
FDE та cryptoroot спеціально не охоплені, оскільки є проблеми безпеки, і жодне з інших рішень цього питання не дозволило б ущільнити будь-яке. У вікі Arch Arch є інформація про пристрої TRIM та dm-crypt .
Теоретично це буде працювати для всіх гостей Linux на хостах VBox, що використовують VDI-накопичувач.
Конфігурація хоста
Коли VBox не вийшов і не працює ВМ, додайте підтримку відкидання на свої диски, встановивши як discardі nonrotationalкожен диск у конфігураційному файлі для VM. Наразі це discardне в графічному інтерфейсі, але nonrotationalвиставлено як прапорець "Твердотільний накопичувач". (ref: форуми vbox, підтримка відмов )
<AttachedDevice discard="true" nonrotational="true" type="HardDisk" [..other options..] >
Завантажте VM та переконайтеся, що підтримка TRIM увімкнена:
sudo hdparm -I /dev/sda | grep TRIM
Конфігурація гостя
Якщо LVM використовується, змініть налаштування для скидання /etc/lvm/lvm.conf. (посилання: wiki debian, приклад lvm.conf )
devices {
...
issue_discards = 1
}
У fstab додайте discardпараметр у файлові системи, які ви хочете автоматично відкинути (ref: debian wiki, fstab 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
Ручні обрізки вільних блоків тепер за допомогою fstrim. fstrimвикористовує змонтовану файлову систему, а не блоковий пристрій, що її підтримує. Замість того, щоб встановлювати безперервну відмову fstab, це можна зробити на щотижневому кроні. (Рекомендується щотижневий крон для фізичних SSD, які можуть мати сумнівну підтримку TRIM, але це не має значення тут, оскільки базові SSD обробляються хост-системою. Див.: Попередження ssd про обробку ).
fstrim /
fstrim /build
На даний момент розмір файлових систем всередині VM та розмір зображень VM повинні бути досить близькими за значенням.
Тестували:
- Guest1: Debian 8.7, ядро: linux 4.8 grsec з backports, файлова система: ext4
- Guest2: Debian 9 RC2, ядро: linux 4.9, файлова система: ext4
- Host1: VBox 5.1.14, Win7, зображення fmt: VDI
- Host2: VBox 5.1.14, Win8.1, зображення fmt: VDI