Елементи дискових підсистем серверів

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

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

Проблеми починаються або тоді, коли файлова система демонструє явне зниження продуктивності, або тоді, коли вона починає збоїти. Інший привід для уважнішого вивчення цієї теми: установка на ПК кількох «гвинтів» одночасно.

Як і будь-який складний пристрій, вінчестер потребує регулярного обслуговування. Windows 7 хоч і бере на себе частково ці турботи, вона не здатна самостійно вирішити за вас усі проблеми. Інакше «гальма» згодом гарантовані.Як мінімум потрібно вміти робити такі речі:

  • Очищати файлову систему від сміття. У поняття сміття входять тимчасові файли, що розплодилися «кукіс» браузерів, дубльована інформація тощо.
  • Здійснювати дефрагментацію жорсткого диска. Файлова система Windows побудована таким чином, що видиме користувачем як ціле насправді є розкиданими по магнітній поверхні вінчестера окремими фрагментами файлів, об'єднаними в ланцюжок: кожен попередній фрагмент знає кожен наступний. Для читання файлу як цілого потрібно зібрати ці частини разом, для чого необхідно виконати велику кількість циклів читання з різних місць поверхні. Те саме відбувається і при записі. Дефрагментація дозволяє зібрати всі ці шматочки в одне місце.
  • Переглядати та коригувати інформацію про розділи.
  • Вміти відкривати доступ до прихованих та системних файлів та папок.
  • За необхідності вміти працювати відразу з кількома «гвинтами».

А також виконувати деякі інші корисні дії. У нашій замітці ми не обговорюватимемо все коло цих питань, а зупинимося лише на деяких.

Як читати інформацію про розділи?

Для тих, хто не знає, дамо пояснення: у Windows існує таке поняття, як «оснащення».

Це виконуваний файл з розширенням .msc, який запускається як звичайний exe. Всі оснащення мають одноманітний інтерфейс і побудовані на технології COM – основі внутрішнього пристрою операційної системи.

Вікно керування дисками також є оснасткою. Запустити її можна набравши в вікні "Виконати" її ім'я diskmgmt.msc так, як показано на наступному малюнку:

В результаті перед нами виявиться вікно самого оснащення із заголовком «Керування дисками». Ось як ця програма виглядає:

Цей інтерфейс інтуїтивно зрозумілий та простий. У верхній панелі вікна ми бачимо перелік всіх наявних на «гвинті» томів (або розділів) із супутньою інформацією про них, як-от:

  • Ім'я розділу.
  • Тип розділу.
  • Його повна ємність.
  • Його статус (різні розділи можуть мати різний статус).
  • вільне місце, Що Залишилося, виражене в гігабайтах і відсотках від загального обсягу.

та інша інформація. У нижній панелі розташований перелік накопичувачів та розділів. Саме звідси можна робити операції з томами та накопичувачами. Для цього потрібно клацнути на ім'я тому правою кнопкою миші і вибрати конкретну операцію з підменю «Дії».

Головна перевага інтерфейсу в тому, що тут все зібрано в купку – немає потреби блукати по різних меню та вікнах, щоб здійснити задумане.

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

Розберемо деякі неочевидні операції із розділами. Для початку обговоримо перехід із формату MBR у формат GPT. Обидва ці формати відповідають різним типам завантажувача. MBR – класичний, але застарілий формат завантажувача.

У нього є явні обмеження як за обсягом тома (трохи більше 2 Тб), і за кількістю томів – підтримується трохи більше чотирьох. Не варто плутати тому і розділ – це дещо відмінні поняття. Про їхні відмінності читайте в інтернеті. Формат GPT побудований на технології GUID та не має цих обмежень.

Так що якщо ви маєте диск великого розміру – сміливо конвертуйте MBR у GPT. Щоправда, всі дані на диску будуть знищені – їх потрібно скопіювати в інше місце.

Технологія віртуалізації проникла всюди. Не оминула вона і файлову систему. За бажання ви можете створювати та монтувати так звані «віртуальні диски».

Такий "пристрій" є звичайним файлом з розширенням.vhd і може використовуватися як звичайний фізичний пристрій - як для читання, так і для запису.

Це відкриває додаткові можливості для каталогізації інформації. На цьому наша розповідь закінчена. Управління дисками в Windows 7 – досить велика тема, занурившись у яку можна відкрити собі чимало нового.

16.01.1997 Патрік Корріган, Міккі Епплбаум

Варіанти конфігурації дискових підсистем серверів різноманітні, і, як наслідок, неминуча плутанина. Щоб допомогти вам розібратися в цьому непростому питанні, ми вирішили розглянути основні технології та економічну виправданість їхнього застосування. ДИСКОВІ

Варіанти конфігурації дискових підсистем серверів різноманітні, і, як наслідок, неминуча плутанина. Щоб допомогти вам розібратися в цьому непростому питанні, ми вирішили розглянути основні технології та економічну виправданість їхнього застосування.

У разі дискових підсистем серверів ви маєте вибір з безлічі варіантів, але достаток ускладнює перебування тієї системи, яка буде у вашому випадку кращою. Ситуація ускладнюється тим, що в процесі вибору доведеться розбиратися в неабиякому обсязі хибної інформації та маркетингового галасу.

Зрозуміти суть цього питання має допомогти запропонований нами огляд основних технологій дискових підсистем серверів та обговорення доцільності їх застосування з точки зору вартості, продуктивності, надійності та відмовостійкості.

ДИСКОВІ ІНТЕРФЕЙСИ

Чи визначаєте ви специфікацію нового сервера або модернізуєте існуючий, дисковий інтерфейс є найважливішим питанням. Більшість сучасних дисків використовують інтерфейси SCSI або IDE. Ми розглянемо обидві технології, опишемо їхню реалізацію, обговоримо їхню роботу.

SCSI – це стандартизований ANSI інтерфейс, що має кілька варіацій. Початкова специфікація SCSI, що називається тепер SCSI-I, використовує 8-розрядний канал даних при максимальній швидкості передачі даних 5 Мбіт/с. SCSI-2 допускає кілька варіацій, у тому числі Fast SCSI з 8-розрядним каналом даних та швидкістю передачі до 10 Мбіт/с; Wide SCSI з 16-розрядним каналом даних та швидкістю передачі до 10 Мбіт/с; та Fast/Wide SCSI з 16-розрядним каналом даних та швидкістю передачі до 10 Мбіт/с (див. Таблицю 1).

ТАБЛИЦЯ 1 - ВАРІАНТИ SCSI

SCSI-1 Максимальна продуктивність Ширина каналу Частота Число пристроїв*
5 Мбіт/с 8 розрядів 5 МГц 8
SCSI-2
Fast SCSI 10 Мбіт/с 8 розрядів 10 МГц 8
Fast/Wide SCSI 20 Мбіт/с 16 розрядів 10 МГц 8; 16**
* до підтримуваних пристроїв входить HBA ** з несиметричним вихідним сигналом; диференціальний

З появою "широкого" 16-розрядного Fast/Wide SCSI 8-розрядні версії стали іноді називати "вузькими" - Narrow SCSI. Нещодавно з'явилося ще кілька реалізацій SCSI: Ultra SCSI, Wide Ultra SCSI та SCSI-3. У порівнянні з найбільш поширеними варіантами ці інтерфейси мають деяку перевагу в продуктивності, але, оскільки вони поширені ще не дуже широко (кількість тих, що використовують дані інтерфейси пристроїв, дуже обмежена), ми не обговорюватимемо їх у нашій статті.

Кабельна система SCSI-I – це лінійна шина з можливістю підключення до восьми пристроїв, включаючи головний адаптер шини (host bus adapter, HBA). Такий дизайн шини називається SCSI з несиметричним вихідним сигналом (single-ended SCSI), при цьому довжина шлейфу може досягати дев'яти метрів. SCSI-2 (який практично витіснив SCSI-I) підтримує і SCSI з несиметричним вихідним сигналом, і диференціальний SCSI. Диференціальний SCSI використовує інший, ніж SCSI з несиметричним виходом, спосіб сигналізації і підтримує до 16 пристроїв на шлейфі довжиною до 25 метрів. Він забезпечує найкраще придушення шуму, що у багатьох випадках означає найкращу продуктивність.

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

Вибираючи пристрої SCSI, потрібно знати про проблеми сумісності. SCSI з несиметричним вихідним сигналом і диференціальний SCSI можуть використовувати ту саму проводку, але поєднувати пристрої з несиметричним вихідним сигналом і диференціальні пристрої не можна. Wide SCSI застосовує відмінну від Narrow SCSI кабельну систему, так що використовувати на тому самому каналі пристрої Wide SCSI і Narrow SCSI неможливо.

ЯК ПРАЦЮЄ SCSI

У SCSI контролер пристрою (наприклад, контролер диска) та інтерфейс з комп'ютером - пристрої різні. Інтерфейс з комп'ютером, HBA, додає до комп'ютера додаткову інтерфейсну шину для приєднання кількох контролерів пристроїв: до семи контролерів пристроїв на каналі SCSI з несиметричним вихідним сигналом та до 15 на диференціальному каналі. Технічно кожен контролер може підтримувати до чотирьох пристроїв. Однак при високих швидкостях обміну сьогоднішніх високоємних дисків контролер пристрою зазвичай вбудовується в диск для зменшення перешкод і електричних наведень. Це означає, що можна мати до семи дисків на каналі SCSI з несиметричним вихідним сигналом і до 15 на диференціальному каналі SCSI.

Одна з переваг SCSI - обробка кількох команд, що накладаються один на одного. Ця підтримка введення/виводу, що перекривається, дає дискам SCSI можливість повністю поєднувати свої операції читання та записи з іншими дисками системи, завдяки чому різні диски можуть обробляти команди паралельно, а не по черзі.

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

Крім того, оскільки HBA контролює доступ між внутрішньою шиною розширення комп'ютера і шиною SCSI, він може вирішувати конфлікти доступу до них обох з наданням таких розширених можливостей, як сервіс обриву/відновлення зв'язку. Обрив/відновлення дозволяють ОС надіслати конкретному пристрою команду на пошук, читання або запис, після чого диск надається самому собі для виконання команди, завдяки чому інший диск на тому ж каналі може тим часом отримати команду. Цей процес сприяє значному підвищенню пропускної спроможності дискових каналів з більш ніж двома дисками, особливо коли дані рознесені або розкидані дисками. Інша розширена функція - синхронний обмін даними, внаслідок чого загальна пропускна здатність дискового каналу та цілісність даних збільшуються.

IDE

IDE - фактичний стандарт, що широко використовується в ПК на базі процесорів х86. Це лише загальна рекомендація для виробників, тому кожен міг вільно розробляти специфічний IDE інтерфейс для своїх пристроїв і адаптерів. Через війну товари від різних виробників, і навіть різні моделі однієї й тієї ж виробника, виявлялися несумісні друг з одним. Коли специфікація встояла, дана проблема практично зникла, але несумісність все ж таки можлива.

На відміну від SCSI, IDE покладає виконання інтелектуальних функцій на диск, а не HBA. HBA для IDE практично не має інтелектуальності і просто безпосередньо виводить шину комп'ютера до дисків. Без проміжного інтерфейсу число пристроїв одному каналі IDE обмежується двома, а довжина кабелю трьома метрами.

Оскільки весь інтелект пристроїв IDE знаходиться на самих пристроях, один із пристроїв на каналі призначається головним (channel master), а вбудований контролер на другому відключається, і воно стає підлеглим (chanell slave). Головний пристрій контролює доступ через канал IDE до обох пристроїв і виконує для них усі операції вводу/виводу. Це одна з можливостей конфлікту між пристроями через різні реалізації виробниками інтерфейсу IDE. Наприклад, один диск може бути розрахований на роботу з конкретною схемою контролера, а головне пристрій, якого він підключений, може використовувати інший тип контролера. Крім того, диски нового розширеного стандарту Enhanced IDE (EIDE) використовують розширений набір команд і трансляційних таблиць з метою підтримки дисків більшої ємності і більшої продуктивності. Якщо вони під'єднані до старого стандартного, головного диска IDE, вони не тільки втрачають розширені функції, але і можуть не надати вам всю свою доступну ємність. Гірше того, вони можуть повідомляти ОС про свою повну ємність, будучи не в змозі її використовувати, що може призвести до пошкодження інформації на диску.

Можливість пошкодження даних обумовлена ​​тим, кожна ОС по-своєму приймає інформацію про конфігурації диска. Наприклад, DOS та системний BIOS допускають максимальну ємність диска лише 528 Мбайт. NetWare та інші 32-розрядні системи не мають цих обмежень і здатні читати весь диск IDE безпосередньо через його електроніку. Коли ви створюєте одному диску кілька розділів різних ОС, кожна їх бачить ємність і конфігурацію по-своєму, але це може призвести до перекриття таблиць розділів, що, своєю чергою, значно підвищує ризик втрати даних на диску.

Оригінальна архітектура IDE не дозволяє розпізнавати диски більше 528 Мбайт і може підтримувати лише два пристрої на канал за максимальної швидкості передачі 3 Мбіт/с. Для подолання деяких обмежень IDE у 1994 році було представлено архітектуру EIDE. EIDE підтримує велику ємність і продуктивність, проте її швидкості передачі від 9 до 16 Мбіт/с, як і раніше, повільніше за швидкість передачі SCSI. Крім того, на відміну від 15 пристроїв на канал для SCSI вона може підтримувати максимум чотири на канал. Зазначимо також, що IDE, ні EIDE не реалізують функцій багатозадачності. І отже, що неспроможні забезпечити у типовому серверному оточенні той самий рівень продуктивності, як і інтерфейси SCSI.

Хоча стандарт IDE розроблявся для дисків, зараз він підтримує стрічкові пристрої і CD-ROM. Однак поділ каналу з CD-ROM або стрічковим пристроєм може негативно вплинути на продуктивність диска. В цілому переваги SCSI у продуктивності та розширюваності роблять його в порівнянні з IDE або EIDE більш кращим для більшості серверних програм старшого класу, де потрібна висока продуктивність. Однак для програм початкового рівня, де продуктивність або розширюваність не відіграють великої ролі, вистачить IDE або EIDE. У той же час, якщо вам потрібна надмірність дисків, то IDE через потенційні проблеми, пов'язані з підходом master-slave, не найкращий варіант. Крім того, слід побоюватися можливого перекриття таблиць розділів та проблем несумісності пристроїв master-slave.

Тим не менш, є кілька випадків, коли інтерфейси IDE і EIDE можуть бути використані в серверах старшого класу. Звичайною практикою є, наприклад, використання невеликого диска IDE розділу DOS на серверах NetWare. Широко практикується застосування приводів CD-ROM з інтерфейсом IDE для завантаження ПЗ.

НАДЛИВНІ ДИСКОВІ СИСТЕМИ

Ще одне важливе для обговорення питання щодо специфікації сервера - надмірність. Існує кілька методів підвищення надійності дискової системи з кількох дисків. Більшість цих схем надмірності - варіації RAID (розшифровується як "надлишковий масив недорогих чи незалежних дисків"). Оригінальна специфікація RAID була розроблена для заміни великих та дорогих дисків мейнфреймів та міні-комп'ютерів масивами невеликих та дешевих дисків, призначених для міні-комп'ютерів, - звідси слово "недорогі". На жаль, у системах RAID рідко зустрічається щось недороге.

RAID – це серія реалізацій надлишкових дискових масивів для забезпечення різних рівнів захисту та швидкості передачі даних. Оскільки RAID передбачає використання дискових масивів, найкращим інтерфейсом для використання буде SCSI, оскільки він може підтримувати до 15 пристроїв. Рівень RAID існує 6: від нульового до п'ятого. Хоча деякі виробники рекламують власні схеми надмірності, які вони називають RAID-6, RAID-7 або вище. (RAID-2 та RAID-4 немає в мережевих серверах, тому ми про них говорити не будемо.)

З усіх рівнів RAID нульовий має найбільшу продуктивність та найменшу захищеність. Він передбачає наявність як мінімум двох пристроїв та синхронізований запис даних на обидва диски, при цьому диски виглядають як один фізичний пристрій. Процес запису даних на кілька дисків називається заповненням дисків (drive spanning), а метод запису цих даних - їх чергуванням (data striping). При чергуванні дані пишуться усім дисках поблочно; цей процес називається розшаруванням блоків (block interleaving). Розмір блоку визначається операційною системою, але зазвичай він варіюється в межах від 2 Кб до 64 Кб. Залежно від конструкції дискового контролера та HBA ці послідовні операції запису можуть перекриватися, внаслідок чого продуктивність зростає. Так, сам собою RAID-0 може підвищити продуктивність, але не забезпечити захисту від збоїв. Якщо трапляється збій диска, то вся підсистема виходить з ладу, що зазвичай призводить до повної втрати даних.

