15 июл. 2011 г.

LSI MegaRAID Advanced Software. Часть 1: MegaRAID Recovery

Данная статья посвящена различным дополнительным возможностям 6Гбит SAS RAID контроллеров LSI: Recovery, FastPath и CacheCade.
SAS RAID контроллеры LSI доступны как под собственной торговой маркой, так и в виде OEM решений, их используют Supermicro, Intel и Dell. Контроллеры на базе чипа LSI 2108 оказались быстрыми (большой лимит по пропускной способности и IOPS'ам, поддержка 6Гбит SAS), надежными (проверенный годами стек MegaRAID) и недорогими - за что и пользуются заслуженной популярностью, та же самая компания Supermicro распаивает LSI 2108 на многих системных платах и выпускает отдельные контроллеры (см. отдельную статью о LSI и Supermicro). Итак, что же умеют контроллеры LSI помимо обычного RAID-стека?
Умеют они следующее:
  • MegaRAID CacheCade Software - кэширование на SSD-массив операций чтения с массива на обычных HDD, аналог технологии Adaptec maxCache.
  • MegaRAID FastPath Software - оптимизация работы с SSD, дает увеличение производительности при работе с SSD до 2,5 раз (при случайном доступе), входит в состав CacheCade.
  • MegaRAID Recovery Software - снапшоты, до 8-ми снапшотов на массив, до 504-х на контроллер. Именно Recovery мы сегодня рассмотрим более подробно.
  • MegaRAID SafeStore Software - шифрование данных. Из-за известной всем проблемы с лицензированием крипто данная опция не является актуальной для России.
Все это вместе называется MegaRAID Advanced Software Options и поставляется электронном виде (40-значный ключ активации). Существуют и поддерживаются данные опции достаточно давно, ранее поставлялись в виде аппаратного ключа, что было не так удобно (нельзя было использовать несколько опций одновременно), и самое главное: код этих MegaRAID Advanced Software Options исполняется ядром контроллера, т.е. не требуется установки никакого дополнительного ПО на хост, которое могло бы вызвать проблемы с совместимостью, все что нужно для работы FastPath/CacheCade/Recovery - активировать соответствующую опцию и перезагрузиться. Работа  с Advanced Software Options и MSM достточно неплохо описана в официальном руководстве, так что тут будут лишь наиболее интересные особенности.
MegaRAID Advanced Software Options работают со всеми 6Гбит контроллерами старшей линейки MegaRAID производства LSI (9260, 9265, 9280, 9285), за исключением 9240 (это контроллер на младшем чипе LSI 2008, но со стеком integrated MegaRAID). С недавнего времени есть поддержка и для контроллеров Supermicro - нужно просто обновить firmware.

Активация

Хорошей практикой при работе с RAID контроллерами является использование свежих прошивок, драйверов и инструментов управления. Опыты будем проводить под управлением триальной Microsoft Windows Server Enterprise 2008 R2 SP1 с последними обновлениями, на контроллере LSI 9260-4i с fw 12.12.0.0048, драйвером 5.1.78, управление - через MSM 9.00.0100.
Обновляем fw, перезагружаемся, вводим триальный ключ на 30-дней, который активирует все опции.
Перезагружаемся еще раз и запускам MSM.

Как работает MegaRAID Recovery

MegaRAID Recovery позволяет создать мгновенные снимки (снапшоты) целевого тома на блочном уровне. Снапшоты - достаточно удобная и быстрая технология для создания копий состояния блочных устройств, работает в большинстве реализаций методом copy-on-write: после создания снапшота все операции записи на исходный том сопровождаются предварительным копированием исходных блоков на том снапшота, т.е. в снапшоте хранится информация только об измененных блоках, что дает экономию дискового пространства.
Блочные снапшоты удобны прежде всего тем, что во многих случаях устраняют необходимость в окне резервного копирования: проблемы с блокировкой файлов или изменением данных во время резервного копирования отсутствуют.
Применяются снапшоты, в основном, во внешних СХД и/или выполняются средствами хоста - тут больше ресурсов по сравнению с внутренними RAID-контроллерами, но инженерам LSI удалось, пусть и с ограничениями, реализовать этот полезный функционал.
Но все это, естественно, не гарантирует целостности полученных данных: состояние какой-нибудь базы данных в произвольный момент времени вовсе не обязательно будет консистентным, в лучшем случае мы получим после восстановления состояние "после аварийного завершения". Для обхода подобных неприятностей существуют специализированные средства автоматизации бэкапа.
Второй недостаток - снижение производительности. Каждая операция записи предваряется операцией копирования перезаписываемых блоков в снапшот.

Для наглядности я нарисовал небольшую схему работы MR Recovery:
Для каждого тома (virtual disk в терминологии LSI) с активированным на нем recovery возможно создание до восьми снапшотов - либо вручную, либо по расписанию. Под снапшоты выделяется отдельный том - репозиторий снапшотов (snapshot repository):
Можно отрегулировать размер выделяемого под снапшоты пространства, MSM выдает подсказку по количеству в % измененных данных на исходном томе, которое может вместить каждый из 8 снапшотов. Из сути технологии copy-on-write следует, что если мы полностью перезапишем исходный том, то размер снапшота станет равен размеру этого тома.
Остальное пространство может быть использовано для т.н. View - точек монтирования снапшотов, об использовании view и их особенностях будет рассказано чуть ниже.
С созданными снапшотами можно сделать три вещи:
  • Смонтировать содержимое в отдельный том (View). Появившийся том можно смонтировать и писать в него данные, емкость записи будет ограничена свободным пространством в snapshot repository. Ограничение: в один момент времени может существовать только один View для одного исходного тома, т.е. вы не можете смонтировать два снапшота одного исходного тома одновременно, сначала нужно будет удалить View для первого снапшота(все записанные во View данные теряются), затем создать View для второго.
  • Сделать откат к снапшоту (rollback) - все блоки снапшота копируются на исходный том, что возвращает его в состояние на момент создания снапшота. Это возможно только при отсутствии доступа к томам, т.е. до загрузки операционной системы - через LSI WebBIOS (Ctrl+H).
  • Удалить снапшот - снапшоты в MegaRAID Recovery можно удалять только по порядку, начиная с самого старого.

Практика

Создаем снапшот системного тома VD0:
 Вносим изменения - удаляем каталог C:\tmp:

Монтируем снапшот - создаем View:
В системе появляется еще один диск, идентичный исходному тому:
Монтируем второй раздел на View-диске как D: и видим наш каталог <i>tmp</i> в целости и сохранности:

Как быть, если изменения, которые произошли после создания снапшота на файловом уровне нас не интересуют, а нужно просто "вернуть все, как было"? Например, поврежден системный том и ОС не грузится? Нужно откатиться обратно: заходим по Ctrl+H в WebBIOS, выбираем нужный VD, заходим в его Properties и Advanced Operations и выбираем Rollback на нужный снапшот:
Получаем предупреждение о потере изменений с датой создания снапшота:
Вот и все. В следующей части будут FastPath и CacheCade  с детальным анализом производительности.
Напоследок - важный момент: если вы решили деактивировать лицензию Recovery на контроллере (например, ключ был триальный или по другим причинам), то сначала нужно отключить Recovery для всех томов. Если это сделано не будет, то все тома с активированным Recovery и все тома Snapshot Repository исчезнут. Контроллер будет сообщать о необходимости импорта чужой конфигурации с  этих томов, но попытка вернуть их в строй будет заканчиваться ошибкой и зависанием WebBIOS до тех пор, пока опять не будет активирована лицензия Recovery: