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

photo_8715_20091014

Вам нужен файловый сервер по дешевке, который легко настроить, «надежный», надежный с помощью Email Alerting? покажет вам, как использовать Ubuntu, программный RAID и SaMBa для достижения именно этого.

обзор

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

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

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

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

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

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

Предпосылки

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

Выбор дисков, которые создают массив

Первым шагом в предотвращении ловушки является знание его существования (Thufir Hawat из Dune).

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

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

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

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

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

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

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

Разделение дисков

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

sudo fdisk / dev / sdb

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

Когда-то в fdisk нажатия клавиш:

n; для нового раздела
войти
п ; для первичного раздела
войти
1; количество разделов
войти ; принять значение по умолчанию
войти ; принять значение по умолчанию
t; изменить тип
fd; устанавливает тип «Обнаружение автоматического рейда Linux» (83h)
w; записывать изменения на диск и выходить

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

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

Преимущество использования «Linux raid10» заключается в том, что он знает, как использовать нечетное количество дисков для повышения производительности и отказоустойчивости даже дальше, чем ванильный RAID10, в дополнение к тому, что при использовании его массив «10» могут быть созданы за один шаг.

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

sudo mdadm —create / dev / md0 —chunk = 256 —level = 10 -p f2 —raid-devices = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 — -подробный

Примечание. Это всего лишь одна строка, несмотря на то, что представление разбивает ее на две части.

Давайте разложим параметры вниз:

  • «-Chunk = 256» — размер байт, на который разбиты полосы рейда, и этот размер рекомендуется для новых / больших дисков (диски 2T, используемые для создания этого руководства, несомненно, были в этой категории).
  • «-Level = 10» — использует raid10 для Linux (если требуется традиционный рейд, по какой-либо причине вам придется создавать два массива и присоединяться к ним).
  • «-P f2» — Использует «дальний» план вращения, см. Примечание ниже для получения дополнительной информации, а «2» сообщает, что массив будет хранить две копии данных.

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

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

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

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

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

Хотя было доказано, что Ubuntu просто знает, как автоматически сканировать и активировать массив при запуске, для полноты и вежливости для следующего sysadmin мы создадим файл. Ваша система не создает файл автоматически и пытается запомнить все компоненты / разделы вашего набора 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 еще не является ОС).

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

mdadm —examine —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

Добавьте параметр -test в раздел 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:

aptitude install samba

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

sudo vim /etc/samba/smb.conf

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

[генеральный]
путь = / media / raid10 / general
force user = geek
группа силы = geek
Только чтение = Нет
create mask = 0777
маска каталога = 0777
только гость = Да
guest ok = Да

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

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

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

Перезагрузка sudo /etc/init.d/samba

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

\ Сервер-namegeneral

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

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

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

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

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

Удачи! :)

Рекомендации:
mitadm cheat sheet
Уровни RAID ломаются
Linux RAID10 объяснил
Руководство пользователя mdadm
man-файл конфигурации mdadm
Ограничения раздела объяснены

Использование программного RAID-массива не будет дорогостоящим … Просто ваш VOICE ;-)

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.