Варіантом чергування даних є розподіл даних (data scattering). Як і при чергуванні, дані записуються послідовно на кілька дисків, що заповнюються. Однак, на відміну від чергування, запис не обов'язково проводиться на всі диски; якщо диск зайнятий або повний, дані можуть бути записані на наступному доступному диску - це дозволяє додавати диски до того, що існує. Як і стандарт RAID-0, комбінація заповнення дисків з розподілом даних підвищує продуктивність та збільшує обсяг тому, але не забезпечує захисту від збоїв.

RAID-1, відомий як дзеркало диска (disk mirroring), передбачає встановлення пар однакових дисків, причому кожен диск у парі є дзеркальним відображенням іншого. У RAID-1 дані пишуться на дві ідентичні або майже ідентичні пари дисків: коли, наприклад, один диск псується, система продовжує працювати з дзеркальним диском. Якщо дзеркальні диски мають загальний HBA, то продуктивність цієї конфігурації, порівняно з однодисковою, буде меншою, оскільки дані повинні записуватися послідовно на кожен диск.

Novell звузила визначення дзеркалування та додала поняття дублювання (duplexing). Відповідно до термінології Novell, дзеркалювання відноситься до пар дисків, коли вони приєднані до сервера або комп'ютера через один HBA, в той час як дублювання передбачає, що дзеркальні пари дисків приєднані через окремі HBA. Дублювання забезпечує надмірність всього дискового каналу, включаючи HBA, кабелі та диски, і дозволяє дещо підвищити продуктивність.

RAID-3 вимагає щонайменше трьох однакових дисків. Часто це називається технологією "n мінус 1" (n-1), оскільки максимальна ємність системи задається, як вся кількість дисків у масиві (n) мінус один диск для контролю парності. RAID-3 використовує спосіб запису, що називається розшаруванням бітів (bit interleaving), коли дані пишуться на всі диски побітово. Для кожного записаного на n-дисках байта на "диск парності" пишеться біт парності. Це виключно повільний процес, оскільки перед тим, як інформація про парність зможе бути згенерована та записана на "диск парності", дані мають бути записані на кожен з n-дисків масиву. Ви можете збільшити продуктивність RAID-3 шляхом синхронізації механізмів обертання дисків, щоб вони працювали строго "в ногу". Однак через обмеження продуктивності використання RAID-3 різко знизилося, і сьогодні продається дуже небагато продуктів для серверів, заснованих на RAID-3.

RAID-5 – найпопулярніша на ринку мережевих серверів реалізація RAID. Як і RAID-3, вона вимагає щонайменше трьох однакових дисків. Однак, на відміну від RAID-3, RAID-5 здійснює чергування блоків даних без застосування виділеного диска для парності. І дані, і контрольна сума записуються по всьому масиву. Цей метод допускає незалежне читання та запис на диск, а також дозволяє операційній системі або контролеру RAID проводити кілька паралельних операцій вводу/виводу.

У конфігураціях RAID-5 звернення до диска відбувається лише тоді, коли з нього зчитується/записується інформація про парність або дані. Як наслідок, RAID-5 має більшу, ніж RAID-3, продуктивність. На практиці продуктивність RAID-5 може іноді досягати або навіть перевершувати продуктивність однодискових систем. Таке підвищення продуктивності, зрозуміло, залежить від багатьох факторів, у тому числі і від того, як реалізований масив RAID і які власні можливості має операційна система сервера. RAID-5 забезпечує також найвищий серед усіх стандартних реалізацій RAID рівень цілісності даних, оскільки і дані, і інформація про парність записані з чергуванням. Оскільки RAID-5 використовує розшарування блоків, а не бітів, синхронізація обертання не дає жодних переваг у продуктивності.

Деякі виробники додали розширення до своїх систем RAID-5. Одне з таких розширень - наявність вбудованого в масив диска гарячого резерву (hot-spare). Якщо трапляється збій диска, диск з гарячого резерву негайно замінює аварійний диск і копіює він дані шляхом їх відновлення парності у фоновому режимі. Однак пам'ятайте, що відновлення RAID-5 призведе до серйозного падіння продуктивності сервера. (Докладнішу інформацію про диски з "гарячою заміною" та "гарячим резервуванням" див. у врізці "Гарячі" функції дисків".)

Системи RAID можуть бути організовані як за допомогою завантаженого на сервері і використовує для роботи процесор ПЗ, так і за допомогою спеціалізованого контролера RAID.

Програмно-реалізовані системи RAID віднімають значну частину ресурсів системного процесора, як і системної пам'яті, що дуже знижує продуктивність сервера. Програмні системи RAID іноді включаються як функції операційної системи (як це зроблено в Microsoft Windows NT Server) або доповнення від третіх постачальників (як це зроблено в NetWare і операційній системі Macintosh).

Апаратно-реалізовані системи RAID використовують виділений контролер масиву RAID; зазвичай він має свій власний процесор, кеш-пам'ять та ПЗ у ПЗУ - для виконання дискових функцій введення-виводу та перевірки парності. Наявність виділеного контролера виконання цих операцій звільняє процесор сервера до виконання інших функцій. Крім того, оскільки процесор і програмне забезпечення адаптера спеціально налагоджені для виконання функцій RAID, вони забезпечують більшу продуктивність дискових операцій вводу/виводу та кращу цілісність даних, ніж програмно-реалізовані системи RAID. На жаль, апаратно-реалізовані контролери масивів RAID, як правило, дорожчі за своїх програмно-реалізованих конкурентів.

Дзеркалування, дублювання і заповнення

Деякі ОС, включаючи NetWare та Windows NT Server, дозволяють здійснювати дзеркало дисків на кількох дискових каналах, забезпечуючи таким чином додатковий рівень надмірності. Як згадувалося раніше, Novell називає останній підхід дублювання дисків. У поєднанні із заповненням дисків дублювання може забезпечити більшу в порівнянні з однодисковими системами продуктивність і в цілому здатне випередити апаратні реалізації RAID-5. Оскільки кожна половина дзеркальної пари дисків використовує окремий дисковий канал, запис на диски, на відміну від випадку, коли диски знаходяться на тому самому HBA, може здійснюватися одночасно. Також дублювання допускає роздільний пошук - процес поділу запитів на читання між дисковими каналами для швидшого їх виконання. Ця функція вдвічі підвищує продуктивність під час читання дисків, оскільки обидва канали паралельно шукають різні блоки з одного набору даних. Це також скорочує вплив на продуктивність запису на диск, оскільки один канал може читати дані, в той час як другий робити запис.

NetWare підтримує до восьми дискових каналів (деякі адаптери SCSI надають кілька каналів), що означає, що ви можете мати кілька каналів для кожної дубльованої пари. Ви можете навіть на вибір організувати до восьми окремих дзеркальних каналів. Windows NT Server також надає програмне дзерклювання та дублювання, але поки що не підтримує паралельний запис та роздільний пошук.

Вибираючи надмірну дискову систему, ви повинні враховувати чотири основні фактори: продуктивність, вартість, надійність та захист від збоїв.

Що стосується продуктивності, вбудовані можливості серверної операційної системи є основним фактором, особливо коли в гру входить надмірність дисків. Як уже зазначалося раніше, дублювання дисків NetWare у поєднанні із заповненням дисків дає кращу продуктивність, ніж апаратно-або програмно-реалізований RAID. Однак продуктивність апаратного RAID в цілому вище за продуктивність вбудованих дискових служб Windows NT Server. Взагалі кажучи, протягом кількох років технологія та продуктивність систем RAID постійно покращуються.

Інша потенційна проблема продуктивності систем RAID – це відновлення даних у разі аварії. Донедавна, якщо диск ламався, вам доводилося відключати масив RAID для його реставрації. Також, якщо ви хотіли змінити розмір масиву (збільшити або зменшити його ємність), треба було зробити повну резервну копію системи, а потім переконфігурувати та переініціалізувати масив, стираючи під час цього всі дані. В обох випадках система досить довго недоступна.

Для вирішення цієї проблеми Compaq розробила контролер Smart Array-II, що дозволяє нарощувати ємність масиву без переініціалізації існуючої конфігурації масиву. Інші виробники, у тому числі Distributed Processing Technology (DPT), оголосили, що їхні контролери в недалекому майбутньому будуть виконувати схожі функції. Багато нових масивів мають утиліти для різних операційних систем, за допомогою яких масив можна реставрувати після заміни зіпсованого пристрою без відключення сервера. Однак зважте, що ці утиліти з'їдають багато ресурсів сервера і тим самим негативно впливають на продуктивність системи. Щоб уникнути такого роду труднощів, реставрацію системи слід проводити в неробочі години.

