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

На эффективность работы сетей хранения данных (Storage Area Network, SAN) влияет целый ряд факторов: поток данных для чтения или записи, с которым необходимо справляться, создание групп RAID (см. Рисунок 1) и их отображение на логические устройства (Logical Unit, LUN), настройки кэша процессоров хранения и адаптера главной шины. Группы RAID представляют физический способ организации коммуникации с аппаратным обеспечением SAN, в то время как LUN — это логический подход к коммуникации с операционной системой.

Рисунок 1. Пять физических носителей данных объединяются в группу RAID.

СОЗДАНИЕ ЛОГИЧЕСКИХ УСТРОЙСТВ

Неважно, как реализована сеть хранения данных, какой уровень RAID используется и есть ли дополнительные «зеркала»: при посредничестве приложения система хранения всегда отображается на сервере как «том». Когда речь идет о SCSI, том также называется LUN. Эта абстракция представляет собой первый шаг к виртуализации накопителей.

Там, где необходима большая производительность, испытанным средством являются выделенные группы RAID, причем между группой RAID и LUN существует непосредственная связь. Причина проста: каждая операция считывания или записи на LUN должна в конце концов выполняться на физическом уровне (RAID). Это можно пояснить на примере такого приложения, как Microsoft Exchange Server 2003, где каждый процесс записи или чтения на клиенте производится с обратным подтверждением через сервер.

Рисунок 2. Вместо одного логического устройства 0 группа RAID распределяется между тремя логическими устройствами.

Связывание нескольких LUN с одной группой RAID особенно распространено в средах с совместным использованием файлов. Если, к примеру, LUN 1, 2 и 3 связаны с одной группой RAID, то все три в зависимости от нагрузки конкурируют за имеющиеся физические ресурсы (см. Рисунок 2). Для предотвращения подобных ситуаций проектировщики хранилищ должны следить за тем, чтобы для каждой группы RAID было сконфигурировано лишь одно логическое устройство (см. Рисунок 3).

Рисунок 3. Объединенные в группу RAID носители данных отображаются на логическое устройство (LUN) с порядковым номером 0.

Реализация оптимального отображения групп RAID на логические устройства имеет решающее значение для предотвращения конфликтов между LUN. То же самое можно сказать об организации сбалансированных отношений между LUN и процессорами хранения. В этом случае производительность сети хранения данных может быть повышена при помощи настраиваемых параметров.

У администраторов есть ряд опций при назначении логических устройств процессорам хранения. Связь может устанавливаться автоматически или производиться вручную, когда логические устройства специально назначаются процессору хранения. Руководящим принципом является рабочая нагрузка, распределение которой между процессорами хранения должно быть по возможности равномерным, чтобы не возникало ненужных задержек. Так, к примеру, массив хранения Dell/EMC CX2700 обладает двумя процессорами хранения. Четыре внутренних петли Fibre Channel на каждый процессор (с пропускной способностью по 2 Гбит/с) обеспечивают восемь петель на один массив (см. Рисунки 4 и 5).

Рисунок 4. Сценарий неравномерного распределения рабочей нагрузки между двумя процессорами хранения.

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

Рисунок 5. В этом сценарии рабочая нагрузка распределена почти равномерно между двумя процессорами нагрузки.

Важный параметр — размер страницы в кэше. В отличие от контроллеров жестких дисков процессоры хранения используют страницы вместо секторов. Чем больше страница, тем больше взаимосвязанных секторов можно хранить в кэше. Эмпирическим правилом является предоставление 8 или 16 Кбайт для приложений файловых серверов и 2 или 4 Кбайт для приложений баз данных.

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

УСКОРЕНИЕ ДОСТУПА ДЛЯ ЧТЕНИЯ

Чтение перед кэшированием, называемое также упреждающей выборкой, представляется достаточно эффективным способом ускорения доступа для чтения. В таком случае процессору хранения дается право после двух удачных процессов чтения подряд «заранее» подготавливать данные в период ожидания ответа сети. При помощи этого алгоритма снижается время задержки сигнала от сети хранения к логическому устройству, поскольку необходимые данные уже подготовлены в кэше. Различают три типа упреждающей выборки:

  • постоянная — рекомендуется, когда данные обладают одинаковой длиной. Прочими настраиваемыми параметрами являются размер выборки (количество доступных блоков данных во время одного процесса физического доступа) и размер сегмента (количество блоков данных при операции чтения одним LUN). Типичные области применения — серверы мультимедиа и резервного копирования;
  • переменная — как следует из названия, речь идет о данных различной длины. Ключевыми характеристиками считаются коэффициент выборки, коэффициент сегмента и максимальная выборка. Если коэффициент выборки равен 4, а необходимый объем данных составляет 2 Кбайт, то переменный размер выборки равняется 8 Кбайт (4 х 2 = 8). Переменная выборка предназначена для сред, где попытки чтения происходят сравнительно редко, а записи — более часто;
  • нет разрешения — деактивированные функции выборки.

В случае приложений баз данных доступ для чтения очень часто производится вместе с процессом записи. В массиве хранения Dell/EMC CX700 при добавлении новых данных или изменении уже имеющихся информация сначала поступает в кэш записи процессора хранения и лишь потом направляется на предусмотренное логическое устройство. Данные в кэше первого процессора хранения зеркально отображаются в кэше второго процессора хранения, чем дополнительно повышается безопасность и готовность данных. Поэтому кэш записи каждого процессора содержит как собственные промежуточные данные, так и копию кэша второго процессора. Если один из двух процессоров откажет, промежуточные данные с функционирующего процессора немедленно записываются на диск, чтобы они не были потеряны. На случай отключения электроэнергии имеется аварийный аккумулятор, который обеспечивает полноценное резервирование и останавливает систему нормальным образом. При этом данные кэша сохраняются на жестком диске для предотвращения потери данных.

ЗАКЛЮЧЕНИЕ

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

Ханс Шремм — менеджер по системам хранения в компании Dell. С ним можно связаться по адресу: mw@lanline.awi.de.


? AWi Verlag