Створення Software RAID у Slackware Linux, Комп’ютерна документація від А до Я

Створення Software RAID у Slackware Linux

Встановлення Linux на RAID не є дуже складною справою, особливо якщо ви розумієте, що робите, а не покладаєтеся на чарівні інструкції від RedHat Linux з описом вікон і кнопок, які потрібно рухати мишкою, а натискати коліщатком. Саме тому як приклад обраний Slackware Linux, тому що він схожий на єдиний дистрибутив, в якому щоб щось зробити, потрібно чітко розуміти, що робиш. І як наслідок, якщо ви зрозумієте, як це робиться в Slackware, то спокійно розберетеся, як це зробити у вашому улюбленому дистрибутиві.

Достатності та необхідності

Мета документа: встановлення Slackware 10.1 з нуля на IDE software RAID 1 (mirror) із двох дисків. Використовується ядро ​​з дистрибутива – 2.4.29, у якому є підтримка soft-raid. Насправді достатньо взяти будь-який дистрибутив із ядром 2.4.x і вище. Для запуску raid на ядрах 2.2.х доведеться збирати своє ядро ​​з патчами. Необхідно:

  • Два однакові вінчестери. (Використання дисків різного розміру можливе, але не рекомендується (Прим. пров.: цікаво, чому?)
  • Можливість завантажитись зі Slackware Install CD. Для любителів інших дистрибутивів:
  • ядро 2.4.х і вище
  • Рекомендується LILO 22.5.7.2 та вище (Можливість завантажити систему з RAID з'явилася в LILO 22.0)
  • raidtools 0.90 або вище.
  • Вміння користуватися fdisk'ом. Ну або хоча б розуміти, що таке таблиця розділів, mbr, розділ і так далі.
  • Несильно погнуті руки для роботи у командному рядку.
  • Терпіння та час. (Пиво опціонально).
  • Перед початком

    Тепер завантажуйтесь зі Slackware Install CD. Коли завантаження дійде до запрошення Boot: Вам потрібно буде вибрати ядро, яке відповідає вашому залізу.Далі завантаження продовжуватиметься. Насправді, установка системи на RAID не сильно відрізняється від звичайної установки Slackware Linux.

    Перед тим, як запустити setup, ви повинні створити розділи на диску. Особливо звертаємо вашу увагу, що ставити систему потрібно на другий вінчестер (у нашому випадку це /dev/hdc), який підключений до secondary IDE bus . Набирайте в консолі:

    Для створення RAID не потрібно якось особливо розбивати диск. Все робиться так само, як це просто одно-дисковий сервер. Мені подобається наступне розбиття диска: розділи для /, swap, /usr/local, /var та /home. Оскільки обсяг вільного простору на IDE дисках слабо відбивається на вмісті гаманця, не варто скупитися, створюючи / і swap. Надмірність у нашому випадку не стоїть нічого проти ймовірності можливих проблем із нестачею місця у розділі. Ось приклад розбивки вінчестера на 20G:

    Зверніть увагу, що /dev/hdc1 позначений як завантажувальний. Це обов'язково потрібно зробити, щоб RAID працював нормально.

    Після створення розділів виходьте з fdisk'а і не забудьте переконатися, що таблиця розділів записалася на диск і ядро ​​застосувало. (Не полінуйтеся перевести повідомлення fdisk'а. Цілком можливо, що там написано щось типу При записі таблиці розділів виявлено, що пристрій зайнятий іншим додатком. Таблиця буде застосована після перезавантаження.) Взагалі перезавантаження після маніпуляцій з таблицею розділів не буде зайвим, особливо якщо ви збираєтеся використовувати ReiserFS. Після перезавантаження, запускайте setup і починайте встановлення згідно з інструкцією по установці, не забувши звернути увагу на деякі моменти:

    • Так як у подальшому процесі встановлення необхідно буде копіювати вміст розділу на інший вінчестер, варто подумати про скороченнячасу цього копіювання. Тобто, на цьому етапі встановлювати мінімальну Linux-систему, надалі можна буде доставити необхідні пакети вже на raid. Я думаю, ви чудово знаєте, що потрібно ставити, щоб отримати мінімальну Slackware Linux-машину. Хоча можу й повторити:
    • Необхідні пакети з серій A і AP.
    • Пакет glibcso із серії A або свіжий пакет glibc із серії D.
    • Не забудьте поставити пакет raidtools із серії AP
    • (Від перекладача: я ще поставив sshd із серії N. І все налаштування робив через мережу.)
  • Встановіть LILO, використовуючи expert mode. Переконайтеся, що LILO встановлений у master boot record (MBR) правильного диска (/dev/hdc) і ваш / розділ (у нашому випадку це /dev/hdc1) позначений як завантажувальний (bootable flag, навпроти цього розділу у fdisk'і буде стояти * )
  • Перше завантаження

    Після закінчення установки перевантажуйтеся з вінчестера (не забудьте вийняти CD-ROM з приводу та перевірте boot sequence у BOIS'і). Якщо все пройде нормально, система завантажиться використовуючи /dev/hdc1 в якості / розділу. Якщо ж система не вантажиться, то завантажуйтеся з CD-ROM або дискети і ретельно перевіряйте /etc/lilo.conf. Також будьте уважні при виборі завантажувального пристрою в BIOS'і, однакові гвинти будуть виглядати однаково, можливо ви просто не з того гвинта вантажитеся. Якщо ж BIOS виявився занадто поганим, що не захотів вантажити систему з другого вінчестера, то як варіант спробуйте встановити LILO в mbr першого диска, вказавши йому брати / розділ з другого, все одно LILO потім потрібно буде переконфігурувати. Цей трюк допомагав мені коли траплялися невиразні SCSI-контролери, які не давали можливості вказувати завантажувальний диск.

    На наступному кроці потрібно створити розділи наперший вінчестер (у нашому випадку це /dev/hda). Для кращого використання дискового простору диск слід розбити так само, як і другий. Команда fdisk -l /dev/hdc допоможе вам розбити диск циліндра в циліндр.

    У результаті у вас має вийти два диски розбитих однаково. Точніше майже однаково: на першому вінчестері вам потрібно буде зробити істотну зміну: тип розділів повинен бути не Linux native , а Linux raid autodetect з кодом 0xFD. Якщо ви все зробили правильно, то за ідеєю у вас має вийти щось на кшталт цього:

    Файл конфігурації RAID-масиву - /etc/raidtab

    Після того, як ми підготували перший диск для створення RAID, саме час створити файл конфігурації масивів RAID, який використовуватиметься драйвером md для коректної конфігурації масиву. Запустіть ваш улюблений emacs і, керуючись наведеним нижче прикладом, створіть ваш raidtab.

    Для кожної пари збігаються розділів на диску, з яких будуть створюватися окремі розділи масиву, повинен бути блок з директивою raiddev, що оголошує відповідний розділ масиву /dev/mdX пристрій.

    Зверніть увагу, що я використовував директиву failed-disk, яка дозволяє заборонити дублювати зміни першого диска на другому і яка вказує на другий диск, на /dev/hdc, з якого ви зараз завантажили систему. Для детальної інформації про можливі директиви цього файлу можна прочитати у man 5 raidtab

    Створення RAID пристроїв

    Після того, як ви створили /etc/raidtab, вже час остаточно створювати RAID. Запустіть mkraid для кожного /dev/mdX, який ви придумали в /etc/raidtab. Наприклад так:

    Процес створення масивів ви зможете переглянути в псевдофайлі /proc/mdstat, який взагалі є дуже корисним для моніторингу RAIDпідсистеми комп'ютера. Зараз, наприклад, можете подивитися, як виглядає система, у якої присутня тільки половина масиву, для кожного пристрою, який ви створили, буде окремий рядок. Приблизно так:

    Тепер настає найцікавіше, тепер, коли /dev/mdX створені, настав час створити на них файлові системи.

    Або якій ви віддаєте перевагу файловій системі, таку і робіть.

    Копіювання операційної системи в RAID

    І знову здрастуйте! Ви вже практично підійшли до найцікавішого у створенні RAID'а. Тепер вам потрібно скопіювати всі файли з другого диска в raid-масив. Є багато різних способів зробити це. Тут я опишу ні найшвидший, ні найкрасивіший спосіб, але думаю цей спосіб буде ясно зрозумілий будь-якою людиною, яка може дочитати до цього місця.

    Перше: монтуємо новий / розділ до /mnt.

    Друге: створюємо каталоги - точки монтування інших нових розділів. Не забудьте тут вказати ваші каталоги та ваші розділи.

    Третє: монтує нові розділи.

    Четверте: копіюємо систему з другого вінчестера на RAID.

    П'яте: виправляємо /mnt/etc/fstab, щоб він вказував на нові розділи, які є масивом RAID. Тільки переконайтеся, що ви редагуєте fstab саме з /mnt/etc/fstab, а не з поточного / розділу.

    Завантаження з RAID масиву

    Тепер залишається лише встановити LILO із цими новими змінами. Для цього у lilo передбачена опція -r, яка дозволяє змінити кореневий каталог до виконання будь-яких операцій:

    Тепер все. Перевантажуйте. Не забудьте тільки виставити в BIOS завантаження в першого вінчестера.

    Доповнення дзеркал

    Завантажились? Спробуйте перевірте командою df, звідки ви завантажилися і куди:

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

    Зараз ми знаходимося у точці, яка моделює збій одного вінчестера. Тобто ніби ви щойно замінили вінчестер, що відмовив, і повинні його розбити. Ситуація відрізняється лише тим, що зараз другий вінчестер уже розбитий на розділи, єдине, що: неправильно розбитий. Зараз вам потрібно змінити тип розділів на /dev/hdc з Linux native на Linux raid autodetect. Якби у вас був чистий вінчестер, то одразу потрібно було б створювати розділи з типом 0xFD. Отже, беріть fdisk /dev/hdc і тренуйтеся відновлювати. Після створення/редагування таблиці розділів вас швидше за все попросять перевантажитися.

    Тепер передостанній крок: доповнення дзеркал. Тут усе дуже просто. Виконуєте raidhotadd mirror partition :

    і дивіться в /proc/mdstat, як RAID стає справжнім mirror'ом. Зрештою ви отримаєте таке:

    Так, забули останній крок: поміняйте /etc/raidtab директиви failed-disk на raid-disk .

    Вітаю тепер вашу систему встановлено на RAID 1 (mirroring).

    Висновок

    Тепер, якщо ви встановлювали Slackware Linux в мінімальному встановленні, саме час повернуться і продовжити установку необхідних пакетів. Також багато хто вважає, що установка закінчується тільки після перескладання ядра. Спеціально для таких хочу помітити, що для того, щоб ви змогли завантажитися з вашого RAID'а, підтримка RAID support і RAID-1 (mirroring) mode повинні бути вкомпілені в ядро, а не збиратися модулями.