У галузевих виданнях та публікаціях виробників RAID неодноразово порушувалися дискусії на тему різниці у вартості дзеркалювання, дублювання та реалізації RAID. Дзеркаловання та дублювання дають 100-відсоткове подвоєння дисків і (у разі дублювання) HBA, в той час як реалізації RAID мають один HBA та/або контролер RAID плюс на один диск більше, ніж та ємність, яку ви хочете мати у результаті. Згідно з цими аргументами, RAID дешевша, оскільки кількість необхідних дисків менша. Це може бути вірно, якщо обмеження на продуктивність включених в операційну систему програмних реалізацій RAID, як, наприклад, у Windows NT, вам терпимі. У більшості випадків, однак, щоб досягти відповідної продуктивності, потрібен виділений контролер RAID.

Диски та стандартні адаптери SCSI відносно недорогі, тоді як високоякісний контролер RAID може коштувати до 4500 доларів. Щоб визначити вартість системи, ви повинні продумати оптимальні конфігурації для всіх складових. Наприклад, якщо потрібно приблизно 16 Гбайт адресованого дискового простору, можна реалізувати дзеркальну конфігурацію з двома дисками по 9 Гбайт на канал і отримати деякий надлишок ємності. У разі RAID-5, з міркувань продуктивності та надійності, краще зупинитися на п'яти дисках по 4 Гбайт, щоб збільшити кількість шпинделів для чергування даних і тим самим загальну продуктивність масиву.

При використанні зовнішньої дискової підсистеми вартість дзеркальної конфігурації становитиме приблизно 10500 доларів за 18 Гбайт доступного простору. Ця цифра заснована на реальних роздрібних цінах: 2000 доларів за один диск, 250 – за один HBA та 300 – за кожну зовнішню дискову підсистему разом з кабелями. Система RAID-5, налаштована на 16 Гбайт адресованого простору з використанням п'яти дисків по 4 Гбайт, коштуватиме близько 12800 доларів. Ця цифра ґрунтується на реальних роздрібних цінах масиву DPT RAID-5.

Багато систем RAID включають "фірмові", розроблені виробником, компоненти. Як мінімум, "фірмовими" є корпус та задня панель. HBA та контролери RAID теж часто бувають "фірмовими". Деякі виробники застосовують також нестандартні тримачі та шини для дисків. Хтось надає їх окремо за розумну ціну, хтось – лише разом із диском і, як правило, за високою ціною. Останній підхід може виявитися дорогим, коли вам треба відремонтувати або розширити свою систему. Інший спосіб, яким постачальник заганяє вас у кут, - надання програмного забезпечення адміністрування та спостереження за дисками, що працює тільки з конкретними компонентами. Уникаючи, коли це можливо, нестандартних компонентів вартість зазвичай вдається знизити.

При порівнянні надійності надлишкових дискових систем треба врахувати два фактори: можливість збою системи або збою будь-якого її компонента та ймовірність втрати даних через збій компонентів. (На жаль, RAID або дзеркало не можуть врятувати від основної причини втрати даних – помилки користувача!)

P = t/Tc,

де t – час роботи, а Tc – комбінований час напрацювання на відмову компонентів.

При роботі без збоїв протягом року (8760 годин) і Tc гіпотетичного диска 300000 годин, ймовірність збою стає рівною 3%, або трохи менше ніж один випадок із 34. У міру того, як кількість компонентів зростає, ймовірність збою будь-якого компонента збільшується. Як RAID, і дзеркалізація збільшують ймовірність збою, але зменшують ймовірність втрати даних.

Таблиця 2, взята з бюлетеня Storage Dimensions під назвою "Отказостійкі системи зберігання даних для безперервно працюючих мереж", показує розраховану за наведеною вище формулою ймовірність збою, співвіднесену з ймовірністю втрати даних для чотирьох заповнюваних дисків, п'ятидискового масиву RAID і восьми. (Припускається, що всі диски мають однаковий розмір і всі три системи надають однакову корисну ємність. Для отримання бюлетеня відвідайте сторінку Storage Dimensions: http://www.storagedimensions.com/raidwin/wp-ovrvw.html.)

ТАБЛИЦЯ 2 - ОЦІНКИ ймовірності збою

Хоча дзеркалювання у поєднанні із заповненням через збільшення кількості дисків має більшу статистичну ймовірність збою диска, воно також має значно меншу ймовірність втрати даних при збої диска. Крім того, при правильно спроектованій дубльованій системі час відновлення може бути значно коротшим.

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

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

ВИСНОВОК

У цілому нині пристрої SCSI - кращий вибір для дискової підсистеми сервера, ніж диски IDE чи EIDE. Придбати диски SCSI ємністю до 9 Гбайт на диск не складно, тоді як максимальна ємність сьогоднішніх дисків EIDE близько 2,5 Гбайт. При використанні кількох двоканальних HBA загальна ємність SCSI може легко перевершити 100 Гбайт, тоді як межа EIDE – 10 Гбайт. SCSI також має найкращу продуктивність; більше, SCSI не страждає від проблем, які тягне у себе підхід master-slave в IDE/EIDE.

Якщо вам потрібна надмірність дисків, то є кілька варіантів. Дублювання Novell NetWare у поєднанні із заповненням дисків забезпечує як чудову продуктивність, так і захист від збоїв. Апаратна реалізація RAID - теж гарний вибір, але зазвичай її продуктивність нижча, а ціна вища. Якщо ви використовуєте Windows NT і вам важлива продуктивність, то апаратний RAID, можливо, буде найкращим вибором.

Патрік Корріган - президент та старший консультант/аналітик консалтингової та навчальної компанії The Corrigan Group. З ним можна зв'язатися на адресу: [email protected]або через Compuserve: 75170,146. Міккі Епплбаум – старший мережевий консультант у GSE Erudite Software. З ним можна зв'язатися на адресу: [email protected]

ЗНАЙОМСТВО З ФУНКЦІЯМИ ДИСКОВИХ ПІДСИСТЕМ

"Гарячі" функції дискових підсистем

Терміни "гаряча заміна" (hot-swap), "гарячий резерв" (hot spare) і "гаряче відновлення" (hot-rebuild), що широко використовуються для опису специфічних функцій дискових підсистем, розуміються часто невірно.

"Гаряча заміна" - це функція, що дозволяє виймати несправний диск з дискової підсистеми без вимкнення системи. Підтримка гарячої заміни - апаратна функція вашої дискової підсистеми, а не RAID.

У системах, що допускають гарячу заміну, жорсткі диски зазвичай монтуються на санках, які дозволяють контактам заземлення між диском і корпусом залишатися з'єднаними довше, ніж лінії живлення та контролера. Це захищає диск від пошкодження під час статичного розряду або електричної дуги між контактами. Диски з гарячою заміною можуть бути використані як у масивах RAID, так і в дзеркальних дискових системах.

"Гаряче відновлення" означає можливість системи відновити оригінальну конфігурацію дисків автоматично після заміни несправного диска.

Диски "гарячого резерву" вбудовуються в масив RAID і, як правило, не діють до тих пір, поки не знадобляться. У якийсь момент після того, як диск гарячого резерву замінює несправний диск, вам потрібно замінити несправний диск і відновити конфігурацію масиву.

Дискова система з можливістю "гарячої заміни" та дисками "гарячого резерву" не обов'язково може зробити "гаряче відновлення". "Гаряча заміна" просто дозволяє швидко, безпечно та легко видалити/встановити диск. "Гарячий резерв", здавалося б, забезпечує "гаряче відновлення", оскільки він дозволяє негайно замінити несправний диск у масиві RAID, але несправний диск, як і раніше, повинен бути замінений, після чого необхідно дати команду на відновлення. Сьогодні всі доступні для платформи ПК системи RAID вимагають для початку реставрації даних втручання користувача на будь-якому рівні – хоча б на рівні завантаження модуля NLM на сервері NetWare або натискання кнопки запуску меню додатків NT Server.



Мета відмовостійких архітектур – забезпечити роботу інформаційної системи з малими витратами на супровід та нульовим часом простоїв. Недостатня доступність системи може обернутися для компанії величезними фінансовими втратами. Ця сума складається з вартості зниження продуктивності службовців через збій у системі, вартості роботи, яка може бути виконана, доки система не відновлена, вартості ремонту елементів системи, що вийшли з ладу. Тому при реалізації критично важливих для предріятия додатків варто врахувати, що ціна простоїв через збої системи цілком виправдовує вкладення чималих коштів в установку стійких до відмови архітектур.

