Привет, я использовал эту конфигурацию... пул (ashift=12) -> zvol (volblocksize=8k, raw) -> ext4 (blocksize=512, без clustersize)... и у меня получилось, что усиление записи составляет около 10 от записей виртуального диска на госте до физических записей на хосте. Я провел исследование и нашел эту диаграмму, показывающую накладные расходы на четность/наполнение в процентах при использовании разного количества дисков в raidz1 и разных volblocksize. Диаграмма показывает, что использование raidz1 из 5 дисков (при ashift=12) и стандартного 8k volblocksize Proxmox (как в моей текущей конфигурации) вызывает накладные расходы более 100%. Так что в этом случае использование raidz1 не экономит место по сравнению с использованием zfs mirror. При volblocksize 32K накладные расходы минимальны для 5 дисков (при ashift=12), с накладными расходами всего 25%. Поэтому мне следует пересоздать zvols с volblocksize 32k вместо 8k. Я сделал это следующим образом: 1.) Proxmox GUI -> датацентр -> хранилище -> MyPool -> изменил "Размер блока" с "8k" на "32k" 2.) Это работает только для новосозданных zvols, поэтому я сделал резервную копию своей VM и добавил новый виртуальный жесткий диск того же размера 3.) Изменил порядок загрузки на CD сначала, примонтировал ISO-диск Debian Live CD и загрузил этот Live Debian 4.) Использовал "sudo lsblk", чтобы выяснить старый (sda) и новый (sdb) виртуальные жесткие диски 5.) Использовал "sudo dd conv=sparse if=/dev/sda of=/dev/sdb bs=32K status=progress", чтобы скопировать все содержимое (включая таблицы разделов, загрузчик и т.д.) со старого виртуального жесткого диска с blocksize 8k на новый виртуальный жесткий диск с blocksize 32k. 6.) Я отключил старый виртуальный жесткий диск от VM (поскольку UUID на обоих дисках теперь одинаковы) и установил порядок загрузки, чтобы сначала загружаться с нового виртуального жесткого диска. Похоже, все работает отлично, и если я использую "zfs list", новый zvol занимает только 1/3 от размера в "USED" и 1/2 от размера в "REFER". Также усиление записи, похоже, немного (на 10%) ниже. Нужно ли менять blocksize и/или clustersize разделов ext4 внутри VMs тоже? Или это не проблема, что VM записывает блоки по 512B, если zvol использует 32K, а физические жесткие диски 4K, потому что KVM делает магию виртуализации и как-то это конвертирует? Какой правильный blocksize/clustersize для виртуального ext4-раздела? Также диаграмма не упоминает использование встроенного шифрования или сжатия lz4, которое я оба использую. Следует ли использовать еще больший volblocksize, например, 64k вместо 32k, чтобы шифрование/сжатие работало лучше, или 32k тоже вполне нормально?
ashift, volblocksize, clustersize, blocksize, Proxmox Виртуальная Среда
|
19.09.2020 21:05:00
|
|
|
|
|
Читают тему
