Обновлено 14.09.2019
Добрый день! Уважаемые читатели и и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами рассматривали ситуацию, где у нас неправильно определялось оборудование в операционной системе и высвечивался код ошибки 10. Сегодня я хочу вам показать, как правильно настраивать на RAID контроллере LSI массивы с SSD, чтобы добиваться максимально производительности, можно назвать, это «Best practices» для связки SSD и LSI.
Постановка задачи
У меня есть не самый новый RAID контроллер LSI 9280-16i4e, это старенькая модель у которой всего 512 МБ кэша DDR 2 и чипом LSISAS2108 с интегрированным XOR процессором Power PC 800 МГц. Из этого можно понять, что он не особо предназначен для SSD, но и из него мы выжмем максимум. В моем примере я хочу создать массив из 6 SSD Dell, и добиться от него максимальной производительности.
Данная статья будет чем-то похожа на аналогичную, про «Best practices для HP P410i», там я так же прокачивал скорость своих SSD дисков.
Создавать я в своем примере буду RAID-0, так как на моем тестовом стенде мне нужна максимальная производительность и я не очень боюсь потерять эти данные, если кто не в курсе RAID-0, это объединение всех дисков в один массив, за счет чего достигается максимальная производительность, но минимальная отказоустойчивость, так как при выходе одного SSD, весь массив развалится, но сейчас очень сложно ушатать SSD диск, так как его ресурс очень большой, проверить его можно вычислив DWPD и TBW.
Давайте проведем восемь экспериментов:
- Тестирование одного SSD диска с базовыми параметрами предлагаемыми LSI контроллером
- Тестирование одного SSD диска с базовыми настройками, но измененным размером Stripe
- Тестирование одного SSD с рекомендуемыми настройками и базовым Stripe
- Тестирование одного SSD с рекомендуемыми настройками, но измененным размером Stripe
- Тестирование шести SSD дисков в массиве RAID-0 с базовыми настройками и стандартным размером Stripe
- Тестирование шести SSD дисков в массиве RAID-0 с базовыми настройками, но измененным размером Stripe
- Тестирование шести SSD дисков в массиве RAID-0 с рекомендуемыми настройками и стандартным размером Stripe
- Тестирование шести SSD дисков в массиве RAID-0 с рекомендуемыми настройками, но измененным размером Stripe
Создавать RAID массивы я буду через утилиту MegaRAID Storage Manager (MSM) и производить замер скорости SSD дисков в утилите CrystalDiskMark. В качестве хостовой операционной системы будет выступать Windows Server 2016.
Открываем утилиту MSM, я перехожу в раздел «Logical«, тут я вижу свои 6 SSD дисков Dell, они имеют статус Unconfigured Good (Не размечены).
Первый замер скорости будет с одним SSD и всеми базовыми параметрами. Выбираю свой RAID контроллер LSI 9280-16i4e, щелкаю по нему правым кликом и из контекстного меню я выбираю пункт «Create Virtual Drive.»
- Выбираю режим «Advanced» и нажимаю «Next».
В RAID level выбираем RAID-0, кстати про разные виды RAID вы можете почитать мою статью. Из «Selrct unconfigured drives» вы через кнопку «Add» переносите диск в «Drive Group» и нажимаете кнопку для создания «Create Drive Group«.
После того. как будет создана «Drive Group» нажимаем кнопку «Next«.
Оставляем все настройки как есть, это:
- Initialization — No Initialization
- Stripe size — 256 kb
- Read Policy — Always Read Ahead
- Write policy — Write Back
- I/O policy — Direct IO
- Access policy — Read Write
- Disk cache policy — Disable
- Нажимаем кнопку «Create Virtual Drive» для создания массива.
- Все мой RAID-0 создан, просто нажимаем «Next«.
Далее «Finish«. Вы должны увидеть «The virtual drive successfully created«.
- В списке на вашем LSI 9280-16i4e вы можете увидеть новую группу.
Открываем оснастку управление дисками, для этого в окне «Выполнить» введите команду «diskmgmt.msc».
- Создаем обычный том.
Тестирование производительности SSD на LSI контроллере
Тест №1.
Открываем CrystalDiskMark, выбираем наш диск, у меня это E:, тестировать я буду в три подхода 2-х гигабитным файлом. Нажимаем «All».
Начинается тестирование вашего SSD диска, процесс занимаем минут 5. Результаты по скорости копирования и чтения, а так же количество IOPS при разных видах, вы видите на скриншоте. При таком раскладе мой RAID контроллер LSI 9280-16i4e выдал максимально 52 000 IOPS на чтение и 36 000 IOPS на запись, среднячок.
Тест №2
Во втором тесте мы оставим наш виртуальный раздел в RAID-0, со всеми настройками кэширования, но единственное увеличим размер Stripe с 256 кб на 512 кб. Для этого в утилите MSM найдите ван виртуальный диск, щелкните по нему правой кнопкой мыши и выберите пункт «Delete Virtual Drive«.
- Соглашаемся и удаляем наш виртуальный диск.
После чего создаем новый, как я описывал выше, единственное в «Stripe size» выберите значение 512 кб. Размечаем том и начинаем тестирование.
- В итоге слегка подросла скорость чтения и записи при последовательном обращении, хочу отметить, что размер страйпа нужно выбирать исходя из специфики данных, это будет влиять на производительность.
- Тест №3
Теперь опять удаляем текущий виртуальный диск и создаем уже, так как нужно с правильными настройками под SSD диск, чтобы максимально ускорить связку контроллера LSI и ваш твердотельный носитель. Тут вся соль заключается в правильных настройках политики и кэширования.
На шаге создания «Create Virtual Drive» выберите:
- Stripe Size — 256 kb
- Read Policy — NoRead Ahead
- Write Policy — Write Trough
- I/O Policy — Direct IO
- Disk cache policy — Enable
Делаем тестирование в CrystalDiskMark.
В результате мы слегка потеряли в последовательном чтении и записи, но посмотрите какой прирост производительности по операциям ввода/вывода и это с учетом того, что у меня просто древний контроллер, который с ссд дисками и не очень, то и дружен. Как видите только по чтению +8000 IOPS на 4Kib Q8t8, а на 4Kib Q32t1 +17 000 IOPS.
Про виды кэширования на контроллере LSI читайте по ссылке слева
Тест №4
- Stripe Size — 512 kb
- Read Policy — NoRead Ahead
- Write Policy — Write Trough
- I/O Policy — Direct IO
- Disk cache policy — Enable
- Как видим при размете страйпа в 512 кб, чуть выше показатели по всем пунктам, в таком виде SSD максимально производителен, но вы можете еще поиграться с размером страйпа.
- Тест №5
Тестирование шести SSD дисков в массиве RAID-0 с базовыми настройками и стандартным размером Stripe. Удаляем старый раздел и опять начинаем создавать новый, в режиме «Advanced», на вкладке «Create Drive Group» выберите RAID 0 в «RAID Level» и перенесите в новую группу все ваши твердотельные диски, после чего нажмите «Create Virtual Drive».
Оставляем настройки все как есть по умолчанию и создаем массив.
- Initialization — No Initialization
- Stripe size — 256 kb
- Read Policy — Always Read Ahead
- Write policy — Write Back
- I/O policy — Direct IO
- Access policy — Read Write
- Disk cache policy — Disable
Размечаем новый том и приступаем к замерам производительности в CrystalDiskMark. Как видите за счет страйпа из шести SSD, скорость последовательного чтения и записи подросли, и тут я уже упираюсь в свой тестовый сервер, так как он больше не может через себя прокачать. 875 MB/s пока предел, давайте попробуем увеличить размер страйпа.
- Тест №6
- Тестирование шести SSD дисков в массиве RAID-0 с базовыми настройками, но измененным размером Stripe
- Initialization — No Initialization
- Stripe size — 512 kb
- Read Policy — Always Read Ahead
- Write policy — Write Back
- I/O policy — Direct IO
- Access policy — Read Write
- Disk cache policy — Disable
- Тут мы слегка увеличили количество операций ввода/вывода при чтении, но слегка потеряли на записи.
- Тест №7
- Тестирование шести SSD дисков в массиве RAID-0 с рекомендуемыми настройками и стандартным размером Stripe
- Stripe Size — 256 kb
- Read Policy — NoRead Ahead
- Write Policy — Write Trough
- I/O Policy — Direct IO
- Disk cache policy — Enable
Как говорится почувствуйте разницу, просто резкое увеличение операций ввода/вывода, особенно на запись.
Тестирование скорости RAID 00
Еще мне интересно было протестировать скорость RAID 00 против RAID 0, так как LSI пишет, что он быстрее обычного страйпа, на деле это не так, у меня он оказался медленнее.
- Stripe Size — 256 kb
- Read Policy — NoRead Ahead
- Write Policy — Write Trough
- I/O Policy — Direct IO
- Disk cache policy — Enable
Надеюсь, что мой скромный опыт окажет вам неоценимую помощь в вашем проекте. Мы с вами разобрали процесс увеличения производительности SSD дисков на контроллерах LSI. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
SSD-кэш в SAS RAID контроллерах LSI MegaRAID
LSI CacheCade — технология, позволяющая использовать массив из быстрых дисков SSD для буферизации обращений на чтение/запись к HDD-массивам.
CacheCade позволяет при сравнительно небольших затратах существенно увеличить производительность работы с приложениями, интенсивно использующими случайный доступ небольшими блоками: серверы СУБД и электронной почты, web серверы, узлы кластеров виртуализации.
Преимущества
- Высокая производительность Современные SSD опережают по производительности даже быстрые HDD с интерфейсом SAS и скоростью вращения шпинделя 10000 и 15000 оборотов в минуту на нагрузках со случайным доступом в десятки даже сотни раз. Но по соотношению цена/объем HDD пока что остаются вне конкуренции. LSI CacheCade позволяет совместить высокую производительность SSD и большие объемы HDD. При повторяющихся запросах к определенным блокам соответствующие данные размещаются на массиве SSD, и при подходящем профиле нагрузки (наличие области «горячих данных», сопоставимой с объемом кэша) обеспечивается рост производительности:
Рост числа операций ввода-вывода в секунду (IOPS): контроллер LSI Nytro MegaRAID 8100-4i, случайный доступ на чтение блоками 4k.
Снижение длительности обработки запроса (latency): контроллер LSI Nytro MegaRAID 8100-4i, случайный доступ на чтение блоками 4k. Дополнительный плюс: за счет снижения нагрузки на HDD-массив значительно увеличивается скорость его перестроения при замене вышедших из строя дисков.
- Совместимость Использование LSI CacheCade не требует установки специальных драйверов или дополнительного программного обеспечения. Все операции по управлению кэшированием осуществляются силами контроллера, прозрачно для ОС и приложений. Сохраняется полная совместимость со всеми ОС, с которыми работают контроллеры LSI.
- Сокращение затрат SSD обеспечивают выгодное соотношение цена/производительность, HDD — выгодное соотношение цена/объем. LSI CacheCade позволяет использовать оба этих преимущества при минимальных затратах.
Пример — база данных объемом в 1,5ТБ, требование к производительности — 20000 IOPS на чтение и 4000 IOPS на запись, при этом 90% нагрузки распределено в области размером порядка 300ГБ. При использовании массива из обычных SAS HDD для обеспечения требуемой производительности понадобится минимум 80 дисков (из расчета 250 IOPS/диск) — это высокая стоимость самих HDD, дополнительных дисковых полок, снижение надежности, большое тепловыделение, место в стойке. С использованием LSI CacheCade и пары SSD 200ГБ Intel S3700 можно уменьшить количество HDD до семи (например, 6×600ГБ SAS в RAID-10 + hot-spare), получив на области в 400ГБ производительность не менее 5000 IOPS на запись и больше 50000 IOPS на чтение.
- Защита целостности данных При кэшировании только запросов на чтение угрозы потери данных нет — они остаются на HDD массиве и SSD из кэшируещего пула можно объединять в RAID-0 для повышения производительности. При кэшировании записи (режим работы write-back) защита целостности данных обеспечивается объединением SSD в отказоустойчивый массив RAID-1 или RAID-10.
Возможности
- Кэширование операций чтения и записи на SSD (одиночный или массив из нескольких SSD).
- Работа SSD в кэш-пуле: RAID-0, 1, 10
- Максимальное количество SSD в кэш-пуле: 32
- Максимальное количество томов с активированным кэшированием: 64
- Максимальный объем кэша: 512ГБ
Сфера применения
- OLTP нагрузка (СУБД)
- Microsoft Exchange и другие почтовые серверы
- Microsoft SharePoint
- Web-серверы
- Виртуализация
Компоненты решения
- Контроллеры SAS2 RAID LSI MegaRAID 926x/927x/928x, ключ активации LSI CacheCade Pro 2.0, один или несколько рекомендуемых SSD. Контроллеры отличаются производительностью: современные модели 9266, 9271 и 9286 используют новый процессор LSI 2208 и имеют высокий предел по IOPS — порядка 450 тыс. Для обеспечения защиты целостности данных при использовании RAM-кэша на запись необходимо обеспечить его защиту — при помощи батарейного модуля или flash-модуля CacheVault.
Мы рекомендуем использовать eMLC и SLC SSD из списка совместимости (HCL) для контроллеров LSI. Хорошим соотношением цена/производительность и надежностью обладают SSD Intel S3700: до 35000 IOPS при реальных тестах на чтение и запись блоками 4k. Использование недорогих бытовых SSD может привести к низкой эффективности работы SSD-кэширования за счет низкой производительности на запись и снижению надежности за счет ограниченного ресурса.
- Контроллеры LSI MegaRAID 9271-8iCC и 9286CV-8eCC поставляются с уже активированными лицензиями CacheCade и FastPath, что экономит время на развертывание решений.
- Контроллеры LSI Nytro™ MegaRAID® NMR 8100-4i, 8110-4i, 8120-4i.
Данные контроллеры построены на базе ROC LSI2208 и имеют встроенную поддержку SSD-кэширования с размещением качественных высокопроизводительных SSD непосредственно на плате контроллера:
- 8100-4i: 100ГБ SLC
- 8110-4i: 200ГБ eMLC
- 8120-4i: 400ГБ eMLC
Специалисты компании True System помогут Вам в выборе оптимального решения для бюджетного хранения данных и выполнят работы по настройке контроллеров LSI.
Вернуться к списку
Павел 17.02.2019 10:52:50 Спасибо за статью. Познавательно.Прошу прокомментировать следующий момент, непонимание.В примере, в котором монстровидное хранилище из 80 SAS заменяется гибридом из 4 SSD + 6 SAS остаётся неясный момент, вернее два момента.1. Все операции ввода вывода обращённые к массиву будут проходить запись на SSD? Таким образом я говорю об усиленном износе.2. Горячие, закешированные данные, хранятся только в SSD cache или на основном LD тоже? Долговременно хранятся, имеется в виду. Или, всё же, имеется «холодная» копия на массиве из магнитных носителей? Здесь я говорю о надёжности хранения, что сказывается на глубине «быстрого» бекапа, к примеру transaction log.
Спасибо.
Ответить Цитировать 0
Добавить новый комментарий
Использование SSD-кэширования в серверах. Контроллеры Adaptec (Microsemi) и LSI (BROADCOM). Тестирование и настройка
Рассмотрим несколько различных вариантов построения дисковой подсистемы сервера с целью сравнения их по цене и быстродействию. В качестве величины полезной емкости дискового хранилища выберем значение 10TB. Во всех вариантах предполагается использование аппаратного RAID-контроллера с кэш-памятью 2GB.
Бюджетный вариант – два жестких диска 3,5″ объемом 10TB с интерфейсом SATA и скоростью вращения шпинделя 7200 об./мин., объединенных в массив RAID1.
Быстродействие такого массива не превысит 500 операций в секунду (IOPS) при чтении и 250 IOPS при записи.
Дополнительный плюс этого решения – возможность кратного увеличения емкости хранилища за счет добавления новых дисков в свободные отсеки дисковой корзины сервера.
Производительный вариант – 12 HDD 2,5″ 10’000RPM емкостью 1,8TB в RAID10 (RAID5 или RAID50 в два раза медленнее на операциях записи). Здесь мы получим на чтении около 5’000 IOPS, а на записи 2’500 IOPS — в 10 раз больше по сравнению с первым вариантом. Однако и обойдутся эти диски примерно в шесть раз дороже.
Максимальное быстродействие обеспечит массив RAID10 из SSD-накопителей, например, 12 штук Intel DC S4600 1,9TB.
Производительность такого массива составит 800’000 IOPS на операциях чтения и 400’000 IOPS на операциях записи, то есть быстрее второго варианта в 160 раз, но дороже по сравнению с ним в 4 раза, а с первым вариантом – в 24 раза.
Выбор SSD-накопителей большего размера даст примерно такие же цифры по стоимости и немного ниже – по производительности.
Вариантмассива | Чтение(IOPS) | Запись(IOPS) | Во сколькораз быстрее | Во сколькораз дороже |
HDD 10TB x 2 | 500 | 250 | — | — |
HDD 1,8TB x 12 | 5’000 | 2’500 | X 10 | X 6 |
SSD 1,9TB x 12 | 800’000 | 400’000 | X 1600 | X 24 |
В общем, чем дороже, тем быстрее. И даже скорость обгоняет цену.
Прирост производительности на 3 порядка, который обеспечивают твердотельные накопители, является чрезвычайно привлекательным, однако на хранилищах такого объема обходится слишком дорого.
К счастью, существует менее затратная технология, которая может обеспечить производительность того же порядка, что и обычный массив из SDD-накопителей. Она основана на использовании SSD-накопителей в качестве кэш-памяти дисковой подсистемы.
Идея SSD-кэширования основана на концепции «горячих» данных.
Обычно серверные приложения активно работают лишь с небольшой частью данных, хранящихся в дисковой подсистеме сервера. Например, на сервере 1С транзакции осуществляются в основном с данными текущего операционного периода, а большинство запросов к серверу веб-хостинга обращается, как правило, к наиболее популярным страницам сайта.
Таким образом, в дисковой подсистеме сервера имеются блоки данных, к которым контроллер обращается значительно чаще, чем к другим блокам. Такие «горячие» блоки контроллер, поддерживающий технологию SSD-кэширования, хранит в кэш-памяти на SSD-накопителях. Запись и чтение этих блоков с SSD выполняются гораздо быстрее, чем чтение и запись с жестких дисков.
Понятно, что разделение данных на «горячие» и «холодные» достаточно условно. Однако как показывает практика, использование для кэширования «горячих» данных даже пары SSD-накопителей небольшого объема, объединенных в массив RAID1, дает очень большой прирост производительности дисковой подсистемы.
Технология SSD-кэширования применяется как для операций чтения, так для операций записи.
Алгоритм SSD-кэширования реализуется контроллером, он довольно простой и не требует от администратора никаких усилий по настройке и сопровождению. Суть алгоритма в следующем.
Когда сервер посылает контроллеру запрос на чтение блока данных, контроллер проверяет, находится ли данный блок в SSD-кэш.
Если да, контроллер читает блок из SSD-кэш.
Если нет, контроллер читает блок с жестких дисков и записывает копию этого блока в SSD-кэш. При следующем запросе на чтение данного блока, он будет считываться из SSD-кэш.
Когда сервер посылает контроллеру запрос на запись блока данных, контроллер проверяет, находится ли данный блок в SSD-кэш.
Если да, контроллер записывает данный блок в SSD-кэш.
Если нет, контроллер записывает данный блок на жесткие диски и в SSD-кэш. При следующем запросе на запись данного блока, он будет записываться только в SSD-кэш.
Что произойдет, если при очередном запросе на запись блока, которого нет в SSD-кэш, там для него не окажется свободного места? В этом случае самый «старый» по времени обращения блок в SSD-кэш будет записан на жесткий диск, а его место займет «новый» блок.
Таким образом, через некоторое время после начала эксплуатации сервера с использованием технологии SSD-кэширования кэш-память на SSD будет в основном содержать блоки данных, к которым приложения сервера обращаются чаще.
Если SSD-кэширование планируется использовать только для чтения, в качестве кэш-памяти на SSD можно использовать одиночный SSD-накопитель или массив RAID0 из SSD-накопителей, поскольку SSD-кэш будет хранить только копии блоков данных, хранящихся на жестких дисках.
Если SSD-кэширование планируется использовать для чтения и записи, то «горячие» данные будут храниться только в кэш-памяти на SSD. В этом случае необходимо обеспечить резервирование таких данных, для чего использовать в качестве кэш-памяти два или более SSD-накопителей, объединенных в RAID-массив с избыточностью, например, RAID1 или RAID10.
Давайте посмотрим, как технология SSD-кэширования работает на практике, а заодно сравним эффективность ее реализации на контроллерах двух разных производителей – Adaptec и LSI.
Основной дисковый массив: RAID10 из шести HDD SATA 3,5″ 1TB. Полезный объем массива 2,7TB.
SSD-кэш: RAID1 из двух SSD Intel DC S4600 240GB. Полезный объем массива 223GB.
В качестве «горячих» данных мы использовали первые 20 миллионов секторов, то есть 9,5GB, основного массива RAID10. Выбранный небольшой объем «горячих» данных принципиально ничего не меняет, но позволяет значительно сократить время тестирования.
Тестируемые контроллеры: Adaptec SmartRAID 3152-8i и BROADCOM MegaRAID 9361-8i (LSI).
Нагрузка на дисковую подсистему создавалась при помощи утилиты iometer. Параметры нагрузки: размер блока 4K, случайный доступ, глубина очереди 256. Мы выбрали большую глубину очереди, чтобы сравнивать максимальные показатели производительности, не обращая внимания на время задержки.
Производительность дисковой подсистемы фиксировались при помощи системного монитора Windows.
Этот контроллер по умолчанию поддерживает технологию SSD-кэширования maxCache 4.0 и имеет 2GB собственной кэш-памяти c защитой от потери питания в комплекте.
При создании основного массива RAID10 мы использовали установки контроллера по умолчанию.
Массив RAID1 кэш-памяти на SSD был установлен в режим Write-Back, чтобы включить SSD-кэширование на чтение и запись. При установке режима Write-Through все данные будут записываться на жесткий диск, поэтому мы получим ускорение только на операциях чтения.
Картина тестирования:
График 1. Тестирование Adaptec maxCache 4.0
Красная линия – производительность дисковой подсистемы на операциях записи.
В первый момент наблюдается резкий всплеск производительности до значения 100’000 IOPS – данные записываются в кэш контроллера, который работает со скоростью оперативной памяти.
После заполнения кэш производительность падает до обычной скорости массива жестких дисков (примерно 2’000 IOPS). В это время блоки данных записываются на жесткие диски, поскольку этих блоков в кэш-памяти на SSD еще нет и контроллер не считает их «горячими». Копия данных записывается в SSD-кэш.
Постепенно все больше блоков записывается повторно, такие блоки уже есть в SSD-кэш, поэтому контроллер считает их «горячими» и записывает только на SSD. Производительность операций записи при этом достигает 40’000 IOPS и стабилизируется на этой отметке. Поскольку в SSD-кэш данные защищены (RAID1), нет необходимости перезаписывать их в основной массив.
Отметим, кстати, что заявленная производителем скорость записи для используемых нами здесь SSD-накопителей Intel DC S4600 240GB составляет как раз 38’000 IOPS. Поскольку мы записываем один и тот же набор данных на каждый накопитель из зеркальной пары массива RAID1, можно сказать, что SSD-накопители работают на максимально возможной для себя скорости.
Синяя линия – производительность дисковой подсистемы на операциях чтения.
Левый участок – чтение данных из массива жестких дисков со скоростью примерно 2’000 IOPS, в кэш-памяти на SSD пока нет «горячих» данных.
Одновременно с чтением блоков жестких дисков выполняется их копирование в кэш-память на SSD. Постепенно скорость чтения немного растет, поскольку начинают «попадаться» блоки, ранее считанные в SSD-кэш.
После записи в SSD-кэш всех «горячих» данных их чтение выполняется оттуда со скоростью более 90’000 IOPS (второй синий участок).
Фиолетовая линия – комбинированная нагрузка (50% чтение, 50% запись). Все операции выполняются только c «горячими» данными на SSD. Производительность в районе 60’000 IOPS.
Резюме
Контроллер Adaptec SmartRAID 3152-8i отлично справится с организацией SSD-кэширования. Поскольку контроллер уже включает поддержку maxCache 4.0 и защиту кэш-памяти, необходимо приобрести только SSD-накопители. Контроллер удобен и прост в настройке, установки по умолчанию обеспечивают максимальный уровень защиты данных.
Видео с записью тестирования Adaptec maxCache 4.0:
Этот контроллер поддерживает технологию SSD-кэширования CacheCade 2.0. Для ее использования необходимо приобрести лицензию стоимостью около 20’000 рублей.
- Защита кэш-памяти не входит в комплект поставки, но по результатам тестирования мы выяснили, что для получения максимальных показателей производительности кэш контроллера лучше использовать в режиме Write-Through, который не требует защиты кэш.
- Установки контроллера для основного массива: кэш контроллера в режиме Write-Through; режимы чтения Direct IO, No Read Ahead.
- Кэш-память на SSD-накопителях (массив RAID1) в режиме Write-Back для кэширования операций чтения и записи.
- Картина тестирования (здесь диапазон вертикальной шкалы в два раза больше, чем у Adaptec):
График 2. Тестирование LSI CacheCade 2.0
Последовательность тестирования такая же, картина похожая, но производительность CacheCade 2.0 несколько выше, чем maxCache.
- На операциях записи «горячих» данных мы получили производительность почти 60’000 IOPS против 40’000 у Adaptec, на операциях чтения – почти 120’000 IOPS против 90’000 IOPS, на комбинированной нагрузке – 70’000 IOPS против 60’000 IOPS.
- Здесь нет «всплеска» производительности в начальный момент тестирования операций записи, поскольку кэш контроллера работает в режиме Write-Through и не используется при записи данных на диски.
- Резюме
У контроллера LSI более сложная настройка параметров, требующая понимания принципов его работы. Для использования SSD-кэширования не требуется обязательное наличие защиты кэш-памяти контроллера.
В отличие от Adaptec возможно использование SSD-кэш для обслуживания сразу нескольких RAID-массивов. Более высокая производительность по сравнению с контроллерами Adaptec.
Требуется покупка дополнительной лицензии CacheCade.
Видео с записью тестирования LSI CacheCade 2.0:
Дополним нашу табличку. При сравнении цен учтем, что для массива в 10TB желательна кэш-память большей емкости. Цифры производительности возьмем из нашего тестирования.
Вариантмассива | Чтение(IOPS) | Запись(IOPS) | Во сколькораз быстрее | Во сколькораз дороже |
HDD 10TB x 2 | 500 | 250 | — | — |
HDD 1,8TB x 12 | 5’000 | 2’500 | X 10 | X 6 |
SSD 1,9TB x 12 | 800’000 | 400’000 | X 1600 | X 24 |
HDD 10TB x 2 + SSD 960GB x 2, maxCache | 90’000 | 40’000 | X 160 | X 2,5 |
HDD 10TB x 2 + SSD 960GB x 2, CacheCade | 120’000 | 60’000 | X 240 | X 3 |
- Несколько рекомендаций
- При кэшировании записи всегда используйте в качестве SSD-кэш массивы с избыточностью (RAID1 или RAID10).
- Рекомендуемый объем SDD-кэш — 5-10% от емкости основной дисковой подсистемы.
Для SSD-кэш используйте только серверные SSD-накопители. Они имеют дополнительную «невидимую» область размером около 20% от заявленного объема.
Эта резервная область используется для внутренних операций дефрагментации и «сборки мусора», благодаря чему производительность таких накопителей на операциях записи не падает даже при 100% их заполнении.
Кроме того, наличие резервной области экономит ресурс накопителя.
Ресурс SSD-накопителей для кэш-памяти должен соответствовать нагрузке на подсистему хранения сервера по объему записываемых данных.
Ресурс накопителя обычно определяется параметром DWPD (Drive Writes Per Day) – сколько раз в день можно полностью перезаписать накопитель на протяжении 5 лет.
Накопители с ресурсом 3 DWPD и более обычно будут подходящим выбором. Измерить реальную нагрузку на дисковую подсистему можно при помощи системного монитора.
В случае, если возникнет необходимость перенести все данные из кэш-памяти на SSD-накопителях на основной массив, нужно переключить режим работы SSD-кэш с Write-Back на Write-Through и подождать пока данные полностью не перепишутся на жесткие диски. По окончании этой процедуры, но не ранее, контроллер «позволит» удалить том SSD-кэширования.
Если у Вас появились вопросы или замечания по данному материалу, пожалуйста, направляйте их на info@team.ru.
Дмитрий Командный
11.09.2018
IOPS — что это такое, и как его считать
Korang 29 декабря 2012 в 08:35 IOPS (количество операций ввода/вывода – от англ. Input/Output Operations Per Second) – один из ключевых параметров при измерении производительности систем хранения данных, жестких дисков (НЖМД), твердотельных диски (SSD) и сетевых хранилища данных (SAN).
По сути, IOPS это количество блоков, которое успевает считаться или записаться на носитель. Чем больше размер блока, тем меньше кусков, из которых состоит файл, и тем меньше будет IOPS, так как на чтение куска большего размера будет затрачиваться больше времени.
Значит, для определения IOPS надо знать скорость и размер блока при операции чтения / записи. Параметр IOPS равен скорости, деленной на размер блока при выполнении операции.
Характеристики производительности
Основными измеряемыми величинами являются операции линейного (последовательного) и произвольного (случайного) доступа. Под линейными операциям чтения/записи, при которых части файлов считываются последовательно, одна за другой, подразумевается передача больших файлов (более 128 К). При произвольных операциях данные читаются случайно из разных областей носителя, обычно они ассоциируются с размером блока 4 Кбайт. Ниже приведены основные характеристики:
Параметр | Описание |
Всего IOPS (Total IOPS) | Суммарное число операций ввода/вывода в секунду (при выполнении как чтения, так и записи) |
IOPS произвольного чтения (Random Read) | Среднее число операций произвольного чтения в секунду |
IOPS произвольной записи (Random Write) | Среднее число операций произвольной записи в секунду |
IOPS последовательного чтения (Sequential Read) | Среднее число операций линейного чтения в секунду |
IOPS последовательной записи (Sequential Write) | Среднее число операций линейной записи в секунду |
Приблизительные значения IOPS
Приблизительные значения IOPS для жестких дисков.
Устройство | Тип | IOPS | Интерфейс |
7,200 об/мин SATA-диски | HDD | ~75-100 IOPS | SATA 3 Гбит/с |
10,000 об/мин SATA-диски | HDD | ~125-150 IOPS | SATA 3 Гбит/с |
10,000 об/мин SAS-диски | HDD | ~140 IOPS | SAS |
15,000 об/мин SAS-диски | HDD | ~175-210 IOPS | SAS |
Приблизительные значения IOPS для SSD.
Устройство | Тип | IOPS | Интерфейс |
Intel X25-M G2 MLC | SSD | ~8 600 IOPS | SATA 3 Гбит/с |
OCZ Vertex 3 | SSD | ~60 000 IOPS (Произвольная запись 4K) | SATA 6 Гбит/с |
OCZ RevoDrive 3 X2 | SSD | ~200 000 IOPS (Произвольная запись 4K) | PCIe |
OCZ Z-Drive R4 CloudServ | SSD | ~1 400 000 IOPS | PCIe |
RAID пенальти
Любые операции чтения, которые выполняются на дисках, не подвергаются никакому пенальти, поскольку все диски могут использоваться для операций чтения. Но всё на оборот с операциями на запись. Количество пенальти на запись зависят от типа выбранного RAID-а, например.
В RAID 1 чтобы данные записались на диск, происходит две операции на запись (по одной записи на каждый диск), и следовательно RAID 1 имеет два пенальти.
В RAID 5 чтобы записать данные происходит 4 операции (Чтение существующих данных, четность RAID, Запись новых данных, Запись новой четности) тем самым пенальти в RAID 5 составляет 4. В этой таблице приведено значение пенальти для более часто используемых RAID конфигурации.
RAID | I/O Пенальти |
RAID 0 | 1 (Edited by Reader) |
RAID 1 | 2 |
RAID 5 | 4 |
RAID 6 | 6 |
RAID 10 | 2 |
Характеристика рабочих нагрузок
Характеристика рабочей нагрузки в основном рассматривается как процент операции чтений и записей, которые вырабатывает или требует приложение. Например, в среде VDI процентное соотношение IOPS рассматривается как 80-90% на запись и 10-20% на чтение.
Понимание характеристики рабочей нагрузки является наиболее критическим фактором, поскольку от этого и зависит выбор оптимального RAID для среды.
Приложения которые интенсивно используют операции на запись являются хорошими кандидатами для RAID 10, тогда как приложения которые интенсивно используют операции на чтение могут быть размещены на RAID 5.
Вычисление IOPS
Есть два сценария вычисления IOPS-ов. Один из сценариев это когда есть определенное число дисков, и мы хотим знать, сколько IOPS эти диски выдадут? Второй сценарий, когда мы знаем сколько нам IOPS-ов надо, и хотим вычислить нужное количество дисков?
Сценарий 1: Вычисление IOPS исходя из определенного кол-ва дисков
Представим что у нас есть 20 450GB 15к RPM дисков. Рассмотрим два сценария Рабочей нагрузки 80%Write-20%Read и другой сценарий с 20%Write-80%Read. Также мы вычислим количество IOPS как для RAID5 и RAID 10. Формула для расчета IOPS:
Total Raw IOPS = Disk Speed IOPS * Number of disks
Functional IOPS =(((Total Raw IOPS×Write %))/(RAID Penalty))+(Total Raw IOPS×Read %) Есть определение Raw IOPS и Functional IOPS, как раз токи Functional IOPS-ы и есть те IOPS-ы которые включают в себя RAID пенальти, и это и есть “настоявшие” IOPS-ы. А теперь подставим цифры и посмотрим что получится.
Total Raw IOPS = 170*20 = 3400 IOPS (один 15K RPM диск может выдать в среднем 170 IOPS)
Для RAID-5
Вариант 1 (80%Write 20%Read) Functional IOPS = (((3400*0.8))/(4))+(3400*0.2) = 1360 IOPS Вариант 2 (20%Write 80%Read) Functional IOPS = (((3400*0.2))/(4))+(3400*0.8) = 2890 IOPS
Для RAID-1
Вариант 1 (80%Write 20%Read) Functional IOPS = (((3400*0.8))/(2))+(3400*0.2) = 2040 IOPS Вариант 2 (20%Write 80%Read) Functional IOPS = (((3400*0.2))/(2))+(3400*0.8) = 3100 IOPS
Сценарий 2: Подсчет кол-ва дисков для достижения определенного кол-ва IOPS
Рассмотрим ситуацию где нам надо определить тип RAID-а и количества дисков для достижения определенного количества IOPS-ов 5000 и с определенными рабочими нагрузками, например 80%Write20%Read и 20%Write80% Read.
Опять же для начала формула по которой и будем считать:
- Total number of Disks required = ((Total Read IOPS + (Total Write IOPS*RAID Penalty))/Disk Speed IOPS)
- Total IOPS = 5000
- Заметка: 80% от 5000 IOPS = 4000 IOPS и 20% от 5000 IOPS = 1000 IOPS с этими цифрами и будем оперировать.
Теперь подставим цифры.
Для RAID-5
Вариант 1 (80%Write20%Read) – Total Number of disks required = ((1000+(4000*4))/170) = 100 дисков. Вариант 2 (20%Write80%Read) – Total Number of disks required = ((4000+(1000*4))/170) = 47 дисков приблизительно.
Для RAID-1
Вариант 1 (80%Write20%Read) – Total Number of disks required = ((1000+(4000*2))/170) = 53 диска приблизительно.
Вариант 2 (20%Write80%Read) – Total Number of disks required = ((4000+(1000*2))/170) = 35 дисков приблизительно. Понимание и подсчет IOPS, RAID пенальти, и характеристик рабочих нагрузок очень критичны аспект при планировании.
Когда нагрузка более интенсивна на запись луче выбирать RAID 10 и наоборот при нагрузках на чтение RAID 5.
Программы для измерения IOPS
IOmeter — тест IOPS IOzone — тест IOPS FIO — тест IOPS CrystalDiskMark — тест IOPS SQLIO — набор тестов для расчета производительности (IOPS, MB, Latency) под сервера БД wmarow — калькулятор RAID групп по производительности IOPS