Для побудови стійкої до відмови необхідно приділити увагу кільком основним її компонентам. Вирішальне значення має надійність дискової підсистеми. Давайте розглянемо основні характеристики стійких до відмов дискових підсистем і зупинимося докладніше на їх реалізації за допомогою технології RAID.

Що стоїть за відмовостійкістю дискової підсистеми

Відмовостійка система автоматично виявляє компоненти, що вийшли з ладу, потім дуже швидко визначає причину несправності і реконфігурує ці компоненти.

Ключовим моментом створення стійкої відмови від системи є забезпечення захисної надмірності на базі як апаратного, так і програмного забезпечення. Така надмірність реалізує алгоритми виявлення помилок, що використовуються разом із алгоритмами діагностики, що дозволяють виявити причину помилки.

Існують три основні методи виявлення помилок. Перший – початкове тестування (Initial Testing), яке проводиться виробником до остаточної інтеграції системи. На цьому етапі виявляються дефекти апаратури, які могли виникнути у процесі виробництва та складання компонентів системи.

Другий метод – паралельне оперативне тестування (Concurrent Online Testing) – відноситься до часу нормальної роботи системи. Цей метод шукає головним чином помилки, які з'явиться після інсталяції системи. Один з найвідоміших способів оперативного тестування – контроль парності (parity checking). Він гарантує, що кожен байт даних, що передається по комп'ютерній системі, дійде до наступного її компонента в цілості та безпеці. Метод контролю парності лише виявляє присутність помилки і може визначити, який біт втрачений. Тому він використовується разом із кодом корекції помилок (Error Correction Code), який точно визначає, які дані втрачені, дозволяючи системі швидко їх відновити.

Нарешті, третій спосіб виявлення помилок - тестування надмірності (Redundancy Testing). Він перевіряє правильність функціонування засобів стійкості до відмови системи.

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

При виборі відмови стійкої системи треба враховувати і її здатності адаптуватися до нових технологій, оскільки комп'ютери і дискові пристрої, що володіють вищою продуктивністю, з'являються просто з фантастичною швидкістю.

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

Дискові підсистеми RAID

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

У 1987 році троє фахівців з університету Берклі опублікували статтю з описом методів забезпечення відмовостійкості за допомогою масивів невеликих (3.5- та 5.25-дюймових) дисководів, які можуть досягти показників продуктивності, характерних для одного великого дорогого диска (Single Large Expensive) Мейнфреймах. Ця технологія отримала назву RAID – Redundant Array of Inexpensive Disks (надлишковий масив недорогих дисків). Нижче розглянемо основні характеристики шести рівнів RAID.

RAID-рівні мають різні характеристики продуктивності та різну вартість. Найшвидшим є RAID 0 (метод дуплексування), за ним слідують RAID 3 або RAID 5 (залежно від розмірів записів). Вартість кожного методу залежить від загального обсягу пам'яті на дисках. Наприклад, для невеликих та середніх файлів метод дзеркання може обійтися дешевше, ніж RAID 3 або 5.

При виборі стійкої до відмови дискової підсистеми необхідно також мати на увазі програмне забезпечення для автоматичного відновлення даних у разі збою. Якщо йдеться про файловий сервер локальної мережі, важливо, щоб дані могли бути відновлені з мінімальними зусиллями адміністратора LAN і з найменшими втратами для користувачів сервера. Наприклад, для RAID 0 відновлення це просто копіювання даних з додаткового диска на відновлений або замінений диск. Для систем RAID 3, 4 і 5 виробники постачають програмне забезпечення, що відновлює дані по XOR-сегментам. Ці програми працюють у фоновому режимі, дозволяючи користувачам не переривати свою роботу під час відновлення. RAID-системи з вбудованими інтелектуальними процесорами здатні провести реконструкцію набагато швидше, ніж їхні аналоги, що використовують програмне забезпечення, яке виконується процесором основної системи.

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

Щоб упоратися з цими проблемами, розробляються нові технології дискових масивів з можливостями автоматичного налаштування на різні рівні, які вже не укладаються в традиційні рамки специфікованих рівнів RAID. Ми розглянемо продукти цього типу компаній Hewlett-Packard та EMC.

AutoRAID компанії Hewlett-Packard

Після чотирьох років напруженої роботи підрозділ компанії Hewlett-Packard із систем зберігання даних розробив нову технологію, яка реалізує надмірність, властиві традиційним RAID, і при цьому ліквідує їх недоліки. Дискова підсистема AutoRAID автоматично вибирає рівень RAID, що відповідає вимогам користувачів, а також реалізує низку інших важливих можливостей.

Ядро технології становить набір алгоритмів контролера дискової підсистеми управління адресами блоків даних. Традиційні дискові масиви, такі як RAID 4 або 5 використовують статичні, заздалегідь визначені алгоритми трансляції адрес блоків даних хост-комп'ютера в адреси їх розміщення на дисках. Розробники AutoRAID відмовилися від цього підходу і віддали перевагу використанню динамічних алгоритмів інтелектуального відображення будь-якої адреси блоку на хості на будь-який диск масиву. Це відображення може змінюватися в процесі роботи системи.

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

Інша важлива можливість подібного підходу полягає у простому змішуванні в одній підсистемі дисків різного обсягу та продуктивності. Аналогічні кошти мають деякі традиційні дискові масиви, але у них конфігурація підсистеми є складний і тривалий процес. Конфігурація в AutoRAID виконується швидко та просто. Одне із завдань адміністратора при конфігурації будь-якого дискового масиву - створення віртуальних дисків із доступного фізичного простору. Користувачі працюють саме із віртуальними дисками, які контролер підсистеми представляє їм як фізичні. Конфігуруючи традиційний дисковий масив, адміністратор повинен знати характеристики кожного фізичного диска, щоб потім згрупувати їх створення віртуальних дисків. AutoRAID звільняє адміністратора від цих складнощів. Тепер йому достатньо знати загальний обсяг пам'яті дискового масиву. Адміністратор визначає обсяг пам'яті, необхідний для кожного віртуального диска, після чого алгоритми відображення автоматично згрупують фізичні диски, щоб гарантувати максимально ефективне використання доступного простору і забезпечити найвищу продуктивність.

Реконфігурація підсистеми також не становить великої праці. Однією з найпоширеніших причин реконфігурації є збільшення дискового простору. Традиційні підсистеми RAID вирішують це завдання двома способами. Перший – додавання достатньої кількості дисків для створення нової групи надмірності. Цей метод може бути досить дорогим. У другому випадку адміністратор зберігає всі дані на резервний диск, додає нові диски, реконфігурує всю підсистему та відновлює дані. Очевидно, що цей процес вимагатиме багато часу, протягом якого система не функціонує.

Значно простіше виглядає реконфігурацію додавання додаткового дискового простору. Адміністратору достатньо встановити нові диски та створити ще один віртуальний диск. Ця робота виконується в інтерактивному режимі та займає кілька секунд.

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

Унікальною можливістю технології AutoRAID є автоматичне та безпосереднє використання нових дисків для підвищення продуктивності дискової підсистеми. Коли встановлюється новий диск, дані поступово перерозподіляються на всіх дисках підсистеми. Цей процес називається балансуванням та виконується у фоновому режимі між операціями хост-комп'ютера. Рівномірне розподілення даних по всіх дисках створює більше можливостей для одночасного виконання декількох операцій з даними. Для систем обробки транзакцій збільшення кількості паралельних операцій означає збільшення загальної продуктивності.

На методі балансування засновано ще одне нововведення описаної технології – так званий "активний гарячий резерв" (active hot spare). Функції активного гарячого резерву ті ж, що й у гарячого резервного диска традиційному масиві. У разі збою якогось диска контролер підсистеми негайно починає процес перебудови, який реконструює втрачені дані на резервному диску та відновлює надмірність підсистеми. У звичайних масивах резервний диск не використовується до тих пір, поки в системі щось трапиться, оскільки він містить резервний простір для відновлених даних. Іноді на диску гарячого резерву створюється тимчасове зберігання, але воно має бути ліквідоване, як тільки якийсь диск вийде з ладу.

Технологія HP AutoRAID використовує гарячий резерв для підвищення продуктивності системи. Процес балансування розподіляє дані користувача по всіх дисках системи, у тому числі і на диск гарячого резерву (що більше дисків задіяно під дані, тим більша продуктивність). При цьому на кожному диску частина простору резервується для відновлення даних у разі несправності. Реконструйовані дані в процесі перебудови системи зберігатимуться на резервній ділянці кожного з дисків масиву.

RAID-S компанії EMC

