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

Дисковый ввод-вывод медленнее на ESXi, еще медленнее на виртуальной машине (freeNAS + iSCSI)

У меня есть сервер с подключенным сетевым хранилищем ESXi 5 и iSCSI. Сервер хранения имеет 4 диска SATA II по 1 Тб в Raid-Z на freenas 8.0.4. Эти две машины подключены друг к другу с помощью Gigabit Ethernet, изолированы от всего остального. Между ними нет переключения. Сам блок SAN представляет собой супермикро-сервер высотой 1U с процессором Intel Pentium D на 3 ГГц и 2 гигабайтами памяти. Диски подключены к встроенному контроллеру (Intel что-то?).

Том raid-z разделен на три части: два zvols, совместно используемые с iscsi, и один, расположенный непосредственно поверх zfs, совместно используемый с nfs и т.п.

Я подключился к ящику freeNAS и провел несколько тестов на дисках. я использовал ddдля тестирования третьей части дисков (прямо поверх ZFS). Я скопировал блок размером 4 ГБ (вдвое больше ОЗУ) из / dev / zero на диск, и скорость составила 80 МБ / с.

Другой общий zvols iSCSI - это хранилище данных для ESXi. Я сделал аналогичный тест с time dd .. там. Поскольку dd там не дало скорости, я разделил количество передаваемых данных на показ времени на time. Результат был около 30-40 МБ / с. Это примерно половина скорости хоста freeNAS!

Затем я протестировал ввод-вывод на виртуальной машине, работающей на том же хосте ESXi. Виртуальная машина была легкой машиной CentOS 6.0, которая в то время больше ничего не делала. В то время на сервере не было других виртуальных машин, а две другие «части» дискового массива не использовались. Похожий dd Тест дал мне результат порядка 15-20 МБ / с. Это опять примерно половина результата на более низком уровне!

Конечно, в raid-z -> zfs -> zvolume -> iSCSI -> VMFS -> VM есть некоторые накладные расходы, но я не ожидаю, что они будут такими большими. Я считаю, что в моей системе что-то не так.

Я слышал о плохой работе iSCSI freeNAS, не так ли? Мне не удалось запустить какую-либо другую "большую" SAN OS на коробке (NexentaSTOR, openfiler).

Вы видите какие-нибудь очевидные проблемы с моей настройкой?

Чтобы ускорить это, вам понадобится больше оперативной памяти. Я бы начал с этих дополнительных улучшений.

Во-первых, ускорите работу файловой системы: 1) ZFS требуется гораздо больше оперативной памяти, чем необходимо для использования кеша ARC. Чем больше, тем лучше. Если вы можете увеличить его как минимум на 8 ГБ или больше, вы увидите значительное улучшение. У нас в них 64гб.

2) Затем я бы добавил диск ZIL Log, то есть небольшой SSD-накопитель около 20 ГБ. Используйте тип SLC, а не MLC. Рекомендуется использовать 2 диска ЗИЛ для резервирования. Это значительно ускорит запись.

3) Добавьте диск L2ARC. Это может быть SSD хорошего размера, например подойдет диск MLC на 250 ГБ. Технически говоря, L2ARC не нужен. Однако обычно дешевле добавить большой объем быстрого SSD-хранилища, чем больше первичной ОЗУ. Но сначала начните с того объема оперативной памяти, который вы можете уместить / позволить себе.

Существует ряд веб-сайтов, которые утверждают, что помогают с настройкой zfs в целом, и эти параметры / переменные могут быть установлены через графический интерфейс. Стоит посмотреть / попробовать.

Также посетите форумы freenas. Там вы можете получить лучшую поддержку, чем здесь.

Во-вторых: вы можете ускорить работу сети. Если у вас есть несколько интерфейсов NIC на вашем сервере supermicro. Вы можете связать их по каналам, чтобы получить почти вдвое большую пропускную способность сети и некоторую избыточность. http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1004088

В настоящее время я использую FreeNas 8 с двумя массивами Raid 5 sSata, подключенными к серверу. Сервер имеет 8 ГБ оперативной памяти и два одноядерных процессора Intel Xeon.

Моя работа существенно отличалась от того, что испытали другие.

Я не использую MPIO или какую-либо балансировку нагрузки на сетевых адаптерах. Всего одна сетевая карта сервера Intel GIGE 10/100/1000.

Оба массива имеют по пять дисков по 2,0 ТБ, что соответствует примерно 7,5 ТБ дискового пространства RAID5.

Я использую эти два массива для двух разных функций:

1) Массив №1 прикреплен к серверу Intel HPC под управлением Centos 5.8 и PostGres. Файловая система - ext4. Я смог получить для этого массива пиковую скорость 800 Мбит / с.

2) Массив №2 используется для виртуальных машин Citrix Xenserver 6 Centos. Эти разделы на 200 ГБ обеспечивают выдающуюся производительность. На каждой из виртуальных машин работают сигнальные серверы SIP в реальном времени, которые поддерживают 5-10K одновременных вызовов со скоростью 500-1000 CPS. Локальная база данных записывает CDR в эти разделы до того, как главный сервер базы данных скопирует их в свои таблицы. Я также смог получить для этого массива пиковую скорость 800 Мбит / с.

