Домашня » як » Як встановити програмний RAID для простого файлового сервера на Ubuntu

    Як встановити програмний RAID для простого файлового сервера на Ubuntu

    Вам потрібен файловий сервер на дешевих, який легко налаштувати, "рок твердий" надійний з Email Alerting? покаже вам, як використовувати Ubuntu, програмний RAID і SaMBa для досягнення саме цього.

    Огляд

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

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

    Зображення Філомена Скалізе

    Про програмний RAID

    Як випливає з назви, це RAID (надлишковий масив недорогих дисків) налаштування, яке виконується повністю в програмному забезпеченні замість використання спеціальної апаратної карти. Головною перевагою такої речі є вартість, оскільки ця спеціальна картка є додатковою премією до базової конфігурації системи. Основними недоліками є в основному продуктивність і деяка надійність, оскільки така картка зазвичай постачається з власним RAM + CPU для виконання розрахунків, необхідних для математичного резервування, кешування даних для підвищення продуктивності, а також додаткового резервного акумулятора, який зберігає неписані операції в кеші до потужність була відновлена ​​у випадку вимикання живлення.

    За допомогою програмного RAID-налаштування, який приносить вам жертви деяку продуктивність системного процесора, щоб зменшити загальну вартість системи, однак з сьогоднішніми процесорами накладні витрати відносно незначні (особливо якщо ви збираєтеся в основному виділити цей сервер як «файловий сервер»). Що стосується продуктивності диска, є штраф ... але я ніколи не стикався з вузьким місцем з дискової підсистеми від сервера, щоб відзначити, наскільки глибоким він є. Керівництво апаратури Tom's “Tom's goes RAID5” - це старе, але вичерпна стаття про тему, яку я особисто використовую в якості посилання, але приймаю критерії з зерном солі, оскільки мова йде про реалізацію вікон програмного RAID (як з все інше, я впевнений, що Linux набагато краще: P).

    Передумови

    • Терпіння молодий, це давно прочитане.
    • Передбачається, що ви знаєте, що таке RAID і для чого він використовується.
    • Цей посібник був написаний з використанням Ubuntu server9.10 x64, тому передбачається, що у вас є система, заснована на Debian..
    • Ви побачите, що я використовую VIM як програму для редагування, це якраз тому, що я звик ... Ви можете використовувати будь-який інший редактор, який ви хотіли б.
    • Система Ubuntu, яку я використав для написання цього посібника, була встановлена ​​на диск на ключ. Це дозволило мені використовувати sda1 як частину масиву RAID, тому налаштуйтеся відповідно до налаштувань.
    • Залежно від типу RAID, який ви хочете створити, вам знадобиться принаймні два диски у вашій системі, і в цьому посібнику ми використовуємо 6 дисків.

    Вибір дисків, які роблять масив

    Першим кроком у уникненні пастки є знання її існування (Туфір Хават з Дюни).

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

    Зробіть НЕ використовуйте диски "споживчого класу" для створення вашого масиву, використовуйте диски "серверний клас"!!!!!!

    Зараз я знаю що ваші мислення, ми не сказали ми збираємось поїхати у дешевому? і так, ми зробили, але це саме одне з місць, де це нерозумно і його слід уникати. Незважаючи на їхню привабливу ціну, жорсткі диски споживчого класу не призначені для використання в режимі 24/7 «увімкнення». Повірте мені, ваш щиро спробував це для вас. Принаймні чотири диски споживчого класу в 3-х серверах, у яких є такі налаштування (через бюджетні обмеження), провалилися приблизно через 1,5 ~ 1,8 років від першого дня запуску сервера. Хоча не було втрати даних, тому що RAID зробив свою роботу добре і вижили… подібні моменти скорочують тривалість життя системного адміністратора, не кажучи вже про час для обслуговування сервера (що може закінчитися тим, що коштує більше, ніж диски вищого класу)..

    Деякі можуть сказати, що немає відмінності в частоті відмов між двома типами. Це може бути правдою, однак, незважаючи на ці твердження, диски серверного класу все ще мають більш високий рівень обмежень SMART і QAing за ними (як це можна спостерігати за тим фактом, що вони не випущені на ринок, як тільки споживчі диски є), так що я все ще настійно рекомендую вам розщедритися на додаткові $$$ для оновлення.

    Вибір рівня RAID.

    Хоча я не збираюся вдаватися до всіх доступних варіантів (це дуже добре задокументовано в записі RAID wikipedia), я відчуваю, що варто відзначити, що ви завжди повинні вибирати принаймні RAID 6 або навіть вище ( ми будемо використовувати Linux RAID10). Це відбувається тому, що, коли диск виходить з ладу, існує більша ймовірність відмови в сусідньому диску, і тоді у вас є дві несправності. Більш того, якщо ви збираєтеся використовувати великі диски, оскільки великі диски мають більш високу щільність даних на поверхні диска, шанс на відмову вище. ІМХО диски від 2Т і далі завжди потраплять в цю категорію, тому знайте.

    Давайте розтріскуємося

    Розбиття дисків

    Хоча в Linux / GNU, ми могли б використовувати весь блок пристрою для потреб зберігання, ми будемо використовувати розділи, тому що це полегшує використання інструментів для відновлення дисків у випадку, якщо система перехоплює. Тут ми використовуємо програму "fdisk", але якщо ви збираєтеся використовувати диски більші, ніж 2T, вам потрібно буде використовувати програму розбиття на розділи, яка підтримує розділення GPT, подібно до розбитого..

    sudo fdisk / dev / sdb

    Примітка: Я помітив, що можна зробити масив, не змінюючи тип розділу, але тому, що це такий спосіб, описаний по всій мережі, я буду слідувати цьому прикладу (знову ж таки при використанні всього блоку це не потрібно).

    У fdisk натискання клавіш:

    n; для нового розділу
    введіть
    p; для основного розділу
    введіть
    1; кількість розділів
    enter; прийняти значення за умовчанням
    enter; прийняти значення за умовчанням
    t; , щоб змінити тип
    fd; встановлює тип для автоматичного визначення Linux raid (83h)
    w; записування змін на диск і вихід

    Промийте і повторіть для всіх дисків, які будуть частиною масиву.

    Створення масиву RAID10 у Linux

    Перевага використання "Linux raid10 ”, що він знає, як скористатися нерівномірним числом дисків, щоб підвищити продуктивність і стійкість ще далі, ніж ванільний RAID10, на додаток до того, що при його використанні масив" 10 "може бути створений в одному крок.

    Створіть масив із дисків, які ми підготували на останньому етапі, видавши:

    sudo mdadm --create / dev / md0 --chunk = 256 - рівень = 10 -p f2 --raid-devices = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - -Вербоза

    Примітка: Це всього лише один рядок, незважаючи на те, що представлення розбиває його на дві частини.

    Давайте розірвемо параметри:

    • "-Chunk = 256" - розмір байтів, на які розбиті смуги рейду, і цей розмір рекомендується для нових / великих дисків (2T-накопичувачі, які використовувалися для того, щоб зробити це керівництво без сумніву в цій категорії).
    • "Рівень = 10" - Використовується Linux raid10 (якщо потрібен традиційний рейд, для яких-небудь причин потрібно створити два масиви і приєднатися до них).
    • “-P f2” - використовує план “далекого” повороту, див. Примітку нижче для додаткової інформації, а “2” повідомляє, що масив буде зберігати дві копії даних.

    Примітка: Ми використовуємо план "далеко", оскільки це призводить до того, що фізичне розташування даних на дисках НЕ буде однаковим. Це допомагає подолати ситуацію, коли апаратні засоби одного з дисків виходять з ладу через несправність у виробництві (і не думайте, що «це не станеться зі мною», як це було у вас справді). У зв'язку з тим, що два диски однакового марки і моделі, були використані тим же способом і традиційно зберігали дані на одному і тому ж фізичному розташуванні ... Існує ризик, що диск, що тримає копію даних, не вдався теж або близький і не забезпечить необхідну пружність, доки не прийде диск заміни. "Далекий" план робить розподіл даних на абсолютно іншому фізичному місці на дисках для копіювання, крім використання дисків, які не розташовані поруч один з одним у корпусі комп'ютера. Більш детальну інформацію можна знайти тут і на посиланнях нижче.

    Після створення масиву він почне процес синхронізації. Хоча ви можете почекати на традиції (оскільки це може зайняти деякий час), ви можете негайно почати використовувати масив.

    Прогрес можна спостерігати за допомогою:

    watch -d cat / proc / mdstat

    Створіть конфігураційний файл mdadm.conf

    Хоча було доведено, що Ubuntu просто знає, що сканувати і активувати масив автоматично під час запуску, для повноти і ввічливості для наступного системного адміністратора ми створимо файл. Ваша система не створює файл автоматично і намагається запам'ятати всі компоненти / розділи вашого RAID-набору. Ця інформація може зберігатися у файлі mdadm.conf. Форматування може бути складним, але, на щастя, вивід команди mdadm -detail -scan -verbose надає вам його.

    Примітка: Було сказано, що: "Більшість дистрибутивів очікують mdadm.conf у файлі / etc /, а не / etc / mdadm. Я вважаю, що це "ubuntu-ism", щоб мати його як /etc/mdadm/mdadm.conf. Через те, що ми є використовуючи Ubuntu тут, ми просто підемо з ним.

    sudo mdadm --detail --scan --verbose> /etc/mdadm/mdadm.conf

    ВАЖЛИВО! вам потрібно видалити один "0" з новоствореного файлу, тому що синтаксис, що випливає з команди вище, не є повністю правильним (GNU / Linux ще не є ОС).

    Якщо ви хочете побачити проблему, що ця неправильна конфігурація викликає, ви можете видати "сканування на цьому етапі, перш ніж виконувати налаштування:

    mdadm --розгляд --скан

    Щоб подолати це, відредагуйте файл /etc/mdadm/mdadm.conf і змінити:

    метадані = 00,90

    Читати:

    метадані = 0.90

    Запуск mdadm -екзамін -скан Тепер команда повинна повернутися без помилки.

    Налаштування файлової системи на масиві

    Я використав ext4 для цього прикладу, тому що для мене це просто побудовано на ознайомленні з файловою системою ext3, яка з'явилася перед нею, забезпечуючи обіцяну кращу продуктивність і функції.
    Ми пропонуємо Вам час, щоб дослідити, яка файлова система краще відповідає Вашим потребам, і хорошим початком для цього є наша "Файлова система Linux, яку Ви повинні вибрати?".

    sudo mkfs.ext4 / dev / md0

    Примітка: У цьому випадку я не розділив отриманий масив, тому що, я просто не потребував його в той час, як запитуюча сторона спеціально запитав принаймні 3.5T безперервного простору. З урахуванням сказаного, якщо б я хотів створити розділи, мені довелося б використовувати утиліту, здатну до розділення GPT, наприклад, "parted".

    Монтаж

    Створіть точку монтування:

    sudo mkdir / media / raid10

    Примітка: Це може бути будь-яке місце, зазначене вище лише приклад.

    Тому що ми маємо справу з «зібраним пристроєм» ми будемо ні використовуйте UUID файлової системи, що знаходиться на пристрої для монтування (як це рекомендовано для інших типів пристроїв у нашому «Що таке Linux fstab і як він працює»), оскільки система може бачити частину файлової системи на окремому диску і спробувати неправильно монтувати його безпосередньо. щоб подолати це, ми хочемо явно чекати, поки пристрій буде "зібрано", перш ніж ми спробуємо його встановити, і будемо використовувати ім'я зібраного масиву (“md”) в межах fstab для цього.
    Відредагуйте файл fstab:

    sudo vim / etc / fstab

    І додайте до цього рядка:

    / dev / md0 / media / raid10 / ext4 за замовчуванням 1 2

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

    Використовуйте mount з автоматичним параметром (-a) для моделювання завантаження системи, щоб ви знали, що конфігурація працює правильно і що пристрій RAID буде автоматично встановлено під час перезавантаження системи:

    sudo mount -a

    Тепер ви зможете бачити масив, встановлений командою "mount" без параметрів.

    Повідомлення електронної пошти для масиву RAID

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

    Дотримуйтесь посібника "Як налаштувати сповіщення електронної пошти на Linux за допомогою Gmail або SMTP", а після завершення поверніться сюди, щоб виконати конкретні кроки RAID.

    Підтвердьте, що mdadm може електронною поштою
    Команда, наведена нижче, дасть команді mdadm звільнити лише один лист і закрити.

    sudo mdadm --монітор --scan --test --oneshot

    У разі успіху ви повинні отримувати електронну пошту, деталізуючи стан масиву.

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

    sudo vim / etc / default / mdadm

    Додати -тест параметр DAEMON_OPTIONS розділ, щоб він виглядав так:

    DAEMON_OPTIONS = "- syslog --test"

    Ви можете перезапустити машину тільки для того, щоб переконатися, що ваш "в циклі", але це не обов'язково.

    Конфігурація Samba

    Встановлення SaMBa на Linux-сервері дозволяє йому діяти як файловий сервер Windows. Тому для того, щоб отримати дані, які ми розміщуємо на сервері Linux, доступні клієнтам Windows, ми встановимо і налаштуємо SaMBa.
    Смішно відмітити, що назва пакунка SaMBa - це каламбур по протоколу Microsoft, який використовується для обміну файлами під назвою SMB (Service Message Block).

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

    Також рекомендується створити непривілейованого користувача для того, щоб бути власником файлів. У цьому прикладі ми використовуємо користувача geek, який ми створили для цього завдання. Пояснення щодо створення користувача та керування правом власності та дозволів можна знайти у нашому посібнику «Створити нового користувача на сервері Ubuntu 9.10» та «Посібник для початківців з управління користувачами та групами в Linux»..

    Встановити Samba:

    aptitude встановлює samba

    Відредагуйте файл налаштування samba:

    sudo vim /etc/samba/smb.conf

    Додайте частку з назвою "загальний", яка надасть доступ до точки монтування "/ media / raid10 / general", додавши до файлу нижче.

    [загальний]
    path = / media / raid10 / загальний
    сила користувача = виродка
    force group = geek
    read only = Ні
    create mask = 0777
    каталог mask = 0777
    тільки для гостей = Так
    guest ok = Так

    Наведені вище параметри роблять доступну адресу без пароль для всіх і робить власником файлів за замовчуванням користувач "geek".

    Для довідки, цей файл smb.conf був знятий з робочого сервера.

    Перезапустіть службу samba, щоб зміни вплинули на налаштування:

    sudo /etc/init.d/samba перезавантаження

    Після цього ви можете використовувати testparm , щоб побачити параметри, застосовані до сервера samba.
    ось так, тепер сервер повинен бути доступним з будь-якого вікна, використовуючи:

    server-namegeneral

    Вирішення проблем

    Якщо вам потрібно виправити неполадку або диск вийшов з ладу в масиві, я пропоную звернутися до шпальти mdadm (це те, що я роблю…).

    Взагалі, ви повинні пам'ятати, що коли диск виходить з ладу, вам потрібно «видалити» його з масиву, вимкнути машину, замінити невдалий диск заміною, а потім «додати» новий диск до масиву після створення відповідного диска. макет (розділи) на ньому при необхідності.

    Як тільки це буде зроблено, ви можете переконатися, що масив відновлюється та переглядаєте прогрес:

    watch -d cat / proc / mdstat

    Удачі! :)

    Посилання:
    mdadm шпаргалку
    Рівні RAID розбиваються
    Linux RAID10 пояснив
    команда mdadm man man
    mdadm файл конфігурації man man
    Обґрунтовано обмеження розділів


    Використання програмного RAID не буде коштувати багато… Просто ваш голос ;-)