Компанія EMC, виробник систем зберігання даних, пропонує нову реалізацію технології RAID, RAID-S, яка забезпечує покращену продуктивність та захист даних та ліквідує багато недоліків, властивих традиційним RAID-системам.

RAID-S не можна віднести до жодного рівня RAID. Використовуючи нові досягнення в апаратному та програмному забезпеченні та засобах відображення даних, EMC комбінує позитивні аспекти систем RAID 4 та 5, а також рівня RAID 6 з новими технологіями та створює нову схему захисту даних. Дискові масиви RAID-S призначені для використання у системах класу мейнфреймів.

RAID-S дозволить користувачам будувати системи зберігання, що сприяють створенню найкращого співвідношення між продуктивністю, захистом даних та доступністю системи. RAID-S дає можливість вибирати рівень RAID, що найбільше підходить для завдань конкретної організації. Крім того, EMC дозволяє комбінувати в одній системі технології RAID-S, дисковий масив RAID 1 та інші системи дискового зберігання компанії.

Наприклад, великий банк може експлуатувати системи оперативної обробки транзакцій обслуговування своїх клієнтів, а також системи пакетної обробки на вирішення адміністративних завдань. Кожна з програм має свої вимоги щодо зберігання та доступу до даних. Дискові системи EMC дозволять надати кожному з них необхідний рівень доступності та захисту даних.

Щаблі досконалості RAID

RAID 0. RAID 0 по суті не є стійкою до відмови, але здатний істотно підвищити продуктивність. У звичайній системі дані послідовно записуються на диск, доки буде вичерпано його обсяг. RAID 0 розподіляє дані з дисків масиву в такий спосіб. Якщо, наприклад, використовуються чотири диски, дані записуються на першу доріжку першого диска, потім на першу доріжку другого диска, першу доріжку третього і першу доріжку четвертого. Далі записуються на другу доріжку першого диска і т.д. Такий розподіл даних дозволяє одночасно читати та писати дані на чотирьох дисках і тим самим збільшує продуктивність системи. З іншого боку, якщо один із дисків вийде з ладу, відновлювати дані доведеться також на всіх чотирьох дисках.

RAID 1. RAID 1 реалізує метод дзеркання/дуплексування даних, створюючи для кожного диска масиву другу копію даних на окремому диску. Дуплексування крім даних на диску дублює також адаптерну плату та кабель, забезпечуючи ще більшу надмірність. Метод зберігання двох копій даних - надійний спосіб реалізації стійкої до відмови дискової підсистеми, і він знайшов широке застосування в сучасних архітектурах.

RAID 2. RAID 2 розподіляє дані на дисках масиву бітно: перший біт записується першому диску, другий біт - другому диску тощо. Надмірність забезпечується за рахунок кількох додаткових дисків, куди записується код корекції помилок. Ця реалізація є більш дорогою, оскільки вимагає великих накладних витрат на надмірність: масив з числом основних дисків від 16 до 32 повинен мати три додаткові диски для зберігання коду корекції. RAID 2 забезпечує високу продуктивність та надійність, але його застосування обмежене головним чином ринком комп'ютерів для наукових досліджень через високі вимоги до мінімального обсягу дискового простору. У мережних файлових серверах цей метод нині не використовується.

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

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

RAID 5. RAID 5, як і RAID 4, використовує блоковий розподіл даних, але XOR-сегменти розподілені по всіх дисках масиву. Це дозволяє виконувати кілька операцій запису одночасно. RAID 5 також зручний для файлів із короткими записами.

Динамічна міграція

Стратегія динамічної міграції даних дозволяє, зокрема, зберігати найбільш активні дані на рівні RAID 1, який має найвищу продуктивність, а менш активні дані - на більш дешевому рівні RAID 5. У більшості систем дані, що активно використовуються, становлять невелику частину всієї збереженої інформації. Таким чином основна маса даних зберігатиметься на RAID 5. Дана технологія надає адміністраторам системи дві ключові переваги. По-перше, вона звільняє їх від болісних роздумів, який рівень RAID вибрати. По-друге, дискова підсистема безперервно оптимізує продуктивність та ціну дискового зберігання, як було б у випадку, коли адміністратор витрачає весь свій робочий час на настроювання системи.

Особливості реалізації RAID-S:

    RAID-S обчислює код корекції помилок, що забезпечує надмірність, лише на рівні драйвера дисків, а чи не лише на рівні контролера підсистеми. Це розвантажує контролер, звільняючи його від обробки запитів введення/виводу, і цим підвищує продуктивність дискової підсистеми.

    У RAID-S дані не розподіляються порціями по фізичних дисках, як і традиційних реалізаціях RAID, а залишаються недоторканими на диску. Це дозволяє використовувати існуючі засоби спостереження та налаштування підсистеми введення/виводу

    без додаткового навчання.

    Оскільки дані не розподілені по дисках, навіть у разі одночасного виходу з ладу декількох дисків, інформація на томах групи RAID-S, що залишилися, як і раніше, буде доступна додаткам на хост-комп'ютері.

    RAID-S реалізує вдосконалену технологію та підготовлена ​​для простої інтеграції майбутніх технологій, захищаючи довгострокові вкладення користувачів.

Матеріал розділений на три частини: А – теорія, Б – практика, В – створення мультизавантажувальної флешки.

А. Загальна теорія (популярно).

1. Залізо.

Всі фізичні пристрої, які використовуються нами повсякденно для зберігання інформації (HDD, CD-ROM, флешка, і навіть флопік) – це блокові пристрої вводу/виводу (block I/O device). Вони можуть підключатися до комп'ютера через різні інтерфейси: IDE, SATA, eSATA, USB. Операційна система надає єдиний прозорий для користувача та програміста прикладного ПЗ спосіб читання/запису інформації з/на ці носії.

Із залізом безпосередньо спілкуються драйвера. Драйвер – це програма, завантажена в операційну систему. Він є прошарком між ОС та пристроями, представляючи для ОС стандартний програмний інтерфейс блокових пристроїв I/O.

2. Дані на диску.

Блочними ці пристрої називаються тому, що інформація на них записується та зчитується блоками (секторами, кластерами) фіксованого розміру. Розмір блоку кратний 512 байт. Блоковий підхід необхідний забезпечення високої швидкості роботи дискової підсистеми.

Сам диск форматується (розмічується) на низькому рівні (заводі). Диск складається із циліндрів. Циліндр – це коло на пластині диска. Перші циліндри розташовані в центрі пластини диска, останні - на зовнішньому краю. Кожен циліндр ділиться на сектори. У межах секторів організуються блоки диску. Крім самих даних у блоках записується інформація контролю помилок. З цією інформацією працює контролер усередині жорсткого диска, і вона не видно зовні. Драйвер посилає команди контролеру диска на рівні "рахувати 10 блоків 10 циліндра 20 сектора".

Усі корисні дані, записані на носій, організовані розділи. У Windows кожен розділ зазвичай представлений як логічного диска (C, D, E, …). На змінних носіях (флешка, компакт-диск, флопік) зазвичай створено єдиний розділ, на внутрішніх жорстких дисках - навпаки - зазвичай кілька розділів. Дані у розділі організовані у файловій системі.

Для кожного розділу може незалежно встановлюватися розмір блоку - розмір кластера. Він регулює баланс швидкість/економічність. Блок - це мінімальна одиниця розмітки, що адресується на диску. Кластер об'єднує кілька блоків - це мінімальна одиниця, що адресується в розділі.

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

У більшості файлових систем файл може займати один або кілька кластерів. Таким чином, якщо розмір файлу менший за розмір кластера, то файл займе цілий кластер. Для будь-якого файлу на диску буде виділено кількість байт, кратне розміру кластера. Деякі файлові системи вміють ділити один кластер на кілька файлів (упаковка), але це швидше виняток (поки що). Таким чином, що більший розмір кластера, то вище швидкість і більше місця губиться на напівзаповнених кластерах.

3. Розмітка фізичного диска.

Розмір розділу також вимірюється у блоках. Саме тому при розбивці диска на розділи розмір, виражений у байтах, може бути підкоригований програмою.

Так як на диску може бути кілька розділів, їх потрібно десь перерахувати із зазначенням меж та властивостей кожного розділу. Для цього служить таблиця розділів, яка знаходиться на початку фізичного диска (початок диска – це його перший блок відповідно до адресації). У класичному випадку вона входить до складу MBR (master boot record), що повністю займає перший блок. На всю таблицю розділів виділено 64 байти. Кожна запис таблиці складається з адрес початку і кінця розділу, типу розділу, кількості секторів у розділі та прапора «завантаженості» розділу і займає 16 байт. Таким чином, максимальна кількість розділів на диску обмежена чотирма (16 × 4 = 64).

