25 апреля 2010 г.

Основные характеристики дисков (часть 2)

Необходимо всегда понимать, в каком из контекстов используется значение емкости:
  • значение емкости полученное, так называемыми, десятичным (decimal) или двоичным (binary) способами.
  • номинальное значение емкости до форматирования и доступное для использования (usable) значение емкости после форматирования
Ни для кого не открою секрета утверждением, что байт состоит из 8 бит, а килобайт из 1024 байт. Однако производители жестких дисков традиционно так не считают. Для “удобства потребителя” маркетинг предложил использовать альтернативный десятичный способ, позволяющий в полной мере оценить эстетику больших круглых чисел. К сожалению, такая забота, по сути, завышает реальную емкость дисков. 10% различия в дисках объемом 1TB будут равны 93GB. Согласитесь, что это достаточно ощутимая разница.

Единица измерения
Двоичные байты
Десятичные байты
Разница %
Kilobyte
1 024
1 000
2
Megabyte
1 048 576
1 000 000
5
Gigabyte
1 073 741 824
1 000 000 000
8
Terabyte
1 099 511 627 776
1 000 000 000 000
10

Для того, чтобы избежать недоразумений, ПО управления дисковыми массивами Clariion Navisphere показывает емкость дисков как двоичным, так и десятичным способом.

Все производители накопителей данных постоянно участвуют в гонке за повышение емкости своих жестких дисков. Существуют несколько способов ее увеличения:
  • повышение плотности записи данных (areal density) – перспективный путь, которым пытаются идти все производители при разработке продуктов следующих поколений (в наших примерах обратите внимание на разницу плотности записи между Cheetah 15K.6 и Cheetah 15K.7).
  • увеличение количества магнитных пластин и головок – этими показателями часто отличаются диски различной емкости в рамках одной продуктовой линейки (например, Cheetah 15K.7 600GB и Cheetah 15K.7 450GB).
  • увеличение диаметра магнитных пластин – по этим параметрам чаще всего отличаются накопители, относящиеся к продуктовым линейкам различных нишевых категорий.

Рассмотрим последний пункт более подробно. Например, диски Cheetah 15K.6 450GB 15K RPM и Barracuda ES.2 1TB 7,2K RPM (см. таблицу из прошлого поста) имеют равное количество пластин и головок и практически одинаковые значения плотности записи. В тоже время их емкость очень сильно отличается. Это объясняется тем, что в накопителях Barracuda используются пластины большего диаметра. К сожалению, за все нужно платить. При применении крупных и, соответственно, более инертных магнитных пластин приходится использовать меньшую частоту вращения шпинделя, что в свою очередь, ведет к увеличению Avg. Rotational Latency. C другой стороны, больший диаметр пластины означает увеличение длины хода блока головок чтения-записи, что, естественным образом, приводит к росту Avg. Seek Latency. Разные значения производительности, емкости, надежности и цены дисков дают нам возможность выбора оптимальной конфигурации хранилища данных.

На полезную емкость дисковых накопителей, конечно, влияет способ их форматирования. Жесткие диски персональных компьютеров и серверов всегда поставляются заказчику отформатированными на низком уровне. Их логическая структура секторов уже размечена еще на заводе. Сектора обычно имеют стандартный размер 512bytes (в простонародье “полкило”). Но в дисковых массивах Clariion размер сектора увеличен до 520bytes. Дополнительные 8bytes используются для функций обеспечения целостности данных.

Операционная среда FLARE также резервирует некоторый объем для своих служебных нужд. На каждом из первых 5 дисков полки DAE0 (vault drives) для хранения внутренней базы данных, загрузочных образов и дампов кэш зарезервированы следующие объемы:
  • CX4 - 62GB
  • CX3 - 33GB
  • CX - 6GB
На всех остальных дисках массива для служебных целей резервируется крохотный объем 34MB (см. комментарии к этому посту). Полезный объем накопителей в дисковых массивах Clariion CX4 показаны в таблице.

Емкость
Полезный объем
Диски Vault GB
Другие диски GB
1TB
855,182
917,1492
600GB
474,8083
536,7751
450GB
340,6062
402,5730
400GB
304,7978
366,7646
300GB
206,4041
268,3709
200GB
121,4444
183,4112
146GB
71,6806
133,6473
73GB
4,6387
66,6055

Добавлено:
В VNX в качестве Vault используются 4x диска (вместо 5x в CX4) на каждом из них под служебные нужды выделяется 192GB .

Новые дисковые массивы Clariion CX4 и AX4-5 в момент написания этого документа продавались с накопителями, описанными в таблице. При модернизации массивов предыдущих поколений  до CX4, соответствующие диски также поддерживаются.

Емкость
Интерфейсы
Тип
Скорость вращения
CX4
1TB
4 Gbps FC
ж. д.
7.2K rpm
4 Gbps FC
ж. д.
5.4K rpm
600GB
4 Gbps FC
ж. д.
10K rpm
450GB
4 Gbps FC
ж. д.
15K rpm
4 Gbps FC
ж. д.
10K rpm
400GB
4 Gbps FC
ж. д.
10K rpm
4 Gbps FC
SSD
-
300GB
4 Gbps FC
ж. д.
15K rpm
200GB
4 Gbps FC
SSD
-
146GB
4 Gbps FC
ж. д.
15K rpm
73GB
4 Gbps FC
SSD
-
AX4-5
1TB
SATA II
ж. д.
7.2K rpm
750GB
SATA II
ж. д.
7.2K rpm
600GB
3/6 Gb SAS
ж. д.
10K rpm
450GB
3 Gb SAS
ж. д.
15K rpm
400GB
3 Gb SAS
ж. д.
10K rpm
300GB
3 Gb SAS
ж. д.
15K rpm
146GB
3 Gb SAS
ж. д.
15K rpm

Не стоит забывать, что на уровне ОС, разбиение на разделы (partitions) и создание файловой системы также несколько уменьшают доступную для использования емкость. Объем метаданных зависит от применяемой файловой системы. Так, например, ext3 занимает под служебные нужды заметно меньший объем, чем NTFS.

Размер буферов
Контроллеры современных жестких дисков имеют буферы, которые используются для кэширования запросов. Типичный размер таких буферов 16MB. Накопители SATA обычно имеют увеличенный объем 32MB. Одним из методов оптимизации производительности доступа к данным на диске является предварительная выборка (prefetch) читаемых блоков. Эта операция никоим образом не зависит от prefetch на уровне кэша Clariion. Иногда бывает так, что read-miss запрос в кэш дискового массива будет обработан как read-hit буферами соответствующих накопителей.

Единовременно жесткие диски могут обслуживать только один запрос на чтение или запись. Обработка потока данных осуществляется классическим способом - организацией очереди в специальном буфере на контроллере накопителя. Однако, в случае устройств хранения с механическим позиционированием, простейший алгоритм обработки очередности запросов FIFO (First In First Out) будет очень неэффективным.
Для оптимизации этого процесса все накопители в современных дисковых массивах Clariion поддерживают аппаратную установку очередности команд. В FC и SAS это реализовано за счет технологии Tagged Command Queuing (TCQ), а в дисках SATA за счет применения Native Command Queuing (NCQ). Суть этих технологий заключается в том, что поступающие команды накапливаются в буфере и далее, в зависимости от адресов блоков и текущего положения головки чтения-записи, сортируются и выполняются в последовательности, позволяющей минимизировать количество перемещений головок и времени ожидания нужного сектора. Однако стоит заметить, что контроллеры накопителей FC и SAS используют систему команд SCSI, что позволяет более эффективно работать с блоками данных, чем при помощи команд ATA.


О накопителях Flash здесь и здесь...

22 апреля 2010 г.

Основные характеристики дисков (часть 1)

Об адресации жестких дисков здесь...

Основными характеристиками жестких дисков являются:
  • тип дисков
  • внешний интерфейс
  • частота вращения шпинделя
  • емкость.
  • размер буферов
Тип дисков
Тип диска, по сути, определяется тремя основными характеристиками:
  • плотностью записи данных на магнитных пластинах
  • частотой вращения шпинделя
  • надежностью
Если говорить о накопителях одного типа, модельный ряд формируется использованием различных внешних интерфейсов, а также разным количеством пластин и головок чтения-записи. Использование дисков с различными характеристиками и стоимостью позволяет гибко подходить к комплектации хранилища, учитывая реальные требования производительности доступа к данным.

Для предметного обсуждения различий между дисковыми накопителями, я использовал открытые данные с сайта Seagate.


Внешний интерфейс
Основными внешними интерфейсами в настоящий момент являются FC (Fibre Channel), SATA (Serial ATA) и SAS (Serial Attach SCSI). Так, в приведенном примере, диски семейства Seagate Cheetah могут выпускаться с интерфейсами FC 4Gbps, SAS 3Gbps или SAS 6Gbps, а Barracuda с интерфейсами SAS 3Gbps или SATA 3Gbps.

Обратите внимание, что внешний интерфейс никоим образом не определяет производительность или отказоустойчивости жестких дисков. Поэтому утверждения вроде “диски SAS надежнее/быстрее SATA” совершенно бессмысленны.

Важно, что внешние интерфейсы имеют принципиально более высокие характеристики, по сравнению с реальной производительностью доступа к данным жестких дисков. Например, теоретические 600MB/s интерфейса SAS 6Gbps почти в 3 раза превосходят реальные показатели Bandwidth дисков Cheetah 15K.7. А вот в случае с flash-дисками, может случиться обратная ситуация и уже внешний интерфейс (например, SATA II 3Gbps) уже может стать узким местом.

Диск
Transfer Rate интерфейса
Плотность записи Gbits/inch2
Кэш MB
Макс. внутренний Bandwidth MB/s
Avg. Rotation Latency ms
Avg. Seek Latency read/write ms
Кол-во пластин/ головок
AFR %/ MTBF млн. ч.
Cheetah 15K.7 600GB 15K RPM
4Gbps FC
6Gbps SAS
225
16
204
2
3,4/3,9
4/8
0,55/1,6
Cheetah 15K.7 450GB 15K RPM
4Gbps FC
6Gbps SAS
225
16
204
2
3,4/3,9
3/6
0,55/1,6
Cheetah 15K.6 450GB 15K RPM
4Gbps FC
3Gbps SAS
165
16
171
2
3,4/3,9
4/8
0,55/1,6
Cheetah 15K.6 300GB 15K RPM
4Gbps FC
3Gbps SAS
165
16
171
2
3,4/3,9
3/6
0,55/1,6
Cheetah NS.2 600GB 10K RPM
4Gbps FC
6Gbps SAS
225
16
150
3
3,8/4,4
4/8
0,55/1,6
Cheetah NS.2 4500GB 10K RPM
4Gbps FC
6Gbps SAS
225
16
150
3
3,8/4,4
3/6
0,55/1,6
Cheetah NS 400GB 10K RPM
4Gbps FC
3Gbps SAS
N/A
16
97
3
3,9/4,2
N/A
0,62/1,4
Barracuda ES.2 1TB 7,2K RPM
3Gbps SAS 3Gbps SATA
164
32SATA
16SAS
105 SATA
116
SAS
4
8,5/9,5
4/8
0,73/1,2
Barracuda ES.2 750GB 7,2K RPM
3Gbps SAS 3Gbps SATA
164
32SATA
16SAS
105 SATA
116 SAS
4
8,5/9,5
3/6
0,73/1,2
 
Частота вращения шпинделя
Частота вращения шпинделя с закрепленными на нем пластинами является основным фактором, определяющим производительность жестких дисков. Обычно ее измеряют в количестве оборотов в минуту (Revolutions Per Minute, RPM). Для сокращения записи, тысячу RPM часто обозначают символом K (Kilo). Наиболее используемыми являются частоты 15K, 10K, 7,2K и 5,4K RPM.

Процесс передачи данных с/на жесткий диск состоит из 3 фаз:
  1. перемещения блока головок чтения-записи на соответствующую группу треков и более точного позиционирования на нужный трек (Seek)
  2. ожидания поворота пластин, пока соответствующий сектор не появится под головкой (Rotation)
  3. считывания или записи данных (Transfer)

Соответственно, общая задержка передачи будет состоять из Seek Latency, Rotation Latency и Transfer Time:


Расстояние, на которое необходимо переместиться блоку головок чтения-записи для того, чтобы позиционироваться на нужный трек, называется Seek Distance. Обычно его считают не в количестве треков, а гигабайтах разницы между адресуемыми блоками LBA. Например, если последовательно запрашиваются блоки с адресами 100 и 1000100, Seek Distance будет равно 0,5GB (512bytes*(1000100-100)/1024/1024/1024).

Если приложение работает с данными, средние значения Avg. Seek Distance которых <25% от общей емкости накопителя, можно сделать вывод о том, что наиболее востребованные данные расположены очень локально. Снижая Seek Latency на уровне приложений, мы можем добиться заметного увеличения производительности доступа к данным. Если же востребованные данные разбросаны по всей поверхности диска и Avg. Seek Distance >75% от емкости, необходимо быть готовым к тому, что производительность доступа будет более скромной.

Rotational Latency напрямую зависит от частоты вращения шпинделя. Так, диск, вращающийся с частотой 15K RPM, будет иметь среднее значение Avg. Rotational Latency, т. е. время совершения половины одного оборота, равным 2ms (60сек. / 15000об. / 2).

Transfer time, прежде всего, зависит от объема считываемых или записываемых данных, а также внутренней Bandwidth диска. Последняя, в свою очередь, повышается с увеличением частоты вращения шпинделя и плотности записи данных на магнитной пластине. Обратите внимание на разницу в Bandwidth накопителей Cheetah 15K.6 и Barracuda ES.2. При практически одинаковой плотности записи данных их внутренние Bandwidth заметно отличаются за счет разницы частот вращения.

Суммируя вышесказанное, можно утверждать, что диски с высокой частотой вращения шпинделя имеют достаточно низкие значения Seek и Rotational Latency даже при произвольном доступе к данным малыми блоками. Поэтому они лучше подходят для throughput oriented приложений
Характеристики производительности накопителей с частотой вращения 7,2K и 5,4K RPM заметно хуже. Но при последовательном доступе к данным большими блоками, разницей в Seek Latency можно пренебречь. И хотя значения их внутренней Bandwidth все же уступают дискам 15K и 10K RPM, учитывая их достаточно низкую стоимость, можно рекомендовать их для хранения данных bandwidth oriented приложений.

Обращаю ваше внимание на то, что в таблице приведены максимальные значения Bandwidth. На самом деле, за счет неравномерности распределения плотности записи по поверхности магнитных пластин, производительность доступа на внешних треках несколько выше, чем на внутренних. Разница может более 10%. За счет кэширования запросов при небольших и средних нагрузках это различие будет практически не заметно. В случае же высокой нагрузки, грамотное распределение данных поможет оптимизировать производительность. Это можно сделать на этапе создания LUNs на RAID Group. Например, в дисковых массивах EMC Clariion, при использовании утилит конфигурации в первую очередь создаются LUNs на внешних треках дисков и затем дисковое пространство заполняется по направлению к шпинделю.

Какое же распределение LUNs будет наиболее эффективным, если в одной GAID Group мы используем высоко и средне нагруженные тома? Рассмотрим примеры на рисунке.


Очевидно, что вариант 1 является неграмотным. Располагать нагруженный том на внутренних треках не разумно.
Вариант 2 кажется более правильным. Оба нагруженных тома находятся рядом на внешних треках накопителя. Но для работы с данными ненагруженных LUNs блоку головок чтения-записи будет необходимо регулярно перемещаться по всему диапазону треков. Издержки увеличение Avg. Seek Distance могут быть больше, чем преимущества, полученные от расположения данных на внешних треках.
Вариант 3 будет наиболее оптимальным решением. Расположение нагруженных томов “посередине” пластины позволит с одной стороны воспользоваться преимуществом приемлемой производительности средних треков, а с другой стороны, почти в 2 раза уменьшить Avg. Seek Distance.

Для грубой предварительной оценки производительности дисков можно использовать данные из таблицы.

Диск
Throughput IOPS
Bandwidth MB/s
EFD
2 500
-
15K RPM  FC
180
12
10K RPM  FC
140
10
7,2K RPM  SATA
80
8
7,2K RPM  ATA
60
7

Несколько заниженные значения Throughput были получены из экспериментальных данных о поведении дисков при произвольном доступе блоками 2-8KB. Данные Bandwidth рассматриваются в контексте последовательной активность блоками 128KB.

Емкость и размеры буферов дисков мы обсудим во второй части...

14 апреля 2010 г.

Защита данных при хранении

Существует необходимость защиты данных от двух основных напастей:
  • повреждения (data corruption). К ним относится прежде всего не желательная модификация данных и, как частный случай, их удаление.
  • потери данных (data loss). Более точно следует говорить о потере доступа к данным и разрушении их целостности. 
Приведу примеры. Если кто-то по дури удалил важный файл (т. е. модифицировал файловые дескрипторы) - это data corruption. Если был физически поврежден единственный диск, на котором находились эти данные - это data loss.

Концептуально, пока придумано всего несколько подходов для решения задачи защиты хранения данных:
  • RAID - заркалирование данных или использование других методов обеспечения их избыточности (например, parity).
-ЗАЩИЩАЕТ от локальной data loss (выхода из строя дисков), но НЕ ЗАЩИЩАЕТ от data corruption. RPO=0.

Т. к. RAID формируется на уровне физических накопителей, то для доступа к данным при возникновении сбоя не требуется никаких дополнительных действий.
  • Clones (клоны или, как вариант, зеркалирование при помощи какого-либо LVM) – полная локальная копия данных.
-В режиме постоянной синхронизации ЗАЩИЩАЕТ от локальной data loss (например выход из строя 2 дисков в RAID5), но НЕ ЗАЩИЩАЕТ от data corruption. RPO=0.
-В режиме регулярной синхронизации ЗАЩИЩАЕТ от локальной data loss, ЗАЩИЩАЕТ от data corruption. RPO= времени с последней синхронизации.

Clone работает на уровне тома и чаще всего используется для защиты данных, уже находящихся на RAID. Восстановление информации требует перевода тома клона данных в режим read/write или восстановления (recovery) на основной том.
  • Snapshots (снэпы) – локальная копия только части данных, модифицированной со времени его создания. 
-НЕ ЗАЩИЩАЕТ от локальной data loss на основном томе, ЗАЩИЩАЕТ от data corruption. RPO= времени с создания последнего снэпа.

Snapshot работает на уровне тома и используется для защиты данных, уже находящихся на RAID. Восстановление информации возможно либо с виртуального тома клона, либо с основного основной тома после процесса восстановления (recovery).
  • Remote replication (синхронная удаленная репликация) – полная копия данных на другой дисковый массив.
