2.5. Настройка параметров аппаратных и программных средств конечных узлов
Конечными узлами сети являются компьютеры, и от их производительности и надежности во многом зависят характеристики всей сети в целом. Компьютеры представляют собой не только центры обработки информации, они наравне со специальными коммуникационными устройствами несут обязанности по организации сетевого взаимодействия. Именно компьютеры являются теми устройствами в сети, которые реализуют протоколы всех уровней, начиная от физического и канального (сетевой адаптер и драйвер) и кончая прикладным уровнем (приложения и сетевые службы операционной системы).
Отсюда следует, что оптимизация компьютера включает две достаточно независимые задачи:
- Во-первых, выбор таких параметров конфигурации программного и аппаратного обеспечения, которые бы обеспечивали оптимальные показатели производительности и надежности этого компьютера как отдельного элемента сети. Такими параметрами являются, например, тип используемого сетевого адаптера, размер файлового кэша, влияющий на скорость доступа к данным на сервере, применение того или иного уровня RAID, производительность дисков и дискового контроллера, быстродействие центрального процессора и т.п.
- Во-вторых, выбор таких параметров протоколов, установленных в данном компьютере, которые бы гарантировали эффективную и надежную работу коммуникационных средств сети. Так как компьютеры порождают большую часть кадров и пакетов, циркулирующих в сети, то многие важные параметры протоколов формируются программным обеспечением компьютеров, например, начальное значение поля TTL протокола IP, размер окна неподтвержденных пакетов, размеры используемых кадров.
2.5.1. Оптимизация операционных систем
2.5.1.1. Критерии оптимизации ОС
Наблюдение за производительностью сетевой операционной системы любого сервера производится обычно для того, чтобы определить - достигнут ли максимум производительности по обслуживанию сетевых клиентов или нет? Для достижения этой цели в ОС предусматривается ряд средств, которые могут помочь сетевому администратору отобразить и зарегистрировать картину сетевой активности сервера. Эти средства собирают и записывают в файл статистику о работе сервера, на основании которой администратор может найти и исключить причину любой из возникших проблем.
Во многих современных операционных системах разработчики идут по пути исключения многих непродуктивных параметров системы, с помощью которых администраторы могут влиять на производительность ОС. Вместо этого в операционную систему встраиваются адаптивные алгоритмы, которые определяют рациональные параметры системы во время ее работы. С помощью этих алгоритмов ОС может оптимизировать свои параметры в отношении многих известных сетевых проблем динамически, автоматически перераспределяя свои ресурсы, и не привлекая к решению администратора.
Существуют разные критерии оптимизации производительности операционной системы. К числу наиболее распространенных критериев относятся:
- Наибольшая скорость выполнения определенного процесса.
- Максимальное число задач, выполняемых процессором в единицу времени. Эта харакетристика называется также пропускной способностью компьютера. Она характеризует качество разделения ресурсов между несколькими одновременно выполняемыми процессами.
- Освобождение наибольшего количества оперативной памяти для наиболее приоритетных процессов, например, процесса, выполняющего функции файлового сервера или же для увеличения размера файлового кэша.
- Освобождение наибольшего количества дисковой памяти.
Обычно при оптимизации производительности ОС администратор начинает этот процесс при заданном наборе ресурсов. В общем случае одновременно улучшить все критерии производительности невозможно. Например, если целью является увеличение доступной оперативной памяти, то администратор может увеличить размер страничного файла, но это приведет к уменьшению доступного дискового пространства.
Если же нужно улучшить одновременно все критерии производительности, то нужно привлекать дополнительные ресурсы, например, более мощный процессор, дополнительную память или более емкий диск.
2.5.1.2. Понятие "узкое место"
Выполнение вычислительной задачи может потребовать участия в работе нескольких устройств. Каждое устройство использует определенные ресурсы для выполнения своей части работы. Плохая производительность обычно является следствием того, что одно из устройств требует намного больше ресурсов, чем остальные. Чтобы исправить положение, администратор должен выявить устройство, которое требует наибольшей доли времени выполнения задачи. Такое устройство, которое требует наибольшей доли времени выполнения задачи, называется узким местом (bottleneck). Например, если на выполнение задачи требуется 3 секунды, и 1 секунда тратится на выполнение программы процессором, а 2 секунды - на чтение данных с диска, то диск является узким местом.
Определение узкого места - это критический этап в процессе улучшения производительности. Замена процессора в предыдущем примере на другой, в 2 раза более быстродействующий процессор, уменьшит общее время выполнения задачи только до 2.5 секунд, но существенно исправить ситуацию не сможет, так как мы не устраним этим узкое место. Если же мы купим диск и контроллер диска, которые будут быстрее прежних в 2 раза, то общее время уменьшится до 2 секунд.
В процессе оптимизации операционных систем администратор может воспользоваться различным инструментарием - программными и аппаратными измерителями. Многие операционные системы имеют встроенные или специально разработанные для них программные системы мониторинга. Примером такой системы является PerformanceMonitor - средство анализа производительности ОС WindowsNT компании Microsoft.
Рассмотрим некоторые типовые процедуры оптимизации операционной системы на примере WindowsNT с помощью утилиты PerformanceMonitor.
2.5.2. Процедуры оптимизации WindowsNT с помощью утилиты PerformanceMonitor
2.5.2.1. Характеристика PerformanceMonitor
PerformanceMonitor - это утилита, разработанная для фиксации активности компьютера в реальном масштабе времени. С помощью этой утилиты можно определить большую часть узких мест, ухудшающих производительность. Эта утилита также включена в WindowsNTWorkstation.
PerformanceMonitor основан на ряде счетчиков, которые фиксируют такие характеристики, как число процессов, ожидающих завершения операции с диском, число сетевых пакетов, передаваемых в единицу времени, процент использования процессора и другие.
PerformanceMonitor генерирует полезную информацию за счет:
- Наблюдения за производительностью в реальном времени и в исторической перспективе;
- Определения тенденций во времени;
- Определения узких мест;
- Отслеживания последствий изменения конфигурации системы;
- Наблюдения за локальным или удаленными компьютерами;
- Предупреждения администратора о событиях, заключающихся в превышении некоторыми характеристиками заданных порогов.
PerformanceMonitor работает с такими понятиями, как объекты (objects), счетчики (counters) и экземпляры (instances). Объекты описываются различными характеристиками, значения которых подсчитываются соответствующими счетчиками. Объект каждого типа может быть представлен в системе несколькими экземплярами. Например, процессор - это объект, процент процессорного времени - это счетчик, а процессор 0 - это экземпляр объекта процессор.
Счетчики генерируют числа, и на основании этих чисел PerformanceMonitor определяет статистику. Собираемая в течение определенного времени статистика счетчиков отражает тенденции производительности. Это может помочь администратору понять проблему и оптимизировать сеть. Кроме того, такие данные помогают правильно расширять сеть.
Счетчики обычно включают ссылку на объект, к которому они относятся, в форме ОБЪЕКТ:СЧЕТЧИК. Например, PROCESSOR:%PROCESSORTIME - это счетчик, учитывающий процент использования для данного процессора.
С каждым объектом связан набор счетчиков, которые генерируют данные о различных аспектах производительности объекта. В таблице 2.1 собраны наиболее влияющие на производительность счетчики.
Таблица 2.1
Тип объекта | Счетчик | Возможные действия |
Processor (процессор) | %ProcessorTime (время занятости процессора) | Если значение этого счетчика постоянно велико, а значения счетчика диска и сетевого адаптера невысоки, то нужно проверить процессор |
PhysicalDisk (физический диск) | %DiskTime (время занятости диска) | Если значение этого счетчика постоянно велико, и значение счетчика DiskQueueLength (длина очереди к диску) больше 2, то нужно проверить диск |
Memory (память) | Pages/sec (скорость обмена страниц) | Если этот счетчик постоянно больше 5, то нужно проверить память |
Server (сервер) | BytesTotal/sec (скорость обмена с памятью) | Если сумма значений счетчиков BytesTotal/sec для всех серверов сети примерно равна максимальной пропускной способности сети, то сеть нужно сегментировать |
Защита данных обеспечивается за счет того, что две функции PerformanceMonitor доступны только пользователям - членам административной группы. Это: возможность запускать PerformanceMonitor с приоритетом задачи реального времени и способность активизировать дисковые счетчики.
Данные, собранные PerformanceMonitor, можно экспортировать в другие программные продукты, такие как электронные таблицы и базы данных для дальнейшего анализа.
2.5.2.2. Наблюдение за потреблением ресурсов процессора, дисков и памяти
Процессор
Так как процессор всегда выполняет некоторые команды, то теоретически коэффициент его использования всегда равен 100%. Однако в системе имеются так называемые "нити простоя", которые просто выполняют цикл ожидания следующего события для низкоуровневого кода ядра. Время выполнения этих нитей не учитывается при вычислении коэффициента использования в утилите PerformanceMonitor.
PerformanceMonitor характеризует использование процессоров объектами двух типов:
- System - характеризует общую загрузку всех процессоров системы;
- Processor - характеризует загрузку конкретного процессора.
В однопроцессорной системе эти значения совпадают.
Для этих объектов имеются три счетчика, связанные с коэффициентом использования:
- % [Total] PrivilegedTime - доля времени, которое процессор проводит в привилегированном режиме.
- % [Total] UserTime - доля времени, которое процессор проводит в пользовательском режиме.
- % [Total] Processortime - доля времени, которое процессор проводит, занимаясь полезной работой, то есть не в нитях простоя.
Если значение счетчика % ProcessorTime превышает 80%, то это говорит о том, что процессор не справляется с работой, и он должен быть заменен на более мощный (или же должен быть добавлен еще один процессор, если система многопроцессорная).
Аналогичные счетчики существуют и для объекта Process. В этом случае они отражают коэффициент использования процессора только нитями одного конкретного процесса. Кроме того, имеются и другие счетчики для характеристики работы процессоров, из которых наиболее важными являются следующие:
- ProcessorQueueLength - длина очереди к процессору, равна количеству нитей, готовых к выполнению и стоящих в очереди к процессору.
Если в течение длительного времени средняя длина очереди превышает значение 2, то это говорит о том, что процессор является узким местом. Обычно значение этого счетчика равно 0.
- Interrupt/sec - количество прерываний в секунду, характеризует интенсивность запросов обслуживания от устройств ввода-вывода. Резкое увеличение значения этого счетчика без увеличения активности системы говорит об аппаратных проблемах.
- Счетчик Process: % ProcessorTime нужно использовать для отслеживания коэффициента использования процессора для всех процессов. Если более чем два процесса претендуют на большую часть процессорного времени, то необходимо заменить или добавить процессор.
Диск
При наблюдении за диском нужно учитывать, что среднее время доступа к данным для большинства дисков находится в пределах от 8 до 18 миллисекунд.
Статистика о работе дисковой подсистемы может помочь в достижении баланса рабочей нагрузки сетевого сервера. Если дисковая подсистема достаточно производительна, то это создает меньшую нагрузку на подсистему виртуальной памяти и программы будут выполняться быстрее. PerformanceMonitor поддерживает два типа объектов, которые содержат счетчики дисковой подсистемы:
- PhysicalDisk - счетчики физического диска полезны для обнаружения неисправностей и планирования емкости.
- LogicalDisk - счетчики, генерирующие статистику о свободном пространстве на диске и идентифицирующие любой источник активности на физическом томе.
С производительностью диска тесно связаны два счетчика: DiskQueueLength - средняя длина очереди запросов к диску, и AverageDisksec/Transfer - среднее время выполнения одного запроса к диску.
На основании значений этих счетчиков можно вычислить такой важный показатель, как среднее время ожидания в очереди, которое хорошо отражает производительность дисковой подсистемы.
Среднее время ожидания в очереди = DiskQueueLengthxAverageDisksec/Transfer.
Обычно дисковые счетчики в системе отключены, чтобы не снижать ее производительности.
Память
Оптимизация памяти состоит в определении следующих параметров:
- корректного значения размера физической памяти;
- корректного значения размера страничного файла;
- корректного распределения страничного файла.
Для определения корректного значения физической памяти необходимо выполнить два шага. Во-первых, решить, нужна ли дополнительная память. Во-вторых, определить количество требуемой дополнительной памяти.
Решение о том, что дополнительная память нужна, принимается на основании количества страничных обменов, которые выполняет система. Если страничный обмен ведется интенсивно, то производительность существенно снижается.
Для того, чтобы определить, что страничный обмен ведется слишком интенсивно, нужно вычислить произведение:
Memory: Pages/sec x Logical Disk: Avg. Disk sec/Transfer,
где LogicalDisk относится к диску, на котором находится страничный файл PAGEFILE.SYS.
Это произведение равно доле времени доступа к диску, которое тратится на страничные обмены. Если эта доля больше 10%, то система нуждается в дополнительной памяти.
Следующий шаг состоит в определении количества дополнительной памяти. Эта величина определяется на основании значения счетчика Process: WorkingSet для каждого активного процесса в системе. Нужно по очереди завершать процессы в системе (начиная с процесса с самым большим значением рабочего набора) и следить за интенсивностью страничного обмена. После того, как интенсивность страничного обмена уменьшится до приемлемой величины, нужно найти суммарный объем памяти, потребляемой завершенными процессами, сложив их рабочие наборы. Этот объем и будет величиной требуемой дополнительной памяти.
2.5.2.3. Оптимизация сетевого оборудования
Хотя имеется очень мало возможностей для непосредственной оптимизации сетевого адаптера, но сам выбор хорошего адаптера может удвоить производительность WindowsNTServer. Для выбора сетевого адаптера имеются некоторые соображения. Во-первых, нужно выбирать такой адаптер, который использует всю разрядность шины ввода-вывода компьютера. Если компьютер имеет шину EISA, то нужен адаптер для этой шины, а не 8- или 16-разрядный адаптер.
Во-вторых, выбор сетевого адаптера включает выбор драйвера адаптера. Для WindowsNT нужно выбирать адаптер, сертифицированный для работы по спецификации NDIS 3.x. Такую информацию можно найти в списке WindowsNTHardwareCompatibility.
С сетевой активностью связано большое количество счетчиков. Все сетевые компоненты WindowsNT - Server, Redirector, протоколы NetBIOS, NWLink, TCP/IP - генерируют набор статистических параметров. Ненормальное значение сетевого счетчика часто говорит о проблемах с памятью, процессором или диском сервера. Следовательно, наилучший способ наблюдения за сервером состоит в наблюдении за сетевыми счетчиками в сочетании с наблюдением за такими счетчиками, как %ProcessorTime, %DiskTime и Pages/sec.
Например, если сервер показывает резкое увеличение счетчика Pages/sec одновременно с падением счетчика Totalbytes/sec, то это может говорить о том, что компьютеру не хватает физической памяти для сетевых операций.
2.5.2.4. Оптимизация сервиса рабочей станции
Хотя редиректор WindowsNT (сервис Workstation) является самонастраивающимся, администратор должен следить за показаниями нескольких счетчиков:
- Current Commands;
- Network Errors/sec;
- Remote Server Bottlenecks.
CurrentCommands - это количество команд, которые находятся в очереди к редиректору. Если это число больше, чем одна команда на один сетевой адаптер, то редиректор может быть узким местом в системе. Это может происходить по трем причинам:
- Сервер, с которым взаимодействует редиректор, работает медленней, чем редиректор;
- Сеть испытывает перегрузки;
- Редиректор более загружен, чем адаптер;
Если выявлена перегруженность сети, можно ее несколько разгрузить за счет сегментации сети.
NetworkErrors/sec - это интенсивность возникновения серьезных сетевых ошибок, обнаруженных редиректором. Наличие таких ошибок говорит о том, что нужны дополнительные исследования. Целесообразно использовать для этой цели регистратор событий EventLog.
Производительность редиректора может ограничиваться за счет низкой производительности удаленных серверов, с которыми взаимодействует редиректор. В PerformanceMonitor есть два счетчика - ReadsDenied/sec и WritesDenied/sec, ненулевые значения которых свидетельствуют о том, что удаленные серверы испытывают трудности с выделением оперативной памяти. Необходимо проверить серверы, с которыми данный редиректор обменивается большими файлами. Если на них нет возможности увеличить объем памяти, используемой для режима RAW протокола SMB (этот режим рассматривается ниже), то на рабочей станции нужно запретить использование этого режима. Это делается с помощью установки переменных UseRawReads и UseRawWrites в состояние False.
2.5.2.5. Оптимизация сервера
Оптимизация WindowsNTServer подобна оптимизации WindowsNTWorkstation за несколькими исключениями:
- Компоненты, поддерживающие пользовательский интерфейс, такие как мышь, клавиатура и видеоподсистема, меньше нуждаются в оптимизации, так как в большинстве случаев компьютер с WindowsNTServer не будет поддерживать интерактивный доступ пользователей.
- Серверные компоненты в данном случае более важны, чем редиректор. Если память является узким местом, то можно уменьшить память, выделенную для редиректора и увеличить для сервера.
- Если сервер выполняет приложения, написанные в модели клиент-сервер, такие как SQLServer, SNAServer или приложения, поддерживающие механизм RPC, то к диску будет обращаться меньше приложений, так что распределение файлов между несколькими дисками может оказаться весьма полезным.
Серверные компоненты WindowsNT можно сконфигурировать из панели Network утилиты ControlPanel. Имеется четыре общих установки:
- MinimizeMemoryUsed - минимизация используемой памяти, изначально уменьшает до 10 максимальное число соединений с клиентами.
- Balance - баланс между потребляемой памятью и производительностью, поддерживается до 64 соединений.
- MaximizeThroughputForFileSharing - выделяется память для максимально поддерживаемого числа соединений (до 71 000 соединений).
- MaximizeThroughputForNetworkApplications - выделяется память для максимально поддерживаемого числа соединений, но для кэша выделяется меньше памяти, чем в предыдущем случае.
Процесс обработки сетевых запросов сервером можно наблюдать с помощью счетчика WorkItemShortage объекта Server, а влиять на этот процесс можно путем задания значений для двух переменных базы Registry - InitialWorkItems и MaximumWorkItems. WorkItem - это рабочая структура, которая используется сервером для постановки в очередь сетевых запросов от клиентов. Если сервер перегружен, то запрос от клиента может быть отклонен, так как в наличии нет свободной рабочей структуры для его фиксации. При возникновении такого события PerformanceMonitor наращивает значение счетчика WorkItemShortage. Администратор должен отслеживать этот счетчик и изменять значения переменных Registry, если это необходимо.
Два счетчика информируют администратора о том, что сервер достиг границы максимально доступной для него памяти:
- PoolNonpagedFailures - количество попыток получения памяти из пула не охваченной страничным механизмом памяти, которые были неудачными из-за недостатка ресурсов. Эти события ясно указывают на то, что в компьютере не хватает физической памяти для работы сервера в данной конфигурации.
- PoolPagedFailures - количество попыток получения памяти из пула свободных страниц, которые были неудачными из-за недостатка ресурсов. Это говорит либо о недостатке физической памяти, либо о недостаточном размере страничного файла.
2.5.2.6. Оптимизация режима работы протокола SMB
RAW - это "грубый" режим передачи данных протоколом SMB, с помощью которого можно уменьшить накладные расходы при передаче между клиентом и сервером больших массивов данных. В этом режиме минимизируется количество заголовков или кадров протокола SMB, передаваемых по сети.
В этом режиме редиректор создает и передает только один запрос SMB на каждый запрос приложения на ввод-вывод. Сервер принимает в режиме RAW запросы и отправляет данные либо непосредственно через файловый кэш, либо через специальные буферы размером в 64К, выделенные специально для режима RAW. Следовательно, при использовании режима RAW редиректор может подготовить и отослать один запрос на передачу данных объемом до 64 Кбайт.
Для поддержки режима RAW серверу необходимо иметь некоторое количество рабочих структур. Если при серьезной нагрузке набор таких структур оказывается исчерпанным, то некоторые клиентские запросы останутся невыполненными. Performance Monitor ведетподсчеттакихзапросоввсчетчиках Raw Reads Rejected/sec и Raw Writes Rejected/sec.
В базе Registry имеется переменная RAWWorkItems, которая определяет количество используемых сервером рабочих структур для хранения запросов и данных в режиме RAW. По умолчанию ее значение равно 4, но может быть увеличено до 512.
Редиректор использует режим передачи данных RAW при следующих условиях:
- размер запрашиваемых приложением данных больше, чем 2 х (размер буфера сервера для операций чтения), либо 1.5 х (размер буфера сервера для операций записи);
- режим RAW не запрещен явным образом на сервере или клиенте;
- данные передаются по достаточно быстрому каналу;
- к одному серверу одновременно не обращается большое количество различных клиентских компьютеров;
- на сервере имеется достаточно оперативной памяти для размещения больших (до 64К) буферов режима RAW.
Во всех остальных случаях редиректор будет использовать режим передачи данных CORE.
В режиме CORE сервер использует в общем случае для выполнения одного запроса на проведение операции ввода-вывода несколько сообщений протокола SMB. Количество сообщений определяется размером буферов, используемых сервером для обслуживания запросов в этом режиме. По умолчанию размер буфера запроса равен 4356 байт. Следовательно, данные плюс служебная информация, пересылаемые одной операцией SMB, не должны превышать 4356 байтов. Служебная информация при операции чтения составляет 63 байта, а при операции записи - 64 байта. Оставшуюся часть буфера могут занимать данные, что дает 4293 байта при чтении с сервера и 4292 байта при записи на сервер.
2.5.3. Настройка подсистемы ввода-вывода рабочих станций и серверов
При обмене данными между двумя узлами сети информация проходит по следующему пути:
диск компьютера 1- оперативная память компьютера 1 - сетевой адаптер компьютера 1 - сеть - сетевой адаптер компьютера 2 - оперативная память компьютера 2 - диск компьютера 2.
Каждый этап выполнения операции обмена непосредственно влияет на общее время ее выполнения, а, следовательно, на пропускную способность сети. Поэтому оптимизировать необходимо не только параметры коммуникационных протоколов операционной системы компьютера и сетевого адаптера, но и параметры подсистемы ввода-вывода, отвечающей за доступ к диску.
2.5.3.1. Оптимизация дискового кэша
Дисковый кэш - это область оперативной памяти, которая используется для временного буферного хранения блоков данных, хранящихся на диске. При обращении к данным на диске операционная система всегда сначала проверяет наличие этих данных в кэше оперативной памяти, а в случае их отсутствия выполняет реальную операцию обращения к диску. Поцент "попадания в кэш" при обращении к данным сервера существенно ускоряет работу сервера.
Операционные системы стараются хранить в кэше наиболее часто используемые в текущий момент времени данные. Для этого используются различные алгоритмы, основанные на запоминании частоты обращения к данным.
На эффективность работы дискового кэша влияют не только параметры алгоритма его заполнения и вытеснения, но и в первую очередь размер оперативной памяти, отводимой под кэш.
Для оптимизации размера дискового кэша используются различные средства мониторинга операционной системы, с помощью которых можно наблюдать процент попадания в кэш при выполнении обращений к данным сервера. Так как оперативная память - дефицитный ресурс компьютера, то необходимо найти ту границу размера кэша, при которой время доступа к дисковым данным становится меньше некоторой пороговой векличины, соизмеримой с временем выполнения других операций по обмену данными по сети - задержками, вносимыми сетевым адаптером и сетевой средой вместе с коммуникационным оборудованием.
2.5.3.2. Использование RAID-массивов для повышения производительности
Главными характеристиками дискового накопителя являются его емкость, быстродействие и надежность. Требуемая емкость диска (или дисков) определяется задачами пользователей сети и требованиями к развитию системы.
Показателями быстродействия диска являются две характеристики - среднее время доступа к диску, зависящее от времени перемещения головок между дорожками диска, и скорость передачи данных между диском и контроллером диска. Кроме того, для оценки производительности дисков, используемых для хранения баз данных, удобной характеристикой является скорость транзакций, обычно измеряемая в количестве вводов/выводов в секунду. Предлагаемые на рынке диски имеют в основном два типа интерфейса между диском и контроллером диска: IDE и SCSI (с его разновидностями - SCSI-2 и FastSCSI-2). Требуемую скорость передачи данных обеспечивает интерфейс SCSI, к тому же он позволяет подключить к одному контроллеру до 7 дисков, что не может интерфейс IDE. Поэтому для файл-серверов в сетях с количеством пользователей больше 10 желательно использовать диски с интерфейсом SCSI. Желательно, чтобы контроллер диска имел большую кэш-память, в этом случае обмен с дисками значительно ускоряется.
Для обеспечения надежного хранения данных на дисках в файл-серверах широко используются дисковые массивы - так называемые RAID-массивы (RedundantArrayofInexpensiveDisks - избыточные массивы недорогих дисков). Для компьютера дисковый массив представляется одним диском. Существуют различные схемы организации внешней памяти на основе набора дисков - RAID-уровни. Одни из них повышают только надежность, другие - только скорость доступа к данным, а некоторые - сочетают в себе оба эти достоинства. При этом, немаловажным обстоятельством является степень избыточности оборудования, требуемая для реализации того или иного уровня RAID, которая влияет на экономичность выбранного решения.
УровеньRAID-0 повышает скорость доступа к данным за счет их расщепления. Общий для дискового массива контроллер передает данные параллельно на все диски, при этом первый байт данных записывается на первый диск, второй - на второй и т. д. Время доступа при выполнении одной операции ввода-вывода сокращается за счет одновременности операций записи/чтения по всем дискам массива. В параллельном дисковом массиве должен использоваться специальный контроллер, обеспечивающий синхронизацию дисководов. Понятно, что надежность этой схемы по сравнению с одиночным диском в общем случае не только не повышается, а становится ниже, действительно вероятность отказа возрастает, из-за увеличения числа дисков. Зато уровень RAID не создает избыточности данных в дисковом массиве.
УровеньRAID-1 реализует зеркальную запись на диски. Второй (или резервный) диск дублирует каждый основной диск. Если основной диск выходит из строя, зеркальный продолжает сохранять данные. Этот способ характеризуется высокой надежностью, сопровождаемой, однако, высокой избыточностью. Очевидно, что скорость доступа к данным не повышается.
Уровень RAID-2 используется в больших компьютерах и представляет собой способ побитного расслоения, который позволяет увеличить скорость доступа к данным за счет расспараллеливания запроса.
В реализацииRAID-3 используется массив из N дисков, запись на N-1 из них производится параллельно с побайтным (или блочным) расщеплением, как в методе RAID-0. N-ый диск используется для записи контрольной информации о четности. Диск четности является резервным. Если какой-либо диск выходит из строя, то данные остальных дисков плюс данные о четности резервного диска позволяют восстановить утраченную информацию. Уровень RAID-3 повышает как надежность, так и скорость обмена информацией, однако обладает избыточностью, хотя и меньшей, чем уровень RAID-1.
Уровень RAID-4 также использует один резервный диск для записи контрольной информации о четности, но расщепление происходит на уровне более крупных единиц данных - на уровне секторов. За счет этого может происходить независимый обмен с каждым диском. Скорость передачи данных не выше, чем у отдельного диска, однако, поскольку диски работают независимо, данные могут считываться одновременно со всех дисков. Это делает возможным одновременное выполнение нескольких операций ввода-вывода. Основным недостатком уровня RAID-4 является низкая скорость записи. Информация о четности должна корректироваться каждый раз, когда выполняется операция записи. Старые данные и старая информация о четности сначала должны быть считаны, а затем объединены с новыми данными, чтобы получить новую информацию о четности. Затем она должна быть записана на диск четности. Причиной значительного уменьшения скорости в методе RAID-4 является то, что после чтения старых данных и старой информации о четности каждый диск должен повернуться на один полный оборот до того, как новые данные и информация о четности могут быть записаны. Кроме того, при параллельном выполнении нескольких операций ввода-вывода могут возникать очереди при обращении к диску с контрольной информацией.
В уровнеRAID-5 используется метод, аналогичный RAID-4, но данные о контроле четности распределяются по дискам массива. Каждая команда записи инициирует ту же последовательность считывание-модификация-запись в нескольких дисках, как и в методе RAID-4. Поскольку информация о четности может быть считана и записана на несколько дисков одновременно, вероятность возникновения очередей к дискам уменьшается, а, следовательно, скорость записи по сравнению с уровнем RAID-4 увеличивается. Однако она все еще гораздо ниже скорости отдельного диска, метода RAID-1 или RAID-3.
Существуют и другие способы использования RAID-массивов. Иногда могут встречаться комбинации разных схем, например, уровень RAID-10 представляет собой расслоение (RAID-0) в сочетании с зеркальным отображением (RAID-1). Наиболее часто в дисковых подсистемах файловых серверов используются уровни RAID-1, RAID-3 и RAID-5.
Назад |
Содержание |
Вперед