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

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

    Вам нужен недорогой файловый сервер, который прост в настройке, надежен с электронной почтой? покажет вам, как использовать Ubuntu, программный RAID и SaMBa для достижения этой цели.

    обзор

    Несмотря на недавнее стремление перенести все в «все могущественное» облако, иногда вы можете не захотеть, чтобы ваша информация была на чужом сервере, или просто невозможно загружать объемы данных, которые вам требуются из Интернета каждый раз (например, развертывание образа ). Поэтому, прежде чем вы укажете место в своем бюджете для решения для хранения данных, рассмотрите конфигурацию, которая лицензируется бесплатно в Linux.

    С учетом вышесказанного, дешевизна / бесплатность не означает «осторожность на ветру», и с этой целью мы отметим моменты, о которых следует помнить, конфигурации, которые должны быть установлены в дополнение к использованию программного RAID для достижения максимальное соотношение цены и надежности.

    Изображение Filomena Scalise

    О программном RAID

    Как следует из названия, это настройка RAID (избыточного массива недорогих дисков), которая выполняется полностью программно, а не с использованием выделенной аппаратной платы. Основным преимуществом такой вещи является стоимость, так как эта выделенная карта является дополнительной премией к базовой конфигурации системы. Основными недостатками, в основном, являются производительность и некоторая надежность, поскольку такая карта обычно поставляется с собственным ОЗУ + ЦП для выполнения вычислений, необходимых для математического анализа избыточности, кэшированием данных для повышения производительности и дополнительной резервной батареей, которая хранит неписаные операции в кэше до питание было восстановлено в случае отключения питания.

    При установке программного RAID-массива вы жертвуете производительностью некоторых системных процессоров, чтобы снизить общую стоимость системы, однако при использовании современных процессоров издержки относительно незначительны (особенно если вы собираетесь выделить этот сервер в качестве «файлового сервера»). Что касается производительности диска, то здесь есть штраф… однако я никогда не сталкивался с узким местом в дисковой подсистеме с сервера, чтобы заметить, насколько оно серьезное. Руководство Тома по аппаратному обеспечению «Tom's идет RAID5» - это старая, но полезная исчерпывающая статья на эту тему, которую я лично использую в качестве справочного материала, однако примите во внимание эталонные тесты, поскольку речь идет о реализации программного RAID в Windows (как в случае с все остальное, я уверен, что Linux намного лучше: P).

    Предпосылки

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

    Выбор дисков, составляющих массив

    Первым шагом во избежание ловушки является знание о ее существовании (Туфир Хават из Дюны).

    Выбор дисков - жизненно важный шаг, который не следует воспринимать легкомысленно, и вам будет разумно извлечь выгоду из своего подлинного опыта и учесть это предупреждение:

    Делать НЕ используйте диски «потребительского уровня» для создания массива, используйте диски «серверного уровня»!!!!!!

    Теперь я знаю, что ты думаешь, разве мы не говорили, что собираемся пойти по дешевке? и да, мы сделали, но, это именно то место, где это безрассудно, и его следует избегать. Несмотря на свою привлекательную цену, жесткие диски потребительского уровня не предназначены для использования в круглосуточном режиме. Поверьте мне, ваш действительно пытался это для вас. По крайней мере четыре накопителя потребительского уровня на трех серверах, которые я настроил таким образом (из-за бюджетных ограничений), потерпели неудачу примерно через 1,5–1,8 года с момента первого запуска сервера. Пока не было потери данных, потому что RAID сделал свое дело Что ж и выжил ... такие моменты сокращают ожидаемый срок службы системного администратора, не говоря уже о времени простоя компании для обслуживания сервера (что может стоить дороже, чем диски более высокого класса).

    Некоторые могут сказать, что нет разницы в частоте отказов между этими двумя типами. Это может быть правдой, однако, несмотря на эти утверждения, диски серверного уровня по-прежнему имеют более высокий уровень ограничений SMART и QAing за ними (что можно наблюдать по тому факту, что они не поступают на рынок, как только потребительские диски), так что я все еще настоятельно рекомендую вам раскошелиться на дополнительные $$$ для обновления.

    Выбор уровня RAID.

    Хотя я не собираюсь вдаваться во все доступные варианты (это очень хорошо задокументировано в записи википедии о RAID), я считаю, что стоит отметить, что вы всегда должны выбирать как минимум RAID 6 или даже выше ( мы будем использовать Linux RAID10). Это связано с тем, что при выходе из строя диска выше вероятность сбоя соседнего диска, и тогда у вас на руках «двухдисковый» сбой. Более того, если вы собираетесь использовать большие диски, так как большие диски имеют более высокую плотность данных на поверхности диска, вероятность отказа будет выше. ИМХО диски от 2T и выше всегда будут попадать в эту категорию, так что будьте внимательны.

    Давай взломать

    Разметка дисков

    В то время как в Linux / GNU мы могли бы использовать все блочное устройство для нужд хранения, мы будем использовать разделы, потому что это упрощает использование инструментов восстановления диска в случае, если система потерпела крах. Здесь мы используем программу «fdisk», но если вы собираетесь использовать диски размером более 2T, вам понадобится программа для разметки, которая поддерживает разметку GPT, например parted.

    sudo fdisk / dev / sdb

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

    Как только в fdisk нажаты клавиши:

    п; для нового раздела
    войти
    п ; для основного раздела
    войти
    1; номер раздела
    войти ; принять по умолчанию
    войти ; принять по умолчанию
    т; изменить тип
    фд; устанавливает тип «Linux raid auto Detection» (83 часа)
    w; записать изменения на диск и выйти

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

    Создание массива Linux RAID10

    Преимущество использования «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» - размер байтов, на которые разбиты полосы raid, и этот размер рекомендуется для новых / больших дисков (диски 2T, использованные для создания этого руководства, были без сомнения в этой категории).
    • «-Уровень = 10» - использует Linux raid10 (если требуется традиционный рейд, по какой-либо причине вам нужно создать два массива и присоединиться к ним).
    • «-P f2» - использует «дальний» план вращения, см. Примечание ниже для получения дополнительной информации, а «2» говорит о том, что массив будет хранить две копии данных.

    Заметка: Мы используем «дальний» план, потому что это приводит к тому, что физическое расположение данных на дисках НЕ будет одинаковым. Это помогает преодолеть ситуацию, когда аппаратное обеспечение одного из дисков выходит из строя из-за производственного брака (и не думайте, что «этого не случится со мной», как на самом деле сделали ваши). Из-за того, что оба диска имеют одинаковую марку и модель, использовались одинаково и традиционно хранили данные в одном и том же физическом месте ... Существует риск того, что диск, на котором хранится копия данных, вышел из строя слишком близко или близко и не обеспечит требуемую отказоустойчивость до тех пор, пока не появится запасной диск. «Дальний» план обеспечивает распределение данных в совершенно другом физическом месте на копирующих дисках в дополнение к использованию дисков, которые не расположены близко друг к другу в корпусе компьютера. Более подробную информацию можно найти здесь и по ссылкам ниже.

    Как только массив будет создан, он начнет процесс синхронизации. Хотя вы можете подождать ради традиций (так как это может занять некоторое время), вы можете сразу начать использовать массив.

    Прогресс можно наблюдать, используя:

    смотреть -d кот / proc / mdstat

    Создайте файл конфигурации mdadm.conf

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

    ЗаметкаБыло сказано, что: «Большинство дистрибутивов ожидают файл mdadm.conf в / etc /, а не / etc / mdadm. Я полагаю, что это «убунтуизм», чтобы иметь его как /etc/mdadm/mdadm.conf ». В связи с тем, что мы являются используя Ubuntu здесь, мы просто пойдем с ним.

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

    ВАЖНЫЙ! вам нужно удалить один «0» из вновь созданного файла, потому что синтаксис, полученный в результате выполнения приведенной выше команды, не совсем корректен (GNU / Linux пока не является ОС).

    Если вы хотите увидеть проблему, вызванную неправильной конфигурацией, вы можете ввести «сканирование» Команда в этой точке, прежде чем делать корректировку:

    mdadm - изучить --scan

    Чтобы преодолеть это, отредактируйте файл /etc/mdadm/mdadm.conf и изменить:

    Метаданные = 00,90

    Читать:

    Метаданные = 0,90

    Запуск mdadm -examine -scan Теперь команда должна вернуться без ошибки.

    Настройка файловой системы в массиве

    Я использовал 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 --monitor --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 Server 9.10» и «Руководстве для начинающих по управлению пользователями и группами в Linux»..

    Установите Samba:

    способность установить самбу

    Отредактируйте файл конфигурации Samba:

    sudo vim /etc/samba/smb.conf

    Добавьте общий ресурс с именем «general», который предоставит доступ к точке монтирования «/ media / raid10 / general», добавив в файл нижеприведенный файл..

    [генеральный]
    путь = / media / raid10 / general
    заставить пользователя = компьютерщик
    группа силы = Компьютерщик
    только чтение = нет
    создать маску = 0777
    маска каталога = 0777
    только гость = да
    гость хорошо = да

    Приведенные выше настройки делают ресурс доступным без пароль для любого и делает владельцем файлов по умолчанию пользователя "geek".

    Для справки, этот файл smb.conf был взят с рабочего сервера.

    Перезапустите службу samba, чтобы настройки вступили в силу:

    sudo /etc/init.d/samba restart

    После этого вы можете использовать testparm команда, чтобы увидеть настройки, примененные к серверу Samba.
    вот и все, сервер теперь должен быть доступен из любого окна, используя:

    \ Сервер-namegeneral

    Поиск проблемы

    Когда вам нужно устранить неполадку или произошел сбой диска в массиве, я предлагаю обратиться к шпаргалке mdadm (вот что я делаю…).

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

    Как только это будет сделано, вы можете убедиться, что массив перестраивается и наблюдать за прогрессом:

    смотреть -d кот / proc / mdstat

    Удачи! :)

    Рекомендации:
    шпаргалка mdadm
    Уровни RAID снижаются
    Linux RAID10 объяснил
    Страница руководства по команде mdadm
    Страница конфигурации файла конфигурации mdadm
    Объяснение ограничений раздела


    Использование программного RAID не будет стоить дорого ... Только ваш голос ;-)