Настройка параметрів апаратних та програмних засобів кінечних вузлів

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Кінцевими вузлами мережі є комп'ютери, і від їх продуктивності і надійності багато в чому залежать характеристики всієї мережі в цілому. Комп'ютери є не тільки центрами обробки інформації, вони нарівні із спеціальних комунікаційних пристроїв несуть обов'язки по організації мережної взаємодії. Саме комп'ютери є тими пристроями в мережі, які реалізують протоколи всіх рівнів, починаючи від фізичного і канального (мережний адаптер і драйвер) і кінчаючи прикладним рівнем (додатки і мережні служби операційної системи).

Звідси витікає, що оптимізація комп'ютера включає дві достатньо незалежні задачі: По-перше, вибір таких параметрів конфігурації програмного і апаратного забезпечення, які б забезпечували оптимальні показники продуктивності і надійності цього комп'ютера як окремого елемента мережі. Такими параметрами є, наприклад, тип мережного адаптера, розмір файлового кеша, що впливає на швидкість доступу до даних на сервері, вживання того або іншого рівня RAID, продуктивність дисків і дискового контроллера, швидкодія центрального процесора і т.п. По-друге, вибір таких параметрів протоколів, встановлених в даному комп'ютері, які б гарантували ефективну і надійну роботу комунікаційних засобів мережі. Оскільки комп'ютери спричинюють велику частину кадрів і пакетів, циркулюючих в мережі, то багато важливих параметрів протоколів формуються програмним забезпеченням комп'ютерів, наприклад, початкове значення поля TTL протоколу IP, розмір вікна непідтверджених пакетів, розміри кадрів.

Оптимізація операційних систем

Критерії оптимізації ОС

Нагляд за продуктивністю мережної операційної системи будь-якого серверу проводиться звичайно для того, щоб визначити - чи досягнутий максимум продуктивності по обслуговуванню мережних клієнтів чи ні? Для досягнення цієї мети в ОС передбачається ряд засобів, які можуть допомогти мережному адміністратору відобразити і зареєструвати картину мережної активності серверу. Ці засоби збирають і записують у файл статистику про роботу серверу, на підставі якої адміністратор може знайти і виключити причину будь-якої з виниклих проблем.

В багатьох сучасних операційних системах розробники йдуть по шляху виключення багатьох непродуктивних параметрів системи, за допомогою яких адміністратори можуть впливати на продуктивність ОС. Натомість в операційну систему вбудовуються адаптивні алгоритми, які визначають раціональні параметри системи під час її роботи. За допомогою цих алгоритмів ОС може оптимізувати свої параметри відносно багатьох відомих мережних проблем динамічно, автоматично перерозподіляючи свої ресурси, і не привертаючи до рішення адміністратора.

Існують різні критерії оптимізації продуктивності операційної системи. До числа найпоширеніших критеріїв відносяться: Найбільша швидкість виконання певного процесу. Максимальне число задач, виконуваних процесором в одиницю часу. Ця характеристика називається також пропускною спроможністю комп'ютера. Вона характеризує якість розділення ресурсів між декількома одночасно виконуваними процесами. Звільнення найбільшої кількості оперативної пам'яті для найпріоритетніших процесів, наприклад, процесу, що виконує функції файлового серверу або ж для збільшення розміру файлового кеша. Звільнення найбільшої кількості дискової пам'яті.

Звичайно при оптимізації продуктивності ОС адміністратор починає цей процес при заданому наборі ресурсів. В загальному випадку одночасно поліпшити всі критерії продуктивності неможливо. Наприклад, якщо метою є збільшення доступної оперативної пам'яті, то адміністратор може збільшити розмір сторінкового файлу, але це приведе до зменшення доступного дискового простору.

Якщо ж потрібно поліпшити одночасно всі критерії продуктивності, то потрібно привертати додаткові ресурси, наприклад, більш могутній процесор, додаткову пам'ять або більш ємний диск.

Поняття "вузьке місце"

Виконання обчислювальної задачі може попросити участь в роботі декількох пристроїв. Кожний пристрій використовує певні ресурси для виконання своєї частини роботи. Погана продуктивність звичайно є слідством того, що один з пристроїв вимагає набагато більше ресурсів, ніж інші. Щоб виправити положення, адміністратор повинен виявити пристрій, який вимагає найбільшої частки часу виконання задачі. Такий пристрій, який вимагає найбільшої частки часу виконання задачі, називається вузьким місцем (bottleneck). Наприклад, якщо на виконання задачі потрібне 3 секунди, і 1 секунда витрачається на виконання програми процесором, а 2 секунди - на читання даних з диска, то диск є вузьким місцем.

