2. Pluggable Storage Architecture
• MultiPathing Plugin
• По умолчанию VMware NMP (Native MultiPathing)
• SATP – Storage Array Type Plugin
• Отказы и переключения путей
• PSP – Path Selection Plugin
• Балансировка нагрузки и выбор пути для IO
3. Роли и команды PSA
• PSA обнаруживает доступные хосту ресурсы хранения
• Присваивает правила MPP для управления ресурсом
• Для просмотра всех плагинов PSA
• esxcli storage core plugin list
4. PSA - MPP
• NMP/MPP исполняет функции
• MPP определяет физический путь до устройства для SATP
• NMP имеет собственный набор правил для ассоциации SATP с
PSP
• Экспортирует логическое устройство по физическому пути для
PSP
• Для просмотра всех устройств с соотв. PSP/SATP
• esxcli storage nmp device list
5. PSA - SATP
• Наблюдает за состоянием путей до физ. системы
• Объявляет пути в состояние failed/down
• Управляет переключением физ. путей после сбоя
• vSphere включает в себе SATP под некоторое количество
распространенных СХД, и несколько универсальных
вариантов active-active/active-passive
6. PSA - SATP
• Для просмотра всех загруженных SATP и ассоциированных
PSP
• esxcli storage nmp satp list
• Для изменения PSP по умолчанию для определенного
SATP
• esxcli storage nmp satp set –b <boottime> -P <Default PSP> -s
<SATP>
7. PSA - PSP
• Особенности и ответственность PSP
• Выбор пути для отправки IO запроса (далее просто IO)
• Отличается от SATP тем, что является механизмом
балансировки нагрузки и работает только с активными
путями
• vSphere использует три плагина по умолчанию:
• Fixed
• Most Recently Used (MRU)
• Round Robin
• VMware NMP по умолчанию выбирает PSP,
ассоциированный с SATP, загруженным для данной СХД
8. PSA - PSP
• Для просмотра загруженных PSP с текущей конфигурацией
• esxcli storage nmp psp <PSP Namespace> deviceconfig get –d
<device identifier>
9. IO от начала до конца
• ВМ выдает SCSI команду на соотв. виртуальный диск
• Драйверы гостевой ОС взаимодействуют с драйверами
виртуального хранения
• Команда перебрасывается в Vmkernel, где вступает PSA
• PSA загружает соотв. MPP (NMP в нашем случае)
• NMP вызывает соотв. PSP
• PSP согласно с правилами балансировки выбирает путь.
Команда отсылается аппаратному/программному
инициатору, CNA или HBA
• Если неудачно, то PSP вызывает SATP для обработки ошибки.
Статус пути меняется на неактивный и процесс повторяется
• Инициатор, CNA или HBA трансформирует команду соотв.
транспорту и посылает запрос
15. Log
• Основные журналы для решения проблем с дисковой
системой
• /var/log/hostd.log Основной журнал с информацией о
задачах, событиях и взаимодействии хоста с клиентом,
vCenter агентом (vpxa) и т.д.
• /var/log/vmkernel.log Основной журнал VMkernel,
включающие обнаружение устройств, сетевых и дисковых
событиях и включении ВМ
• /var/log/sysboot.log Журнал VMkernel с сообщениями о
старте хоста и загрузке модулей
16. Log
• Для простого поиска в журнале
• grep –r search_term /var/log/vmkernel.log
• Для рекурсивного поиска во всех журналах
• grep –r search_term /var/log/*
• Данный поиск выдаст только строки, содержащие искомое
• Если нужно не только эти строки, то
• grep –r –A3 –B2 search_term /var/log/*
• Этот запрос выдаст также 3 строки перед и 2 после
• Поиск всех событий, в которых одновременно SCSI и Failed
• cat /var/log/vmkernel.log | grep SCSI | grep –i Failed
17. Log
• Экран переполнился?
• cat /var/log/vmkernel.log | grep –i SCSI | less
• Последние 10 сообщений в hostd.log
• tail –n10 /var/log/hostd.log
• Первые 10 сообщений в hostd.log
• head –n10 /var/log/hostd.log
• Наблюдение за журналом vmkwarning.log
• tail –f /var/log/vmkwarning.log
19. Клейминг (claim)
• Клейминг – процесс установки взаимосвязи между
физическими устройствами и плагинами в PSA
• Все клейм-правила могут быть загружены только через
командную строку и не доступны через GUI
20. Клейминг (claim)
• Просмотр загруженных клейм-правил
• esxcli storage core claimrule list
• Клейм правило может быть разных типов
• vendor, location, transport и driver
• У каждого правила есть идентификатор от 0 до 65535
• ID 0-100, 65436-65535 зарезервированы
21. Клейминг (claim)
• Идентификатор 65535 зарезервирован
• Правила применяются в порядке от 0 по возрастающей
• Если устройство не попало ни под одно предыдущее правило,
то его забирает под себя NMP
• MASK_PATH – плагин, реализующий на уровне PSA
функционал, аналогичный зонированию и маскированию
в FC
• Если есть правило 134 для MASK_PATH и правило 150 для
MPP, то путь будет скрыт и устройство не будет подключено
• У каждого правила есть класс
• File – правило загружено в системе
• Runtime – правило включено и активно (связано с
устройством)
22. Клейминг (claim)
• Удалить клейм-правило
• esxcli storage core claimrule remove –rule 400
• !!! Всегда используйте команду vm-support для сохранения
текущей конфигурации !!!
23. Клейминг (claim)
• Удалить можно только правило в состоянии File
• Для удаления правила в состоянии Runtime
• Сначала загрузим набор правил
esxcli storage core claimrule load
• Затем снимем клейм с устройства
esxcli storage core claiming unclaim -t location -A vmhba32 -T 1 -L 0
• Простой рескан теперь позволит увидеть датастор
24. Проблемы с путями
• Внимательно читайте документацию к СХД
• vSphere по умолчанию загружает
• Fixed для active-active СХД
• MRU для active-passive СХД
• Вендор СХД знает лучше
• Например, HP MSA1500 имеет active-active
• Но в силу внутренней логики MSA рекомендуется MRU
25. Disk Resignature
• VMFS том содержит в сигнатуре информацию о железе
• В том числе идентификатор массива, LUN ID и UUID
• Если том перенесен или сменил ID – vSphere игнорирует
• Для предотвращения монтирования копий и снапшотов
• Переподписывание (resignature) – создание новой
сигнатуры (и UUID) для перемещенного LUN при
монтировании
• http://kb.vmware.com/selfservice/microsites/search.do?langu
age=en_US&cmd=displayKC&externalId=1011387
27. Номера LUN
• Максимальное количество LUN’ов, с которыми может
работать ESXi = 256
• При рескане ESXi начинает с 0 и останавливается на 255
• LUN 268 НИКОГДА не будет виден ESXi
• Пока нет острой необходимости – не меняйте LUN ID для
разных хостов
• Disk.MaxLun может сократить время рескана и загрузки
• Но всегда есть опасность, что новый выделенный LUN будет с
ID > Disk.MaxLun и соотв. хост его не увидит
28. IP видимость
• Настоятельно рекомендуется использование различных
подсетей и даже физических сетей для сети ВМ и IP
хранения
• Отдельная сеть – отдельные проблемы
• Пропали диски – проверьте подключение
• ping и vmkping для ESXi – одно и то же
29. Проблемы iSCSI
• Практически все проблемы с iSCSI можно найти в
журналах
• grep –r iscsid/var/log/* | less
• Если информации недостаточно, то…
• vmkiscsid -x "insert into internal (key, value) VALUES
('option.LogLevel',' 999');"
• Только не забудьте выключить после
• vmkiscsid -x "delete from internal where key ='option.LogLevel';"
30. Проблемы NFS
• NFS подключения лишены многих блочных проблем, но…
• Зависят еще и от DNS
• Некоторые NFS системы требуют обратного разрешения
имен. Если NFS СХД не может разрешить имя ESXi, то не
отдаст ресурс
• Не подключается NFS датастор – проверь ACL
• Проверь ACL еще раз
• И еще раз
• И не забудь, что NFS чувствителен к рЕгисТрУ
• И что на ВСЕХ хостах имя датастора должно быть одинаковым
31. Проблемы NFS
• NFS и командная строка
• grep –r nfs /var/log/* | less
• Добавим информации
• esxcfg-advcfg –s 1 /NFS/LogNfsStat3
• Закончили – убавили
• esxcfg-advcfg –s 0 /NFS/LogNfsStat3
33. IO Latency
• Ключевая проблема дисковых систем – задержки
• esxtop нам их покажет
• DAVG/cmd – среднее время на команду, посланную VMkernel
на устройство. Нормальный показатель <25ms
• KAVG/cmd – среднее время внутри VMkernel. 1-2ms
• GAVG/cmd – среднее время для гостевой ОС. <25ms
34. IO Latency – где зарыта?
• Как узнать, где именно зарыта собака?
• На одном HBA? На массиве? На одном пути?
• esxtop: d f a b g
35. IO Latency – где зарыта?
• Задержки по устройствам
• esxtop: u f a i
36. IO Latency по ВМ
• Можно посмотреть какие задержки в среднем по ВМ
• esxtop: v f b g h
37. SCSI Reservation
• VMFS – симметричная кластерная файловая система
• Нет выделенных хостов-арбитров
• Для предотвращения порчи данных при обновлении
метаданных идет блокировка всего LUN
• Метаданные обновляются в монопольном режиме
• Операции, требущие обновления метаданных
• Включение/выключение ВМ
• Создание новой ВМ/развертывание из шаблона
• Миграция ВМ на другой хост
• Изменение датасторов
• Изменение размера файла
39. SCSI Reservation - решение
• Включите VAAI
• Конкретно ATS
• Разместите ВМ, требующие SCSI Reservation по разным
LUN
• Включение-выключение, снапшоты
• Увеличьте количество LUN
• Уменьшите количество хостов на LUN
• Уменьшите количество снапшотов
• Уменьшите количество ВМ на LUN
• http://kb.vmware.com/selfservice/microsites/search.do?langu
age=en_US&cmd=displayKC&externalId=1005009
40. Очереди IO
• IO не сразу уходит на диск, а сначала попадает в очередь
• OS queue
• 32 по умолчанию
• 64 для PVSCSI
• Изменяется в реестре Windows
• Adapter Queue
• Обычно 1024+ на порт и крайне редко требует внимания
• Per-LUN queue
• Обычно 32 или 64
• Disk.SchedNumReqOutstanding
41. Очереди IO
• Мониторинг очередей
• DQLEN – per-LUN queue
• ACTV – активные команды в обработке VMkernel
• QUED – команды, ждущие обработки или постановки в
очередь
• %USED – процент команд в очереди в активной обработке
• LOAD – отношение нагруженности очереди к ее размеру
• Как посмотреть
• esxtop: u f F
42. Очереди IO
• Очевидны проблемы с LUN’ом
• QUED>0 означает, что очередь кончилась
• DAVG, KAVG, GAVG выше порогов
• DQLEN = 32, а не стандартные 128. Результат работы
Disk.SchedNumReqOutstanding
43. Литература
• Troubleshooting vSphere Storage. Preston, Mike.
• Information Storage and Management: Storing, Managing,
and Protecting Digital Information in Classic, Virtualized, and
Cloud Environments. EMC Education Services
• Storage Implementation in vSphere 5.0 Technology Deep Dive.
Mostafa Khalil
44. Вопросы?
• Антон Жбанков
• VCP 3/4/5
• VMware vExpert 2009-2014
• MCITP: SA + VA
• EMC Cloud Architect Expert
• anton@vadmin.ru
• http://blog.vadmin.ru
• https://communities.vmware.com/community/vmtn/vmug/fo
rums/emea/russia