Як зламати ліміт iSCSI на 1 Гбіт між ESXi та VNXe


15

У мене виникають великі проблеми з моєю мережею iSCSI, і я не можу зробити так, щоб вона працювала так швидко, як тільки могла.

Тому я спробував майже все, щоб отримати повну продуктивність від мого SAN, залучивши фахівців VMware та EMC.

Короткий опис моєї передачі: 3x HP DL360 G7 / vSphere 5.5 / 4 вбудованих NIC / 4 PCIe Intel NIC для iSCSI 2x HP 2510-24G 1x EMC VNXe 3100/2 процесори зберігання, кожен з 2 iSCSI виділеними NIC / 24x 15k SAS RAID10 / 6x 7.2k SAS RAID6

Я пройшов кращі практики та рівномірно розмістив пули пам’яті на обох iSCSI-серверах. Я створив 2 сервери iSCSI, по одному на кожному процесорі зберігання даних. Перегляньте зображення для моєї конфігурації iSCSI.

Конфігурація iSCSI

iSCSI-трафік відокремлюється через VLAN (забороняйте встановлювати для інших VLAN), я навіть спробував його за допомогою іншого комутатора HP серії 29xx. Управління потоком увімкнено (також його вимкнено), Jumbo вимкнено. Маршрутизація не бере участь.

На хостах ESX використовуються всі NIC-коди iSCSI, оскільки я використовував налаштування «Round Robin» для кожної сховища даних. Я також спробував це з політикою зміни шляху 1 IO, оскільки так багато інших, здається, отримали продуктивність таким чином. Я також спробував внутрішні NIC (Broadcom), але різниці немає. На перемикачах я бачу, що порти використовуються дуже рівномірно, на стороні ESX та VNXe. У мене ідеальне врівноваження навантаження, ТАКЕ: Я не можу загалом пройти 1 Гбіт. Я розумію, що VNXe оптимізовано для декількох з'єднань, і Round Robin теж потребує цього, але навіть коли я роблю зберігання vMotion між 2 хостами та 2 сховищами даних (використовуючи різні сервери iSCSI), я можу бачити пряму лінію близько 84 Мбіт / s через веб-інтерфейс Unisphere. Я бачу цей рядок так часто з точно таким же значенням, що я не можу повірити, що мої диски не будуть t поставити більше, або завдання недостатньо вимогливі. Це стає ще краще: маючи лише один кабель на кожному хості та кожен процесор зберігання, я досягаю однакової продуктивності. Тож я отримав багато надмірності, але зовсім не зайвої швидкості.

Оскільки я бачив, як багато людей розмовляють про свою продуктивність iSCSI, я відчайдушно з'ясовував, що не так у моїй конфігурації (що було перевірено та перевірено кваліфікованими особами VMware та EMC). Я вдячний за кожну думку!

Редагувати:

Так, я налаштував vMotion використовувати декілька NIC. Крім того, що vMotion для зберігання завжди проходить через адаптери iSCSI, а не адаптери vMotion. Я додав скріншоти моєї конфігурації.

Прив’язка порту iSCSI

Напрямки iSCSI

Шляхи iSCSI

Я знаю, що vMotion для зберігання даних не є орієнтиром, проте мені довелося багато цього робити протягом останніх днів, і верхня межа завжди була на рівні близько 80 Мб / с. Пул 6x 15k 600 ГБ SAS дисків в RAID 10 повинен легко мати можливість набагато більше, ніж ви думаєте? Я зробив для вас тест IO Meter - спробував деякі з них, найшвидший - 256 KiB 100% Read. Я отримав 64,45 Мб / с - і моя Unisphere показує приблизно однакову швидкість. Це у віртуальному комп'ютері, який зберігається на пулі 6x 15k 300 ГБ диска SAS (RAID 10), який навряд чи проводить будь-яку іншу активність у цей час доби.

МО метр

Unisphere

EDIT2:

Вибачте за дублюючі імена користувачів, але я написав це питання на роботі, і воно не використовувало моє ім’я користувача, яке я вже отримав у Stock Overflow. Однак ось скріншот, що показує мої налаштування Round Robin. Це однаково у всіх господарів та всіх магазинах.

Кругової


Я не думаю, що щось не так. Що саме ви очікуєте? Ви налаштували multi-NIC vMotion?
ewwhite

3
Виконання vmotion для зберігання не є орієнтиром для систем зберігання, оскільки vmkernel обмежений у вводу / виводу та використанні процесора. Ви пробували тестування за допомогою іометра тощо? Які диски у VNXe та які налаштування пулу рейдів / сховищ?
pauska