Так склалося історично, але з часом стало очевидним, що 4 розділи не завжди достатньо. Вирішення проблеми було знайдено. Ті розділи, які розмічені в заголовку диска (MBR), назвали Primary (первинні). Їх, як і раніше, має бути до 4-х включно. Додатково запровадили поняття Extended (розширених) розділів. Розширений розділ включає один або більше підрозділів і не містить файлової системи. Сам він є повноцінним первинним поділом.

Оскільки підрозділи розширеного розділу не перераховані у таблиці розділів диска, їх неможливо помітити як завантажувальні. Завантажувальний (bootable) розділ - це розділ, з якого починає завантажуватися операційна система. Він відзначається прапором у записі таблиці розділів. Таким чином відзначити можна лише один із 4-х первинних розділів. Розширений розділ завантажувальним бути не може, тому що на ньому немає файлової системи.

Розмітка розширеного розділу описана в його початку. За аналогією з MBR існує EBR (Extended boot record), розташована у першому секторі. У ньому описується розмітка логічних дисків даного розширеного розділу.

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

4. Файлова система.

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

Структура каталогів та файлів у розділі у класичному випадку описана у таблиці файлів. Як правило, таблиця займає деяке місце на початку розділу. Після таблиці пишуться дані. Таким чином, створюється система, де структура описана окремо, а дані (файли) зберігаються окремо.

У разі видалення файлу з диска видаляється з таблиці файлів. Місце, яке він займав на диску, позначається як вільне. Але фізичної зачистки цього місця немає. Коли записується диск, дані записуються у вільне місце. Тому якщо після видалення файлу створити новий, існує можливість запису його на місце віддаленого. При швидкому форматуванні (використовуються в переважній більшості випадків) розділу також перезаписується лише таблиця. На цих особливостях ґрунтується процедура відновлення файлів після видалення або форматування.

У процесі роботи на диску можуть бути фізичні пошкодження. Деякі блоки можуть бути недоступними для читання. Ці блоки називають "бедами" (bad sector). Якщо в процесі читання диска потрапляє бед, відбувається помилка вводу/виводу (I/O error). Залежно від того, де з'явився бэд-блок і скільки їх з'явилося, може загубитися або частина вмісту файлів, або частина таблиці файлів.

При спробі запису в Бед-блок контролер диска повинен визначити проблему і виділити для цього блоку нове місце на поверхні диска, а старе місце вилучити (relocate bad block). Він робить це непомітно для ОС та драйверів, самостійно. Відбувається це, доки є резерв місця для перенесення.

5. Робота з диском.

Операційна система представляє можливість роботи з дисками на рівні файлів, розділів та пристрої. Конкретна реалізація доступу за кожен рівень залежить від конкретної ОС. Але в будь-якому випадку, загальним є те, що до фізичного диска і будь-якого його розділу можна звернутися так само, як до звичайного бінарного файлу. Т. е. в нього можна писати дані, з нього можна дані зчитувати. Такі можливості особливо корисні для створення та відновлення образів дисків, клонування дисків.

У ОС сімейства UNIX всі пристрої зберігання даних представлені як файлів у каталозі /dev:

    sda, sdb, sdc, … - фізичні диски (HDD, включаючи зовнішні, флешки, IDE-сидироми);

    fd0, fd1 – флопіки.

Розділи на кожному з дисків доступні як sda1, sda2, sd3, …

Нумерація дисків відбувається у порядку, у якому їх бачить BIOS. Нумерація розділів – у порядку створення розділів на диску.

Щоб зробити образ (образ - це побітова копія інформації, розміщеної на диску або розділі) диска повністю (наприклад першого по BIOS - sda), потрібно віднімати дані з /dev/sda в будь-який інший спеціально створений для образу файл, використовуючи програму послідовного копіювання вміст файлу. Щоб записати образ у файл, потрібно за допомогою тієї ж програми віднімати дані з образу /dev/sda. За аналогією можна створити/відновити образ розділу (наприклад, першого на першому диску sda1), звертаючись до /dev/sda1 замість /dev/sda.

6. Монтування.

Щоб перетворити дисковий пристрій на набір файлів і каталогів, до яких можна отримати доступ, його необхідно вмонтувати. У Windows як такого монтування немає. Там розділи просто підключаються до логічних дисків (C:, D:, E, …). Інформація про те, яку букву присвоїти якомусь диску, зберігається в самій ОС.

У UNIX поняття монтування є основним у роботі з дисками і дає значно більше гнучкості, ніж є у Windows. Монтування - це процес прив'язки деякого джерела образу диска (це або сам диск, або файл з його чином) до деякого каталогу файлової системи UNIX. Файлова система UNIX починається з однієї точки - від кореневого каталогу (/), і жодних логічних дисків C, D, E не існує.

На початку завантаження ОС сімейства UNIX у кореневий каталог/монтується розділ диска, помічений як root (кореневий). На розділі диска мають бути створені службові каталоги ОС, що у корені файлової системи. До них можуть монтуватися інші розділи або файли можуть записуватися прямо в основний розділ (примонтований до /).

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

Для монтування необхідно вказати файлову систему образу, опції монтування та каталог, до якого буде прив'язка.

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

7. MBR – завантажувальна область.

На початку фізичного диска зазвичай розташована MBR (master boot record). Це область завантаження диска. При завантаженні комп'ютера BIOS визначає, який диск є первинним (primary) і шукає на ньому MBR. Якщо її знайдено, їй передається управління. Якщо ні, виводиться помилка про те, що завантажувальний диск не знайдено.

У MBR, крім таблиці розділів (описано вище), розміщується код програми, яка завантажується на згадку і виконується. Саме ця програма має визначити завантажувальний розділ на диску та передати йому керування. Передача управління відбувається аналогічно: перший блок (512 байт) завантажувального розділу міститься в оперативну пам'ять і виконується. Він містить програмний код, що ініціює завантаження ОС.

За рахунок того, що керування від BIOS при завантаженні комп'ютера передається програмі, записаній на диску, можна зробити вибір завантажувального розділу більш гнучким. Це і роблять завантажувачі GRUB і LILO, які широко застосовуються у світі UNIX. Останній завантажувач в даний час використовувати на сучасних комп'ютерах немає сенсу. За допомогою GRUB можна надати користувачеві вибір, який розділ завантажувати та яким чином.

Код GRUB дуже великий, щоб поміститися в MBR. Тому він встановлюється на окремому розділі (зазвичай у розділі, який монтується в /boot) з файловою системою FAT, FFS або Ext2. MBR записує код, який завантажує код GRUB з певного розділу і передає йому управління.

GRUB самостійно або за допомогою користувача визначає, з якого розділу має відбуватися завантаження. У випадку Winsows-розділу йому просто передається управління точно так, як це було б зі звичайної MBR. У разі Linux-а завантажувач виконує складніші дії. Він завантажує на згадку ядро ​​ОС і передає йому управління.

Зробити бекап завантажувальної області диска так само легко, як бекап всього диска або окремого розділу. Суть у цьому, що MBR займає перші 512 байт диска /dev/sda. Отже, для бекапу MBR необхідно віднімати перші 512 байт /dev/sda у файл, а відновлення - навпаки - файл віднімати в /dev/sda.

Коли ми говоримо про ресурси дискової підсистеми, то назвати їх можна три: обсяг місця, швидкість читання та запису в Мб/сек та швидкість читання-запису в кількості операцій введення-виводу за секунду (Input/Output per second, IOPS, або просто I / O).

Поговоримо спочатку про обсяг. Я наведу міркування, куди слід орієнтуватися, і приклад розрахунку.

Міркування такі:

Місце на диску займають файли-диски віртуальних машин. Отже, треба зрозуміти, скільки місця їм потрібно;

Якщо для всіх або частини ВМ ми плануємо використовувати тонкі (thin) диски, то слід спланувати їх початковий об'єм та подальше зростання (тут і далі під thin-дисками розуміється відповідний тип vmdk-файлів, тобто функція thin provisioning у реалізації ESX(i) Справа в тому, що функціонал thin provisioning може бути реалізований на системі зберігання незалежно від ESX(i), і я маю на увазі не функціонал систем зберігання);

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

Якщо плануються до використання знімки стану, під них теж слід запланувати місце. За точку відліку можна взяти такі міркування:

Якщо знімки стану будуть існувати короткий період після створення, наприклад, тільки на час резервного копіювання, то під них запасаємо відсотків десять від розміру диска ВМ;

