ݺߣ

ݺߣShare a Scribd company logo
Проблемы с
дисками?
Антон Жбанков
VMware vExpert
Pluggable Storage Architecture
• MultiPathing Plugin
• По умолчанию VMware NMP (Native MultiPathing)
• SATP – Storage Array Type Plugin
• Отказы и переключения путей
• PSP – Path Selection Plugin
• Балансировка нагрузки и выбор пути для IO
Роли и команды PSA
• PSA обнаруживает доступные хосту ресурсы хранения
• Присваивает правила MPP для управления ресурсом
• Для просмотра всех плагинов PSA
• esxcli storage core plugin list
PSA - MPP
• NMP/MPP исполняет функции
• MPP определяет физический путь до устройства для SATP
• NMP имеет собственный набор правил для ассоциации SATP с
PSP
• Экспортирует логическое устройство по физическому пути для
PSP
• Для просмотра всех устройств с соотв. PSP/SATP
• esxcli storage nmp device list
PSA - SATP
• Наблюдает за состоянием путей до физ. системы
• Объявляет пути в состояние failed/down
• Управляет переключением физ. путей после сбоя
• vSphere включает в себе SATP под некоторое количество
распространенных СХД, и несколько универсальных
вариантов active-active/active-passive
PSA - SATP
• Для просмотра всех загруженных SATP и ассоциированных
PSP
• esxcli storage nmp satp list
• Для изменения PSP по умолчанию для определенного
SATP
• esxcli storage nmp satp set –b <boottime> -P <Default PSP> -s
<SATP>
PSA - PSP
• Особенности и ответственность PSP
• Выбор пути для отправки IO запроса (далее просто IO)
• Отличается от SATP тем, что является механизмом
балансировки нагрузки и работает только с активными
путями
• vSphere использует три плагина по умолчанию:
• Fixed
• Most Recently Used (MRU)
• Round Robin
• VMware NMP по умолчанию выбирает PSP,
ассоциированный с SATP, загруженным для данной СХД
PSA - PSP
• Для просмотра загруженных PSP с текущей конфигурацией
• esxcli storage nmp psp <PSP Namespace> deviceconfig get –d
<device identifier>
IO от начала до конца
• ВМ выдает SCSI команду на соотв. виртуальный диск
• Драйверы гостевой ОС взаимодействуют с драйверами
виртуального хранения
• Команда перебрасывается в Vmkernel, где вступает PSA
• PSA загружает соотв. MPP (NMP в нашем случае)
• NMP вызывает соотв. PSP
• PSP согласно с правилами балансировки выбирает путь.
Команда отсылается аппаратному/программному
инициатору, CNA или HBA
• Если неудачно, то PSP вызывает SATP для обработки ошибки.
Статус пути меняется на неактивный и процесс повторяется
• Инициатор, CNA или HBA трансформирует команду соотв.
транспорту и посылает запрос
vCenter Storage View
• Пример – сколько занимают снапшоты
vCenter Storage View
• Пример - отказоустойчивость доступа к хранилищам
vCenter Storage View
• Пример – детальный статус по путям до датастора
vCenter Maps
esxtop/resxtop
Log
• Основные журналы для решения проблем с дисковой
системой
• /var/log/hostd.log Основной журнал с информацией о
задачах, событиях и взаимодействии хоста с клиентом,
vCenter агентом (vpxa) и т.д.
• /var/log/vmkernel.log Основной журнал VMkernel,
включающие обнаружение устройств, сетевых и дисковых
событиях и включении ВМ
• /var/log/sysboot.log Журнал VMkernel с сообщениями о
старте хоста и загрузке модулей
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
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
ПРОБЛЕМЫ ВИДИМОСТИ
СИСТЕМ ХРАНЕНИЯ
Клейминг (claim)
• Клейминг – процесс установки взаимосвязи между
физическими устройствами и плагинами в PSA
• Все клейм-правила могут быть загружены только через
командную строку и не доступны через GUI
Клейминг (claim)
• Просмотр загруженных клейм-правил
• esxcli storage core claimrule list
• Клейм правило может быть разных типов
• vendor, location, transport и driver
• У каждого правила есть идентификатор от 0 до 65535
• ID 0-100, 65436-65535 зарезервированы
Клейминг (claim)
• Идентификатор 65535 зарезервирован
• Правила применяются в порядке от 0 по возрастающей
• Если устройство не попало ни под одно предыдущее правило,
то его забирает под себя NMP
• MASK_PATH – плагин, реализующий на уровне PSA
функционал, аналогичный зонированию и маскированию
в FC
• Если есть правило 134 для MASK_PATH и правило 150 для
MPP, то путь будет скрыт и устройство не будет подключено
• У каждого правила есть класс
• File – правило загружено в системе
• Runtime – правило включено и активно (связано с
устройством)
Клейминг (claim)
• Удалить клейм-правило
• esxcli storage core claimrule remove –rule 400
• !!! Всегда используйте команду vm-support для сохранения
текущей конфигурации !!!
Клейминг (claim)
• Удалить можно только правило в состоянии File
• Для удаления правила в состоянии Runtime
• Сначала загрузим набор правил
esxcli storage core claimrule load
• Затем снимем клейм с устройства
esxcli storage core claiming unclaim -t location -A vmhba32 -T 1 -L 0
• Простой рескан теперь позволит увидеть датастор
Проблемы с путями
• Внимательно читайте документацию к СХД
• vSphere по умолчанию загружает
• Fixed для active-active СХД
• MRU для active-passive СХД
• Вендор СХД знает лучше
• Например, HP MSA1500 имеет active-active
• Но в силу внутренней логики MSA рекомендуется MRU
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
Disk Resignature
• Сохранить сигнатуру можно только если уверены, что
оригинальный LUN НИКОГДА не вернется.
Номера LUN
• Максимальное количество LUN’ов, с которыми может
работать ESXi = 256
• При рескане ESXi начинает с 0 и останавливается на 255
• LUN 268 НИКОГДА не будет виден ESXi
• Пока нет острой необходимости – не меняйте LUN ID для
разных хостов
• Disk.MaxLun может сократить время рескана и загрузки
• Но всегда есть опасность, что новый выделенный LUN будет с
ID > Disk.MaxLun и соотв. хост его не увидит
IP видимость
• Настоятельно рекомендуется использование различных
подсетей и даже физических сетей для сети ВМ и IP
хранения
• Отдельная сеть – отдельные проблемы
• Пропали диски – проверьте подключение
• ping и vmkping для ESXi – одно и то же
Проблемы 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';"
Проблемы NFS
• NFS подключения лишены многих блочных проблем, но…
• Зависят еще и от DNS
• Некоторые NFS системы требуют обратного разрешения
имен. Если NFS СХД не может разрешить имя ESXi, то не
отдаст ресурс
• Не подключается NFS датастор – проверь ACL
• Проверь ACL еще раз
• И еще раз
• И не забудь, что NFS чувствителен к рЕгисТрУ
• И что на ВСЕХ хостах имя датастора должно быть одинаковым
Проблемы NFS
• NFS и командная строка
• grep –r nfs /var/log/* | less
• Добавим информации
• esxcfg-advcfg –s 1 /NFS/LogNfsStat3
• Закончили – убавили
• esxcfg-advcfg –s 0 /NFS/LogNfsStat3
ПРОБЛЕМЫ ПРОИЗВОДИТЕЛЬНОСТИ
IO Latency
• Ключевая проблема дисковых систем – задержки
• esxtop нам их покажет
• DAVG/cmd – среднее время на команду, посланную VMkernel
на устройство. Нормальный показатель <25ms
• KAVG/cmd – среднее время внутри VMkernel. 1-2ms
• GAVG/cmd – среднее время для гостевой ОС. <25ms
IO Latency – где зарыта?
• Как узнать, где именно зарыта собака?
• На одном HBA? На массиве? На одном пути?
• esxtop: d f a b g
IO Latency – где зарыта?
• Задержки по устройствам
• esxtop: u f a i
IO Latency по ВМ
• Можно посмотреть какие задержки в среднем по ВМ
• esxtop: v f b g h
SCSI Reservation
• VMFS – симметричная кластерная файловая система
• Нет выделенных хостов-арбитров
• Для предотвращения порчи данных при обновлении
метаданных идет блокировка всего LUN
• Метаданные обновляются в монопольном режиме
• Операции, требущие обновления метаданных
• Включение/выключение ВМ
• Создание новой ВМ/развертывание из шаблона
• Миграция ВМ на другой хост
• Изменение датасторов
• Изменение размера файла
SCSI Reservation
• vmkernel.log
• reservation conflict
• esxtop: d u f F H
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
Очереди IO
• IO не сразу уходит на диск, а сначала попадает в очередь
• OS queue
• 32 по умолчанию
• 64 для PVSCSI
• Изменяется в реестре Windows
• Adapter Queue
• Обычно 1024+ на порт и крайне редко требует внимания
• Per-LUN queue
• Обычно 32 или 64
• Disk.SchedNumReqOutstanding
Очереди IO
• Мониторинг очередей
• DQLEN – per-LUN queue
• ACTV – активные команды в обработке VMkernel
• QUED – команды, ждущие обработки или постановки в
очередь
• %USED – процент команд в очереди в активной обработке
• LOAD – отношение нагруженности очереди к ее размеру
• Как посмотреть
• esxtop: u f F
Очереди IO
• Очевидны проблемы с LUN’ом
• QUED>0 означает, что очередь кончилась
• DAVG, KAVG, GAVG выше порогов
• DQLEN = 32, а не стандартные 128. Результат работы
Disk.SchedNumReqOutstanding
Литература
• 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
Вопросы?
• Антон Жбанков
• 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

More Related Content

VMUG Moscow 2014 Проблемы с дисками?

  • 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 трансформирует команду соотв. транспорту и посылает запрос
  • 10. vCenter Storage View • Пример – сколько занимают снапшоты
  • 11. vCenter Storage View • Пример - отказоустойчивость доступа к хранилищам
  • 12. vCenter Storage View • Пример – детальный статус по путям до датастора
  • 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
  • 26. Disk Resignature • Сохранить сигнатуру можно только если уверены, что оригинальный LUN НИКОГДА не вернется.
  • 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 • Метаданные обновляются в монопольном режиме • Операции, требущие обновления метаданных • Включение/выключение ВМ • Создание новой ВМ/развертывание из шаблона • Миграция ВМ на другой хост • Изменение датасторов • Изменение размера файла
  • 38. SCSI Reservation • vmkernel.log • reservation conflict • esxtop: d u f F H
  • 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