понедельник, 28 октября 2013 г.

Включение Virtual Flash Read Cache в VMware vSphere 5.5

Обновив свой тестовый стенд до VMware vSphere 5.5, мне захотелось попробовать в деле новую функцию - Virtual Flash Read Cache, позволяющую кэшировать данные на локальных SSD накопителях, установленных в сервер, и тем самым снижать нагрузку на хранилища (локальные или SAN) при выполнении операций чтения.

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, если на сервере недостаточно кэш-памяти, ВМ просто не запустится.
Процедура включения 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. Только толку от этого не будет.

11 комментариев:

  1. а нужный эффект от использования Virtual Flash Read Cache получить удалось.
    Делались ли тесты производительности.

    ОтветитьУдалить
    Ответы
    1. Честных тестов не проводил (т.к. в дисковом контроллере был свой кэш, который я не отключал), но на тестовой области в 10 ГБ после прогрева кэша, особой разницы в IOPS на чтение между VFRC и обычным VMDK диском, размещенным на SSD, я не заметил.

      Удалить
  2. А эта фича в Standard версии ESX 5.5 есть ?
    Или только в Enterprise ?

    ОтветитьУдалить
    Ответы
    1. Увы, Flash Read Cache доступен только в Enterprise Plus редакции, сам был удивлен, когда узнал, но такова политика VMware.

      Удалить
  3. Скажите, будьте так добры, а как вы прогревали тестовую область на VFRC? у меня какие то никакие показатели получились. вроде и не делал никакого VFRC. размещал кеш размером 100 и 200Гб. нагревал iometer'ом. по-моему, всю ночь кочегарилось. большой размер, мало грел?

    ОтветитьУдалить
    Ответы
    1. А какой hit rate показывает esxcli storage vflash cache stats get? Диски толстые?

      Ничем особым не прогревал, просто запустил iometer, результаты появились практически мгновенно.

      Удалить
  4. амм.. пардон, толстые? vmdk виртуалки располагался на ISCSI сторадже, если об етом.
    не помню, сколько именно было hist rate, но помню что не было разницы, если бы без VFRC виртуалка была.. хм. надо будет еще раз собрать весь макет. мож чего упустил..

    ОтветитьУдалить
    Ответы
    1. Добрый день! Тоже не видится диск (в хосте 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

      Т.е. как ССД хост его видит, но как локальный почему-то нет. Правила применял согласно КБ.
      Не подскажете, где порыть?

      Удалить
    2. Вам нужно создать claim rule с опциями --option "enable_ssd enable_local", в KB'шке приведен пример создания правил только с опцией enable_ssd, поэтому если выполнять в точности по ней - диск может быть помечен как Local: false (зависит от контроллера, но на HP по умолчанию будет false).

      Удалить
    3. Огромное спасибо, все получилось.
      Мне просто не совсем понятен был пункт Run this command to enable local and SSD at the same time:
      Теперь все получилось, спасибо!!!

      Удалить
  5. Коллеги, хочу предложить Вашему вниманию еще одну очень интересную статью на тему ssd кеширования. http://iaas-blog.it-grad.ru/ssd-keshirovanie-v-oblake-vmware/

    ОтветитьУдалить