Якщо знімки стану будуть використовуватися із середньою або непрогнозованою інтенсивністю, то для них є сенс закласти близько 30% від розміру диска ВМ;

Якщо знімки стану для ВМ будуть використовуватися активно (що актуально в сценаріях, коли ВМ використовуються для тестування та розробки), об'єм, що займається ними, може в рази перевищувати номінальний розмір віртуальних дисків. І тут точні рекомендації дати складно, але за точку відліку можна взяти подвоєння розміру кожної ВМ. (Тут і далі під знімком стану розуміється відповідний функціонал ESX(i). Справа в тому, що знімки стану (snapshot) можуть бути реалізовані на системі зберігання незалежно від ESX(i), і я маю на увазі не функціонал систем зберігання.)

Зразкова формула виглядає так:

Об'єм місця для групи ВМ = Кількість ВМ х (Розмір диска х T +

Розмір диска х S + Об'єм пам'яті - Об'єм пам'яті х R).

T – коефіцієнт тонких (thin) дисків. Якщо такі диски не використовуються, дорівнює 1. Якщо використовуються, то абстрактно дати оцінку складно, залежить від характеру програми в ВМ. По суті, thin-диски займають місця на системі зберігання менше ніж номінальний розмір диска. Так ось – цей коефіцієнт показує, яку частку від номінального розміру займають диски віртуальних машин;

S – розмір знімків стану. 10/30/200 відсотків, залежно від тривалості безперервного використання;

R – відсоток зарезервованої пам'яті. Зарезервована пам'ять у файл підкачки не міститься, файл підкачки створюється меншого розміру. Розмір його дорівнює: обсяг пам'яті ВМ - мінус обсяг зарезервованої пам'яті.

Оцінні вхідні дані, наприклад, див. в табл. 1.3.

Таблиця 1.3. Дані для планування обсягу дискової підсистеми

Отримуємо оцінку необхідного обсягу:

Інфраструктурна група – 15 х (20 + 20 х 10% + 2 – 2 х 0) = 360 Гб;

Сервери додатків – 20 х (40 + 40 х 10% + 2 – 2 х 0) = 920 Гб;

Критичні сервери – 10 х (100 + 100 х 10% + 6 – 6 х 0.5) = 1130 Гб;

Тестові та тимчасові – 20 х (20 х 30% + (20 х 30%) х 200% + 2 – 2 х 0) = = 400 Гб.

Отже, ми можемо створити два LUN по 1,4 Тб та приблизно порівну розподілити між ними віртуальні машини. Або створити 4-5 LUN по 600 800 Гб і помістити машини різних груп на різні LUN. Обидва варіанти (і проміжні між ними) є прийнятними. Вибір між ними робиться виходячи з інших переваг (наприклад, організаційних).

Ще одним ресурсом дискової підсистеми є продуктивність. У разі віртуальних машин швидкість в Мб/сек не є надійним критерієм, тому що при зверненні великої кількості ВМ на ті самі диски звернення йдуть непослідовно. Для віртуальної інфраструктури найважливішою характеристикою є кількість операцій вводу-виводу (IOPS, Input/Output per second). Дискова підсистема нашої інфраструктури повинна дозволяти більше цих операцій, ніж їх вимагають віртуальні машини.

Який шлях проходять звернення гостьової ОС до фізичних дисків у випадку:

1. Гостьова ОС передає запит драйверу контролера SAS/SCSI (який нею емулює гіпервізор).

2. Драйвер передає його на сам віртуальний контролер SAS/SCSI.

3. Гіпервізор перехоплює його, поєднує із запитами від інших ВМ і передає загальну чергу драйверу фізичного контролера (HBA у разі FC та апаратного iSCSI або Ethernet-контролер у разі NFS та програмного iSCSI).

4. Драйвер передає запит на контролер.

5. Контролер передає його на систему зберігання, через мережу передачі даних.

6. Контролер системи зберігання приймає запит. Запит цей - операція читання чи записи з якогось LUN чи тома NFS.

7. LUN – це «віртуальний розділ» на масиві RAID, що складається із фізичних дисків. Тобто, запит передається контролером СХД на диски цього масиву RAID.

Де може бути вузьке місце дискової підсистеми:

Найімовірніше, на рівні фізичних дисків. Важливою є кількість фізичних дисків у масиві RAID. Чим їх більше, тим краще операції читання-запису можуть бути розпаралелені. Також чим швидше (у термінах I/O) самі диски, тим краще;

Різні рівні масивів RAID мають різну продуктивність. Закінчені рекомендації дати складно, тому що, крім швидкості, типи RAID відрізняються ще вартістю та надійністю. Проте базові міркування звучать так:

RAID-10 - найшвидший, але найменш ефективно використовує простір дисків, забираючи 50% на підтримку стійкості до відмови;

RAID-6 - найнадійніший, але страждає низькою продуктивністю на запису (30-40% від показників RAID-10 при 100% запису), хоча читання з нього таке ж швидке, як із RAID-10;

RAID-5 компромісний. Продуктивність запису краще RAID-6 (але гірше RAID-10), вище ефективність зберігання (на отказоустойчивость забирається ємність лише одного диска). Але RAID-5 страждає від серйозних проблем, пов'язаних із тривалим відновленням даних після виходу з ладу диска у разі використання сучасних дисків великої ємності та великих RAID-груп, під час якого залишається незахищеним від іншого збою (перетворюючись на RAID-0) та різко втрачає у продуктивності;

RAID-0, або «RAID з нульовою стійкістю до відмови», для зберігання значущих даних використовувати не можна;

Установки системи зберігання, зокрема кеша контролерів системи зберігання. Вивчення документації СГД важливе для правильного її налаштування та експлуатації;

Мережа передачі. Особливо якщо планується використовувати IP СХД, iSCSI або NFS. Я в жодному разі не хочу сказати, що не треба їх використовувати - такі системи давно і багатьма експлуатуються. Я хочу сказати, що треба постаратися переконатися, що навантаженню, яке переноситься у віртуальне середовище, вистачить пропускної здатності мережі з планованою пропускною здатністю.

Результуюча швидкість дискової підсистеми випливає зі швидкості дисків та алгоритму розпаралелювання контролером звернень до дисків (маються на увазі тип RAID та аналогічні функції). Також має значення відношення числа операцій читання до операцій запису - це відношення ми беремо зі статистики або з документації до додатків в наших ВМ.

Розберемо приклад. Приймемо, що наші ВМ будуть створювати навантаження до 1000 IOps, 67% з яких буде читати, а 33% - запис. Скільки і яких дисків нам знадобиться у разі використання RAID-10 та RAID-5?

У масиві RAID-10 в операціях читання беруть участь відразу всі диски, а операції запису - лише половина (бо кожен блок даних записується відразу на два диска). У масиві RAID-5 у читанні беруть участь всі диски, але за запису кожного блоку з'являються накладні витрати, пов'язані з підрахунком і зміною контрольної суми. Можна вважати, що одна операція запису на масив RAID-5 викликає чотири операції запису безпосередньо на диски.

Запис - 1000 х 0,33% = 330 х 2 (оскільки запису бере участь лише половина дисків) = 660 IOps.

Усього від дисків нам потрібно 1330 IOps. Якщо поділити 1330 кількість IOps, заявлене в характеристиках продуктивності одного диска, отримаємо необхідну кількість дисків в масиві RAID-10 під вказане навантаження.

Читання – 1000 х 0,67% = 670 IOps;

Запис - 1000 х 0,33% = 330 х 4 = 1320 IOps.

Усього нам від дисків треба 1990 IOps.

За документацією виробників один жорсткий диск SAS 15k обробляє 150-180 IOps. Один диск SATA 7.2k – 70-100 IOps. Однак є думка, що краще орієнтуватися на інші цифри: 50-60 для SATA і 100-120 для SAS.

Закінчимо приклад.

При використанні RAID-10 та SATA нам знадобиться 22-26 дисків.

При використанні RAID-5 та SAS нам знадобиться 16-19 дисків.

Очевидно, що наведені мною розрахунки є досить приблизними. У системах зберігання використовуються різного роду механізми, в першу чергу кешування - для оптимізації роботи системи зберігання. Але як відправна точка розуміння процесу сайзингу дискової підсистеми ця інформація придатна.

За кадром залишаються методики отримання необхідної для ВМ кількості IOPS та ставлення читання до запису. Для вже існуючої інфраструктури (при перенесенні в віртуальні машини) ці дані можна отримати за допомогою спеціальних засобів збору інформації, наприклад VMware Capacity Planner. Для інфраструктури планованої – з документації до додатків та власного досвіду.