Данный материал является переводом документа 3Ware "
Архитектура 3Ware TwinStor".
Краткое содержание Технология TwinStor от 3Ware представляет собой оптимизированный метод создания двух идентичных копий всех данных на двух жестких дисках АТА. В силу того, что существует две полных копии информации – одна копия на каждом диске – в момент записи данных на диск сразу же создается резервная копия информации.
Такая система защиты данных может оказаться полезной в современных компьютерных системах, так как подавляющее большинство компьютеров оснащено всего лишь одним жестким диском, при этом «защита» данных осуществляется с помощью дорогостоящего программного обеспечения, делающего резервные копии, а иногда создание резервных копий вообще игнорируется. Поскольку стоимость устройств хранения данных быстро снижается, использование ATA RAID-контроллера с поддержкой TwinStor, например, серии 3Ware Escalade 7000 в сочетании с несколькими жесткими дисками ATA, представляет собой недорогое решение, которое постоянно производит резервное копирование, обеспечивая эффективную защиту ценной информации.
Присущая этой технологии устойчивость к отказам (fault tolerance) хорошо решает проблемы резервного хранения данных, однако ее основное преимущество состоит не только в защите данных: еще более привлекательным аспектом TwinStor является серьезное увеличение производительности, которое достигается при работе с зеркалированными данными. Когда система осуществляет доступ к зеркалированным данным, технология TwinStor использует профайл, в котором она хранит схему расположения данных на диске и собранный эвристический список прошлых обращений к диску, и динамически распределяет задания по считыванию информации на разные диски таким образом, чтобы минимизировать количество перемещений блоков головок жёстких дисков. Это уменьшает задержки (latency) при обращении к диску и улучшает потоковое чтение. Адаптивные алгоритмы повышают производительность, и скорость (bandwidth) последовательного чтения приближается к дискам в режиме striped RAID (RAID 0), а чтение случайных участков осуществляется быстрее, чем при использовании обычной конфигурации зеркалирования RAID 1.
Контроллер, поддерживающий технологию TwinStor, в паре с недорогими дисками АТА предоставляет пользователям повышенную производительность и отказоустойчивость по сравнению с конфигурацией, использующей один жесткий диск, и позволяет улучшить работу многих домашних приложений, а также систем малого бизнеса и серверных приложений.
Введение Настольные компьютеры и небольшие серверы играют все большую роль на предприятиях и дома. Информация, хранящаяся на этих системах, от финансовых отчетов до цифровых фотографий, часто является уникальной. Жесткие диски обладают высокой надежностью, но возможность выхода диска из строя все же существует, и поэтому важно убедиться, что информация защищена и не будет потеряна. Существует много различных методик резервного копирования данных, однако ни одна из них не является полностью надежной. Зеркалирование всей информации на второй диск является более эффективным и недорогим решением, чем ежедневное копирование на другой накопитель или удаленные серверы.
Потребители готовы платить дополнительные деньги, чтобы получить процессоры с самой высокой существующей скоростью, однако продавцы готовых систем обычно предоставляют очень мало возможностей по улучшению производительности систем ввода-вывода (даже, несмотря на то, что большое количество приложений более критичны к скорости операций ввода-вывода, чем к скорости процессора). А сейчас, когда частота процессоров далеко перешагнула рубеж в 1 ГГц, это отставание очень часто выливается в то, что система ввода-вывода становится очевидным тормозом всей системы, что отрицательно сказывается на реакции приложений на действия пользователя. В то же время, существует возможность улучшить производительность многих приложений, комбинируя возможности нескольких жестких дисков по работе с данными.
Именно это делает технология TwinStor от 3warе, которая одновременно предоставляет технологию зеркалирования диска (RAID 1) и производительность при чтении информации, равную RAID 0, обеспечивающую высокую скорость работы с данными. При использовании контроллера ATA-RAID с поддержкой технологии TwinStor, например, 3Ware Escalade 7000, в сочетании с недорогими ATA-дисками, может быть создана впечатляющая система с применением нескольких дисков в одном компьютере.
В этом документе обсуждаются тенденции стратегий резервного копирования данных, и сравнивается стоимость таких систем с подходом, примененным в TwinStor. В нем также рассматриваются некоторые аспекты этой технологии и раскрываются многие революционные методики. В рамках обсуждения концепций построения и основ архитектуры RAID, а также аппаратных компонентов жестких дисков, будут представлены пояснения, как алгоритмы TwinStor достигают такого впечатляющего роста производительности.
После описания различных технологических аспектов документ заканчивается сравнениями производительности и стоимости с системами SCSI, которые также показывают преимущества технологии TwinStor. Очевидно, что существуют многочисленные сегменты рынка, где использование TwinStor для предотвращения потери данных и увеличения эффективности систем хранения данных будет чрезвычайно полезным.
Общая стоимость владения Экономическое обоснование зеркалирования основывается на сравнении стоимости второго жесткого диска в сравнении со стоимостью создания резервных копий и восстановления информации в случае отказа жесткого диска. В зависимости от использования, существует несколько различных схем обеспечения резервного копирования информации.
Информация с корпоративных ПК и небольших серверов обычно автоматически сохраняется через сеть. Общая стоимость такой системы резервного копирования может оказаться достаточно высокой, если включить туда все затраты (аппаратное и программное обеспечение, необходимость увеличения пропускной способности сети, затраты рабочего времени системного администратора). Крупная корпорация тратит примерно 1000 долларов на компьютер на систему централизованной иерархичной системы резервного копирования данных. Зеркалирование диска может решить проблемы постоянного резервного копирования информации при намного более скромных затратах.
Небольшие предприятия обычно полагаются на ручное резервное копирование на пленку или другие сменные носители. При этом общая стоимость владения включает риск потери всей информации, если резервное копирование давно не делалось. Даже в том случае, если резервное копирование делается так, как надо, отказ жесткого диска приведет к приостановке деятельности, так как система будет неработоспособна в то время, пока проводится замена комплектующих, восстановление операционной системы и приложений, а также восстановление самой информации.
На многих домашних компьютерах и ПК на предприятиях, на которых не хранится критичная информация, регулярные процедуры резервного копирования вообще не проводятся, даже если потом прилагаются значительные усилия для восстановления потерянной в результате отказа диска информации. Для таких пользователей увеличившаяся производительность в сочетании с улучшенной надежностью может стать хорошим аргументом в пользу того, чтобы потратить небольшую сумму на покупку дополнительного жесткого диска.
Эти соображения относительно защиты данных и послужили основными аргументами в пользу создания технологии RAID.
Общая ситуация в сфере RAID. Зеркалирование дисков применяется в этой области уже много лет. При зеркалировании, которое также называется “тенью” (shadow set) или RAID 1, используется два диска с идентичной информацией. Каждый блок данных, которые необходимо записать на диск, посылается на оба диска, благодаря чему на них создаются идентичные копии всех данных в любой момент времени. Зеркалирование используется на многих коммерческих системах, и являлось предметом научных исследований в Калифорнийском университете Беркли и в других местах.
При создании некоторых из первых систем, использующих зеркалирование, предпринимались попытки улучшить скорость чтения случайных данных через использование отдельных актюаторов. Обычная методика состоит в том, чтобы разделить запросы на чтение для двух дисков или для направления запроса на чтение на тот диск, у которого операция нахождения информации займет меньшее время. Эта методика может удвоить производительность при чтении случайных данных, однако не может увеличить линейную скорость чтения из-за того, что каждый запрос на чтение обслуживается только одним диском.
При соединении двух дисков в режим RAID 0 нечетные блоки данных записываются на один диск, а четные – на другой. Основным недостатком стандартной конфигурации RAID 0 является худшая надежность по сравнению с использованием одного диска, так как при выходе из строя одного из дисков не удается получить полной копии ни одного файла.
RAID 5 – еще одна конфигурация RAID, которая предоставляет возможность восстановить информацию после сбоя жесткого диска. Для каждого блока данных считается сумма четности блоков N-1, которая записывается на N-ный жесткий диск. Основными недостатками системы RAID 5 является то, что для нее минимально требуется три жестких диска, а также очень низкая скорость записи по отношению к ситуации, когда используется один диск.
RAID 10, комбинация RAID 1 и RAID 0, обеспечивает и создание резервной копии данных, и улучшенную скорость линейного чтения. Недостаток стандартной конфигурации RAID 10 состоит в том, что она требует использования минимум 4 дисков, но предоставляет всего лишь двукратное увеличение производительности по сравнению с единственным диском.
Технология TwinStor от 3Ware Технология TwinStor реализует зеркалирование данных, а также оптимизирует производительность конфигураций RAID 1 через применение алгоритмов, распределяющих операции между дисками таким образом, что механические задержки каждого диска сводятся к минимуму. Новые алгоритмы 3Ware, предназначенные для интеллектуальной оптимизации производительности, достигают этого несколькими путями:
- составление профайла жесткого диска для изучения его индивидуальных параметров, необходимых для достижения оптимальной производительности
- оптимизация производительности с использованием адаптивных алгоритмов, основанных на ведении журнала недавних требований доступа к диску
- оптимизация под приложения, которые предъявляют особые требования к производительности и надежности
Эти методики применяются к парам жестких дисков, которые содержат идентичные копии данных. Все запросы на запись посылаются на оба диска, а операции чтения могут проводиться с того диска, с которого быстрее удастся произвести чтение. Создание профайла и адаптивные механизмы необходимы для того, чтобы внимательно координировать операции на обоих дисках для оптимизации и улучшения средней производительности.
Для того чтобы понять, как эти оптимизации внедряются, необходимо в общих чертах понимать устройство жесткого диска:
Диск содержит одну или несколько пластин, каждая из пластин имеет две поверхности, каждая из которых обслуживается своей головкой чтения/записи. Современные жесткие диски обычно имеют от 2 до 8 головок. Все головки соединены с единым актюатором, но высокая точность, необходимая для того, чтобы расположить головку точно над дорожкой с информацией, означает, что сервоэлектроника может расположить актюатор только таким образом, что он может читать данные только с одной головки в данный момент времени. Данные располагаются на дорожках; дорожка содержит всю информацию, располагающуюся под головкой по всей длине окружности. Типичный современный диск имеет на дорожке несколько сотен секторов емкостью 512 КБ каждый. Внешние дорожки длиннее, чем внутренние, и, таким образом, несут большее количество информации. В большинстве современных дисков группы дорожек объединяются в небольшие группы зон (например, 16), и количество секторов на дорожку является постоянным для каждой зоны. Информация обычно форматируется, начиная с внешних дорожек, проходит через все головки, после чего процесс начинается в новой зоне, расположенной ближе к центру диска.
Обычно считается, что диски являются устройствами с произвольным доступом (random access devices). Любой диск при обработке запроса на чтение или запись сектора перемещает актюатор на нужную дорожку и, затем, ждет, пока в процессе вращения диска нужная информация не попадет под головку. Поиск на ближайших дорожках гораздо быстрее, чем поиск на удаленных дорожках, поэтому время поиска может варьироваться от нескольких миллисекунд (мс) до нескольких сотен миллисекунд. Латентность вращения (макс. время ожидания прихода сектора под головку) зависит от скорости вращения диска, при этом диски соответственно с 5400, 7200 и 10000 об./мин. имеют максимальную латентность вращения в 11.1 мс, 8.3 мс и 6 мс. Во время последовательного доступа на одной дорожке ожидания не требуется, т.к. необходимая информация уже находится под читающей головкой. В то время, когда последовательный доступ захватывает более одной дорожки, необходима задержка в несколько миллисекунд для того, чтобы переключить головку. Информация форматируется с некоторым смещением, так что, после переключения, следующая головка уже находится в правильном положении для чтения следующего блока информации. Таким образом, необходимость в полном обороте диска (чтобы нужные данные оказались под головкой) отпадает.
Основная идея, заложенная в технологии TwinStor от 3Ware, состоит в том, чтобы при помощи интеллектуальных алгоритмов (которые исполняются встроенным микропроцессором Disk switch) при чтении блока данных пересылать запрос на тот диск из зеркальной пары, который в данный момент готовы выполнить этот запрос быстрее, и избегать задержек, возникающих при «уходе» нужного сектора из под головки.
График на рисунке 1 показывает отдельно стадию создания профайла и исполнения.
Создание профайла В первый раз, когда контроллер диска обнаруживает новый диск, программа создания профиля сканирует диск, чтобы обнаружить границы зон, количество дорожек в зоне и другую информацию о производительности. Результат создания профиля сохраняется в таблице зон в небольшом защищенном участке на каждом диске. Во время исполнения контроллер записывает лог-файл доступа для того, чтобы определить, рассматривать ли текущий запрос как запрос последовательного или случайного чтения. Для каждого из этих двух типов запросов применяются различные методики оптимизации.
Адаптивные алгоритмы Для запросов случайного чтения новый адаптивный алгоритм использует историю предыдущих запросов, назначая операции чтения таким образом, чтобы минимизировать движение блока головок. Эти оптимизации показывает суперлинейный рост производительности в операциях случайного чтения. «Суперлинейный» означает, что рост производительности превосходит линейный, т.е. два диска дают больший прирост производительности, чем улучшенная вдвое производительность одного диска. На результатах, показанных на рисунке 2, прирост производительности составляет примерно 2.3 раза по сравнению с уровнем производительности единичного диска. Причина столь хорошего результата состоит в том, что в системе есть вдвое больше актюаторов, и каждый из них проходит в среднем меньшее расстояние, чем, если бы использовался один диск.
Большая часть контроллеров RAID 1 направляет операции ввода-вывода на один из дисков, поэтому даже при чтении разных блоков информации с разных дисков никакого выигрыша производительности не получается. Например, если с диска 0 читается первый нечетный блок в 32КБ, а с диска 1 – четный блок в 32КБ, оба диска «работают» половину времени, а вторую половину их головки впустую проходят над тем блоком, который сейчас читает другой диск. Эта ситуация показана в левой части рисунка 2 (с небольшими размерами блоков). По мере увеличения размера блока, рано или поздно он достигает такого объема, что занимает дорожку целиком.
С этого момента скорость чтения резко увеличивается, так как головки не теряют время, проходя над данными, которые передаются с другого диска. На первом пике уровень передачи данных немного отличается от уровня последовательного чтения, поскольку диску необходимо сделать еще один оборот в тот момент, когда он проходит над данными, которые читаются с другого диска. На дальнейших пиках уровень передачи данных выше, так как «холостой» оборот распределяется на большее количество считанных дорожек. Расположение пиков и производительность на каждом пике зависит от плотности бит данных, скорости вращения жесткого диска и того, какая именно зона на диске задействована.
Рис.2. Зависимость скорости SequentialRead от размера блока данных Контроллер использует это явление, устанавливая размер блока на одном из этих пиков, таким образом, он может одновременно читать информацию с разных дорожек обоих жестких дисков. Поэтому запросы на длительное последовательное чтение выполняются практически вдвое быстрее, чем если бы использовался единственный диск. Пики смещаются влево при переходе с одной зоны на другую, с внешних зон диска на внутренние. Для того чтобы достичь оптимальной производительности, при переходе с зоны на зону происходит обращение к сохраненной таблице зон, на основании данных которой выставляется оптимальное значение блока для каждой зоны. Комбинация методик последовательного и случайного чтения позволяет увеличить производительность в широком спектре приложений.
Производительность Эти алгоритмы TwinStor реализованы в серии ATA RAID контроллеров Escalade от 3Ware, что помогает еще более повысить уровень передачи данных. Набортный процессор контроллеров Escalade и их микропрограмма поддерживает эти методики и применяет их совместно с архитектурой переключения пакетов (packet-switch), что позволяет достичь высочайшего уровня производительности при использовании стандартных недорогих дисков ATA. Это выводит скорость и доступность систем с контроллерами 3Ware Escalade на уровень, который не может быть достигнут при использовании конкурирующих решений RAID.
Раньше дисковые решения с высочайшей производительностью строились на основе дисков с интерфейсом SCSI и RAID-контроллеров Adaptec, Mylex и других фирм. Хотя раньше SCSI-диски намного обгоняли диски с интерфейсом АТА по скорости, сейчас эта разница значительно сократилась, и многие производители используют одинаковые узлы для ATA и SCSI-дисков. На рынке доминируют диски с интерфейсом АТА (они занимают 87% от общего объема поставок), поэтому доступность высокопроизводительных дисков АТА всегда будет выше, а стоимость – ниже, по сравнению с их SCSI-аналогами.
Рисунок 3 представляет собой график, сравнивающий производительность одного диска SCSI с двумя дисками, работающими с использованием технологии TwinStor. И SCSI, и АТА диски имеют скорость вращения 7200 об./мин. Скорость передачи данных диска АТА немного превосходит скорость SCSI-диска. Рыночная цена диска с интерфейсом SCSI более чем вдвое превосходит стоимость АТА-аналога, благодаря чему решение с применением TwinStor дешевле на 10% (цена контроллера Escalade сюда не включается, поскольку цены могут разниться у разных продавцов).
В этом сравнении решения с использованием технологии TwinStor от 3Ware лидируют во всех категориях. Последовательное чтение и чтение случайных блоков идет значительно быстрее, чем при использовании единственного диска с интерфейсом SCSI. Скорость операций записи для TwinStor также чуть выше, таким образом, одновременная запись на два диска не снижает уровень производительности при операциях записи по сравнению с использованием единственного диска. При этом надо помнить, что не учитывается великолепная отказоустойчивость, присущая решениям TwinStor. Например, при использовании дисков емкостью 9.1 Гб, создание терабайтного массива потребует более 100 дисков. Если не делается никаких страховочных копий, а средний срок наработки на отказ измеряется в 500000 часов, очередной SCSI-диск должен выходить из строя каждые 6 месяцев. В то же время, при использовании TwinStor потеря информации возможна только тогда, когда второй диск в паре отказывает до того, как появилась возможность заменить первый отказавший диск. Среднее время отказа (mean time to failure, MTTF) пары дисков определяется на основе среднего времени ремонта (mean time to repair MTTR) в три дня при использовании стандартной формулы MTTFdual=MTTF2/2MTT3 (3). Вероятность, что второй диск откажет во время трехдневного срока ремонта чрезвычайно мала (примерно 1700 лет на терабайт).
Рисунок 3. Единственный диск SCSI в сравнении с массивом TwinStor. На рисунке 4 показано сравнение между двумя SCSI-дисками, объединенными в массив RAID 1 (зеркало) на стандартном контроллере, и двумя дисками АТА, объединенными в массив TwinStor на RAID-контроллере Escalade. В этом сравнении ценовое превосходство над SCSI-решением еще больше увеличилось. Превосходство при последовательном чтении лучше на 73%, потому что RAID 1 не может получить никаких преимуществ от использования второго диска для улучшения скорости чтения. Уровни скорости чтения при считывании случайных блоков практически идентичны, даже несмотря на то, что диски SCSI, использованные для построения массива, имеют гораздо лучшие показатели времени поиска, чем использованные диски АТА. Прирост скорости линейного чтения (superlinear performance), который получается за счет использования алгоритмов оптимизации операций случайного чтения, позволяет полностью устранить разницу в производительности различных типов жестких дисков.
Сравнение с другими классами SCSI-дисков показывает сходные преимущества технологии TwinStor от 3Ware. Например, сдвоенные АТА-диски по сравнению с единственным высококлассным (hi-end) SCSI-диском со скоростью вращения 10000 об./мин., показывают примерно ту же среднюю производительность и намного лучшие показатели в операциях линейного чтения при намного меньших затратах.
Рисунок 4. Сравнение решений RAID 1 и TwinStor На рисунке 5 показано решение SCSI RAID 5 с использованием 4 жестких дисков (каждый объемом 9.1 Гб) и RAID-контроллера от Adaptec в сравнении с двумя парами АТА-дисков емкостью 18.2 Гб, объединенных в массив TwinStor и работающих на контроллере 3Ware Escalade. Каждая пара дисков в системе TwinStor представляется как один раздел емкостью 18.2 Гб с файловой системой NT, а оба раздела объединены в единый RAID 0 массив с помощью программных средств NT. И опять результаты тестов производительности свидетельствуют в пользу решения TwinStor. Оно выигрывает по емкости, так как решение RAID 5 имеет максимальный объем 9.1 Гб х 3 диска, в то время как TwinStor предоставляет объем 18.2 Гб х 2 массива. Из-за больших потерь в скорости записи при использовании RAID 5, решение TwinStor по этому показателю выглядит намного предпочтительнее. А результаты Winbench 99 показывают, что средняя производительность TwinStor намного выше, чем производительность RAID 5, при этом TwinStor предоставляет большую емкость за меньшую стоимость.
Рисунок 5. Сравнение TwinStor и RAID 5 Рынки Технология TwinStor сейчас может использоваться на огромном количестве разнообразных потенциальных рынков, которые должны быть восприимчивы к улучшениям в производительности и надежности. На рынке домашних систем, где огромное значение имеет стоимость, технология TwinStor также может оказаться чрезвычайно полезной, потому что у многих пользователей отсутствуют знания и инструменты для регулярного резервного копирования данных или восстановления операционной системы, приложений и пользовательских данных после отказа жестких дисков. Преимущества TwinStor в этой сфере, дополненные возможностями по защите системы, могут оказаться привлекательными для значительной части пользователей на домашнем рынке.
Но больше всего дивидендов использование TwinStor может принести на рынке систем малого бизнеса (SOHO, small office, home office). Отказ диска может уничтожить ценные записи и вообще лишить небольшое предприятие возможности вести дела до того момента, пока система не будет восстановлена. И даже если отказов диска пока не было, уверенность в защищенности информации и повысившаяся производительность вполне компенсируют затраты на второй диск и контроллер.
Технология TwinStor от 3Ware особенно хорошо проявляет себя в приложениях, которые активно работают с диском на чтение, и в которых объекты бывают небольшого и среднего размера (т.е. типичная работа с данными, которую выполняет web-сервер). Системы, использующие технологию TwinStor, могут эффективно работать в сфере хостинга, при этом часто обеспечивая лучший средний уровень производительности, чем любое другое двухдисковое решение, и обеспечивая, в дополнение к этому, эффективное постоянное резервное копирование данных.
Другой сферой, в которой системы, использующие TwinStor, получат дополнительное преимущество, является обработка онлайновых транзакций (on-line transaction processing, OLTP). В прошлом размеры пакетов при OLTP был очень небольшими, не более нескольких сотен байт, но существует явная тенденция к появлению более универсальных пакетов, включающих в себя изображения, видео- и аудиоконтент. При использовании маленьких, больших и смешанных пактов технология TwinStor предоставляет хорошую скорость при очень низкой стоимости на транзакцию. Сфера применения может варьироваться от котроллеров (point-of-sale controllers) до систем хранения данных (back-end database systems).
Высокие показатели последовательного чтения необходимы в системах, которые работают с видео- и аудиопотоками в реальном времени. Технология TwinStor обеспечивает высокую скорость потока при чтении и постоянное резервное копирование для предотвращения потери информации в случае отказа диска. Комбинация этих требований делает технологию TwinStor хорошим выбором для широкого спектра приложений.
Вывод. Технология TwinStor от 3Ware обеспечивает отказоустойчивое решение, которое защищает ценную информацию, и значительно улучшает производительность при чтении. Благодаря этому ее применение способно повысить эффективность большого количества компьютерных систем, включая домашние ПК, системы мелкого бизнеса, контроллеры (on-line transaction point-of-sale controllers) и платформы для обработки аудио- и видеоинформации в реальном времени. Зеркалирование информации заменяет другие, более дорогие решения для создания резервных копий и устраняет проблему, которая часто возникает, когда отказ жесткого диска происходит до архивирования уникальной информации.
С учетом этих преимуществ, заключающихся в защите информации и улучшении производительности, скорее всего, количество систем, в которых применяется технология TwinStor, будет все больше увеличиваться.