Мы небольшая компания, которая, помимо прочего, занимается редактированием видео, и нам нужно место для хранения резервных копий больших медиафайлов и упрощения их совместного использования.
У меня есть коробка с Ubuntu Server и 4 дисками по 500 ГБ. В настоящее время они настроены с помощью Samba как четыре общие папки, которые рабочие станции Mac / Windows могут нормально видеть, но мне нужно лучшее решение. Для этого есть две основные причины:
Итак, мне нужен способ объединить жесткие диски таким образом, чтобы избежать полной потери данных при выходе из строя одного диска, чтобы пользователи видели только один общий ресурс на каждом сервере. Я сделал программный RAID5 для Linux, и у меня был плохой опыт работы с ним, но я бы попробовал снова. LVM выглядит нормально, но похоже, что никто им не пользуется. ZFS кажется интересным, но относительно «новым».
Каков наиболее эффективный и наименее рискованный способ объединения жестких дисков, удобный для моих пользователей?
Изменить: цель здесь в основном состоит в том, чтобы создать серверы, содержащие произвольное количество жестких дисков, но ограничивающие сложность с точки зрения конечного пользователя. (т.е. они видят по одной «папке» на каждый сервер). Резервное копирование данных здесь не проблема, но то, как каждое решение реагирует на отказ оборудования, вызывает серьезную озабоченность. Вот почему я объединяю RAID, LVM, ZFS и неизвестно что вместе.
Мой предыдущий опыт работы с RAID5 также был связан с сервером Ubuntu, и был сложный и маловероятный набор обстоятельств, которые привели к полной потере данных. Я мог избежать который снова, но у меня осталось ощущение, что я добавляю в систему ненужную дополнительную точку отказа.
Я не использовал RAID10, но мы используем обычное оборудование, и большинство дисков с данными на коробку в значительной степени фиксировано на 6. У нас много дисков по 500 ГБ, а 1,5 ТБ - это довольно мало. (Тем не менее, вариант по крайней мере для одного сервера)
У меня нет опыта работы с LVM, и я читал противоречивые отчеты о том, как он обрабатывает сбой дисков. Если бы установка LVM (без полос) могла справиться с отказом одного диска и потерять только те файлы, часть которых хранилась на этом диске (и хранила большинство файлов только на одном диске), мы могли бы даже жить с этим.
Но пока мне нужно изучать что-то совершенно новое, я могу полностью перейти на ZFS. Однако, в отличие от LVM, мне также пришлось бы изменить свою операционную систему (?), Чтобы увеличить расстояние между тем, где я нахожусь, и тем местом, где я хочу быть. Я использовал в универе версию solaris и не возражал бы против этого.
С другой стороны, я думаю, что могу также изучить FreeNAS и / или Openfiler, но это на самом деле не решает вопрос о том, как комбинировать диски.
LVM на самом деле довольно интенсивно используется. По сути, LVM находится над уровнем оборудования (драйверов). Он не добавляет избыточности или повышенной надежности (он полагается на базовую систему хранения для обеспечения надежности). Вместо этого он обеспечивает большую гибкость и дополнительные функции. LVM никогда не должен видеть, как диск исчезает или выходит из строя, потому что отказ диска должен обрабатываться RAID (будь то программный или аппаратный). Если вы потеряли диск и не можете продолжить работу (перестроить RAID и т. Д.), Вам следует перейти к резервным копиям. Никогда не следует пытаться восстановить данные из неполного массива (если это так, вам нужно переоценить весь свой дизайн).
Среди вещей, которые вы получаете с LVM, - это возможность легко увеличивать и уменьшать разделы / файловые системы, возможность динамически выделять новые разделы, возможность делать снимки существующих разделов и монтировать снимки как разделы с доступом только для чтения или записи. Снимки могут быть невероятно полезными, особенно для таких вещей, как резервное копирование.
Лично я использую LVM для каждого раздела (кроме / boot) на каждой сборке, и я делаю это последние 4 года. Работа с блоками, не связанными с LVM, является огромной проблемой, когда вы хотите добавить или изменить структуру диска. Если вы используете Linux, вам определенно нужно использовать LVM. [Примечание: приведенный выше материал о LVM был обновлен, чтобы лучше объяснить, что это такое и как оно вписывается в уравнение хранения.]
Что касается RAID, я не делаю сервера без рейда. При таких низких ценах на диски я бы выбрал RAID1 или RAID10. Быстрее, проще и надежнее.
Честно говоря, если вы не связаны с Ubuntu (что я обычно рекомендую), или если ящик выполняет другие задачи, вы можете изучить OpenFiler. Он превращает ваш ящик в устройство хранения данных с веб-интерфейсом и будет обрабатывать все RAID / LVM / и т. Д. За вас, а также позволит вам экспортировать хранилище как SMB, NFS, iSCSI и т. Д. Простая настройка.
ZFS действительно надежна и значительно упрощает управление хранилищем. В качестве бонуса: smb интегрирован с ZFS в OpenSolaris и очень хорошо справляется с Raid. Подождите несколько дней, загрузите уже выпущенную версию 2009.6 и опробуйте ее на тестовой машине. Я уверен, что вам понравится ZFS.
А по поводу вашего комментария, что ZFS новый: уже не очень новый!
Центральный вопрос: «Насколько важны эти данные?»
Если ответ - «Я могу легко воссоздать это», вам нужен RAID5, возможно, с LVM поверх него для простоты управления.
Если ответ: «Я могу воссоздать это, но это займет некоторое время, и люди будут жаловаться», вам нужен RAID 6 или, что более вероятно, RAID 1/10.
Если ответ: «Никто не работает, пока я воссоздаю его и убедюсь, что он идеален», вам нужен ZFS / Raid-Z.
Обратите внимание, что вы всегда можете воссоздать его. RAID не является резервной копией.
Для подключения большого количества дисков к одному шасси лучше всего подходит аппаратный RAID-контроллер. Он предоставит множество разъемов SATA для ваших дисков, резервирование через RAID-5 или, предпочтительно, RAID-6, и может также обеспечивают лучшую производительность.
Производительность программного RAID часто выше, чем у аппаратного RAID в тестах, однако обслуживание файлов и программный RAID интенсивно нагружают процессор и конкурируют за ваши процессоры во время работы. Мой опыт показывает, что, если вы не используете двухъядерные четырехъядерные системы, правильно сконфигурированный аппаратный RAID превзойдет программный RAID.
Хорошие аппаратные контроллеры с хорошей поддержкой linux:
RAID НЕ похож на LVM. Вы можете использовать RAID для создания отказоустойчивых разделов, но LVM используется для упрощения разбиения диска и редактирования файловой системы. Вы можете использовать RAID поверх LVM или ZFS (ZFS может работать как с RAID, так и с LVM). На мой взгляд, ZFS работает лучше LVM, но:
В Ubuntu я предпочитаю использовать RAID5 MD с LVM.
Посмотрите, что предлагают Nexenta и OpenSolaris, и я думаю, вы будете очень довольны тем, что вы можете получить бесплатно. Ходят слухи, что следующие выпуски OpenFiler также будут использовать порт FreeBSD ZFS (хотя с точки зрения функций они сильно отстают).
При этом я стараюсь избегать использования программных RAID5, RAID6 или RAID50 и предпочитаю использовать аппаратные контроллеры для разгрузки всей работы XOR. RAID1 и RAID10 в программном обеспечении Linux работают довольно хорошо, и с этого момента я поместил LVM поверх них, чтобы обеспечить большую гибкость в том, что делается с блоками, которые у меня есть после резервирования. RAID + LVM + XFS - моя любимая конфигурация Linux, но я бы предпочел ZFS вместо нее.
RAID против LVM на самом деле не очень хорошее сравнение, они выполняют разные роли и часто используются вместе. RAID используется для резервирования дисков, LVM можно использовать для разделения вашего RAID-устройства на логические тома, он используется для легкого изменения размера и для создания моментальных снимков.
Я запустил файловый сервер для очень похожей компании / ситуации. В основном это графический отдел из 3 человек с 30 ТБ памяти и скромным бюджетом небольшой компании. Наши типичные проекты занимали от 0,5 до 6 ТБ. И файловый сервер обслуживал значительную ферму рендеринга, которая действительно могла его использовать.
В моей установке я запускал сервер 3U под управлением Linux с подключенными к нему внешними аппаратными массивами RAID6. Я управлял физическими и логическими томами с помощью LVM и запускал файловую систему XFS. Я бы сделал логический том для каждого проекта, а затем расширял его по мере роста проекта. Когда проект был завершен, я мог заархивировать задание на магнитную ленту и удалить логический том. Это вернет это пространство обратно в группу томов, где оно будет перераспределено для следующего проекта (ов).
Это был очень чистый способ использования нашего хранилища, но у этого подхода есть два недостатка. В конечном итоге вам придется тщательно контролировать размеры логических томов, пытаясь сбалансировать объем пространства, выделенного для логического тома, чтобы у вас было достаточно места для выполнения своей работы, но не перераспределять его и в конечном итоге тратить пространство. Наша ферма рендеринга была способна генерировать много ТБ данных в день, и если вы не обращаете на это пристального внимания, вам в спешке не хватит места. В конце концов я установил несколько скриптов, которые отслеживали тенденции в доступном пространстве на логических томах и автоматически увеличивали их. Даже при наличии 80 или около того логических томов на всех логических томах было много неиспользуемого пространства. Я уже намекнул на вторую проблему ... LVM на самом деле не выполняет тонкую подготовку, а XFS позволяет только увеличивать файловую систему. Таким образом, чрезмерное выделение пространства для логического тома может привести к появлению большого количества неиспользуемого пространства.
Все это было настроено около 5 лет назад, и если бы я настраивал это сегодня, я бы использовал OpenSolaris и ZFS. Основная причина заключается в том, что подход ZFS к объединенному хранилищу означает меньшее управление томами. Вы по-прежнему можете разделить каждый проект на отдельную файловую систему, но без необходимости микроуправления размерами отдельных томов. У ZFS есть несколько других очень хороших функций, которые делают его лучшим выбором, но есть и другие вопросы по сбоям сервера, которые здесь затрагивают.
На мой взгляд, ZFS - лучшее бесплатное решение на сегодняшний день.
Некоторые вещи, которые следует учитывать, если вы останетесь с Linux:
Используйте утилиту «mdadm» для создания массива RAID-5 из ваших дисков.
Это обеспечивает необходимую избыточность, поэтому, если диск выходит из строя, вы можете заменить его без потери данных, а также позволяет использовать 3 из 4 дисков.
Я также рекомендую вам создать том LVM поверх RAID, чтобы вы могли разделить пространство по мере необходимости.
Вы можете взглянуть на AFS. Это даст вам некоторую степень доступности (вы можете получить доступ к этим файлам как в сети, так и за ее пределами) и избыточности (файлы можно реплицировать). Для рабочего процесса, когда вы открываете файл, работаете с ним в течение некоторого времени, а затем сохраняете его, это было бы лучше (с точки зрения сети), чем NFS, по крайней мере, более старый NFS.
Как говорится в другом ответе, LVM широко используется и может объединять несколько дисков в одну «группу томов», которая выглядит как одно огромное блочное устройство. Однако стоит помнить, что это увеличивает вероятность сбоя - требуется только один диск в группе томов, чтобы вывести из строя всю файловую систему, а если у вас четыре диска, соединенных вместе, это в четыре раза более вероятно. Лучше всего использовать LVM поверх RAID1 или аналогичного, чтобы смягчить это. Программный RAID для Linux вполне подходит для этого, хотя аппаратный RAID может быть более удобным.
Извините, это будет комментарий, но у меня нет представителя ...
Как RAID-Z или RAIDZ2 обеспечивают лучшую избыточность, чем RAID6?
ZFS имеет контрольную сумму где угодно
По поводу исходного вопроса. Независимо от данных, я бы использовал 2 активных четности на 10 дисков. Я бы использовал карту RAID хорошего качества, 3ware превосходны. Лично я использую аппаратный RAID с резервным аккумулятором. LVM, чтобы вы могли легко переносить данные по окончании срока службы оборудования. XFS как файловая система.
Почему вы не используете диск или карту SSD для загрузки системного сервера и 500 ГБ в качестве единственного хранилища. Используйте один диск емкостью 500 ГБ, а когда он станет полным, замените его вручную. Вы можете спокойно сделать резервную копию позже на другом компьютере. Потому что во время вращения (вращения) жесткого диска он может быть поврежден. В любом случае, если вы подключите все диски одновременно, все они будут вращаться и могут получить повреждения, если вы его используете или нет. Вероятность отказа повышается при включении большего количества дисков. Используйте по одному за раз и обменивайте его, когда они заполнены или в период времени, ожидающий сбоя (также используйте возможность SMART, чтобы избавиться от этого). Используйте переносной диск или внешний дисковый адаптер SCSI / SATA, чтобы вам не приходилось разбирать компьютерный сервер каждый раз при замене диска. Это самая безопасная и надежная форма. Использование RAID обходится дороже, и вы просто теряете некоторые диски (потому что вы позволяете ему включаться, рискуя быть поврежденным только из-за того, что он включился - глупо или нет?). Если вам нужна более высокая пропускная способность, то использование конфигурации RAID для этого, я думаю, будет хорошим выбором, но никогда не доверяйте конфигурации компьютера. Резервное копирование всегда должно выполняться вручную с участием человека (администратора сети или сервера). Это одна из работ администратора. Вы можете использовать ленты, DVD, BlueRay или другие диски для резервного копирования. Но вам всегда будет нужен надежный носитель данных, а работающий диск - не тот. Выключенный и хорошо сохраненный (в свежем и сухом месте) диск - надежный носитель информации.