Також ви можете опублікувати скріншот LUN "керувати шляхом" всередині vSphere?
pauska

Ви ввійшли з іншим користувачем, ніж ви раніше задавали питання, тому ваша редакція застрягла в черзі.
pauska

Дякую за скріншоти, але це все ще не те, про що я попросив. Клацніть на одному з ваших хостів esxi, на вкладці конфігурації, сховищах даних, виберіть сховище даних, яке ви хочете усунути, і натисніть посилання "Властивості" в нижньому правому куті. Потім натисніть на "керувати шляхами" та надішліть нам скріншот цього вікна.
pauska

Відповіді:


1

Цілком можливо, що ви не генеруєте достатньо IOPS для цього, щоб справді почати.
Подивіться тут, як змінити налаштування з 1'000 IOPS за замовчуванням на менше значення. (Це симетрична специфіка, але ви можете зробити те ж саме для постачальника VMWare Round Robin)

Однак я ще не впевнений, чи дійсно він може використовувати більше ніж одне посилання повністю паралельно лише одному сховищу даних. Я думаю, що вам доведеться паралельно зробити тест IOMeter у кількох сховищах даних, щоб побачити переваги. (Не впевнений на 100%)


Як зазначено в моєму запитанні, я вже встановив політику зміни шляху на 1 замість 1.000 - насправді не сильно змінився.
Райан Харді

Ааа, я, мабуть, не помітив цю частину, вибачте.
MichelZ

1

Створіть правило SATP для постачальника пам’яті з назвою EMC, встановіть політику шляху як Round Robine та IOPS з 1000 за замовчуванням. Це буде наполегливістю при перезавантаженнях і будь-коли, коли буде представлено нове EMC iSCSI LUN, це правило буде підібране. Щоб це застосовувалося до існуючих EMC iSCSI LUN, перезавантажте хост.

esxcli storage nmp satp rule add --satp="VMW_SATP_DEFAULT_AA" \
  --vendor="EMC" -P "VMW_PSP_RR" -O "iops=1"

Я розігрувався зі зміною IOPS між 1 - 3 і вважаю, що виконую найкраще в одному VM. Це означає, що якщо у вас багато віртуальних машин і багато сховищ даних, 1 може бути не оптимальним ...

Будьте впевнені, що для кожного інтерфейсу VNXe встановлено 9000 MTU. Також vSwitch з інтерфейсами iSCSI слід встановити на 9000 MTU разом із кожним VMKernel. На своєму VNXe створіть два сервери iSCSI - один для SPA та один для SPB. Пов’язати один IP для кожного спочатку. Потім перегляньте деталі для кожного iSCSI-сервера та додайте додаткові IP-адреси для кожного активного інтерфейсу на SP. Це дасть вам хорошу продуктивність, яку ви шукаєте.

Потім створюйте мінімум два сховища даних. Пов’яжіть один сховище даних з iSCSIServer-SPA і один з iSCSIServer-SPB. Це забезпечить, що один з ваших ІП не сидить там простою.

Нарешті, всі інтерфейси на стороні ESX, які використовуються для iSCSI, повинні переходити на окремий vSwitch з усіма активними інтерфейсами. Однак вам потрібен VMkernel для кожного інтерфейсу на стороні ESX в межах зазначеного vSwitch. Ви повинні перекрити порядок відмови vSwitch, щоб кожен VMKernel мав один активний адаптер, а всі інші - невикористані. Це мій сценарій розгортання, який я використовував для забезпечення хостів ESX. Кожен хост має 8 інтерфейсів, 4 для локальної мережі та 4 для iSCSI / VMotion трафіку.

  1. Виконайте конфігурацію нижче

а. # DNS esxcli network ip dns search add --domain = mydomain.net

esxcli мережа ip dns сервер add --server = XXXX

esxcli мережа ip dns сервер add --server = XXXX

б. # встановити оновлення імені хоста відповідно

Набір імен хоста esxcli --host = сервер1 --domain = mydomain.net

c. # додати посилання до vSwitch0 esxcli мережі vswitch стандартної висхідної лінії add --uplink-name = vmnic1 --vswitch-name = vSwitch0

esxcli мережа vswitch стандартна висхідна лінія add --uplink-name = vmnic4 --vswitch-name = vSwitch0

esxcli мережа vswitch стандартна висхідна лінія add --uplink-name = vmnic5 --vswitch-name = vSwitch0

г. # створити vSwitch1 для зберігання та встановити MTU на 9000

esxcli мережа vswitch стандартна добавка --vswitch-name = vSwitch1

мережа esxcli vswitch стандартний набір --vswitch-name = vSwitch1 --mtu = 9000

