ZFS iSCSI и свободная емкость в VMFS
Я использую ZFS во FreeNAS 8.0.4 и использую iSCSI для предоставления LUN для Vmware ESXi 5.0.
Я публикую его на http://forums.freenas.org/showthread.php?10990-Memory-utilization-and-performance-problem/page4, но я считаю, что люди здесь могут иметь больше опыта в ZFS.
FreeNAS не имеет iSCSI unmap. У меня есть создание / перемещение / удаление виртуальной машины между ZFS iSCSI. Через некоторое время в списке zpool сообщается о 95% используемой емкости. Однако Vmware показывает, что VMFS использует только 50% емкости.
AFAIK, при создании виртуальной машины, zvol выделяет дисковое пространство. Однако когда мы переместили / удалили виртуальную машину, zvol не обновил / не знал, чтобы обновить свободную емкость.
[root@data1] ~# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
data1 2.25T 2.07T 185G 95% ONLINE /mnt
Теперь я считаю, что из-за неправильной свободной емкости, указанной в списке zpool, производительность сильно пострадала.
Как мне поступить, чтобы ZFS узнала реальную свободную емкость.
Спасибо миллион
zpool status -v
pool: data1
state: ONLINE
scrub: scrub stopped after 10h31m with 0 errors on Wed Feb 6 13:32:53 2013
config:
NAME STATE READ WRITE CKSUM
data1 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
ada0p2 ONLINE 0 0 0
ada1p2 ONLINE 0 0 0
ada2p2 ONLINE 0 0 0
ada3p2 ONLINE 0 0 0
ada4p2 ONLINE 0 0 0
spares
ada5p2 AVAIL
errors: No known data errors
Zpool список
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
data1 2.25T 2.08T 179G 92% ONLINE /mnt
2 ответа
Вы сделали ваш zvol слишком большим, а ваша реализация ZFS не имеет возможности разархивировать блоки выпуска!
Лучший способ предотвратить это - недооценить LUN, которые вы предоставляете VMware. Поскольку мы знаем, что производительность ZFS снижается, когда диск почти заполнен, лучше ограничить максимальный размер вашего zvol.
Например, если у вас есть хранилище zpool емкостью 200 ГБ, убедитесь, что объемы zvols, которые вы предоставляете VMware, меньше этого - возможно, 150 ГБ.
ZFS не знает о том, что файловая система используется поверх блочного устройства zvol, поэтому все, что происходит на томе VMFS, - это то, что он знает, что у него есть 50% свободного места. У ZFS нет возможности узнать это. Вы не сможете восстановить пространство без переформатирования / воссоздания тома или расширения zvol.
Лучшим решением в вашем случае будет использование NFS вместо iSCSI для этой цели. Если вы недостаточно внимательно следите за использованием и ростом дисков виртуальной машины, чтобы этого не произошло с iSCSI, NFS может иметь больше смысла. Я использую NFS с моими настройками ZFS+VMware.
а также
Вы правильно определили причину - и, кстати, даже с SCSI UNMAP, это, вероятно, все равно произошло бы, так как матрица поддержки для TRIM и UNMAP ужасна. Тем не менее, есть решение, которое никто не затронул.
Первое - включить сжатие (compress=on или compress=lzjb, я не фанат compress=gzip, особенно для виртуальных машин), без этого ничего не получится.
Если вы имеете дело с диском (дисками), предлагаемыми в ВМ (или в качестве диска ОС для ВМ), а затем отформатированными в файловой системе, вы можете использовать такие утилиты, как "zerofree" для Linux или "sdelete" для Windows, чтобы записать нули во все свободные блоки. Из-за того, что ZFS обрабатывает блоки 0 в сжатых файловых системах, это освобождает пространство в zvol, что значительно увеличивает соответствие zvol фактической используемой емкости.
Если вы выполнили все вышеперечисленное, и это не сработало (маловероятно) или все еще существует очень большое расхождение (также маловероятно), даже после запуска этого на всех дисках всех виртуальных машин, расположенных над LUN, вы можете попробовать эту статью - обратите внимание, что я вообще не проверял это, поэтому никаких обещаний: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2014849
Как вы сказали, что
FreeNAS не поддерживает отключение iSCSI
возможно, вы могли бы изучить TRIM/UNMAP Zvol поверх iSCSI, в котором я попросил помощи, чтобы сделать именно это: "Освободите свободное пространство на томе, имитирующем zfs".