crocВадим Болотнов, директор Центра решений КРОК на базе технологии EMC.

Сегодня все более острым становится вопрос ускорения работы ИТ-сервисов при постоянно растущих объемах данных. Для многих приложений решением является перенос хранилищ на флэш-память. Основная задача состоит в том, чтобы определить, для каких приложений в ЦОД малое время отклика действительно критично. После их перемещения на флэш-накопители приложения, оставшиеся на «традиционных» дисках, также получат прирост производительности.

 

Жесткий диск против флэш-памяти

Современный сервер – это электронное устройство, где почти нет движущихся механических частей. Исключение составляют разве что жесткий диск (HDD) и вентиляторы охлаждения. Технологическим пределом при передаче информации между электронными устройствами является скорость света, но у жесткого диска предел скорости ограничивается максимальной механической скоростью вращения шпинделя. Поэтому он обрабатывает информацию в сотни и тысячи раз медленнее, чем процессоры и память. Пока скорость процессоров увеличивалась в десятки раз, жесткие диски эволюционировали гораздо медленнее. Сейчас они на том же уровне, что и в конце 20 века. Из-за этого многие приложения, для которых строятся центры обработки данных, работают медленнее, чем могли бы. В результате дорогостоящие высоконагруженные серверы простаивают, пока информация считывается и записывается на жесткий диск.

cpu

Рис. 1. Относительный рост скорости процессоров и механических жестких дисков

Актуальность флэш-памяти

Объемы информации и скорость ее обработки растут, и наши требования в связи с этим тоже только повышаются. Жизнь в современном мире становится все быстрее, и не в последнюю очередь благодаря технологиям. У нас нет желания тратить время на ожидание, пользуясь электронными услугами через Интернет, банкомат или стоя в очереди в кассу супермаркета. Низкая скорость работы системы, которая так раздражает нас, может быть следствием медленного функционирования дисковой подсистемы на центральном сервере.

Проблему ввода-вывода способна решить флэш-память, она обладает гораздо большей скоростью отклика. В лабораторных условиях оптимальный жесткий диск обрабатывает запрос в среднем 6-7 миллисекунд, а флэш-память – 0,1 миллисекунду. При этом она может обрабатывать в десятки и сотни раз больше транзакций по сравнению с жестким диском, имеющим ограничение в 150–200 операций в секунду.

Но это не означает, что жесткий диск «умер» и от него надо отказаться. Вот уже многие годы предрекают смерть магнитной ленте в системах резервного копирования. Флэш-память пока дороже, чем обычный HDD. Ее лучше использовать для ограниченного круга задач, ведь не всем приложениям нужна высокая скорость отклика. Стоимость флэш-памяти может тоже варьироваться. Есть как дорогая и надежная SLC (Single-level cell) флэш-память, так и бюджетная MLC (Multi-level cell), но с меньшим сроком службы. В ячейку SLC записывается один бит информации, в ячейку MLC – два. В промышленных решениях часто используют SLC флэш-память, в потребительских же товарах – менее дорогую MLC. Но сейчас тенденция меняется, и MLC-память начинают использовать в корпоративных СХД.

Принимая решение о внедрении флэш-накопителе в ЦОД, надо понимать, есть ли в компании ИТ-задачи, оперативное выполнение которых позволит заработать больше денег. Например, существует отчет, который хотелось бы запускать ежедневно, но он считается сутки, и поэтому его запускают еженедельно. В итоге, прогноз цен в торговой сети делается некорректно, или партнерам выдается не вполне актуальная информация, или вкладчики уходят в другой банк, недовольные медленной работой банкоматов. Если есть такие задачи, их реализацию практически всегда можно ускорить с помощью флэш-памяти. Очень часто полагают, что проблема – в неправильно написанном приложении, но можно реально ускорить работу с помощью дисковой подсистемы. Серьезно повысить эффективность можно только за счет одних технологий, не переписывая код. Ценность флэш-памяти не в объемах, а в скорости, и надо применять её для подходящих приложений, считая стоимость не в рублях за гигабайты, а в рублях за транзакции (IOPS).

В каких же случаях помогает флэш-память? Большие базы данных, которые сейчас чаще всего размещаются на дисковых массивах старшего класса можно переместить на накопители. Например, когда пользователи SAP жалуются на медленную работу приложения, скорее всего, проблему сможет решить перевод хранилища на флэш-память. Одна СХД с флэш-памятью может заменить одну или даже несколько стоек в ЦОД.
Флэш-память стоит вводить и тогда, когда в компании ведется большой проект по виртуализации рабочих станций. Сама по себе виртуализация рабочих станций – интересная и перспективная технология, у нее масса преимуществ – от упрощения поддержки пользователей до упрощения защиты данных. При этом надо понимать, что виртуализация рабочих станций подразумевает большую нагрузку на СХД. Иногда здесь даже не помогает добавление флэш-дисков в традиционную СХД, так как могут не справляться контролеры. Системы хранения, целиком построенные на флэш-памяти и оптимизированные под нее, справляются с такими задачами гораздо лучше.

Представьте: работа сотен и тысяч пользователей, которые до этого взаимодействовали только со своими жесткими дисками, «ложится на плечи» одной СХД. В своей практике я уже сталкивался с ситуацией, когда счет виртуальных машин шел на сотни, существующая СХД переставала справляться. Одна из популярных технологий, которая позволяет экономить место на СХД при виртуализации рабочих станций, – это использование «золотого образа». Когда необходимо 1000 компьютеров с Windows 7, не надо устанавливать 1000 дистрибьютивов и занимать несколько терабайт файлами операционной системы.

Система виртуализации создаст один, так называемый «золотой», образ операционной системы. При этом все пользователи будут читать с него, а на их виртуальных машинах будут храниться только файлы, отличные, от тех, что хранятся в «золотом образе». Понятно, что на небольшой объем дискового пространства приходится огромное количество операций чтения. И если «золотой образ» как-то серьезно меняется, то это вызывает обновление тысячи рабочих станций и создает очень большую нагрузку на СХД. Будучи в десятки раз быстрее, флэш-память намного лучше справляется с такой задачей.

flash
Рис. 2. Сравнение внедрения VDI на традиционной и flash СХД, на примере Violin Memory.

Конечно, чаще всего в переходе на флэш-память нуждаются большие компании, но этот переход может быть полезен и средним компаниям. Например, чтобы эффективно выполнить задачу, бывает достаточно купить 3-4 флэш-диска вместо 20–40 жестких дисков для важного приложения.

 

Внедрение флэш-памяти в существующую инфраструктуру хранения

Есть несколько способ внедрения флэш-памяти в существующую инфраструктуру хранения. Первый и самый бюджетный вариант – уставить флэш-память непосредственно в сервере – при помощи флэш-накопителя SSD или карты с интерфейсом PСI Express, содержащей чипы флэш-памяти. Это недорогой способ ускорения работы сервера, но у него есть ряд недостатков, из-за которых большинство компаний в свое время отказалось хранить данные на внутренних дисках и ушли в направлении СХД. В частности, это  пониженная отказоустойчивость, сложность в обслуживании, недостаточная емкость, невозможность задействовать флэш-память одновременно для нескольких серверов. Емкость флэш-памяти в рамках одного сервера ограничена количеством PCI-e-слотов и производительностью RAID-контроллера, поэтому вряд ли удастся получить больше 2 Тбайт.

Два следующих варианта внедрения флэш-памяти связаны с наиболее распространенным способом хранения данных – централизованным. Плюс в отказоустойчивости и в том, что можно разделить ресурсы этой дорогой флэш-памяти между несколькими задачами. Я редко в своей практике сталкивался ситуацией, когда серверы могут сильно нагрузить такую СХД, даже если заказчик крупный.
Один из способов связан с вендорами традиционных систем хранения - IBM, HP, EMC, HDS, которые много лет делали СХД на обычных жестких дисках. Так как они уже несколько лет поддерживают SSD, получается довольно простой способ использовать флэш-память для тех, у кого такая система уже есть — можно купить несколько жестких дисков из флэш-памяти и вставить в полки СХД. Плюс в простоте, и в том, что вы покупаете решение у проверенного вендора.

Минус в том, что эти системы пришли из прошлого, у них недостаточно мощные контроллеры, в которых содержатся миллионы строчек кода, «заточенного» под механику. Далеко не всегда эти алгоритмы подойдут для флэш-памяти. Понятно, что вендорам, которые много лет работали с жесткими дисками, сложно сразу перейти на флэш-память, тем более есть много приложений, которые хорошо чувствуют себя на жестких дисках. Поэтому для оптимального использования SSD можно создать многоуровневую систему хранения данных.

Система сама разделяет данные на те, которым быстрый доступ нужен и те которым он не требуется или вообще являются архивными. Принцип простой, система анализирует запросы и те данные, которые запрашиваются чаще, отправляются на флэш-память, а те которые реже на жесткие диски SAS или SATA. Этот подход позволяет оптимальным образом использовать еще пока дорогие флэш-накопители, но при этом у него есть и свои недостатки.

Один из главных минусов – система не может перемещать данные в реальном времени и подстраиваться под непредсказуемый профиль нагрузки. Алгоритм может только прогнозировать на основе статистики, как часто будут запрашиваться те или иные. Следовательно, есть вероятность не угадать, что приведет к замедлению приложения. К тому же флэш-память стремительно дешевеет, и возможно скоро такие сложные алгоритмы будут не так актуальны – например, можно будет положить все данные на флэш-память MLC.

Следующий способ внедрения флэш-памяти также связан с централизованной СХД. Есть ряд новых вендоров, которые начали разработку «с нуля» уже в 21 веке. Их системы создавались конкретно под флэш-память. Они управляют пулом флэш-памяти как единым целым и позволяют минимизировать недостатки – ограничения по количеству циклов перезаписи, недостаточную скорость записи по сравнению с чтением и прочее. Один из самых удачных примеров — Violin Memory, один из лидеров этого рынка. Несколько известных компаний инвестировали в Violin, и один из самых серьезных инвесторов – компания Toshiba, которая изобрела NAND-память.

Если есть высоконагруженное приложение, то можно просто перенести его целиком на такую новую систему хранения, а если оно очень большое, или получается слишком дорого – перенести самые нагруженные тома. Специализированные СХД масштабируются до десятков и сотен терабайт флэш-памяти.

И последний подход — использование не просто СХД с флэш-памятью, а попытка добавить еще один уровень кэш-памяти между серверами и существующими системами хранения. Некоторые производители СХД (EMC, NetApp) предлагают делать это внутри своих СХД. Ряд молодых компаний производит отдельно стоящие кэширующие СХД, которые подойдут к СХД любого вендора. На мой взгляд, в этом случае возникают серьезные риски совместимости и надежности. Если вдруг где-то произойдет малейший сбой, можно потерять данные, и соответственно деньги, время.

 

Интеграция СХД на флэш-памяти и традиционных систем хранения

Есть множество задач, которым сверхвысокая скорость обработки не нужна. Обычно надо выявить в ЦОД те приложения, которые требуют повышенной скорости дисковой системы, перенести их на флэш-СХД. Оставшиеся на «обычном» дисковом массиве приложения «вздохнут свободнее», и скорость их работы тоже повысится. Т.к. данные неумолимо растут, занять освободившееся место на СХД никогда не представит проблемы.

 

Мифы о флэш-памяти

