Назад | Перейти на главную страницу

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. У меня есть создание / перемещение / удаление виртуальной машины между ZFS iSCSI. Через некоторое время zpool list сообщит об использовании 95% емкости. Однако Vmware показывает, что VMFS использует только 50% емкости.

AFAIK, при создании виртуальной машины, звол выделил дисковое пространство. Однако, когда мы перемещали / удаляли виртуальную машину, 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

Вы сделали свой zvol слишком большим, и ваша реализация ZFS не имеет возможности отменять отображение блоков выпуска!

Лучший способ предотвратить это - недостаточно предоставить LUN, которые вы представляете VMware. Поскольку мы знаем, что производительность ZFS снижается, когда диск почти заполнен, лучше ограничить максимальный размер файла zvol.

например Если у вас есть хранилище zpool на 200 ГБ, убедитесь, что zvols, которые вы предоставляете VMware, меньше этого - может быть, 150 ГБ.

ZFS не знает, что файловая система используется поверх блочного устройства zvol, поэтому все, что происходит на вашем томе VMFS, - это то, что он знает, что на нем 50% свободного места. ZFS не знает этого. Вы не сможете вернуть пространство без переформатирование / воссоздание тома или расширение звола.

Лучшее решение в вашем случае - использовать для этой цели 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».