Среди прочих титулов, которых удостоился ушедший год, есть и такой — «Год золотой лихорадки SSD». Это свидетельствует о завершении периода раскачки и присматривания к этой технологии — рынок пошел в гору. В 2012 году твердотельные накопители достигли нужного потребителям уровня зрелости, сложился баланс цена – спрос и, как следствие, замена традиционных накопителей на жестких дисках (HDD) на накопители SSD перестала быть экзотикой, хотя нередко выбор в пользу последних делается на основе грубого сравнения нескольких характеристик, что может сформировать ложное впечатление, будто механическая замена «один на один» позволит заметно улучшить характеристики всей эксплуатируемой системы. Такой взгляд ошибочен — внедрение твердотельных энергонезависимых систем хранения не сводится к отказу от вращающихся дисков, хотя обычно эту волну эволюции представляют именно так. В случае ПК с одним диском дело действительно обстоит подобным образом, и здесь установка SSD вместо HDD напрямую ускорит обмен, но в более сложных системах отказ от традиционных дисков потребует пересмотра архитектуры, а иначе не удастся реализовать потенциал новых технологий. При этом пересмотр архитектуры затронет не только физические, но и программные инфраструктуры, однако если первые сейчас на виду, то вторые ждут своей очереди.
HDD — от восхода до заката
Первые эксперименты с магнитной записью — сначала на проволоку, потом на ленту — датируются второй половиной XIX века, и на протяжении последующих нескольких десятилетий иного способа доступа, чем последовательный, для воспроизведения записи не требовалось. С началом строительства мощных электромеханических табуляторов возникла потребность в устройствах, способных обеспечить прямой доступ к данным, однако лента не обеспечивает такого доступа. Временным разрешением противоречия между технологией записи и необходимостью прямого доступа стал магнитный барабан — цилиндр с неподвижными головками. Его изобрел австриец Густав Тучек в 1932 году — первый образец весил более 60 кг и хранил примерно 60 Кбайт. Барабаны просуществовали вплоть до начала 80-х годов, причем некоторое время жили параллельно с дисками. Примерно тогда же появилась полупроводниковая оперативная память, ее стоимость была существенно ниже, чем у ферритовой, но при отключении питания она не сохраняет записанное, поэтому на диски легла дополнительная задача, которой прежде не было, — сохранение текущего состояния компьютера при выключении и его восстановление. Так в середине 70-х сложилось устойчивое решение — память + диски, которое распространилось на все виды компьютеров.
Дисковая память, механическое наследие прошлого, проявила отличную «живучесть», надолго сохранив способность к развитию. Тридцать лет назад были популярны 14-дюймовые дисководы со съемными «блинами» емкостью 200 Мбайт, их вытеснили «винчестеры», размер которых с устройством емкостью 600 Мбайт сегодня мы бы оценили в 6U. Далее технологии совершили чудеса: емкость дисков увеличилась на много порядков, что открыло возможность работы с большими объемами данных. Но при этом диск остался диском — доступ к данным в нем вроде бы прямой, но он, как и полвека назад, вращается, поделен на дорожки и сектора, обращение происходит с неизбежной задержкой, требуемой для подхода головки к нужной области. Особенно остро несовершенство дисков проявилось в системах с виртуальными серверами, в которых резко повышается трафик, выраженный в количестве операций ввода/вывода (IOPS) со случайным доступом. Например, при создании систем с большим количеством виртуальных десктопов так и не удалось решить проблему ввода/вывода подобно тому, как это делается для СУБД — за счет увеличения числа шпинделей. Механическая природа дисков все больше входит в противоречие с современными системными требованиями.
Твердотельные системы
Долгожданные гибридные диски
Твердотельные технологии хранения данных нашли свое место в многоуровневых корпоративных хранилищах, однако неясно, как реализовать их преимущества там, где твердотельные диски слишком дороги и нет необходимости в сложных структурах хранения. Леонид Черняк |
Выход из сложившегося положения нашелся в энергонезависимых твердотельных системах хранения (Solid State Storage, SSS). На уровне физических принципов записи данных существует несколько возможных подходов, но на данный момент до практического использования доведена технология, которую принято называть флэш-памятью, в двух ее физических разновидностях — NAND и NOR, а также в двух основных конструктивных решениях — одноуровневое (Single Level Cell, SLC) и многоуровневое (Multi Level Cell, MLC). Промежуточное место занимает корпоративное решение eMLC (Enterprise MLC), имеющее ресурс на порядок больше, чем MLC, но дешевле, чем SLC.
SSS реализуется в виде соответствующих устройств SSSD (Solid State Storage Device), однако положение со стандартизацией в этой области, включая и терминологию, можно назвать зародышевым. Например, SSD часто расшифровывают как «твердотельные диски», хотя корректнее — «твердотельные устройства» или «твердотельные накопители». Эта ошибка имеет свое объяснение. Термин «твердотельный диск» появился раньше технологии флэш-памяти — еще в конце 70-х так называли память RAM с дисковым подключением емкостью не выше 64 Кбайт, которая в пересчете на 1 Гбайт стоила выше 1 млн долл. Долгое время подобные изделия применялись только в уникальных приложениях, но с появлением флэш-памяти ситуация изменилась.
Для упорядочения вопросов, связанных с энергонезависимой твердотельной памятью, ассоциация Storage Networking Industry Association в 2008 году выступила с инициативой Solid State Storage Initiative (SSSI), поддержанной практически всеми компаниями, работающими в этой области. Уже из названия SSSI следует, что точным является термин Solid State Storage — твердотельные системы хранения, которые могут собираться из компонентов разных типов с использованием разных архитектурных решений. SNIA выделяет три типа компонентов, из них SSD является самым распространенным, но не единственным.
- Solid State Drive (SSD). Данные накопители выпускаются в тех же форм-факторах, что и HDD, — 5,25, 3,5, 2,5 и 1,8 дюйма. Самый большой используется только в устройствах специального назначения, а самый маленький — в мобильных устройствах.
- Solid State Module (SSM). Модули размещаются в форм-факторе DIMM (Dual In-line Memory Module), и для доступа к ним используется интерфейс SATA.
- Solid State Card (SSC). Такие карты размещаются на печатных платах в форм-факторе PCIe и обычно используют тот же интерфейс.
Преимущество устройств SSD, по сравнению с SSC и SSM, — в их способности быстрее выйти на рынок благодаря уже готовой инфраструктуре, однако привязанность к ней одновременно является и их недостатком, поскольку «в старые мехи заливается новое вино» — неэффективно используется пространство. Электронная флэш-память компактнее диска, потребляет меньше энергии, поэтому существующие системы питания явно избыточны. Но это не главные источники потерь — ключевая проблема в архитектуре. Для обеспечения высокой скорости обмена в классических дисковых массивах увеличивают число шпинделей, чего для флэш-памяти не требуется. С другой стороны, преимущества SSD обнаруживаются в тех случаях, когда необходимо использовать уже существующие алгоритмы компресии и дедупликации.
Первые 15 лет SSD
Вся существующая поныне инфраструктура серверов и систем хранения была и остается рассчитанной на традиционные жесткие диски, поэтому, чтобы адаптировать к ней флэш-память, ее чаще всего стали упаковывать в формат именно этих устройств. Так бывает, что поначалу абсолютно новые вещи сохраняют внешний облик своих предшественников, вот и накопители на твердом теле часто называют дисками, причем большинство видит в них более эффективную альтернативу HDD, хотя на самом деле замена дисков — лишь одна из возможностей.
Твердотельные диски не новость — еще с конца семидесятых начались многочисленные попытки создать SSD на основе DRAM, и наибольшую известность получил накопитель BULK CORE емкостью 2 Мбайт от компании Dataram (данные + RAM). Это устройство подключалось ко внутренним шинам популярных тогда мини-компьютеров DEC и Data General. По тому же пути пошли потом SanDisk, EMC, Curtis, Intel и еще около десятка компаний, предлагавших разные продукты, но с общим недостатком — все они были энергозависимыми.
Преодоление этой слабости стало возможным с появлением в конце 80-х флэш-памяти и двух стандартов на карты памяти — PCMCIA (Personal Computer Memory Card International Association) и JEIDA (Japan Electronic Industry Development Association), которые объединились в PCMCIA 2.0. В этом формате можно было выпускать оперативную, постоянную и флэш-память, а наличие стандарта открыло возможность для тиражирования и снижения стоимости до приемлемого уровня. На таких картах в 1989 году компания Adtron выпустила накопитель, напоминающий нынешние считыватели с карт, подключаемые по USB.
Потребовалось еще восемь лет, чтобы в 1997 году немецкая компания Altec Computer Systems выпустила SSD, соответствующий современному представлению об этих накопителях, — компания первой совместила в одном устройстве флэш-карту с параллельным интерфейсом SCSI. И то и другое было известно раньше, но они существовали отдельно. Пример Altec оказался заразительным, и в конце 90-х в Кремниевой долине возникло несколько компаний, поставляющих энергонезависимые изделия специального назначения, где фактор стоимости менее важен. Многие из них существуют до сих пор, создавая производительные, но чрезвычайно дорогие SSD — например, компания BiTMICRO выпустила современную модель maxIO емкостью 4,5 Тбайт, которая подключается к системе через шину PCIe и поддерживает 400 тыс. IOPS. Компания первой предложила оформлять SSD в формате, аналогичном дискам, начав в 1999 году с изделия емкостью 18 Гбайт в форм-факторе 3,5 дюйма. За 12 лет емкость возросла на три порядка, однако такое устройство стоило свыше 100 тыс. долл. Значительно дешевле был продукт Adtron S35PC, цена которого при емкости 14 Гбайт составляла 42 тыс. долл. К 2003 году появилась техническая возможность создавать накопители емкостью до 1 Тбайт со скоростью обмена 2 млн IOPS, но они могли изготавливаться ограниченным тиражом, поскольку занимали несколько стоек, потребляли 5 кВт и более, а их стоимость измерялась миллионами долларов. Очередной прорыв в 2004 году совершила все та же компания Adtron, предложившая военному и индустриальному секторам накопители, подключаемые по SATA, емкостью 40 Гбайт по цене около 40 тыс. долл.
Годом позже со своими продуктами на рынок SSD вышла компания Samsung, а вслед за ней и другие юго-восточные гиганты. Революционным можно назвать 2007 год — корейская Mtron и тайваньская Memjright первыми выпустили SSD в стандартном формате 2,5 и 3,5 дюйма. Их примеру последовали SanDisk, Fujitsu и Violin Memory. В 2008 году на рынке SSD работало уже свыше 100 компаний, и для координации усилий производителей, выработки индустриальных стандартов была образована ассоциация SSD Alliance. Самым примечательным событием 2009 года стал переход Стива Возняка в компанию Fusion-io на должность главного ученого.
Особенности NAND и функции контроллера
Как носитель данных, флэш-память NAND сегодня имеет несколько важных особенностей и проблем, определяющих ее архитектуру. Одна проблема связана с записью данных, другая — с адресацией и третья — с сохранением записанного.
Сохранение данных в памяти NAND сводится к помещению или удалению электронов в адресуемых ячейках — наличие или отсутствие заряда в ячейке соответствует «0» или «1». В качестве инструмента для воздействия на ячейку используются подаваемые в нужное место электрические импульсы. Однако ячейка не двухпозиционный триггер, как в DRAM, поэтому здесь возникает первая проблема, суть которой в необходимости быть уверенным в успешном завершении заряда ячейки до нужного уровня. Решение обеспечивается контролем при записи (write-verify) — контролируемый импульс подается до тех пор, пока в ячейку не будет помещено нужное значение. Для выполнения подобной процедуры требуется сначала обнулить ячейку и только потом записывать в нее — что хорошо и плохо. Чтение проще, поэтому возникает явление, называемое асимметрией, — в SDD операции записи занимают заметно больше времени, чем чтения.
Вторая проблема связана с матричной организацией — читать и писать приходится блоками, причем при чтении размер блока может быть меньше и состоять всего из одной страницы размером 8 Кбайт, однако при записи минимальный объем адресации составляет 32 страницы.
Третья проблема состоит в эрозии носителя при записи — в любом случае заряд в ячейке не может сохраняться вечно, и по мере эксплуатации ухудшается надежность.
На рис. 1 показана упрощенная схема SSD.
Рис. 1. Устройство SSD |
Особенности NAND должны быть учтены и частично компенсированы в контроллере, обеспечивающем надежную и устойчивую работу накопителя NAND. Контроллер — это сложное встроенное устройство с собственной процессорной мощностью и ПО, реализуемое как система на кристалле, состоящая из одного или нескольких встроенных процессоров и аппаратных ускорителей для выполнения отдельных функций. На контроллер возлагаются все функции, связанные с обеспечением чтения и записи, а также обеспечением корректности, что особенно важно в связи с тем, что уровень ошибок в памяти на NAND выше, чем на других носителях.
Еще одна функция контроллера называется FTL (Flash Translation Layer), и состоит она в преобразовании системных логических блоков в физические страницы и блоки NAND. Кроме того, на уровне FTL осуществляется «уборка мусора», необходимость которой объясняется ограничением записи только в свободные блоки — следовательно, разумнее принудительно удалять неиспользуемые данные.
Альтернативные версии SSS
Технологии NOR и NAND — далеко не единственные, из альтернативных подходов наиболее известны следующие:
- nvSRAM — энергонезависимая статическая память с произвольным доступом (nvSRAM);
- MRAM — магниторезистивная оперативная память;
- Ferroelectric RAM, FeRAM или FRAM — сегнетоэлектрическая оперативная память;
- PCM, PRAM или PCRAM — память на основе фазового перехода;
- Nano-RAM или NRAM — память на основе механического позиционирования углеродных нанотрубок.
На экспериментальном уровне находятся технологии Racetrack, SONOS (Silicon-Oxide-Nitride-Oxide-Silicon) и Millipede, претендующие на то, чтобы занять место традиционных жестких дисков.
Интерфейсы SSD
В конечном итоге физика и внутренняя архитектура SSD для пользователя некритичны, а гораздо важнее интерфейсы, представляющие лицо устройства. На данный момент существует возможность подключения SSD как минимум по девяти типам интерфейсов: AoE (ATA-over-Ethernet), FC (Fibre Channel), FireWire, PATA (Parallel ATA), SATA (Serial ATA), SCSI, SAS (Serial Attached SCSI), iSCSI и PCIe (Peripheral Component Interconnect Express). Все они заметно различаются по функциональности и распространенности, SATA среди них самый популярный — в соответствии с этим стандартом выпускают свои продукты более 300 компаний. Однако находит свое место и, казалось бы, оставшийся в прошлом параллельный PATA, достоинство которого в существенно меньшем по сложности (следовательно, и по стоимости) контроллере, что может быть критично в дешевых ноутбуках и некоторых встроенных системах. Близок к SATA по логике AoE — простой интерфейс, позволяющий подключать диски в сети и рассматриваемый как дешевая альтернатива iSASI, однако пока серийных SSD под него нет. Устройства SSD для сетевых интерфейсов FC Channel, FireWire и iSCSI выпускаются в небольших количествах узкоспециализированными компаниями. То же самое можно сказать и об SCSI. Распространенный в корпоративных системах интерфейс SAS значительно уступает по массовости SATA — на нем специализируются всего лишь около 20 производителей SSD. С появлением SSD оказалось разумным подключать наиболее производительные модели напрямую по PCIe — это направление рассматривается как одно из наиболее перспективных.
С одной стороны, ясно, что есть сложившаяся технологическая традиция создания периферийной памяти на механических устройствах: огромный рынок дисков и инсталляционная база; большое количество приложений, рассчитанных на диски. С другой — для подключения к системе ничего более эффективного, чем шина PCIe, пока нет. Следовательно, имеется два альтернативных пути развития SSS — память, непосредственно подключаемая по PCIe, либо тоже в конечном счете — по PCIe, но с эмуляцией дискового интерфейса. В последнем случае теряются все преимущества SAS перед SATA. По всей видимости, в скором времени монопольное положение займет версия SATA Express в комбинации с PCIe. Появления первых серийных экземпляров изделий на основе SATA Express можно ожидать в 2013 году. Спецификация SATA Express была разработана комитетом SATA-IO с целью максимального использования потенциала PCIe на скорости обмена 12 Гбит/с, что позволит сравняться с SAS. При этом SATA Express реализует практически в чистом виде PCIe, здесь исключен обязательный для протокола SATA транспортный уровень и связанные с ним издержки. SATA Express достоин рассматриваться в качестве технологии для стандартизации PCIe в качестве интерфейса для SSS в форм-факторах HDD.
Существует три возможности подключения накопителей SATA Express к системе по протоколу SATA (рис. 2):
- традиционный SATA — напрямую, используя только драйвер и адаптер шины AHCI;
- компромиссный — используя драйвер, адаптер шины AHCI и еще PCIe;
- «новый» — используя драйвер и контроллер NVM и PCIe.
Рис. 2. Способы подключения SATA Express |
AHCI (Advanced Host Controller Interface) — это механизм, расширяющий возможности интерфейса, и именно он позволяет устройствам SATA пользоваться, например, такими функциями, как NCQ (Native Command Queuing — аппаратная установка очередности команд), которая в прошлом была одним из главных преимуществ SCSI. Устройства с поддержкой NCQ способны принимать несколько запросов одновременно и реорганизовывать порядок их выполнения для достижения максимальной эффективности. Среди функций AHCI: HotPlug — горячая замена; Staggered Spin-Up — поочередный запуск дисков и снижение потребления в момент раскрутки дисков. AHCI обладает функциональностью, заточенной исключительно на диски, и, чтобы компенсировать эту несогласованность при работе с SSS, некоторые производители создают свои собственные закрытые протоколы и даже контроллеры типа Raid-on-Chip (RoC), позволяющие оптимизировать взаимосвязь интерфейса и SSD, но, как любым частным решениям, им не хватает стандартизации, у них заметная задержка и нелинейный рост производительности.
На смену AHCI в 2011 году рабочая группа NVM Express Work Group, состоящая из экспертов 80 ведущих компаний, предложила спецификацию Non-Volatile Memory Express (NVMe), специально ориентированную на SSD и унаследовавшую опыт, накопленный в процессе создания предшествующей спецификации NVMHCI. Недавно вышла обновленная версия NVMe 1.1., задуманная как масштабируемый интерфейс контроллера, устанавливаемого на хосте и ориентированного на клиентские или корпоративные приложения, которые используют SSD, подключаемые по PCIe. Интерфейс предоставляет оптимизированный набор команд: Read («Читать»), Write («Писать»), Flush («Сбросить»), Identify («Идентифицировать»), Get features («Получить свойства»), Set features («Задать свойства»), Abort («Прервать») и Event report («Отчет о событиях»).
Рис. 3. Общая схема NVMe |
Протокол NVMe рассчитан на современную флэш-память и будущие альтернативные варианты твердотельной энергонезависимой памяти. На рис. 3 показана общая схема подключения NVMe, включающая корневой комплекс, коммутатор PCIe и оконечные устройства. С появлением NVMe индустрия получила способ создания стандартизованных драйверов, способных реализовать весь потенциал NAND.
Карты SSC
Карты SSC нельзя рассматривать лишь как еще один форм-фактор — отказ от дисков позволяет совершенно иначе построить вычислительную систему. Лидером направления печатных плат здесь является компания Fusion-io, сосредоточившая свое внимание на твердотельных системах хранения ioMemory, привязанных к серверам. На разработках этой компании основаны проекты IBM Quicksilver и HP BladeSystem C-Series, а в ее команде работает несколько выходцев из крупных компаний, возглавляемых Стивом Возняком.
В Fusion-io предлагают отказаться от накопившейся рутины по части хранения данных — и прежде всего от сетей хранения (Storage Area Network, SAN) — и перейти к новой организации. В случае SAN (рис. 4) сохраняется цепочка из 13 этапов с понятными задержками и ограничениями на скорость обмена, не позволяющими реализовать потенциал флэш-памяти. Если использовать SSD с драйвером и контроллером NVM и непосредственным подключением к PCIe, то количество этапов уменьшится, а эффективность повысится, но это решение нерадикальное и все равно несет на себе груз прошлого.
Рис. 4. Маршрут передачи данных в сети хранения |
По существу, и SATA, и SAS являются лишними, ненужными уровнями и добавочными бутылочными горлышками. Fusion-io разрубает этот гордиев узел путем возврата к прямому доступу в системах хранения DMS (Direct Storage Acceess), которые представляют собой аналог известного с давних времен DMA (Direct Memory Access), служащего вместо промежуточных элементов в лице адаптеров HBA и контроллеров RAID. Далее можно отказаться от встроенных в контроллеры NAND процессоров, которые тоже являются архаизмом, когда нужно согласовывать быструю электронику с медленной механикой. Встроенные процессоры также ограничивают скорость обмена с флэш-памятью. И наконец — все существующие операционные системы создавались в расчете на диски, они с неизбежностью тоже тормозят обмен. В таком случае схему вычислительной системы можно представить как некоторое расширение классической схемы Джона фон Неймана. Наличие систем хранения на флэш-памяти не исключает использования традиционных жестких дисков для целей архивирования.
Специалисты Fusion-io разработали оптимизированную под требования NAND подсистему виртуализации VSL (Virtual Storage Layer), которая позволяет каждому процессору работать с системой хранения напрямую (рис. 5). Подсистема виртуализации предоставляет флэш-приложениям обычное блочное устройство хранения данных, интегрируя флэш в систему как еще один уровень памяти с большей плотностью, меньшей, чем у RAM, скоростью работы, но энергонезависимой.
Рис. 5. Система хранения по идеологии Fusion-io |
В продуктовую линейку Fusion-io входят карты SSC ioDrive2, подключаемые по PCIe, имеющие емкость от 1,2 до 10,24 Тбайт, а также модули ioScale расширения для серверов емкостью 3,2 Тбайт и для рабочих станций — ioFX емкостью 420 Гбайт. Программное обеспечение ION Data Accelerator поддерживает работу приложений, а комплекс, состоящий из directCache, ioTurbine и ioCache, поддерживает работу всей системы хранения.
Компания Violin Memory специализируется на флэш-массивах, сочетая в них флэш-память, DRAM и технологии распределенной обработки данных. Ею созданы, в частности, накопители VXM (Violin Switched Memory). В 2011 году компания выпустила флэш-массив 6000 Series, поддерживающий скорость обмена свыше 1 млн IOPS.