Многие мифы о флэш-памяти связаны с тем, что она развивалась стремительно, практически у нас на глазах. И у многих понятие флэш-памяти ассоциируется с ранними флэш-накопителями USB и SSD. Действительно, их надежность оставляла желать лучшего. Причина в том, что флэш-память может выдержать ограниченное количество циклов  «стирание – запись». SLC – примерно 100 000; MLC – 10 000. Это ограниченное количество циклов стираний и последующих записей приводится противниками флэш-памяти, как основной аргумент того, что она хуже жестких дисков.

Но не надо забывать, что жесткий диск – это механическое устройство, у которого тоже может сломаться как механическая, так и магнитная составляющая. А проблема ограниченного количества циклов перезаписи вполне решаема. Для того чтобы флэш-память служила многие годы или даже десятилетия, достаточно просто равномерно ее загружать. Нельзя, чтобы на одном участке было только чтение, а на другом – постоянные изменения. Данную задачу могут решить контроллеры СХД. Механизм, отвечающий за это, называется Wear Leveling (контроль равномерности износа). Так, у упомянутых систем Violin Memory этот алгоритм равномерно «изнашивает» все пространство СХД целиком. В других системах за Wear Leveling отвечает контроллер каждого SSD, что немного менее эффективно.

Еще один миф, что флэш-память подходит для чтения, но не подходит для записи. Это связано  с механизмом обработки записи. Для того, что произвести запись в ячейку флэш-памяти предварительно ее надо очистить. Стирание происходит не с одной ячейкой, а с целым блоком, в котором объединяются от 64 до 128 и больше ячеек. И пока идет процесс стирания, все остальные операции останавливаются. Если один диск, на который постоянно что-то пишется, он будет занят процессом очищения для того, чтобы записать новые данные. И его производительность действительно будет намного меньше, чем просто при чтении с диска. Но ситуация меняется, если система хранения довольно большого объема, допустим на несколько терабайт. Тогда контролеры могут перераспределить нагрузку так, что этот эффект блокирования системы перед записью не будет сильно сказываться, и система сможет показывать практически такую же производительность на запись как и на чтение.

 

Что в итоге?

Флэш-память ускоряет работу серверов, оптимизирует занимаемое место в ЦОД, экономит энергию. Сегодня СХД, целиком построенные на флэш-памяти, являются серьезными конкурентами массивов высшего класса, которые часто наполняют десятками и сотнями жестких дисков, чтобы дать приложению нужную скорость, емкость часто вторична. Помимо первоначальной стоимости такого массива, он занимает довольно много места в ЦОД, требует питания и охлаждения. Если компания платит за аренду коммерческого ЦОД, то экономия на платежах – вполне серьезный довод.

Так как большинство корпоративного ПО – Oracle, SAP и т.д. – лицензируется именно по ядрам, можно сэкономить и на лицензиях за счет оптимизации процессов и уменьшения количества задействованных ядер. Если процессоры будут тратить меньше машинного времени, ожидая СХД, то они смогут производить больше вычислений в единицу времени. В итоге нам нужно будет меньше ядер для решения той же задачи.

И еще один немаловажный момент: срок жизни флэш-памяти намного больше, чем у обычных жестких дисков, и, соответственно, меньше расходы на поддержку, меньше риск потери данных, если выйдут из строя сразу два диска (чему подвержены обычные системы хранения).

По стоимости хранения информации за гигабайт, системы хранения на флэш-памяти еще несколько лет будут проигрывать системам на HDD, но по стоимости обработки информации (стоимости транзакции) они уже сейчас в несколько раз превосходят традиционные системы. Есть масса примеров в российской и мировой практике, когда огромные системы хранения заменялись на маленькие СХД на флэш-памяти, которые были по стоимости в несколько раз меньше, но демонстрировали удивительное ускорение приложений. Рискну предположить, что в будущем место сегодняшних дисков со скоростью вращения 15K и 10K займут SLC и MLC-чипы.