NetApp ONTAP & ESXi 6.х tuning

В продовження теми про оптимізацію ESXi хоста для взаємодії з СГД NetApp ONTAP, ця стаття буде просвічена оптимізації продуктивності VMWare ESXi 6.X, попередні статті були присвячені тюнінгу ОС Linux, Windows і VMware ESXi 5.X в середовищі SAN. Компанія NetApp давно тісно співпрацює з VMware, підтвердженням цього може стати той факт, що гучна технологія vVOL була реалізована однією з перших ще в релізі Clustered Data ONTAP 8.2.1 (Серпень 2014), в той час як vSphere 6.0 ще навіть не був випущений. Компанія NetApp першою оголосила підтримку vVol c NFS (Можливо NetApp раніше тут єдиний, не слідкую). У зв'язку з чим системи зберігання ONTAP вкрай популярні в цьому оточенні.
Ця стаття буде корисна власникам систем зберігання з ONTAP, а частину про Disk Alignment буде корисна не тільки власникам NetApp'а.

Установки VMWare ESXi 6.X можна розділити на наступні частини:

  • Оптимізація гіпервізора
  • Оптимізація гостьовий ОС (GOS)
  • Оптимальні налаштування SAN (FC/Fco iSCSI)
  • Налаштування NAS (NFS)
  • Перевірка сумісності обладнання, прошивок і

Для пошуку вузького місця зазвичай виконують методику послідовного виключення. Пропоную насамперед почати з СГД. А далі рухатися СГД -> Мережа (Ethernet / FC) -> Хост ( Windows / Linux / VMware ESXi ) -> Додаток.

Є кілька основних документів, на які необхідно спиратися при налаштуванні VMware + NetApp:

How to configure VMware vSphere 6.x on ONTAP 8.x
Virtual Storage Console 6.0 for VMware vSphere Installation
TR-4128: vSphere 6 on NetApp MetroCluster 8.3

Hypervisor


Віддавати гостьовий ОС всі ресурси сервера не варто, по-перше гіпервізору потрібно залишити мінімум 4ГБ ОЗП, по-друге іноді спостерігається зворотний ефект при додаванні ресурсів гостьовий ОС, це потрібно підбирати емпіричним шляхом.

SWAP

Цей розділ винесено окремий пост.

Гостьові ОС


Тюнінг налаштувань потрібен для двох цілей:
  • Оптимізація швидкості роботи гостьових ОС
  • Нормальна робота HA парі, при відмові одного контролера (takeover) і відновлення його роботи (giveback)


Disk alignment

Для оптимізації продуктивності, можливо, буде потрібно усунути disk misalignment. Misalignment можна отримати у двох випадках:
  1. з-за неправильно обраної геометрії місяць при його створенні в СГД. Таку помилку можна створити тільки в SAN оточенні
  2. віртуальних дисків віртуальних машин. Може бути, як в SAN так і в NAS оточенні


Давайте розберемо ці випадки
Повністю вирівняні блоки на VMFS датастореДля початку розглянемо повністю вирівняні блоки по кордонах VMFS датастора і сховища.


Перший випадок — Misalignment з VMFSПерший випадок — це коли є misalignment VMFS датастора щодо сховища. Для усунення першого типу проблеми необхідно створити лун з правильною геометрією і перемістити туди віртуальні машини.


Другий випадок — зміщення всередині гостьової ОСДругу ситуацію, зі зміщеними розділами файлової системи всередині гостьовий ОС щодо файлової структури WAFL можна отримати в старих дистрибутивах Linux і ОС Windows 2003 і старіше. Так як проблема «всередині віртуальної машини», вона може спостерігатися як на NFS так і на VMFS датасторах, а також в RDM і vVOL. Як правило це пов'язано з оптимальним розміщенням таблиці розділів MBR або з машинами, які були конвертовані з фізичних у віртуальні. Перевірити це можна в гостьових ОС Windows за допомогою утиліти dmdiag.exe -v (значення поля Rel Sec має бути кратно 4KB на WAFL). Детальніше про діагностиці misalignment для Windows машин. Докладніше як усувати такі ситуації описано в TR-3747 Best Practices for File System Alignment in Virtual Environments.


