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

Оглавление:

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

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

Видео: Как настроить программный RAID для простого файлового сервера на Ubuntu
Видео: Полезный софт для вашего MacBook! - YouTube 2024, Май
Anonim
Вам нужен файловый сервер по дешевке, который легко настроить, «надежный», надежный с помощью Email Alerting? покажет вам, как использовать Ubuntu, программный RAID и SaMBa для достижения именно этого.
Вам нужен файловый сервер по дешевке, который легко настроить, «надежный», надежный с помощью 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 --verbose

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

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

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

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

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

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

watch -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 еще не является ОС).

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

mdadm --examine --scan

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

metadata=00.90

Читать:

metadata=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 defaults 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:

aptitude install samba

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

sudo vim /etc/samba/smb.conf

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

[general] path = /media/raid10/general force user = geek force group = geek read only = No create mask = 0777 directory mask = 0777 guest only = Yes guest ok = Yes

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

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

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

sudo /etc/init.d/samba restart

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

server-namegeneral

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

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

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

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

watch -d cat /proc/mdstat

Удачи!:)

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

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

Рекомендуемые: