Дисковые массивы

Дисковые массивы

Хотя дисковые устройства работают все быстрее, им все равно не угнаться за технологиями процессоров, ведь повысить скорость работы механических устройств гораздо сложнее. Чтобы не зависеть от прогресса самих устройств, нужно попробовать их в других конфигурациях.

Несколько производителей недавно представили технологию чередования блоков данных (data striping) между дисками массива, заявив, что это глобальный прорыв в борьбе за повышение производительности систем. Между тем, впервые подобная технология стала коммерчески доступна еще на System/38. Ранее мы говорили, что приложение System/38 или AS/400 использует несколько системных объектов. В целях повышения производительности IBM решила распределить различные объекты по нескольким дискам, обеспечив параллельный доступ к ним. Таким образом, и System/

38 и AS/400 использовали чередование блоков данных с момента своего появления на рынке.

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

Давайте попробуем представить себе все это более наглядно. Итак, существует массив из четырех синхронно вращающихся дисков. При достаточном числе контроллеров устройств и трактов данных, мы могли бы записывать части одного объекта на все диски параллельно: четверть записи — на первый диск; другую — на второй и т. д. Вся запись в целом производится на четыре диска в четыре раза быстрее, чем та же самая — на один диск. Такая же экономия времени достигается и при считывании записи.

Технология синхронизации вращения дисков использовалась на протяжении многих лет суперкомпьютерами для получения большой скорости передачи данных в систему и из нее. Ее единственный недостаток в том, что весь массив с точки зрения системы имеет только одну головку. Многолетний опыт показал, что системы AS/ 400 работают тем быстрее, чем больше дисковых головок, иначе сокращается число возможных параллельных обращений к диску, и, таким образом, общая производительность потенциально снижается. По мере дальнейшего удешевления станет возможным подключать к системе все больше дисковых массивов, и это поможет повысить общую производительность, не дожидаясь прогресса в области механики.

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

Теперь давайте перейдем к будущему некоторых программных технологий для

AS/400.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Дисковые системы высокой доступности

Из книги автора

Дисковые системы высокой доступности Диски — это механические устройства, а механические устройства могут ломаться. Стандартная форма защиты для любой вычислительной системы — периодическое сохранение данных с дисков на другой носитель, обычно, ленту. Эта резервная


Дисковые экстенты

Из книги автора

Дисковые экстенты При создании нового сегмента дисковое пространство выделяется для него в виде одного или нескольких экстентов. Дисковый экстент — это набор последовательных 520-байтовых секторов диска. Минимальное число секторов в экстенте равно восьми, так как


(3.20) W2k при загрузке проверяет на ошибки все дисковые разделы, даже если на них установлены другие ОС. Как это отключить?

Из книги автора

(3.20) W2k при загрузке проверяет на ошибки все дисковые разделы, даже если на них установлены другие ОС. Как это отключить? Для этого необходимо в реестре по адресу [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager] изменить ключ "BootExecute". По умолчанию там стоит "autocheck *", "*" можно попробовать


10.2 ДИСКОВЫЕ ДРАЙВЕРЫ

Из книги автора

10.2 ДИСКОВЫЕ ДРАЙВЕРЫ Так сложилось исторически, что дисковые устройства в системах UNIX разбивались на разделы, содержащие различные файловые системы, что означало "деление [дискового] пакета на несколько управляемых по-своему частей" (см. [System V 84b]). Например, если на диске


3.9. XP при загрузке проверяет на ошибки все дисковые разделы, даже если на них установлены другие ОС. Как это отключить?

Из книги автора

3.9. XP при загрузке проверяет на ошибки все дисковые разделы, даже если на них установлены другие ОС. Как это отключить? Для этого необходимо в реестре по адресу [HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control Session Manager] изменить ключ "BootExecute". По умолчанию там стоит "autocheck *", "*" можно


Массивы

Из книги автора

Массивы Массивы в С++ объявляются с указанием количества элементов массива в квадратных скобках после имени переменной массива. Допускаются двумерные массивы, т.е. массив массивов. Ниже приводится определение одномерного массива, содержащего 10 элементов типа int:int


3. МАССИВЫ

Из книги автора

3. МАССИВЫ Массив - это группа переменных одного типа, доступ к которым осуществляется с помощью общего имени. Для объявления типа массива используются квадратные скобки. В приведенной ниже строке объявляется переменная month_days, тип которой — «массив целых чисел типа int».int


R.8.2.4 Массивы

Из книги автора

R.8.2.4 Массивы В описании T D, в котором D имеет видD1 [ выражение-константа opt ]описывается идентификатор типа "… массив T". Если выражение-константа присутствует (§R.5.19), то оно должно иметь целочисленный тип и значение, большее 0. Это выражение задает число элементов массива.


Массивы

Из книги автора

Массивы Для создания множества одинаковых объектов в 3ds Max есть специальная команда Array (Массив). Преимущество массивов заключается в том, что можно быстро создать большое количество объектов, сразу же указав, на сколько они будут сдвинуты, на какой угол повернуты и как


8.1. Массивы

Из книги автора

8.1. Массивы В Ruby массивы индексируются целыми числами; индексация начинается с нуля, как в языке С. На этом, впрочем, сходство и заканчивается.Массивы в Ruby динамические. Можно (хотя это и не обязательно) задать размер массива при создании. Но после создания он может расти без


Массивы

Из книги автора

Массивы Массив — это упорядоченная именованная совокупность однотипных значений, к которым можно обращаться по их порядковому номеру (индексу). Для описания массивов в языке Object Pascal используют следующие формы:• array [1..N1] of type — одномерный массив фиксированного размера


МАССИВЫ 

Из книги автора

МАССИВЫ      Вы уже знаете, что массив представляет собой группу элементов одного типа. Когда нам требуется для работы массив, мы сообщаем об этом компилятору при помощи операторов описания. Для создания массива компилятору необходимо знать тип данных и требуемый класс


Массивы

Из книги автора

Массивы Массивы представляют собой простейшую реализацию набора элементов, для которой можно использовать алгоритм последовательного поиска. Возможны два случая: первый - элементы массива расположены в произвольном порядке и второй - элементы отсортированы. Сначала


Массивы

Из книги автора

Массивы Предположим, что у нас имеется отсортированный массив. Как было показано ранее, алгоритм последовательного поиска даже при использовании выхода из цикла в случае отсутствия в списке искомого элемента принадлежит к классу O(n). Каким образом можно улучшить


Массивы

Из книги автора

Массивы Динамические массивы Очень простой пример…Const MaxBooleans = (High(Cardinal) – $F) div sizeof(boolean);Type TBoolArray = array[1..MaxBooleans] of boolean; PBoolArray = ^TBoolArray;Var B: PBoolArray; N: integer;BEGIN N:= 63579; {= получение памяти под динамический массив.. =} GetMem(B, N*sizeof(boolean)); {= работа с массивом… =} B^[3477]:= FALSE; {= возвращение