Misalignment на двох рівняхНу і звичайно ж можна отримати misalignment відразу на двох рівнях: як на рівні VMFS датастора, так і на рівні файлової системи гостьовий ОС. Детальніше про пошуку misalignment з боку сховища ONTAP.


В ново створеної VMFS5 (не апгрейд з VMFS3) блок має розмір 1MB з суб-блоками 8KB.


takeover/giveback

Для відпрацювання при takeover/giveback HA парі, необхідно настроїти правильні таймаут гостьових ОС. Для дискових FAS систем цей час 60 секунд, а для All Flash FAS (AFF) це 2-15 секунд. Так як в кластері можуть перебувати СГД різних моделей, дискові, гібридні і AFF системи, а дані можуть мігрувати між цими системами, рекомендується використовувати найгірше значення таймаутів (у дискових систем), а саме 60 секунд:
ОС Updated Guest OS Tuning for SAN: ESXi 5 та вище, або ONTAP 8.1 і новіше (SAN)
Windows disk timeout = 60
Linux disk timeout = 60
Solaris disk timeout = 60; busy retry = 300; not ready retry = 300; reset retry = 30; max. throttle = 32; min. throttle = 8; corrected VID/PID specification
Дефолтні значення ОС у разі використання NFS задовільні, і налаштування для гостьових ОС не потрібно змінювати.

Встановлюються ці значення вручну або за допомогою скриптів доступних у складі VSC:
WindowsВстановити значення затримки доступу до диска 60 сек за допомогою реєстру (задається в секундах, у шістнадцятковій формі).
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Disk]
"TimeOutValue"=dword:0000003c


LinuxВстановити значення затримки доступу до диска 60 сек за допомогою створення udev правила (задається в секундах, у шістнадцятковій формі).
DRIVERS=="sd", SYSFS{TYPE}=="0/7/14", RUN+="/bin/sh -c 'echo 60 > /sys$$DEVPATH/timeout'"
(Linux дистрибутиви можуть мати різне розташування встановлення правил udev). VMware Tools для гостьової Linux ОС автоматично встановлює udev правило зі значенням затримки для віртуального диска дорівнює 180 секунд. Ви можете запустити команду grep для VMware» vendor ID в папці з правилами udev щоб знайти скрипт, який встановлює значення і змінити його при необхідності. Не забудьте перевірити це значення.

SolarisВстановити значення 60 сек затримки (задається в секундах, у шістнадцятковій формі) для диска можна у файлі /etc/system
set sd:sd_io_time=0x3c

Додаткові налаштування можуть бути внесені в файл /kernel/drv/sd.conf:
Solaris 10.0 GA — Solaris 10u6:

sd-config-list="NETAPP LUN","netapp-sd-config",
"VMware Virtual","netapp-sd-config";
netapp-sd-config=1,0x9c01,32,0,0,0,0,0,0,0,0,0,300,300,30,0,0,8,0,0;


Solaris 10u7 і новіше і Solaris 11

sd-config-list= "NETAPP LUN","physical-block-size:4096,retries-busy:300,retries-timeout:16,retries-notready:300,retries-reset:30,throttle-max:32,throttle-min:8",
"VMware Virtual","physical-block-size:4096,retries-busy:300,retries-timeout:16,retries-notready:300,retries-reset:30,throttle-max:32,throttle-min:8";

Зверніть увагу: на два пробіли між vendor ID NETAPP і ID LUN, також, як і між словами «VMware» і «Virtual» в конфіги вище.


Налаштування FC/Fco Switch Zoning


Докладніше про рекомендації зонування NetApp в картинках.

ALUA

Для ONTAP 8.X і 9.X ALUA завжди включений для всіх блокових протоколів: iSCSI/FC/Fco.
Якщо хост правильно визначив ALUA Storage Type Array plug-in буде відображати VMW_SATP_ALUA. Для ALUA, дозволяється до використання алгоритм Most Recently Used або Round Robin — будь-який.


Round Robin буде більш продуктивніше шляхів якщо більше ніж один до контролера. У разі використання Microsoft Cluster + RDM дисків до застосування рекомендований механізм балансування Most Recently Used.