-Синхронная (как вариант, зеркалирование на другой массив при помощи какого-либо LVM) в режиме постоянной синхронизации ЗАЩИЩАЕТ от data loss основного хранилища, но НЕ ЗАЩИЩАЕТ от data corruption. RPO=0.
-Синхронная в режиме регулярной синхронизации ЗАЩИЩАЕТ от data loss основного хранилища, ЗАЩИЩАЕТ от data corruption. RPO= времени с последней синхронизации.
-Асинхронная в режиме постоянной синхронизации ЗАЩИЩАЕТ от data loss основного хранилища, но НЕ ЗАЩИЩАЕТ от data corruption. RPO= времени асинхронности.
-Асинхронная в режиме регулярной синхронизации ЗАЩИЩАЕТ от data loss основного хранилища, ЗАЩИЩАЕТ от data corruption. RPO= времени с последней синхронизации.

Репликация, чаще всего, работает на уровне блоков томов. Хотя, есть продукты, в которых при небольших изменениях асинхронно копируются только саб-блоки, а при больших изменениях файлы целиком. Восстановление информации требует перевода тома удаленной реплики данных в режим read/write или восстановления (recovery) на основной том.
  • Backup (резервное копирование) – полная или инкрементальная копия данных на уровне файлов. 
-ЗАЩИЩАЕТ от data loss основного хранилища, ЗАЩИЩАЕТ от data corruption. RPO= времени с последнего резервного копирования.

Есть продукты в которых контроль за изменениями при выполнении резервного копирования происходит на файловом уровне, а данные копируются и дедуплицируются на уровне саб-блоков. Восстановление данных выполняется с резервной копии на уровне отдельных файлов или всей копии как единого целого (Save Set).
  • Continuous Data Protection (CDP) – локальная или удаленная репликация с высокой гранулярностью восстановления данных. Применяется как бы “транзакционный подход”. Изменения данных на уровне IO-операций или саб-блоков фиксируется в специальном журнале. Всегда есть возможность восстановления с актуальной или почти актуальной копии данных (в зависимости от того, синхронный или асинхронный режим), но в случае необходимости, можно “откатиться” на нужное количество операций назад.
-near continuous – по сути, реализуется очень частым созданием snapshots. ЗАЩИЩАЕТ от data loss, ЗАЩИЩАЕТ от data corruption. RPO = времени любой точки восстановления.
-continuous – журналируется каждая операция изменения данных. ЗАЩИЩАЕТ от data loss, ЗАЩИЩАЕТ от data corruption. RPO = 0 или до времени любой операции модификации данных

CDP работает на уровне томов. Восстановление информации требует "наката" данных из журнала на том реплики

12 апреля 2010 г.

Семья Буля

Любой "компьютерщик" не понаслышке знаком с булевой алгеброй. Ее изобретатель, Джордж Буль был достаточно интересным человеком, но в этом посте я хотел бы рассказать не о нем, а о его семье.

Буль родился в Англии в семье бедного башмачника. Его отец закончил всего 3 класса школы и в математике был самоучкой. Однако, именно он был тем человеком, который заинтересовал сына науками. Уже к 12 годам Джордж самостоятельно изучил греческий и латинский языки. Чуть позже к ним прибавились французский, немецкий и итальянский. С 17 лет Буль "подсел" на высшую математику, работами в которой в дальнейшем и прославился.

Женой Буля была Мэри Эверест, племянница географа Джорджа Эвереста, извествного своими  геодезическими работами в Индии и в честь которого была названа высочайшая вершина мира Джомолунгма в Гималаях.

Мэри тоже была женщиной не банальной. В отличие от жен других математиков, она понимала научные идеи своего мужа и всячески поощряла его исследования. После смер­ти Буля, Мэри даже написала несколько математических сочинений, пропагандировавших идеи Джорджа.

У Булей было пять дочерей. Старшая, Мэри, вышла замуж за известного математика, изобретателя и писателя-фантаста Чарльза Хинтона.  Внуки Хинтонов тоже прославились. Говард стал энтомологом, а Вильям и Джоан - физиками. Кстати, последняя стала одной из немногих женщин, принимавших участие в работе над американской атомной бомбой.