Визначення вузького місця - це критичний етап в процесі поліпшення продуктивності. Заміна процесора в попередньому прикладі на іншій, в 2 рази більш швидкодійний процесор, зменшить загальний час виконання задачі тільки до 2.5 секунд, але істотно виправити ситуацію не зможе, оскільки ми не усунемо цим вузьке місце. Якщо ж ми купимо диск і контроллер диска, які будуть швидше колишніх в 2 рази, то загальний час зменшиться до 2 секунд.

В процесі оптимізації операційних систем адміністратор може скористатися різним інструментарієм - програмними і апаратними вимірниками. Багато операційних систем мають вбудовані або спеціально розроблені для них програмні системи моніторингу. Прикладом такої системи є PerformanceMonitor - засіб аналізу продуктивності ОС WindowsNT компанії Microsoft.

Розглянемо деякі типові процедури оптимізації операційної системи на прикладі WindowsNT за допомогою утиліти PerformanceMonitor.

Процедури оптимізації WindowsNT за допомогою утиліти PerformanceMonitor

Характеристика 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, можна експортувати в інші програмні продукти, такі як електронні таблиці і бази даних для подальшого аналізу.

Нагляд за споживанням ресурсів процесора, дисків і пам'яті

Процесор

Оскільки процесор завжди виконує деякі команди, то теоретично коефіцієнт його використання завжди рівний 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 для кожного активного процесу в системі. Потрібно по черзі завершувати процеси в системі (починаючи з процесом з найбільшим значенням робочого набору) і стежити за інтенсивністю сторінкового обміну. Після того, як інтенсивність сторінкового обміну зменшиться до прийнятної величини, потрібно знайти сумарний об'єм пам'яті, споживаної завершеними процесами, склавши їх робочі набори. Цей об'єм і буде величиною необхідної додаткової пам'яті.

Оптимізація мережного устаткування

Хоча є дуже мало можливостей для безпосередньої оптимізації мережного адаптера, але сам вибір хорошого адаптера може подвоїти продуктивність WindowsNTServer. Для вибору мережного адаптера є деякі міркування. По-перше, потрібно вибирати такий адаптер, який використовує всю розрядність шини уведення-виведення комп'ютера. Якщо комп'ютер має шину EISA, то потрібен адаптер для цієї шини, а не 8- або 16-розрядний адаптер.

По-друге, вибір мережного адаптера включає вибір драйвера адаптера. Для WindowsNT потрібно вибирати адаптер, сертифікований для роботи по специфікації NDIS 3.x. Таку інформацію можна знайти в списку WindowsNTHardwareCompatibility.

З мережною активністю пов'язана велика кількість лічильників. Всі мережні компоненти WindowsNT - Server, Redirector, протоколи NetBIOS, NWLink, TCP/IP - генерують набір статистичних параметрів. ненормальне значення мережного лічильника часто говорить про проблеми з пам'яттю, процесором або диском серверу. Отже, найкращий спосіб нагляду за сервером полягає в нагляді за мережними лічильниками в поєднанні з наглядом за такими лічильниками, як %ProcessorTime %DiskTime і Pages/sec.

Наприклад, якщо сервер показує різке збільшення лічильника Pages/sec одночасно з падінням лічильника Totalbytes/sec, то це може говорити про те, що комп'ютеру не вистачає фізичної пам'яті для мережних операцій.

Оптимізація сервісу робочої станції

Хоча редиректор 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 - кількість спроб отримання пам'яті з пулу вільних сторінок, які були невдалими через нестачу ресурсів. Це говорить або про недолік фізичної пам'яті, або про недостатній розмір сторінкового файлу.

Оптимізація режиму роботи протоколу 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 байти при записі на сервер.

Настройка підсистеми уведення-виведення робочих станцій і серверів

При обміні даними між двома вузлами мережі інформація проходить по наступному шляху:

диск комп'ютера 1- оперативна пам'ять комп'ютера 1 - мережний адаптер комп'ютера 1 - мережа - мережний адаптер комп'ютера 2 - оперативна пам'ять комп'ютера 2 - диск комп'ютера 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.