Время обслуживания
RAID разного уровня, естественно, по-разному ведут себя при увеличении количества запросов. Это связано в первую очередь с соотношением размера блоков на дисках и размера записываемых (считываемых) данных. Давайте еще раз вернемся к данному вопросу. Для иллюстрации на рис. 25 приведено соотношение размера запросов и размера блоков для двух случаев: запись или чтение большого файла («длинный» запрос) и малого файла («короткий» запрос).
Рис. 25. Соотношение длины запросов и размера логических блоков Данный рисунок соответствует RAID уровня 3 или 4 (в зависимости от величины запроса на обслуживание), организованного на трех дисках. «Длинный» запрос хорошо иллюстрирует особенности RAID уровня 3. Такой запрос разбивается на отдельные блоки. Половина этих блоков (в соответствии с рисунком) записывается на один диск, а половина на другой. Одновременно на третий диск записывается контрольная информация. Операция вычисления четности – это очень быстрая операция и легко реализуется аппаратно. Поэтому дополнительными временными задержками, связанными с вычислением избыточной операции, можно пренебречь. В итоге большой файл будет записан или считан в два раза быстрее (для системы из 3-х дисков, как на рис. 25) чем, если бы запись осуществлялась на одиночный диск. Однако любой другой запрос, поступивший в это время, будет ожидать обслуживания. Таким образом, при интенсивном потоке запросов время ожидания может быть весьма значительным. «Короткий» запрос соответствует режиму работы RAID уровня 4 или 5. Если размер записываемого файла меньше чем размер логического блока, то такой файл, естественно, не может быть разбит на части. Он весь размещается на каком-либо одном диске. Поэтому и скорость записи должна была бы быть точно такой, как и при записи на одиночный диск. Однако контрольная информация, связанная с модифицируемым блоком, соответствует всему блоку, а не только той части, которая модифицируется. Поэтому реально, чтобы выполнить запись, необходимо вначале считать модифицируемый блок и контрольную сумму, затем вычислить новое значение контрольной суммы и только после этого записать модифицированный блок и новое значение контрольной суммы. Вместо операции записи в RAID-5 и -4 фактически осуществляется операция «чтение-модификация-запись». Таким образом, в RAID уровня 4 и 5 скорость записи практически вдвое хуже, чем при использовании одиночного диска. Это – самая большая проблема в RAID уровня 5, и производители RAID-контроллеров ведут интенсивные работы по ее преодолению. Однако наличие такой проблемы еще не говорит о том, что RAID уровня 5 обладает низкой производительностью или уступает по этому показателю RAID уровня 3. При чтении, RAID уровня 4 или 5 может одновременно обслужить несколько запросов, благодаря чему производительность RAID уровня 5 может оставаться высокой даже при весьма интенсивном потоке запросов на обслуживание. В RAID уровня 5 одновременно также может обслуживаться и несколько запросов на запись. Именно для этого контрольная информация размещается не на одном диске, а чередуется на всех. Поэтому, в целом, время ожидания обслуживания при интенсивном потоке малых запросов в RAID уровня 5 оказывается лучше, чем, например, в RAID уровня 3. Типичная зависимость времени обслуживания запросов малого размера (в потоке – 25% запросов на запись) для RAID различных уровней приведена на рис. 26. Заметим, что условия измерения близки к реальным условиям в системе с централизованной базой данных Клиент-Серверной технологии.
Рис. 26. Типичная зависимость времени обслуживания запросов от интенсивности запросов Формы кривых для RAID различного уровня хорошо объясняют поведение системы с RAID в реальных условиях. RAID-0+1 обеспечивает минимальное время обслуживания при гораздо более интенсивном потоке запросов, чем все остальные уровни RAID. Более того, увеличение времени обслуживания при увеличении интенсивности потока запросов происходит достаточно плавно, благодаря чему уменьшение производительности почти незаметно для большинства пользователей. Несколько худшими характеристиками обладает система, использующая RAID-1. При увеличении интенсивности запросов увеличение времени обслуживания практически пропорционально числу запросов (примерно эквивалентно количеству подключенных к системе пользователей). Плавное снижение производительности очень хорошо воспринимается пользователями. В большинстве случаев именно RAID уровня 1 или уровня 0+1 обеспечивают наилучшую производительность в реальных системах. RAID уровня 3 обеспечивает очень высокую производительность при редких запросах, но при увеличении интенсивности запросов увеличение времени обслуживания происходит очень быстро. Это не позволяет рекомендовать RAID уровня 3 в серверах, и особенно в серверах, предназначенных для обслуживания баз данных. RAID уровня 5 занимает промежуточное положение. Несколько по-другому ведут себя RAID-ы при обслуживании больших запросов (интенсивный обмен длинными файлами). Для таких приложений RAID-3 показывает ощутимо лучшую производительность, чем RAID-5. Возможности RAID-0 несколько скромнее, однако лучше, чем у RAID-3 и RAID-5. Эти условия оказываются очень трудными для RAID-1. По времени обслуживания длинных запросов RAID-1 значительно уступает всем другим вариантам RAID. По-прежнему лидирующим оказывается RAID-0+1.
|