У меня большие проблемы с моей сетью iSCSI, и я не могу заставить ее работать так быстро, как могла.
Итак, я попробовал почти все, чтобы добиться максимальной производительности от SAN, задействовав специалистов VMware и EMC.
Краткое описание моего оборудования: 3 встроенных сетевых адаптера HP DL360 G7 / vSphere 5.5 / 4/4 сетевых адаптера PCIe Intel для iSCSI 2x HP 2510-24G 1x процессоры EMC VNXe 3100/2, каждый с 2 выделенными сетевыми платами iSCSI / 24x 15k SAS RAID10 / 6x 7.2k SAS RAID6
Я использовал лучшие практики и равномерно распределил пулы хранения на обоих iSCSI-серверах. Я создал 2 сервера iSCSI, по одному на каждый процессор хранилища. Пожалуйста, смотрите изображение для моей конфигурации iSCSI.
Трафик iSCSI отделяется через VLAN (запрещенный набор для других VLAN), я даже попробовал его с другим коммутатором HP серии 29xx. Управление потоком включено (тоже пробовал отключено), Jumbo отключен. Там нет маршрутизации.
На хостах ESX используются все сетевые карты iSCSI, так как я использовал настройку Round Robin для каждого хранилища данных. Я также попробовал это с политикой изменения пути 1 IO, поскольку многие другие, похоже, достигли производительности таким образом. Я тоже попробовал внутренние сетевые карты (Broadcom), но разницы нет. На коммутаторах я вижу, что порты используются очень равномерно, со стороны ESX и со стороны VNXe. У меня идеальная балансировка нагрузки, ОДНАКО: я не могу преодолеть всего 1 Гбит. Я понимаю, что VNXe оптимизирован для нескольких соединений, и Round Robin тоже в этом нуждается, но даже когда я выполняю vMotion хранилища между 2 хостами и 2 хранилищами данных (используя разные серверы iSCSI), я вижу прямую линию около 84 Мбит / с. через веб-интерфейс Unisphere. Я вижу эту строку так часто с точно таким же значением, что не могу поверить, что мои диски не поставь больше или задачи не требуют достаточно. Становится еще лучше: благодаря одному кабелю на каждом хосте и каждом процессоре хранения я достигаю ОДНУ ЖЕ производительность. Таким образом, я получил много избыточности, но никакой дополнительной скорости вообще.
Поскольку я видел довольно много людей, говорящих об их производительности iSCSI, я отчаянно пытаюсь выяснить, что не так с моей конфигурацией (которая была проверена и проверена квалифицированными специалистами VMware и EMC). Я благодарен за каждое мнение!
РЕДАКТИРОВАТЬ:
Да, я настроил vMotion для использования нескольких сетевых карт. Кроме того, хранилище vMotion всегда проходит через адаптеры iSCSI, а не через адаптеры vMotion. Я приложил скриншоты моей конфигурации.
Я знаю, что Storage vMotion не является эталоном, однако мне пришлось делать это много в последние несколько дней, и верхний предел всегда был около 80 МБ / с. Пул из 6x 15k 600 ГБ дисков SAS в RAID 10 должен легко справиться с задачей, не так ли? Я сделал тест IO Meter для вас - пробовал некоторые из них, самый быстрый был 256 КиБ 100% Чтение. Я получил 64,45 МБ / с - мой Unisphere показывает примерно такую же скорость. Это виртуальная машина, которая хранится в пуле диска SAS 6x15k 300 ГБ (RAID 10), что вряд ли какая-либо другая активность в это время дня.
EDIT2:
Извините за дубликаты имен пользователей, но я написал этот вопрос на работе, и он не использовал мое имя пользователя, которое я уже получил в Stock Overflow. Однако вот скриншот, показывающий мои настройки Round Robin. Это одинаково на всех хостах и во всех магазинах.
источник
Ответы:
Вполне возможно, что вы не сгенерируете достаточно IOPS для того, чтобы это действительно заработало.
Посмотрите здесь, как изменить настройку с 1000 IOPS по умолчанию на меньшее значение. (Это зависит от симметрии, но вы можете сделать то же самое для VMWare Round Robin Provider)
Я, однако, еще не уверен, что он действительно может использовать более одной ссылки полностью параллельно только с одним хранилищем данных. Я думаю, что вы должны выполнить тест IOMeter одновременно на нескольких хранилищах данных, чтобы увидеть преимущества. (Не уверен на 100%, хотя)
источник
Создайте правило SATP для поставщика хранилища с именем EMC, задайте политику пути как Round Robine и IOPS по умолчанию от 1000 до 1. Это будет сохраняться при перезагрузках, и каждый раз, когда появляются новые EMC iSCSI LUN, это правило будет выбрано. Чтобы применить это к существующим EMC iSCSI LUN, перезагрузите хост.
Я поиграл с изменением IOPS между 1 и 3 и считаю, что лучше всего работать на одной виртуальной машине. Тем не менее, если у вас много виртуальных машин и много хранилищ данных, 1 может быть не оптимальным ...
Убедитесь, что для каждого интерфейса VNXe установлено значение 9000 MTU. Кроме того, vSwitch с интерфейсами iSCSI должен быть установлен на 9000 MTU вместе с каждым VMKernel. На вашем VNXe создайте два сервера iSCSI - один для SPA и один для SPB. Свяжите один IP для каждого изначально. Затем просмотрите сведения о каждом сервере iSCSI и добавьте дополнительные IP-адреса для каждого активного интерфейса для каждого SP. Это даст вам круговое представление, которое вы ищете.
Затем создайте как минимум два хранилища данных. Свяжите одно хранилище данных с iSCSIServer-SPA, а другое - с iSCSIServer-SPB. Это гарантирует, что один из ваших SP не будет сидеть на холостом ходу.
Наконец, все интерфейсы на стороне ESX, которые используются для iSCSI, должны быть подключены к отдельному vSwitch со всеми активными интерфейсами. Однако вам понадобится VMkernel для каждого интерфейса на стороне ESX в указанном vSwitch. Вы должны переопределить порядок отработки отказа vSwitch, чтобы у каждого VMKernel был один активный адаптер, а все остальные не использовались. Это мой сценарий развертывания, который я использовал для подготовки хостов ESX. Каждый хост имеет 8 интерфейсов, 4 для локальной сети и 4 для трафика iSCSI / VMotion.
а. # DNS esxcli сеть ip dns поиск добавить --domain = mydomain.net
esxcli сетевой ip dns сервер добавить --server = XXXX
esxcli сетевой ip dns сервер добавить --server = XXXX
б. # установить обновление имени хоста соответственно
Имя хоста системы esxcli установлено --host = server1 --domain = mydomain.net
с. # добавить восходящие ссылки в vSwitch0 esxcli network vswitch standard uplink add --uplink-name = vmnic1 --vswitch-name = vSwitch0
esxcli сеть vswitch стандартная восходящая связь добавить --uplink-name = vmnic4 --vswitch-name = vSwitch0
esxcli сеть vswitch стандартная восходящая связь добавить --uplink-name = vmnic5 --vswitch-name = vSwitch0
д. # создать vSwitch1 для хранилища и установить MTU на 9000
стандартная сеть esxcli vswitch add --vswitch-name = vSwitch1
стандартная сеть esxcli vswitch --vswitch-name = vSwitch1 --mtu = 9000
е. # добавить ссылки на vSwitch1
esxcli сеть vswitch стандартная восходящая связь добавить --uplink-name = vmnic2 --vswitch-name = vSwitch1
esxcli сеть vswitch стандартная восходящая связь добавить --uplink-name = vmnic3 --vswitch-name = vSwitch1
esxcli сеть vswitch стандартная восходящая связь добавить --uplink-name = vmnic6 --vswitch-name = vSwitch1
esxcli сеть vswitch стандартная восходящая связь добавить --uplink-name = vmnic7 --vswitch-name = vSwitch1
е. # установить активную сетевую карту для vSwitch0
Набор отказоустойчивых политик esxcli network vswitch - vswitch-name = vSwitch0 - active-uplinks = vmnic0, vmnic1, vmnic4, vmnic5
грамм. # установить активную сетевую карту для vSwitch1
Набор аварийного переключения стандартной политики для сети ESXCLI - vswitch-name = vSwitch1 - active-uplinks = vmnic2, vmnic3, vmnic6, vmnic7
час # создавать группы портов для iSCSI и vmkernels для ESX01, а не ESX02
esxcli network vswitch стандартная группа портов add --portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1
Сетевой ip-интерфейс esxcli добавить --interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000
Сетевой ip-интерфейс esxcli ipv4 set --interface-name = vmk2 --ipv4 = 192.158.50.152 --netmask = 255.255.255.0 --type = static
vim-cmd hostsvc / vmotion / vnic_set vmk2
сеть esxcli vswitch стандартная группа портов add --portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1
Сетевой ip-интерфейс esxcli добавить --interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000
Сетевой ip-интерфейс esxcli ipv4 set --interface-name = vmk3 --ipv4 = 192.158.50.153 --netmask = 255.255.255.0 --type = static
vim-cmd hostsvc / vmotion / vnic_set vmk3
сеть esxcli vswitch стандартная группа портов add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1
Сетевой ip-интерфейс esxcli добавить --interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000
Сетевой ip-интерфейс esxcli ipv4 set --interface-name = vmk6 --ipv4 = 192.158.50.156 --netmask = 255.255.255.0 --type = static
vim-cmd hostsvc / vmotion / vnic_set vmk6
esxcli network vswitch стандартная группа портов add --portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1
Сетевой ip-интерфейс esxcli добавить --interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000
Сетевой ip-интерфейс esxcli ipv4 set --interface-name = vmk7 --ipv4 = 192.158.50.157 --netmask = 255.255.255.0 --type = static
vim-cmd hostsvc / vmotion / vnic_set vmk7
я. # создавать группы портов для iSCSI и vmkernels для ESX02, а не ESX01
esxcli network vswitch стандартная группа портов add --portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1
Сетевой ip-интерфейс esxcli добавить --interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000
Сетевой ip-интерфейс esxcli ipv4 set --interface-name = vmk2 --ipv4 = 192.168.50.162 --netmask = 255.255.255.0 --type = static
vim-cmd hostsvc / vmotion / vnic_set vmk2
сеть esxcli vswitch стандартная группа портов add --portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1
Сетевой ip-интерфейс esxcli добавить --interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000
Сетевой ip-интерфейс esxcli ipv4 set --interface-name = vmk3 --ipv4 = 192.168.50.163 --netmask = 255.255.255.0 --type = static
vim-cmd hostsvc / vmotion / vnic_set vmk3
сеть esxcli vswitch стандартная группа портов add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1
Сетевой ip-интерфейс esxcli добавить --interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000
Сетевой ip-интерфейс esxcli ipv4 set --interface-name = vmk6 --ipv4 = 192.168.50.166 --netmask = 255.255.255.0 --type = static
vim-cmd hostsvc / vmotion / vnic_set vmk6
esxcli network vswitch стандартная группа портов add --portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1
Сетевой ip-интерфейс esxcli добавить --interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000
Сетевой ip-интерфейс esxcli ipv4 set --interface-name = vmk7 --ipv4 = 192.168.50.167 --netmask = 255.255.255.0 --type = static
vim-cmd hostsvc / vmotion / vnic_set vmk7
к. # установить активный NIC для каждого iSCSI vmkernel
Набор отказоустойчивых политик esxcli network vswitch - portgroup-name = iSCSI-vmnic2 --active-uplinks = vmnic2
Набор аварийного переключения политики стандартной группы портов esxcli network vswitch --portgroup-name = iSCSI-vmnic3 --active-uplinks = vmnic3
Набор отказоустойчивой политики стандартной группы портов esxcli network vswitch --portgroup-name = iSCSI-vmnic6 --active-uplinks = vmnic6
Набор отказоустойчивой политики стандартной группы портов esxcli network vswitch --portgroup-name = iSCSI-vmnic7 --active-uplinks = vmnic7
к. # создавать группы портов
сеть esxcli vswitch стандартная группа портов add --portgroup-name = VMNetwork1 --vswitch-name = vSwitch0
сеть esxcli vswitch стандартная группа портов add --portgroup-name = VMNetwork2 --vswitch-name = vSwitch0
сеть esxcli vswitch стандартная группа портов add --portgroup-name = VMNetwork3 --vswitch-name = vSwitch0
л. # установить VLAN для групп портов VM
сеть esxcli vswitch стандартный набор групп портов -p VMNetwork1 --vlan-id ##
сеть esxcli vswitch стандартный набор групп портов -p VMNetwork2 --vlan-id ##
сеть esxcli vswitch стандартный набор групп портов -p VMNetwork3 --vlan-id ###
м. # удалить группу портов VM по умолчанию
сеть esxcli vswitch стандартная группа портов удалить --portgroup-name = "сеть VM" -v = vSwitch0
п. # включить программный адаптер iSCSI
esxcli iscsi комплект программного обеспечения --enabled = true
esxcli iscsi networkportal add -A vmhba33 -n vmk2
esxcli iscsi networkportal add -A vmhba33 -n vmk3
esxcli iscsi networkportal add -A vmhba33 -n vmk6
esxcli iscsi networkportal add -A vmhba33 -n vmk7
о. # переименовать локальное хранилище данных
имя хоста> $ var =
vim-cmd hostsvc / datastore / переименовать datastore1 local-
$var
п. # Определить родной плагин типа Multi Path Storage Array для EMC VNXe 3300 и настраивать циклический IOPS от 1000 до 1
esxcli storage nmp satp rule add --satp = "VMW_SATP_DEFAULT_AA" --vendor = "EMC" -P "VMW_PSP_RR" -O "iops = 1"
кв. # обновить сеть
обновление сетевого брандмауэра esxcli
vim-cmd hostsvc / net / refresh
а. Конфигурация -> Конфигурация времени -> Свойства -> Параметры -> Настройки NTP -> Добавить -> ntp.mydomain.net -> Установите флажок «Перезапустить службу NTP, чтобы применить изменения» -> ОК -> подождите… -> Выберите «Запуск и остановка с хоста» -> ОК -> Проверить «Клиент NTP включен -> ОК»
Перезагрузить хост
Продолжайте использовать EMC VNXe Storage Provisioning, вернитесь к этому руководству после завершения.
Вход в клиент vSphere для каждого хоста
Обновите каждое хранилище данных до VMFS-5
а. Конфигурация -> Хранение -> Выделить хранилище данных -> Обновить до VMFS-5
источник
К сожалению, я думаю, что с вашей настройкой все в порядке. Вы просто не можете использовать более 1 Гбит / с для одной виртуальной машины.
Дело в том, что вы не хотите просто использовать два (или более) сетевых карт, вы хотите использовать их одновременно в конфигурации, подобной RAID-0.
802.3ad, стандарт об агрегации на уровне каналов, который, я думаю, вы настроили на своих коммутаторах, обычно не может быть настроен для разделения одного соединения между разными сетевыми картами. Это связано с тем, как работает выбор интерфейсного алгоритма: он основан на MAC-адресах src и dst и / или IP / портах, и одно соединение всегда будет иметь одинаковые MAC / IP / порты .
Это не означает, что ваша установка не может выдвигать более высокие числа (как tput, так и IOPS), но это накладывает жесткое ограничение на то, какую производительность может извлечь одна виртуальная машина. Попробуйте загрузить 2 или 4 экземпляра IOMeter на 2/4 разных виртуальных машин: могу поспорить, что совокупная производительность будет намного выше, чем в тесте одной виртуальной машины, но ни одна машина не пройдет ограничение в 1 Гбит / с.
Мостовое соединение Linux и некоторые высокопроизводительные коммутаторы поддерживают различные методы агрегации каналов и обеспечивают агрегированные сетевые интерфейсы с полной полосой. Однако это имеет нетривиальные последствия для того, как другие коммутаторы / системы взаимодействуют с этими «нестандартными» методами агрегирования.
В любом случае, для сети хранения данных вы должны действительно включить jumbo-кадры, если они поддерживаются.
источник