Гість 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