Вторая дочь Булей, Маргарет, стала матерью знаменитого анг­лийского математика, и даже иностранного члена Академии наук СССР,  Джеффри Тэйлора.

Третья дочь, Алисия, получила почетную ученую степень в Гронингенском университете за исследования многомерных пространств.

Четвертая, Люси, стала первой в Англии женщиной-профессором зав-кафедрой химии.

Но самой знаменитой стала младшая дочь Булей, Этель Лили­ан, после замужества получившая польскую фамилию Войнич. Все мы в школе читали ее революционный “Овод”. Также она является сочинителем еще нескольких романов и му­зыкальных произведений и автором английских переводов стихов Тараса Шевченко.

Все-таки не зря говорят, что талантливые люди талантливы во всем. Даже в создании семьи и производстве потомства...  :)

8 апреля 2010 г.

Фиктивная геометрия диска

Об адресации жестких дисков здесь...

Ниже приведен вывод информации о геометрии диска ноутбука, на котором я пишу этот пост.

C:\Utils>diskpar -i 0
---- Drive 0 Geometry Infomation ----
Cylinders = 7296
TracksPerCylinder = 255
SectorsPerTrack = 63
BytesPerSector = 512
DiskSize = 60011642880 (Bytes) = 57231 (MB)

---- Drive Partition 0 Infomation ----
StatringOffset = 32256
PartitionLength = 60011610624
HiddenSectors = 63
PartitionNumber = 1
PartitionType = 7

End of partition information. Total existing partitions: 1


Обратите внимание, на огромное количество головок (здесь обозначено как TracksPerCylinder). Конечно, таких дисков не существует. Фиктивная геометрия рассчитана исходя из общего количества блоков диска по следующей формуле:



Важно, что при расчетах всегда берутся максимально допустимые значения количества головок и секторов на трек (TracksPerCylinder = 255, SectorsPerTrack = 63). Операционная система получает информацию об общем количестве блоков от самого диска (DiskSize / BytesPerSector = 60011642880 Bytes / 512 Bytes/sec = 117210240 blocks). Далее по формуле можно получить количество цилиндров (117210240 blocks / (255 heads * 63 tracks/cyl) = 7296).

Значения HiddenSectors = 63 и StatringOffset = 32256 (32256 Bytes / 512 Bytes/sec = 63 sec) указывают нам, что раздел 0 начинается с сектора 64. Если бы мы рассматривали файловую систему, расположенную на дисковом массиве, необходимо было бы провести ее выравнивание (file system alignment). Надо не забыть написать, как и почему надо это делать.

Кстати, вы сразу заметили ошибку в выводе diskpar (StatringOffset) :) ?

6 апреля 2010 г.

Конструктив и адресация жестких дисков

Конструкция жестких дисков остается неизменной уже много лет. Несколько стеклянных или алюминиевых круглых пластин (platters или просто “блины”) с нанесенным специальным магнитным слоем (обычно, сплав кобальта) насажены на общий шпиндель (spindle) и вращаются вокруг него как единое целое. Кстати, в неформальном разговоре “шпинделем” часто называют весь жесткий диск. Данные записываются и считываются при помощи самой дорогой и сложной части конструкции – блока головок чтения-записи (read/write heads). Эти головки смонтированы на коромыслах (arm), за точное перемещение которых (stroke) над поверхностью блинов отвечает специальный сервопривод (voice coil actuator).


Поверхность магнитных пластин поделена на большое количество зон в форме очень узких концентрических колец. Они называются треки (tracks). В современных винчестерах количество секторов на трек не постоянно. Оно дискретно увеличивается с удалением треков от центра пластин. Все треки, расположенные на равном расстоянии от центра пластин, называются цилиндром (cylinder). Головки чтения-записи перемещаются над поверхностью пластин как единое целое и поэтому одновременно позиционируются на треки одного цилиндра. Каждый трек, в свою очередь, поделен на некоторое количество регионов, которые именуются секторами (sectors). Секторы является наименьшей единицей адресации данных на жестких дисках. Их нумерация всегда начинается с 1.