Я бы не предлагал использовать массив FreeNas iSCSI в качестве основного решения для больших разделов базы данных. У меня это работает на разделе SAS Raid 10 10K RPM на сервере базы данных.

Но нет абсолютно никаких причин, по которым вы не можете отправлять свой трафик данных через простую коммутируемую сеть Ethernet на разумно настроенный сервер, на котором работает FreeNAS, и отправлять его на теоретическом пике GIGE.

Мне еще предстоит проверить пропускную способность чтения, но RAID5 работает медленнее при чтении. Значит, должно быть как хорошо, так и лучше.

FreeNAS стабильно хорошо масштабируется по мере увеличения требований к трафику. Любой сервер CentOS 5.8 будет использовать свой собственный кеш для буферизации данных перед их отправкой в ​​массивы iSCSI. Итак, убедитесь, что на хостах виртуальных машин достаточно памяти, и вы останетесь довольны своей производительностью.

На мой взгляд, ничто не тестирует технологию лучше, чем приложения баз данных и приложения трафика в реальном времени.

Я тоже думаю, что добавление функции кеширования со сквозной записью в системную память было бы полезно, но мои показатели производительности показывают, что FreeNAS и iSCSI работают отлично!

Это может только поправиться.

Вероятно, вы видите не накладные расходы на перевод, а снижение производительности из-за другой схемы доступа. Последовательная запись на том ZFS просто создаст почти последовательный поток данных, который будет записан на ваши базовые физические диски. Последовательная запись в хранилище данных VMFS поверх тома ZFS создаст поток данных, который «пронизан» обновлениями метаданных структуры файловой системы VMFS и частыми запросами на синхронизацию / очистку кеша именно для этих метаданных. Последовательная запись на виртуальный диск изнутри клиента снова добавила бы больше «пробивки» вашего последовательного потока из-за метаданных гостевой файловой системы.

Лекарство, обычно предписываемое в таких ситуациях, - это включение кеша записи, который игнорирует запросы на очистку кеша. Это устранит проблемы с произвольной записью и синхронизацией и повысит производительность, которую вы видите в гостевых виртуальных машинах. Однако имейте в виду, что целостность ваших данных окажется под угрозой, если кеш не сможет сохраняться при отключениях электроэнергии / внезапных перезагрузках.

Вы можете легко проверить, достигли ли вы ограничений на свой диск, выполнив что-то вроде iostat -xd 5 на вашем устройстве FreeNAS и просматривая размеры очередей и статистику использования ваших основных физических устройств. Бег esxtop в disk device Режим также должен помочь вам понять, что происходит, показывая статистику использования диска со стороны ESX.

Некоторые предложения.

  • Зеркала RAID 1 + 0 или ZFS обычно работают лучше, чем RAIDZ.
  • Вы не упоминаете фактические характеристики вашего сервера хранения, но какой у вас тип / скорость процессора, объем оперативной памяти и контроллер хранения?
  • Включен ли сетевой коммутатор? Изолировано ли хранилище в собственной сети от трафика виртуальных машин?

Я бы сказал, что 80 мегабайт в секунду - это медленно для прямого теста в системе FreeNAS. У вас может быть проблема с диском. Вы используете диски с расширенным форматом или диски размером 4 КБ? Если так, то могло быть проблемы с выравниванием разделов это повлияет на вашу производительность.

Во-первых, производительность VMware на самом деле не является проблемой протокола iSCSI (на FreeNAS), NFS 3 или CIFS (Windows), это проблема записи файловой системы XFS и статуса «синхронизации».

FreeNAS имеет свойство, называемое «синхронизация», и его можно включить или отключить. «zfs sync = always» устанавливается по умолчанию и приводит к сбросу каждой записи. Это резко снижает производительность, но гарантирует запись на диск. Например, запуск VMware ESXI 5.5 и FreeNAS на современном оборудовании (ЦП с частотой 3 ГГц, Seagate 7200 HD, сеть 1GigE) без нагрузки обычно приводит к производительности 4-5 МБ / с на клоне VMware, роботизированном копировании Windows или другой операции «записи». . При установке «zfs sync = disabled» производительность записи легко достигает 40 МБ и достигает 80 МБ (то есть мегабайт в секунду). Это в 10-20 раз быстрее с отключенной синхронизацией, и это то, что вы ожидаете .... НО запись не так безопасна.

Итак, я использую sync = disabled «временно», когда я хочу сделать кучу клонов или сигнификатора robocopy и т. Д. Затем я сбрасываю sync = always для «стандартной» работы виртуальной машины.

FreeNAS имеет «скраб», который проверяет все байты на диске ... занимает около 8 часов для 12 ТБ, и я запускаю его раз в неделю в качестве дополнения, чтобы убедиться, что байты, записанные во время sync = disabled, в порядке.