е. # додати посилання до vSwitch1

esxcli мережа vswitch стандартна висхідна лінія add --uplink-name = vmnic2 --vswitch-name = vSwitch1

esxcli мережа vswitch стандартна висхідна лінія add --uplink-name = vmnic3 --vswitch-name = vSwitch1

esxcli мережа vswitch стандартна висхідна лінія add --uplink-name = vmnic6 --vswitch-name = vSwitch1

esxcli мережа vswitch стандартна висхідна лінія add --uplink-name = vmnic7 --vswitch-name = vSwitch1

f. # встановити активний NIC для vSwitch0

мережа esxcli vswitch стандартний набір відмов політики --vswitch-name = vSwitch0 - active-uplinks = vmnic0, vmnic1, vmnic4, vmnic5

г. # встановити активний NIC для vSwitch1

мережа esxcli vswitch стандартний набір відмов політики --vswitch-name = vSwitch1 - active-uplinks = vmnic2, vmnic3, vmnic6, vmnic7

год. # створити групи портів для iSCSI та vmkernel для ESX01, а не ESX02

мережа esxcli vswitch стандартна група портів - addportport group-name = iSCSI-vmnic2 --vswitch-name = vSwitch1

Додаток інтерфейсу ix для інтерфейсу esxcli - інтерфейс-ім'я = vmk2 - імпортгрупи = ім'я iSCSI-vmnic2 --mtu = 9000

esxcli мережевий ip інтерфейс ipv4 набір - інтерфейс-ім'я = vmk2 --ipv4 = 192.158.50.152 --netmask = 255.255.255.0 --type = статичний

vim-cmd hostsvc / vmotion / vnic_set vmk2

мережа esxcli vswitch стандартна група портів - addportport group-name = iSCSI-vmnic3 --vswitch-name = vSwitch1

Додаток інтерфейсу ix для інтерфейсу esxcli - інтерфейс-ім'я = vmk3 - ім'яportgroup-name = iSCSI-vmnic3 --mtu = 9000

esxcli мережевий ip інтерфейс ipv4 set --interface-name = vmk3 --ipv4 = 192.158.50.153 --netmask = 255.255.255.0 --type = статичний

vim-cmd hostsvc / vmotion / vnic_set vmk3

мережа esxcli vswitch стандартна група портів - addportport group-name = iSCSI-vmnic6 --vswitch-name = vSwitch1

Додаток інтерфейсу ix для інтерфейсу esxcli - інтерфейс-ім'я = vmk6 - ім'я групи групи = iSCSI-vmnic6 --mtu = 9000

esxcli мережевий ip інтерфейс ipv4 набір - інтерфейс-ім'я = vmk6 --ipv4 = 192.158.50.156 --netmask = 255.255.255.0 --type = статичний

vim-cmd hostsvc / vmotion / vnic_set vmk6

мережа esxcli vswitch стандартна група портів - addportport group-name = iSCSI-vmnic7 --vswitch-name = vSwitch1

Додаток ip-інтерфейсу для мережі esxcli --interface-name = vmk7 --portport group-name = iSCSI-vmnic7 --mtu = 9000

esxcli мережевий ip-інтерфейс ipv4 set --interface-name = vmk7 --ipv4 = 192.158.50.157 --netmask = 255.255.255.0 --type = статичний

vim-cmd hostsvc / vmotion / vnic_set vmk7

i. # створити групи портів для iSCSI та vmkernel для ESX02, а не ESX01

мережа esxcli vswitch стандартна група портів - addportport group-name = iSCSI-vmnic2 --vswitch-name = vSwitch1

Додаток інтерфейсу ix для інтерфейсу esxcli - інтерфейс-ім'я = vmk2 - імпортгрупи = ім'я iSCSI-vmnic2 --mtu = 9000

esxcli мережевий ip інтерфейс ipv4 набір - інтерфейс-ім'я = vmk2 --ipv4 = 192.168.50.162 --netmask = 255.255.255.0 --type = статичний

vim-cmd hostsvc / vmotion / vnic_set vmk2

мережа esxcli vswitch стандартна група портів - addportport group-name = iSCSI-vmnic3 --vswitch-name = vSwitch1

Додаток інтерфейсу ix для інтерфейсу esxcli - інтерфейс-ім'я = vmk3 - ім'яportgroup-name = iSCSI-vmnic3 --mtu = 9000

esxcli мережевий ip інтерфейс ipv4 set --interface-name = vmk3 --ipv4 = 192.168.50.163 --netmask = 255.255.255.0 --type = статичний

vim-cmd hostsvc / vmotion / vnic_set vmk3