В ранних дисковых накопителях применялась адресация данных CHS (Cylinder/Head/Sector). Но способ прямой физической адресации оказался очень неудобен и поэтому во всех современных жестких дисках вместо него используется LBA (Logical Block Addressing). Его суть заключается в том, что все дисковое пространство представляется в виде непрерывной последовательности блоков с простой линейной адресацией. Номер каждого блока однозначно сопоставляется CHS адресу физического сектора жесткого диска. Очевидно, что размер блока LBA всегда равен размеру сектора. В накопителях емкостью более 120GB используется 48bit LBA.




Несмотря на то, что CHS адресация при работе современных операционных систем с дисковыми накопителями не используется, BIOS компьютеров архитектуры x86 необходимо знать физическую геометрию диска. Данная информация также используется в некоторых служебных структурах ОС, например, в таблице разделов (partition table) и загрузочном секторе (boor sector). При этом, необходимо считаться с достаточно жесткими и, несомненно, устаревшими требованиями к постоянному количеству секторов в каждом треке (sectors/track <= 63). Число головок на цилиндр не должно превышать 255.
Для того чтобы удовлетворить таким требованиям, в современных дисках используются различные методы трансляции в фиктивную геометрию CHS.

Об основных характеристиках дисков здесь...

4 апреля 2010 г.

Заметки на полях (Clariion LUNs и MetaLUNs)

  • После удаления LUNs стоит делать дефрагментацию RAID group.
  • При fastbind процесс background initialization для 4Gbps FC дисков 146GB 15Krpm проходит за ~1,5 часа, а SATA II 4Gbps 500GB 7,2Krpm за ~8,5 часа. 
  • При background initialization average write size будет >512KB.
  • При создании MetaLUN, все LUNs будут автоматически trespassed на SP, который является default owner для base LUN. Об этом стоит помнить при сбалансированном распределении LUNs по SPs.
  • Не стоит менять размер stripe element компонент.
  • Используйте в качестве компонентов RAID groups с количеством дисков >=4.
  • MetaLUN стоит строить из RAID одинакового размера (например, RAID 10 4+4 или RAID5 4+1). Иначе разобраться с проблемами в производительности будет очень сложно.
  • В MetaLUNs нельзя смешивать FC и SATA.
  • Striping MetaLUNs имеют лучше производительность, но больше ограничений.
  • Члены Striping MetaLUNs не могут быть в различных RAID и должны иметь одинаковый размер в блоках.
  • Члены Concatenation MetaLUNs могут быть на одной RAID group. В случае Striping этого делать категорически нельзя.
  • Hybrid MetaLUNs более экономичны (популярны с MS Exchange).
  • Размер MetaLUN stripe element = Количество дисков данных * Stripe multiplier 
  • Stripe multiplier определяется автоматически по количеству дисков данных.
Количество дисков данных
Stripe multiplier
2
8
3
6
4
4
5
3
6
3
7
3
8
2
  • Если несколько MetaLUNs на одних и тех же RAID groups, то следует назначать base LUN на различных RAID groups (rotate).
  • Процесс MetaLUN expansion сильно понижает производительность всего массива.
  • ID членов MetaLUNs автоматически перенумеровываются в высокие номера.

Ограничения на количество LUNs в различных версиях Flare показаны в таблице:

Модель CX4
Ограничения LUNs Flare R29/R28.7
Max # LUNs
Max # LUNs / Storage Group
Max # Storage Groups
CX4-120
1024/1024
512/256
256/128
CX4-240
2048/1024
512/256
512/256
CX4-480
4096/4096
1024/256
1024/512
CX4-960
8192/4096
1024/512
2048/1024