Обновив свой тестовый стенд до VMware vSphere 5.5, мне захотелось попробовать в деле новую функцию - Virtual Flash Read Cache, позволяющую кэшировать данные на локальных SSD накопителях, установленных в сервер, и тем самым снижать нагрузку на хранилища (локальные или SAN) при выполнении операций чтения.
Virtual Flash Read Cache может работать с обычными носителями с интерфейсом SATA/SAS или накопители, подключаемые по шине PCI-E (список совместимых устройств невелик, но для VFRC можно использовать и другие носители). На текущий момент VFRC имеет следующие ограничения и максимумы:
Процедура включения Virtual Flash Read Cache крайне проста, однако, у меня сразу же возникли проблемы с добавлением SSD накопителя.
Стоит сделать небольшое отступление и сказать, что в моем случае SSD накопитель подключается через RAID контроллер, не поддерживающим HBA режим, поэтому требуется создавать RAID 0 массив из одного накопителя. RAID контроллер не передает серверу информацию о типе накопителей, используемых в RAID массиве, поэтому ESXi определяет его как Non-SSD диск. Исправить это можно, создав или отредактировав SATP правила.
Но даже после добавления правила, SSD носитель не появился в списке. Открыв командную консоль и набрав esxcli storage vflash device list, я увидел нечто интересное.
Снова благодаря RAID контроллеру, ESXi не посчитал мое устройство локальным, и поэтому не давал создать на нем файловую систему под кэш.
Решить проблему удалось удаление старого правила SATP и добавлением нового:
esxcli storage nmp satp rule add --satp <SATP_TYPE> --device <DEVICE_ID> --option "enable_ssd enable_local"
После этого накопитель появился в списке доступных для выбора устройств:
Получить информацию о работе кэша можно с помощью команд:
esxcli storage vflash cache list
esxcli storage vflash cache stats get -c <CACHE_FILE_NAME>
P.S. Схожим образом можно настроить VFRC в тестовой среде (например в виртуальном ESXi), где у вас нет настоящего SSD. Только толку от этого не будет.
Virtual Flash Read Cache может работать с обычными носителями с интерфейсом SATA/SAS или накопители, подключаемые по шине PCI-E (список совместимых устройств невелик, но для VFRC можно использовать и другие носители). На текущий момент VFRC имеет следующие ограничения и максимумы:
- На хост-сервере должен быть установлен VMware ESXi 5.5 в редакции Enterprise Plus.
- Настройка и управление VFRC осуществляется только через vSphere Web Client, поэтому требуется VMware vCenter Server.
- Максимальный размер кэша для одного виртуального диска - 400 ГБ.
- Максимальные размер кэша на хост - 2 ТБ.
- Максимальный размер виртуального диска - 16 ТБ.
- Максимальное количество SSD накопителей, используемых под кэш - 8.
- Требуется обновить Hardware Version виртуальной машины до 10-й версии.
- SSD накопитель должен использоваться только под VFRC, на нем нельзя устанавливать гипервизор, создавать VMFS хранилища, или включать в кластер Virtual SAN.
- Администратор должен вручную настраивать кэш для каждого виртуального диска (минимум 1 ГБ). Кэш выделяется (резервируется) при включении ВМ, никакого совместного использования или переподписки для кэша настроить нельзя.
- Нет поддержки Admission Control для vSphere HA, если на сервере недостаточно кэш-памяти, ВМ просто не запустится.
Стоит сделать небольшое отступление и сказать, что в моем случае SSD накопитель подключается через RAID контроллер, не поддерживающим HBA режим, поэтому требуется создавать RAID 0 массив из одного накопителя. RAID контроллер не передает серверу информацию о типе накопителей, используемых в RAID массиве, поэтому ESXi определяет его как Non-SSD диск. Исправить это можно, создав или отредактировав SATP правила.
Но даже после добавления правила, SSD носитель не появился в списке. Открыв командную консоль и набрав esxcli storage vflash device list, я увидел нечто интересное.
Снова благодаря RAID контроллеру, ESXi не посчитал мое устройство локальным, и поэтому не давал создать на нем файловую систему под кэш.
Решить проблему удалось удаление старого правила SATP и добавлением нового:
esxcli storage nmp satp rule add --satp <SATP_TYPE> --device <DEVICE_ID> --option "enable_ssd enable_local"
После этого накопитель появился в списке доступных для выбора устройств:
Получить информацию о работе кэша можно с помощью команд:
esxcli storage vflash cache list
esxcli storage vflash cache stats get -c <CACHE_FILE_NAME>
P.S. Схожим образом можно настроить VFRC в тестовой среде (например в виртуальном ESXi), где у вас нет настоящего SSD. Только толку от этого не будет.
а нужный эффект от использования Virtual Flash Read Cache получить удалось.
ОтветитьУдалитьДелались ли тесты производительности.
Честных тестов не проводил (т.к. в дисковом контроллере был свой кэш, который я не отключал), но на тестовой области в 10 ГБ после прогрева кэша, особой разницы в IOPS на чтение между VFRC и обычным VMDK диском, размещенным на SSD, я не заметил.
УдалитьА эта фича в Standard версии ESX 5.5 есть ?
ОтветитьУдалитьИли только в Enterprise ?
Увы, Flash Read Cache доступен только в Enterprise Plus редакции, сам был удивлен, когда узнал, но такова политика VMware.
УдалитьА какой hit rate показывает esxcli storage vflash cache stats get? Диски толстые?
ОтветитьУдалитьНичем особым не прогревал, просто запустил iometer, результаты появились практически мгновенно.
амм.. пардон, толстые? vmdk виртуалки располагался на ISCSI сторадже, если об етом.
ОтветитьУдалитьне помню, сколько именно было hist rate, но помню что не было разницы, если бы без VFRC виртуалка была.. хм. надо будет еще раз собрать весь макет. мож чего упустил..
Добрый день! Тоже не видится диск (в хосте 5.1 кстати виделся прекрасно:). Я посмотрел КБшку, о которой идет речь в статье, выполнил все пункты- имею в последнем вывод
Удалитьesxcli storage core device list -d naa.600508b1001c02a3339cca1a9a89d768
Display Name: HP Serial Attached SCSI Disk (naa.600508b1001c02a3339cca1a9a89d768)
Has Settable Display Name: true
Size: 85823
Device Type: Direct-Access
Multipath Plugin: NMP
Model: LOGICAL VOLUME
Revision: 3.54
SCSI Level: 5
Is Pseudo: false
Status: degraded
Is RDM Capable: true
Is Local: false
Is Removable: false
Is SSD: true
Т.е. как ССД хост его видит, но как локальный почему-то нет. Правила применял согласно КБ.
Не подскажете, где порыть?
Вам нужно создать claim rule с опциями --option "enable_ssd enable_local", в KB'шке приведен пример создания правил только с опцией enable_ssd, поэтому если выполнять в точности по ней - диск может быть помечен как Local: false (зависит от контроллера, но на HP по умолчанию будет false).
УдалитьОгромное спасибо, все получилось.
УдалитьМне просто не совсем понятен был пункт Run this command to enable local and SSD at the same time:
Теперь все получилось, спасибо!!!
Коллеги, хочу предложить Вашему вниманию еще одну очень интересную статью на тему ssd кеширования. http://iaas-blog.it-grad.ru/ssd-keshirovanie-v-oblake-vmware/
ОтветитьУдалить