мережа esxcli vswitch стандартна група портів - addportport group-name = iSCSI-vmnic6 --vswitch-name = vSwitch1

Додаток інтерфейсу ix для інтерфейсу esxcli - інтерфейс-ім'я = vmk6 - ім'я групи групи = iSCSI-vmnic6 --mtu = 9000

esxcli мережевий ip інтерфейс ipv4 набір - інтерфейс-ім'я = vmk6 --ipv4 = 192.168.50.166 --netmask = 255.255.255.0 --type = статичний

vim-cmd hostsvc / vmotion / vnic_set vmk6

мережа esxcli vswitch стандартна група портів - addportport group-name = iSCSI-vmnic7 --vswitch-name = vSwitch1

Додаток ip-інтерфейсу для мережі esxcli --interface-name = vmk7 --portport group-name = iSCSI-vmnic7 --mtu = 9000

esxcli мережевий ip інтерфейс ipv4 набір - інтерфейс-ім'я = vmk7 --ipv4 = 192.168.50.167 --netmask = 255.255.255.0 --type = статичний

vim-cmd hostsvc / vmotion / vnic_set vmk7

j. # встановити активний NIC для кожного iSCSI vmkernel

мережа esxcli vswitch стандартний набір правил відмови порту --portgroup-name = iSCSI-vmnic2 - active-uplinks = vmnic2

мережа esxcli vswitch стандартний набір правил відмови порту --portgroup-name = iSCSI-vmnic3 - active-uplinks = vmnic3

мережа esxcli vswitch стандартний набір правил відмови порту --portgroup-name = iSCSI-vmnic6 - active-uplinks = vmnic6

мережа esxcli 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 Network" -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 / сховище даних / перейменування datastore1 local-$var

p. # Плагін типу "багатоканальний накопичувальний масив" #Define типу плагін для EMC VNXe 3300 та налаштування IOPS з круглим робіном від 1000 до 1

esxcli сховище nmp satp правило add --satp = "VMW_SATP_DEFAULT_AA" --vendor = "EMC" -P "VMW_PSP_RR" -O "iops = 1"

q. # оновлення мереж

оновлення брандмауера мережі esxcli

vim-cmd hostsvc / net / refresh

  1. Налаштування клієнта NTP за допомогою клієнта vSphere для кожного хоста

а. Конфігурація -> Конфігурація часу -> Властивості -> Опції -> Налаштування NTP -> Додати -> ntp.mydomain.net -> Установіть прапорець "Перезапустити службу NTP, щоб застосувати зміни" -> ОК -> зачекайте… -> Виберіть "Почати та зупинити з хостом" -> ОК -> Перевірити "Клієнт NTP увімкнено -> ОК

  1. Перезавантажити хост

  2. Продовжуйте роботу із забезпеченням зберігання даних EMC VNXe, поверніться до цього посібника після завершення

  3. Увійти до клієнта vSphere на хоста

  4. Оновіть кожний сховище даних до VMFS-5

а. Конфігурація -> Зберігання -> Виділення сховища даних -> Оновлення до VMFS-5


0

На жаль, я думаю, що з вашим налаштуванням нічого поганого. Ви просто не можете використовувати більше 1 Гбіт / с для одного ВМ.

Сенс у тому, що ви не хочете просто використовувати два (або більше) NIC, ви хочете використовувати їх одночасно в конфігурації типу RAID-0.

802.3ad, стандарт щодо агрегації на рівні зв’язку, і, як я думаю, ви налаштували на своїх комутаторах, зазвичай не може бути налаштований на смугу єдиного з'єднання через різні NIC. Це пов’язано з тим, як працює вибір інтерфейсу alg: він заснований на src та dst MAC та / або IP / портах, і одне з'єднання завжди матиме однакові MAC / IP / порти .

Це не означає, що ваша установка не може висувати більші числа (як tput, так і IOPS), але це поставило жорстке обмеження щодо того, наскільки продуктивність може отримати один VM. Спробуйте завантажити 2 або 4 екземпляри IOMeter на 2/4 різних віртуальних машин: Б'юсь об заклад, що агрегований tput буде набагато вищим, ніж одиничний показник VM, але жодна машина не перейде через ліміт 1 Гбіт / с.

Мости Linux та деякі комутатори високого класу підтримують різні способи агрегації посилань та дозволяють повному обсягу смугастих, агрегованих мережевих інтерфейсів. Однак це має нетривіальні наслідки щодо взаємодії інших комутаторів / систем з цими "нестандартними" методами агрегації.

У будь-якому випадку для мережі зберігання даних вам слід дійсно включити джомбові кадри, якщо вони підтримуються.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.