Нижче таблиця рекомендованих настройок балансування навантаження. Детальніше про логіці роботи NetApp ONTAP, ALUA і балансування навантаження для блокових протоколів.
Mode ALUA Protocol Політика ESXi
Балансування шляхів ESXi
ONTAP 9.x / 8.x (Clustered) Enabled FC/Fco/iSCSI VMW_SATP_ALUA Most Recently Used
ONTAP 9.x / 8.x (Clustered) Enabled FC/Fco/iSCSI VMW_SATP_ALUA Round Robin
Перевіримо применившуюся політику до перевіряється місяць/датастору

~ # esxcli storage nmp device list
naa.60a980004434766d452445797451376b
Display Device Name: NETAPP Fibre Channel Disk (naa.60a980004434766d452445797451376b)
Storage Type Array: VMW_SATP_ALUA
Storage Type Array Device Config: {implicit_support=on;explicit_support=off; explicit_allow=on;alua_followover=on;{TPG_id=1,TPG_state=ANO}{TPG_id=0,TPG_state=AO}}
Path Selection Policy: VMW_PSP_RR
Path Selection Policy Device Config: {policy=rr,iops=1000,bytes=10485760,useANO=0; lastPathIndex=0: NumIOsPending=0,numBytesPending=0}
Path Selection Policy Device Custom Config: 
Working Paths: vmhba2:C0:T6:L119, vmhba1:C0:T7:L119
Is Local SAS Device: false
Is USB: false
Is USB Boot Device: false



Налаштування ESXi хоста


Для оптимальної роботи ESXi хоста необхідно встановити рекомендовані для нього параметри.

Параметр Протокол(и) ESXi 6.x з DataONTAP 8.x ESXi 6.x з DataONTAP 9.x
Net.TcpipHeapSize iSCSI/NFS 32
Net.TcpipHeapMax iSCSI/NFS 512
NFS.MaxVolumes NFS 256
NFS41.MaxVolumes NFS 4.1 256
NFS.HeartbeatMaxFailures NFS 10
NFS.HeartbeatFrequency NFS 12
NFS.HeartbeatTimeout NFS 5
NFS.MaxQueueDepth NFS 64
Disk.QFullSampleSize iSCSI/FC/Fco 32
Disk.QFullThreshold iSCSI/FC/Fco 8
Є кілька способів це зробити:

  • Використовуючи Command Line Interface (CLI) на ESXi 6.x хостах.
  • Використовуючи vSphere Client/vCenter Server.
  • Використовуючи Remote CLI tool від VMware.
  • Використовуючи VMware Management Appliance (VMA).
  • Застосовуючи Host Profile розгортаючи його з вже налаштованого ESXi 6.x на інші хости.


Приклад налаштування додаткових параметрів з ESX 6.x CLIУтиліта esxcfg-advcfg використовувана в цих прикладах розташовується в /usr/sbin папці для ESXi хоста.

#Для протоколів iSCSI/NFS
#esxcfg-advcfg -s 32 /Net/TcpipHeapSize
#esxcfg-advcfg -s 512 /Net/TcpipHeapMax

#Для протоколу NFS
#esxcfg-advcfg -s 256 /NFS/MaxVolumes
#esxcfg-advcfg -s 10 /NFS/HeartbeatMaxFailures
#esxcfg-advcfg -s 12 /NFS/HeartbeatFrequency
#esxcfg-advcfg -s 5 /NFS/HeartbeatTimeout
#esxcfg-advcfg -s 64 /NFS/MaxQueueDepth

#Для протоколу NFS v4.1
#esxcfg-advcfg -s 256 /NFS41/MaxVolumes

#Для протоколів iSCSI/FC/Fco
#esxcfg-advcfg -s 32 /Disk/QFullSampleSize
#esxcfg-advcfg -s 8 /Disk/QFullThreshold


Перевіряємо розширені налаштування з ESX 6.x CLI

#Для протоколів iSCSI/NFS
#esxcfg-advcfg -g /Net/TcpipHeapSize
#esxcfg-advcfg -g /Net/TcpipHeapMax

