iSCSI Multipathing

А теперь пару слов про iSCSI multipathing для программного инициатора.

Во-первых,  у одной системы хранения  iSCSI  может быть (и обычно бывает) несколько  контроллеров, каждый  со своим IP-адресом. Надо  добавить их все, и ESX(i) сам разберется,  что эти несколько  таргетов показывают на самом деле на одни и те же LUN.

Во-вторых,  ESX(i) может использовать multipathing между своими контроллерами.  А раз речь идет про Ethernet (поверх  которого  передается  iSCSI),  эти контроллеры будут сетевыми.

Но есть один нюанс.

Программный инициатор iSCSI  – это служба.  Для  доступа  в сеть она  использует  виртуальные сетевые  интерфейсы VMkernel.  Эти  интерфейсы  под-

ключены к вКоммутаторам,  а к тем подключены несколько физических сетевых контроллеров.

Рассмотрим два варианта:

1.    На вКоммутаторе несколько каналов во внешнюю сеть, но только один интерфейс VMkernel.

2.    На вКоммутаторе несколько каналов во внешнюю сеть и несколько интерфейсов VMkernel  (рис. 3.21).

Рис. 3.21. Настройки сети для multipathing в случае программного инициатора iSCSI

В первом случае multipathing может быть обеспечен только на уровне виртуального коммутатора.  Но в силу логики работы алгоритмов балансировки нагрузки далеко не всегда трафик  iSCSI  будет балансироваться оптимальным образом. Даже если вКоммутатор  настроен на балансировку нагрузки  по хэшу IP, то через разные  физические сетевые контроллеры будет пересылаться трафик  к разным IP-адресам системы хранения. Более тонкого разделения проводиться не будет.

А вот во втором  случае  трафик  iSCSI  наверняка сможет  задействовать несколько каналов  во внешнюю сеть за счет того, что балансировать нагрузку  сможет storage стек VMkernel  между интерфейсами VMkernel. Последним  шагом будет ассоциировать каждый интерфейс VMkernel  с каким-то  одним физическим сетевым интерфейсом – чтобы балансировка между виртуальными интерфейсами VMkernel  означала  и балансировку между физическими сетевыми контроллерами. В таком случае через разные контроллеры могут быть установлены соединения при обращении на разные LUN, не только на разные контроллеры СХД.

Для организации такой конфигурации multipathing нам необходимо на вКоммутатор назначить несколько физических интерфейсов и создать на нем же столько же портов  VMkernel  (напомню,  что на рис. 3.21 приведен пример  описанной  мной конфигурации). Затем  следует сопоставить  их один к одному, то есть для каждого порта VMkernel указать свой vmnic как единственный активный.

Для осуществления этого зайдите в свойства  виртуального коммутатора,  выберите группу портов с первым из интерфейсов VMkernel и нажмите Edit. Заклад-

ка NIC Teaming ? флажок  Override vSwitch failover order ? все vmnic, кроме

одного выбранного, перенесите в группу Unused Adapters (рис. 3.22).

Повторите этот шаг для каждого интерфейса VMkernel,  выбирая каждый раз следующий vmnic.

Рис. 3.22. Настройка NIC Teaming для портов VMkernel, используемых инициатором iSCSI

Теперь необходимо выполнить настройку  из командной  строки через vShepre CLI:

esxcli swiscsi nic  add -n  <port_name> -d  <vmhba>

Повторите для каждого интерфейса vmk#.

Эта настройка  привязывает интерфейс VMkernel  к программному инициатору iSCSI. После завершения настройки подключения к системе хранения iSCSI вы увидите несколько путей к каждому LUN. Те пути, что отличаются  каналом (C#), идут через разные vmk# (и, как следствие, через разные vmnic).

Для моего примера это будут две команды:

esxcli swiscsi nic  add -n  vmk1  -d  vmhba33 esxcli swiscsi nic  add -n  vmk3  -d  vmhba33

Обратите внимание. Эта команда не отработает, если есть используемые в данный момент пути через эти интерфейсы VMkernel. Таким образом, лучшего все эти настройки делать перед тем, как настраивать Discovery и подключаться к iSCSI СХД.

Проверить,  какие vmknic назначены  для iSCSI-инициатора, можно командой

esxcli swiscsi nic  list –adapter vmhba33

Следующий нюанс – система  хранения  iSCSI  может по-разному адресовать LUN.  Вспомним  физический адрес  LUN,  путь  к нему  вида  vmhba#:C#:T#:L#. Какие-то  системы  хранения  могут презентованные LUN показывать  как разные LUN одного таргета или как разные LUN разных таргетов. То есть мы увидим пути вида:

Q  vmhba33:C0:T0:L0;

Q  vmhba33:C0:T0:L1;

Q  vmhba33:C0:T0:L2.

Или:

Q  vmhba33:C0:T0:L0;

Q  vmhba33:C0:T1:L0;

Q  vmhba33:C0:T2:L0.

Программный iSCSI-инициатор ESX(i)  устанавливает одно  соединение  на таргет. Таким образом, в первом случае, когда сервер работает с одним таргетом и тремя LUN на нем, весь трафик iSCSI пойдет через один внешний интерфейс.  Во втором случае, когда три LUN подключены  через три таргета, – через несколько. С точки зрения производительности, второй вариант может быть интереснее.

Последний шаг – задать настройку политики multipathing. C модулем multipa thing по умолчанию  вам доступны политики Fixed, Most Recently Used и Round Robin (их описание доступно в разделе 3.4.1). Обязательно читайте документацию вашей системы хранения  и следуйте ее рекомендациям.

Источник: Михеев М. О.  Администрирование VMware vSphere 4.1. – М.: ДМК Пресс, 2011. – 448 с.: ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий