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.

См. Также: При использовании тонкого предоставления с ZFS, как убедиться, что у вас не осталось свободного места на физическом диске?

а также

Неправильно использованное пространство сообщается zVol.

Вы правильно определили причину - и, кстати, даже с 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".

Другие вопросы по тегам