Наші Диски не задушиш, не вб’єш …, Linux, Операційні системи, статті

multik, linuxnews.ru/

Все, більш-менш активно використовують Linux, задаються питанням – “Якзбільшити надійність зберігання даних? “. Звичайно, використовувана за замовчуванням в Linux файлова система ext2 достатньо надійна, але багатьом необхідна більш висока надійність.

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

Є багато рівнів RAID, але більш-менш активно використовуються тільки 3. Цірівні позначені цифрами.

RAID 0го рівня презназначен для зберігання великих обсягів інформації, неумещающихся на одному диску. Він не забезпечує небудь надмірності. При використанні цього рівня диски просто об’єднуються в одну “ланцюжок”.

RAID 1. По іншому цей рівень називають дзеркалювання. У цьому рівнідиски просто містять дублюючу один одного інформацію і за змістом абсолютно ідентичні. Ємність отриманого масиву дорівнює ємності самого меншого з дисків.

RAID 5. У цьому рівні використовується контрольна сума і дані “розмазуються” по всіх дисках, які присутні в дісковвом наборі. При виході з ладу одного з дисків відсутні дані за допомогою контрольної суми обчислюються за рештою. Загальний обсяг дискового масиву дорівнює добутку обсягу самого маленького диска в масиві на число дисків, мінус одиниця. Таким чином, якщо ви створюєте масив з 4х 30Гб жорстких дисків, загальний об’єм масиву дорівнюватиме 90Гб. Решта 30Гб підуть під зберігання контрольної суми.

Провівши нескладні прикидки, стає видно, що RAID 1 і 5 забезпечуютьпрацездатність системи при виході одного будь-якого диска з масиву. Цього в більшості випадків більш ніж достатньо. Якщо необхідно збільшити рівень отказоуйстойчівості системи, то просто додається більше дисків. Але одночасно з простотою це і збільшує “непродуктивний” витратадосить дорогих жорстких дисків. Тому зазвичай комбінують рівні RAID.

Наприклад, можна використовувати схему 1 +5. Тобто два дискових RAID масиву 5го рівня об’єднуються за допомогою віддзеркалення в один. Такий метод дозволяє досить легко досягти максиуме продуктивності дискової підсистеми і одночасно забезпечує її працездатність при виході 2х жорстких дисків одночасно.

Зараз на ринку існує безліч RAID контролерів, здатних перетворити вашу систему в оплот дискової стабільності. Але одночасно ці контролери коштують дуже великих грошей і не по кишені кожному. Звичайно, виробники намагаються подолати цей недолік і навіть почали випуск материнських плат з вбудованими RAID-контролерами, але на жаль, здебільшого можливості цих контролерів дуже слабкі. Що ж робити? Збирати більше грошей? Ні! Виробники всіх провідних операційних систем пропонують своїм користувачам використовувати програмні RAID контролери. Тобто вся робота з підтримки RAID масиву лягає на плечі системного процесора. Нижче я спробую розповісти, як створити під Linux RAID масив за вашим бажанням. І при цьому немає ніякої різниці, чи використовуєте ви тільки IDE диски або у вашій системі є кожнійтварі по парі. Для програмного контролера це питання не істотний.

Отже, для створення програмного RAID вамнеобходімо взяти будь-який більш-менш новий дистрибутив Linux, який підтримує Software RAID. Потім виділити як мініум 2 розділу для RAID1 (для RAID5 потрібно не менше 3х розділів) і за допомогою команди fdisk з дистрибутива змінити тип розділу на “Linux raid autodetect” (Id має дорівнювати fd). Це допоможе системі при завантаженні самої визначити, який з дисків до якого набору належить.

Потім необхідно створити / etc / raidtab, керуючись простими правилами. Нижче я приведу з коментарями приклад файлу для створення RAID1 на двох IDE дисках.

raiddev /dev/md0
# Створюване пристрій буде мати ім’я / dev/md0
raid-level 1
# Створюваний рівень RAID – 1
persistent-superblock 1
# Вимагає створення спеціального суперблоку, який буде вказувати, до якого
# З масивів відноситься розділ.
chunk-size 8
# Розмір внутрішнього буфера
nr-raid-disks 2
# Число дисків в масиві
nr-spare-disks 0
# Число дисків, які будуть стояти “на підхваті”. У разі виходу з ладу
# Одного з дисків, йому на заміну в масиві буде автоматично підставлений
# Іншого
device /dev/hda7
raid-disk 0
# Розділ / dev/hda7 буде “диском” 0
device /dev/hdd7
raid-disk 1
# Розділ / dev/hdb7 буде “диском” 1

Після цього необхідно дати команду mkraid / dev/md0. У деяких системахвона просто запитає вас, чи впевнені ви в цьому і зробить все інше. В іншихдистрибутивах вам необхідно дати команду mkraid-a – really-force / dev/md0. Але суть одна – ця команда повинна проініціалізувати масив і запустити все необхідне.

Дізнатися а результати виконання ви можете, давши команду cat / proc / mdstat. Приуспішній роботі масиву ви побачите щось подібне:

Personalities : [raid1]
read_ahead 1024 sectors
md0 : active raid1 hdd7[1] hda7[0]
17767744 blocks [2/2] [UU]

unused devices: <none>

Це означає, все все йде чудово.

Тепер я наведу приклади аналогічного масиву, але тільки RAID5.

raiddev /dev/md0
raid-level 5
nr-raid-disks 3
nr-spare-disks 0
persistent-superblock 1
parity-algorithm left-symmetric
chunk-size 64

device /dev/sdb1
raid-disk 0
device /dev/sdc1
raid-disk 1
device /dev/sdd1
raid-disk 2

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

Відразу після того, як команда mkraid відпрацювала, ви можете використовувати”Диск” / dev/md0 як вам заманеться. Можете створювати на ньому розділи зрізними файловими системами, а можете весь “диск” віддати під одну. Загалом, можете працювати c RAID диском так само, як і з будь-яким іншим.

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

Для початку необхідно вивести диск з використання. Для цього є командаraidhotremove. Їй необхідно вказати ім’я RAID масиву та ім’я пристрою, який необходмо виключити з масиву. Після виключення пристрою (це ви зможете побачити в / proc / mdstat) необходмо замінити диск.

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

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

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

Безперебійної роботи дисків вам.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*