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

Как использовать iSCSI MPIO для увеличения пропускной способности с помощью XenServer?

У меня есть FreeNAS Server с четырьмя сетевыми интерфейсами. Трафик iSCSI проходит через два из этих интерфейсов, и каждый интерфейс имеет один IP-адрес в другой подсети. Например:

igb0: 192.168.10.1/24 igb1: 192.168.11.1/24

Существует три хоста XenServer только с одним интерфейсом, выделенным для трафика iSCSI. Итак, на схеме два интерфейса на хранилище и три в целом на хостах.

Мой план состоял в том, чтобы обеспечить соединение с хостами до 2 Гбит / с, ограниченное 1 Гбит на хост.

Проблема начинается с разных подсетей. Я не знаю, как разместить два разных IP-адреса на одном сетевом интерфейсе на хостах XenServer. XenCenter просто не позволяет мне этого делать. Другая идея заключалась в том, чтобы изолировать этот вид трафика с помощью разных VLAN. Это нормально, но, похоже, это тоже не работает.

РЕДАКТИРОВАТЬ: К сожалению, LACP не работает должным образом, в документации FreeNAS есть дополнительная информация: «LACP и другие формы агрегации ссылок обычно не работают с решениями виртуализации. В виртуализированной среде рассмотрите возможность использования iSCSI MPIO путем создания портал iSCSI. Это позволяет инициатору iSCSI распознавать несколько ссылок на цель, используя их для увеличения пропускной способности или избыточности. Это руководство содержит инструкции по настройке MPIO на ESXi ».

Вот почему я пытаюсь настроить MPIO даже с VLAN и взломами, чтобы достичь 2 Гбит / с для хранилища.

Используйте LACP для NFS. Используйте MPIO для iSCSI.

Если ваши хосты гипервизора не имеют избыточности интерфейса хранилища, это на чем следует сосредоточить свое внимание; никаких хаков, никакой ерунды. Добавьте дополнительную сетевую карту к вашим хостам и настройте MPIO.

Если у каждого хоста есть только один интерфейс для iSCSI, вы не сможете использовать MPIO с описанной здесь настройкой. Однако вы должны иметь возможность настроить систему FreeNAS для использования Link Aggregation (LACP), чтобы вы могли одновременно обслуживать два хоста по 1 ГБ каждый (всего 2 ГБ из FreeNAS). Вместо MPIO изучите LACP (или получите второй сетевой адаптер для каждого хоста).

РЕДАКТИРОВАТЬ: Причина, по которой LACP обычно не рекомендуется для виртуализации, заключается в том, что он не выполняет то, что люди ожидают. Обычно они ожидают, что, разместив два сетевых адаптера на хосте и два сетевых адаптера в хранилище, они могут удвоить пропускную способность хранилища для одной виртуальной машины (или даже от нескольких виртуальных машин на одном хосте). Это не работает, но MPIO при правильной настройке работает. тем не мение, это явно не то, что вы пытаетесь сделать. Если я правильно прочитал ваш исходный вопрос, у вас есть две сетевые карты 1 Гбайт в ящике для хранения и одна сетевая карта 1 Гбайт в каждом из хостов XenServer (для хранения, по крайней мере - давайте пока проигнорируем другое сетевое подключение). Вы хотите, чтобы каждый из хостов мог одновременно насыщать свое соединение с ящиком для хранения. LACP на ящике для хранения - здесь как раз правильное решение (нет необходимости в LACP на хостах XenServer, поскольку у каждого из них есть только один сетевой адаптер).

Если вы действительно настаиваете на том, чтобы эта работа работала с MPIO, это можно сделать, но это будет ужасный грязный взлом. Вам в основном придется настроить каждый из хостов с фиктивной сетевой картой на Другой сеть хранения данных, затем скажите XenServer использовать два сетевых адаптера в конфигурации MPIO. XenCenter определенно не позволит вам настроить его таким образом, поэтому вам придется взломать его из командной строки. Я не собираюсь рассказывать вам, как это сделать, потому что это неправильно вещь которую нужно сделать. Он, скорее всего, сломается, когда вы внесете какие-либо изменения в конфигурацию, и почти наверняка сломается при обновлении XenServer.

Доверяйте сообществу: настройте LACP только для хранилища, и вы получите здесь то, что хотите. Если вам нужна аналогичная конфигурация, чтобы решить эту проблему, подумайте об этом как об установке сетевой карты 2 Гб в коробке FreeNAS. (Конечно, с учетом сказанного, другое решение - добавить сетевую карту 10 Гб в блок FreeNAS и подключить ее к порту 10 Гб на коммутаторе, к которому подключены хосты, но я предполагаю, что ваш коммутатор не есть порт 10 Гб.)

LACP

Связывание каналов происходит на уровне Ethernet (L2), а не на уровне IP (L3). Протокол LACP включает в себя хэш, который может быть хешем L2, или L3, или даже L4 (то есть смотреть на номера портов TCP / UDP), и этот хеш (по замыслу) предотвращает один сеанс, охватывающий более одного физического интерфейса. Таким образом, один сеанс iSCSI с одной целью через LACP в лучшем случае даст вам скорость только одного интерфейса.

MPIO

Можно открыть несколько сеансов между одним инициатором и одной целью на заданном IP-адресе, и если это происходит через связанное соединение LACP, есть причины, по которым вы можете захотеть. К сожалению, не все комбинации инициатора и цели поддерживают это. В моем тестировании с Citrix XenServer 6.2 (установщик, который можно бесплатно загрузить, а не какая-либо расширенная версия) я заметил, что при включении Multipath IO открывается ровно один сеанс для каждого IP-адреса, который он может найти. Таким образом, если вам нужно несколько путей, вам необходимо настроить несколько IP-адресов на нескольких интерфейсах.

В новых версиях Linux open-iscsi есть дополнительная функция, поэтому я предполагаю, что Xenserver также получит ее на каком-то этапе.