Сёння разбяром метрыкі дыскавай падсістэмы ў vSphere. Праблема са стороджем - самая частая прычына павольнай працы віртуальнай машыны. Калі ў выпадках з CPU і RAM траблшутинг сканчаецца на ўзроўні гіпервізара, то пры праблемах з дыскам, магчыма, давядзецца разбірацца з сеткай перадачы дадзеных і СХД.
Тэму буду разбіраць на прыкладзе блокавага доступу да СХД, хоць пры файлавым доступе лічыльнікі прыкладна тыя ж.
крыху тэорыі
Калі кажуць аб прадукцыйнасці дыскавай падсістэмы віртуальных машын, звычайна зважаюць на тры злучаных сябар з сябрам параметру:
- колькасць аперацый уводу/высновы (Input/Output Operations Per Second, IOPS);
- прапускную здольнасць (Throughput);
- затрымку аперацый уводу / высновы (Latency).
Колькасць IOPS звычайна важна для нагрузак адвольнага характару (random): доступ да блокаў на дыску, размешчаным у розных месцах. Прыкладам такой нагрузкі могуць паслужыць базы дадзеных, бізнэс-прыкладанні (ERP, CRM) і г.д.
Прапускная здольнасць важная для нагрузак паслядоўнага характару: доступ да блокаў, размешчаным сябар за сябрам. Напрыклад, такую нагрузку могуць генераваць файлавыя серверы (але не заўсёды) і сістэмы відэаназірання.
Прапускная здольнасць злучана з колькасцю аперацый уводу/высновы наступным чынам:
Throughput = IOPS * Block size, дзе Block size - гэта памер блока.
Памер блока з`яўляецца даволі важнай характарыстыкай. Сучасныя версіі ESXi прапускаюць блокі памерам да 32 КБ. Калі блок яшчэ больш, ён падзяляецца на некалькі. Не ўсе СХД могуць эфектыўна працаваць з такімі вялікімі блокамі, таму ў Advanced Settings ESXi ёсць параметр DiskMaxIOSize. З дапамогай яго можна паменшыць максімальны памер блока, прапускаемага гіпервізарам (падрабязней
Вялікі памер блока можа згубна адбівацца на прадукцыйнасці СГД. Нават калі колькасць IOPS і throughput адносна невялікія, пры вялікім памеры блока могуць назірацца высокія затрымкі. Таму зважайце на гэты параметр.
латэнтнасьць - Самы цікавы параметр прадукцыйнасці. Затрымка аперацый уводу/высновы для віртуальнай машыны складаецца з:
- затрымкі ўнутры гіпервізара (KAVG, Average Kernel MilliSec / Read);
- затрымкі, якую даюць сетку перадачы дадзеных і СХД (DAVG, Average Driver MilliSec/Command).
Агульная затрымка, якая бачная ў гасцявой АС (GAVG, Average Guest MilliSec / Command), - гэта сума KAVG і DAVG.
GAVG і DAVG вымяраюцца, а KAVG разлічваецца: GAVG-DAVG.
Спынімся падрабязней на KAVG. Пры нармальнай працы KAVG павінен імкнуцца да нуля ці, прынамсі, быць моцна менш, чым DAVG. Адзіны вядомы мне выпадак, калі KAVG чакана высокі, - абмежаванне па IOPS на дыску ВМ. У такім разе пры спробе перавышэння ліміту будзе расці KAVG.
Самай значнай складніку KAVG з'яўляецца QAVG - час у чарзе на апрацоўку ўнутры гіпервізара. Астатнія складнікі KAVG занядбана малыя.
Чарга ў драйверы дыскавага адаптара і чэргі да лунам мае фіксаваны памер. Для высоканагружаных асяроддзяў гэты памер бывае карысна павялічыць.
Але, зноў жа, спачатку азнаёмцеся з дакументацыяй ад вендара HBA і пратэстуйце змены на лабараторным стэндзе.
На памер чаргі да месяца можа ўплываць уключэнне механізму SIOC (Storage I/O Control). Ён забяспечвае раўнамерны доступ да месяца са боку ўсіх сервераў кластара за рахунак дынамічнай змены чаргі да месяца на серверах. Гэта значыць, калі на якім-небудзь з хастоў працуе ВМ, якая патрабуе непрапарцыйна шмат прадукцыйнасці (noisy neighbor VM), SIOC памяншае даўжыню чаргі да месяца на дадзеным хасце (DQLEN). Больш падрабязна
З KAVG разабраліся, зараз крыху пра DAVG. Тут усё проста: DAVG - гэта затрымка, якую ўносіць навакольнае асяроддзе (сетка перадачы дадзеных і СХД). У любой сучаснай і не вельмі СГД ёсць свае лічыльнікі прадукцыйнасці. Для аналізу праблем з DAVG мае сэнс глядзець на іх. Калі ж з боку ESXi і СХД усё нармальна, правярайце сетку перадачы дадзеных.
Каб не было праблем з прадукцыйнасцю, выбірайце правільную Path Selection Policy (PSP) для вашай СГД. Практычна ўсе сучасныя СХД падтрымліваюць PSP Round-Robin (з ALUA, Asymmetric Logical Unit Access, ці без). Дадзеная палітыка дазваляе выкарыстоўваць усе даступныя шляхі да СГД. У выпадку з ALUA выкарыстоўваюцца толькі шляхі да кантролера, які валодае месяцам. Не для ўсіх СГД на ESXi ёсць дэфолтныя правілы, якія ўсталёўваюць палітыку Round-Robin. Калі для вашага СХД правілы няма, выкарыстоўвайце плягін ад вытворцы СХД, які створыць адпаведнае правіла на ўсіх хастах кластара, або стварыце правіла самастойна. Падрабязнасці
Таксама частка вытворцаў СХД рэкамендуюць змяняць колькасць IOPS на шлях са стандартнага значэння 1000 на 1. У нашай практыцы гэта дазваляла "выціснуць" з СХД больш прадукцыйнасці і значна скараціць час, які патрабуецца на failover у выпадку выхаду са строю або абнаўлення кантролераў. Зверцеся з рэкамендацыямі вендара, і калі супрацьпаказанняў няма, то паспрабуйце змяніць дадзены параметр. Падрабязнасці
Асноўныя лічыльнікі прадукцыйнасці дыскавай падсістэмы віртуальнай машыны
Лічыльнікі прадукцыйнасці дыскавай падсістэмы ў vCenter сабраны ў раздзелах Datastore, Disk, Virtual Disk:
У раздзеле Крама дадзеных знаходзяцца метрыкі па дыскавых сховішчах vSphere (датастарам), на якіх ляжаць дыскі ВМ. Тут вы знойдзеце стандартныя лічыльнікі па:
- IOPS'ам (Average read/write requests per second),
- прапускной здольнасці (Read/Write rate),
- затрымкам (Read/Write/Highest latency).
З назваў лічыльнікаў у прынцыпе ўсё зразумела. Яшчэ раз звярну ўвагу, што тут статыстыка не па канкрэтнай ВМ (ці дыску ВМ), а агульная па ўсім датастары. На мой погляд, дадзеную статыстыку зручней глядзець у ESXTOP, хаця б зыходзячы з таго, што мінімальны перыяд вымярэння там 2 секунды.
У раздзеле Дыск знаходзяцца метрыкі па блокавых прыладах, якія выкарыстоўваюцца ВМ. Тут ёсць лічыльнікі па IOPS тыпу summation (колькасць аперацый уводу/высновы за перыяд вымярэння) і некалькі лічыльнікаў, якія адносяцца да блокавага доступу (Commands aborted, Bus resets). Дадзеную інфармацыю, на мой погляд, таксама зручней глядзець у ESXTOP.
Раздзел Віртуальны дыск - Самы карысны з пункту гледжання пошуку праблем прадукцыйнасці дыскавай падсістэмы ВМ. Тут можна паглядзець прадукцыйнасць па кожным віртуальным дыску. Менавіта гэтая інфармацыя патрэбная, каб зразумець, ці ёсць праблема ў канкрэтнай віртуальнай машыны. Апроч стандартных лічыльнікаў колькасці аперацый уводу/высновы, аб'ёму чытання/запісы і затрымак, у дадзеным падзеле прысутнічаюць карысныя лічыльнікі, якія паказваюць памер блока: Read/Write request size.
На малюнку ніжэй графік прадукцыйнасці дыска ВМ, на якім можна ўбачыць колькасць IOPS, затрымкі і памер блока.
Таксама метрыкі прадукцыйнасці можна паглядзець па ўсім датастары, калі ўключаны SIOC. Тут прадстаўлена базавая інфармацыя па сярэдняй Latency і IOPS'ам. Па змаўчанні дадзеную інфармацыю можна паглядзець толькі ў рэальным часе.
ESXTOP
У ESXTOP некалькі экранаў, на якіх прадстаўлена інфармацыя па дыскавай падсістэме хаста ў цэлым, асобным віртуальным машынам і іх дыскам.
Пачнём з інфармацыі па віртуальных машынах. Экран "Disk VM" выклікаецца клавішай "v":
NVDISK - Гэта колькасць дыскаў ВМ. Каб паглядзець інфармацыю па кожным дыску, націсніце "e" і ўвядзіце GID цікавай для ВМ.
Значэнне астатніх параметраў на дадзеным экране зразумела з іх назваў.
Яшчэ адзін карысны пры пошуку праблем экран - Disk adapter. Выклікаецца клавішай “d” (на малюнку ніжэй выбраны палі A,B,C,D,E,G):
NPTH - колькасць шляхоў да месяцаў, якія бачныя з дадзенага адаптара. Каб атрымаць інфармацыю па кожным шляху на адаптары, націсніце "e" і ўвядзіце назву адаптара:
AQLEN - максімальны памер чаргі на адаптары.
Таксама на гэтым экране прадстаўлены лічыльнікі затрымак, пра якія я расказваў вышэй: KAVG/cmd, GAVG/cmd, DAVG/cmd, QAVG/cmd.
На экране Disk device, які выклікаецца клавішай "u", прадстаўлена інфармацыя па асобных блокавых прыладах - месяцам (на малюнку ніжэй абраныя палі A, B, F, G, I). Тут можна ўбачыць стан чаргі да месяцаў.
DQLEN – памер чаргі для блокавай прылады.
ACTV – колькасць каманд уводу/высновы ў ядры ESXi.
QUED – колькасць каманд уводу/высновы ў чарзе.
%USD - ACTV / DQLEN × 100%.
Нагрузка - (ACTV + QUED) / DQLEN.
Калі %USD высокі, варта разгледзець магчымасць павелічэння чаргі. Чым больш каманд у чарзе, тым вышэй QAVG і, адпаведна, KAVG.
Таксама на экране Disk device можна паглядзець, ці працуе на СХД VAAI (vStorage API for Array Integration). Для гэтага трэба абраць палі A і O.
Механізм VAAI дазваляе перанесці частку працы з гіпервізара непасрэдна на СХД, напрыклад, зануленне, капіраванне блокаў ці блакаванні.
Як відаць на малюнку вышэй, на дадзенай СХД VAAI працуе: актыўна выкарыстоўваюцца прымітывы Zero і ATS.
Парады па аптымізацыі працы з дыскавай падсістэмай на ESXi
- Зважайце на памер блока.
- Усталёўвайце аптымальны памер чаргі на HBA.
- Не забывайце ўключаць SIOC на датастарах.
- Выбірайце PSP у адпаведнасці з рэкамендацыямі вытворцы СХД.
- Пераканайцеся, што VAAI працуе.
Карысныя артыкулы па тэме:
Крыніца: habr.com