#Для протоколу NFS
#esxcfg-advcfg -g /NFS/MaxVolumes
#esxcfg-advcfg -g /NFS/HeartbeatMaxFailures
#esxcfg-advcfg -g /NFS/HeartbeatFrequency
#esxcfg-advcfg -g /NFS/HeartbeatTimeout
#esxcfg-advcfg -g /NFS/MaxQueueDepth

#Для протоколу NFS v4.1
#esxcfg-advcfg -g /NFS41/MaxVolumes

#Для протоколів iSCSI/FC/Fco
#esxcfg-advcfg -g /Disk/QFullSampleSize
#esxcfg-advcfg -g /Disk/QFullThreshold


HBA

NetApp як правило рекомендує використовувати для ONTAP систем з хостом ESXi «значення за замовчуванням» для HBA, що встановлюються виробником адаптера. Якщо вони були змінені, необхідно їх повернення до заводських налаштувань. Перевірте відповідні кращі практики. Наприклад, якщо мова про віртуалізації DB2 в середовищі VMware на NetApp, то рекомендується (дивись стор 21) збільшити довжину черги до 64 на ESXi (як це зробити написано в Vmware KB 1267).
Приклад налаштування HBA Qlogic на ESXi

# подивитися драйвер для Qlogic на ESXi 5.5 і 6.0
# esxcli module system list | grep qln

# Встановити значення для Qlogic на ESXi 5.5 і 6.0
# esxcli system module set parameters -p qlfxmaxqdepth=64 -m qlnativefc



VSC

Плагін NetApp VSC (є безкоштовним ), встановлює рекомендовані налаштування на ESXi хості HBA адаптер: чергу, затримки та інші. Сам плагін інтегрується в vCenter. Економить час і усуває під час тесту людський фактор при налаштуванні параметрів на ESXi хості для більш ефективної роботи з NetApp. Дозволяє виконувати базові операції для управління сховищем з vCenter, необхідні адміністратору віртуалізованих середовищ. Права доступу до сховища за допомогою VSC можуть бути гнучко налаштовані для декількох користувачів за допомогою RBAC. VSC є обов'язковим для налаштування vVOL.
Доступна версія плагіна веб-клієнта. Підтримується версія 6 і більш нові.


Ethernet


Jumbo frames

У разі використання iSCSI вкрай рекомендується використовувати Jumbo Frames в Ethernet зі швидкістю вище або дорівнює 1Gb. Докладніше в статті про Ethernet з NetApp ONTAP. Не забувайте також про рекомендації VMware налаштуванням LACP, Port-channel, Spanning Tree, PortFast, Flowcontrol.

ESXi & MTU9000

Не забудьте створити правильний мережевий адаптер — VMware рекомендує використовувати VMXNEЕ3. Починаючи з версії ESXi 5.0 VMXNET3 підтримує Jumbo Frames. Мережевий адаптер E1000e підтримує швидкість 1GB мереж і MTU 9000 — він встановлюється для всіх створюваних VM за замовчуванням (крім Linux). Стандартний віртуальний мережевий адаптер типу «Flexible» підтримує MTU 1500. Подробнее.


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


NAS і VAAI


Системи ONTAP підтримують примітиви VMware VAAI сгружая частину рутинних завдань по управлінню даними на датасторе з хоста на сховище, де це більш логічно виконувати. SAN оточенні з ESXi 4.1+ і вище з системами ONTAP 8.0 і вище VAAI автоматично підтримується і не вимагає яких-небудь маніпуляцій. Для NAS оточення компанія NetApp випустила плагін, який дозволяє виконувати подібну оптимізацію для протоколу NFS. Це вимагає установки модуля ядра NetAppNFSVAAI для кожного ESXi хоста. VSC може виконати установку NFS VAAI плагіна автоматично з vCenter. Щоб він функціонував необхідно правильно налаштувати NFS кулі для VAAI, для чого потрібно задовольняти кілька вимог:
  • Налаштувати доступ ESXi сервера (RO, RW і Superuser повинні бути в змозі SYS або ANY, і повинні бути активований доступ по протоколах NFS3 І NFS4). Навіть якщо NFS4 не буде використовуватися, він повинен бути в списку доступу.
  • Всі батьківські вольюмы в junction path повинні дозволяти root read доступ і NFSv4 доступ. У більшості випадків це означає, що root volume для Virtual Storage Server (Vserver) мінімально повинен мати налаштування superuser встановлену значення SYS для відповідного клієнта, який буде використовувати VAAI доступ до одного з вкладених вольюмов. Рекомендується заборонити доступ на запис безпосередньо в Vserver root вольюм.
  • Необхідно включити підтримку vStorage на вольюме.
Приклад налаштування VAAI на ONTAP

cm3240c-rtp::> export-policy rule show -vserver vmware -policyname vmware_access -ruleindex 2
(vserver export-policy rule show)

Vserver: vmware
Policy Name: vmware_access
Rule Index: 1
Access Protocol: nfs3 <---- needs to be 'nfs' or 'nfs3,nfs4'
Client Match Spec: 192.168.1.7
RO Access Rule: sys
RW Access Rule: sys
User ID To Which Anonymous Users Are Mapped: 65534
Superuser Security Flavors: sys
Honor Користувача Bits In SETATTR: true



cm3240c-rtp::> export-policy rule show -vserver vmware -policyname root_policy -ruleindex 1
(vserver export-policy rule show)

Vserver: vmware
Policy Name: root_policy
Rule Index: 1
Access Protocol: nfs <--- like requirement 1, set to nfs or nfs3,nfs4
Client Match Spec: 192.168.1.5
RO Access Rule: sys
RW Access Rule: never <--- this can never be for security reasons
User ID To Which Anonymous Users Are Mapped: 65534
Superuser Security Flavors: sys <--- this is required for VAAI to be set, even in the parent volumes like vsroot
Honor Користувача Bits In SETATTR: true
Allow Creation of Devices: true



cm3240c-rtp::> nfs modify -vserver vmware -vstorage enabled



VASA

VASA — це безкоштовне яке дозволяє vCenter через API дізнаватися про можливості сховища і більш розумно використовувати їх. VASA інтегрується в VSC і дозволяє через GUI інтерфейс створювати профілі датасторов з певними можливостями сховища (наприклад наявність/відсутність Thing Provitioning, тип диска: SAS/SATA/SSD, наявність кеша другого рівня і т.д.) і включати повідомлення по досягненню певного рівня (наприклад зайняте простір або навантаження). Починаючи з версії 6.0 VASA є обов'язковим компонентом VSC є важливою (обов'язковою) частиною парадигми VMware vVOL.

Space Reservation — UNMAP
Починаючи з ESXi 5.0 підтримується повернення вивільнених блоків з тонкого місяць (датастора) тому, сховища. У версіях ESXi 5.X/6.0 VMFS необхідний ручний запуск для повернення простору, для ESXi 6.X з vVOL працює автоматично, а починаючи з версії 6.5 працює автоматично (із затримкою) на VMFS-6 датасторах. На стороні ONTAP цей функціонал завжди за замовчуванням вимкнено, для його включення необхідно виконати кілька не складних команд на СГД.

vVOL
Ця тема заслуговує особливої уваги і винесена в окрему статтю.

Сумісність


Широко застосовуйте матрицю сумісності у вашій практиці для зменшення потенційних проблем в инфрастурктуре ЦОД. Для траблшутинга звертайтеся в KB NetApp і VMware.

Впевнений, що з часом мені буде що додати цю статтю з оптимізації ESXi хоста, так що заглядайте сюди час від часу.

Висновки

Правильні налаштування для середовища віртуалізації VMWare дозволять не тільки підвищити продуктивність вашої інфраструктури, але й підвищити її відмовостійкість. Обов'язково дотримуйтесь рекомендацій VMware і NetApp при початковому запуску вашої інфраструктури. Під час запуску обов'язково створіть план тестування складається як з навантажувального тестування, так і тестування відмовостійкості, для того щоб усунути можливі помилки конфігурації і мати уявлення про можливості і поведінці вашої інфраструктури в режимі нормальної роботи, і роботи при збоях.

Тут можуть міститися посилання на Habra-статті, які будуть опубліковані пізніше.
Повідомлення щодо помилок у тексті прошу направляти в ЛС.
Зауваження і доповнення навпроти прошу в коментаріДжерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.