Linux файловая система для большого файлового сервера

8

Я хотел бы знать от более опытных людей, что было бы лучшим выбором файловой системы для файлового сервера, имеющего более 20 ТБ жестких дисков. Лично я всегда использовал EXT3 (в прежние времена) и EXT4 (с момента выхода) [и однажды ReiserFS 3, хотя это вызвало много повреждений данных] на моих персональных компьютерах и на дисках BOOT и ROOT «маленьких серверов».

Однако, поскольку инструменты EXT4 (хотя и не сам EXT4) ограничены разделами по 16 ТБ, это может быть не лучшим выбором. Дистрибутив будет Debian 6.0 (Squeeze) и / или Gentoo (последняя версия), поэтому ядро ​​должно быть довольно свежим (по крайней мере, в Debian с backports), что означает ядро ​​linux> = 2.6.32.

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

  1. Носители, файлы для загрузки и локальный репозиторий Debian [У меня есть как минимум 6 машин, на которых установлен Debian]> 20 ТБ (возможно, дальнейшее разделение между Media, Downloads и репозиторием Debian)
  2. Данные (документы, фотографии, ...) ~ 4 ТБ БЕЗОПАСНО (имеется в виду raid1 или raid6 + резервный диск)
  3. Резервные копии> = 20 ТБ для резервных копий других компьютеров в моей гигабитной локальной сети (можете ли вы предложить программное обеспечение, которое выполняет резервное копирование всей ОС, даже если это Windows, BackupPC говорит, что это делает, любые альтернативы?)

Быстрые скорости на самом деле не нужны (одновременный доступ: максимум 2 или 3 больших файла, скажем, видео), даже если это «просто» 200 МБ / с, считывающих с 10 HDD Raid6, с которым я могу жить.

Таким образом, я ищу надежную, масштабируемую (то есть легко расширяемую) файловую систему, которая поддерживает более 20 ТБ / раздел. Чем безопаснее и надежнее ФС, тем лучше. Используемое оборудование будет как минимум четырехъядерным (amd x4 630 или intel i5-2500k) и большим количеством оперативной памяти (> 8 ГБ, может быть> 16 ГБ), поэтому требования к оборудованию должны быть выполнены.

Мои ПК / Сервер будут подключены к ИБП (источник бесперебойного питания) в случае сбоя питания. Может выполнять резервное копирование и резервное копирование на отдельных компьютерах (то есть на двух серверах).

user51166
источник
7
При таких масштабах вам действительно нужно серьезно оценивать ZFS. Время восстановления и частота ошибок становятся серьезной проблемой для стольких дисков, сколько вы говорите, и zfs - единственная стабильная fs, доступная на данный момент, с надежной проверкой и исправлением ошибок на всем протяжении стека.
Размол
1
ZFS изначально не поддерживается linux (только с FUSE) или изначально поддерживается в раннем пре-альфа-состоянии. Я не рассматриваю возможность использования соляриса. Никогда не пробовал FreeBSD один раз и может быть заинтересован, однако я не знаю, насколько его программная поддержка raid (и общая поддержка оборудования) так же хороша, как и у linux
user51166
1
Я знаю, но ZFS изначально работает на других платформах. Хотя аппаратная поддержка не такая же, как в Linux, это должно меньше беспокоить вас. ZFS - полный стек хранения, поэтому программный рейд выходит за рамки уравнения. Прежде чем выбирать свою ОС или систему хранения, оцените, как вы собираетесь хранить, управлять, защищать и резервировать ваши данные. Не стоит сбрасывать со счетов ZFS только потому, что он не является родным для Linux, это, вероятно, самое передовое решение для хранения данных, доступное бесплатно прямо сейчас.
afrazier
Спасибо за ваши ответы, но я не понимаю: даже если бы я мог использовать FreeBSD без проблем (не уверен в этом), существует ли что-то вроде программного рейда? Что-нибудь вроде LUKS (Linux Encryption) для FreeBSD? Спасибо. Я в основном знаком с Gentoo и Debian GNU / Linux. Сервер является домашним сервером .
user51166
Или вы предлагаете другую операционную систему, чем FreeBSD?
user51166

Ответы:

3

Многие люди предлагают ZFS. Но ZFS изначально недоступна в Linux, кроме как через fuse. Я не рекомендовал бы это для вашей ситуации, где производительность, вероятно, будет важна.

К сожалению, ZFS никогда не будет доступна в качестве собственного модуля ядра, если вопросы лицензирования не будут решены каким-либо образом.

XFS хорош, но некоторые люди сообщают о проблемах коррупции, и я не могу это прокомментировать. Я играл с маленькими разделами XFS и не имел этих проблем, но не в производстве.

ZFS имеет слишком много преимуществ и полезных функций, которые нельзя игнорировать. В итоге они (см. ZFS Wiki для полного описания того, что они означают):

  • Целостность данных
  • Бассейны для хранения
  • L2ARC
  • Высокая емкость
  • Копирование при записи
  • Снимки и клоны
  • Динамическое чередование
  • Переменные размеры блоков
  • Создание облегченной файловой системы
  • Управление кешем
  • Адаптивный порядок байтов
  • дедупликации
  • Encrypion

Так как же нам обойти это? Моя предложенная альтернатива, которая может удовлетворить вашу ситуацию, - рассмотреть Nexenta . Это ядро ​​Open Solaris с инструментами GNU userland, работающими сверху. Наличие ядра Open Solaris означает наличие ZFS, доступной изначально.

Мэтт Н
источник
С их сайта "Community Edition: Неограниченная, БЕСПЛАТНАЯ версия для хранения до 18 ТБ". Похоже, я бы получил еще одно ограничение, например EXT4
user51166
И я поняла, что ZFS просто «лучший», как говорят почти все. Просто пытаюсь определить «лучшую» дистрибутив операционной системы / Solaris, способный его запустить.
user51166
Похоже, что Debian GNU / kFreeBSD поддерживает ZFS, и мне нравится способ Debian, но я не уверен, что смогу использовать его, поскольку, похоже, существует небольшое поддерживающее сообщество и все еще есть некоторые серьезные ошибки.
user51166
@ user51166 - Вы также должны рассмотреть FreeBSD или FreeNAS, если ваш сервер предназначен исключительно для хранения. Оба имеют поддержку ZFS.
Мэтт Х
4

Вы должны попробовать XFS, хорошо вписываясь в ваши требования:

XFS - это 64-битная файловая система. Он поддерживает максимальный размер файловой системы 8 exbibytes минус один байт, хотя это зависит от ограничений блоков, установленных операционной системой хоста. В 32-битных системах Linux это ограничивает размер файла и файловой системы до 16 ТБ.

aleroot
источник
Я слышал, что это может привести к потере данных при перебоях в питании, и его журналирование не охватывает данные (только журнал на метаданных). Я использовал его один раз на моем рабочем столе, но генерировал много ошибок fsck, поэтому я предпочел не использовать его больше. Я повторяю: производительность не является (основной) областью этого выбора: стабильность есть.
user51166
Я не думаю, что XFS нестабильна, я использую его на нескольких файловых серверах, и у меня не было никаких проблем ...
aleroot
Нет, он стабилен в смысле наличия стабильной версии. Означает ли это, что у меня не будет потерь данных через годы? XFS, безусловно, хорош, если вы ищете производительность, хотя я помню, как читал в сети, что были проблемы с потерей данных (хотя, к счастью, не так много, как с reiser 3). Забыл указать, но я смотрю на настройку LUKS, поэтому LVM будет использоваться , если это может помочь.
user51166
Не существует идеальной файловой системы ... Я думаю, что для ваших требований лучше всего подходит XFS. Там не должно быть никаких проблем с использованием LVM на XFS.
aleroot
Конечно нет. Какие-то особые «ограничения» / «характеристики»? Проблемы с fsck и / или дефрагментацией в сети, такие как проблемы с ext4?
user51166
4

Самый простой вариант - использовать XFS. Много плохого опыта вокруг XFS основано на старых версиях и проблемах аппаратного обеспечения настольных компьютеров, которые, я не думаю, действительно актуальны для новых развертываний на стандартном качественном серверном оборудовании. Я написал сообщение в блоге на эту тему, которое может помочь вам разобраться в текущей ситуации. Есть несколько загруженных баз данных XFS с сотнями пользователей и терабайтами данных, которыми я управляю Они все в ядре Debian Lenny (2.6.26) или более поздней версии, и я не слышал о проблемах с ними годами. Я бы не использовал XFS с любым более ранним ядром, чем это. Я слышал некоторые прямые сообщения о людях, которые видели странное поведение XFS, когда в системе не хватает памяти или дискового пространства; Я сам еще этого не видел.

Единственный другой разумный вариант - это использовать ext4 с некоторым взломом для поддержки более крупных файловых систем. Я не ожидал бы, что это будет иметь совсем другой уровень надежности. Мне приходилось восстанавливать данные из нескольких сломанных систем ext4, которые сталкивались с ошибками ядра, пока все они были исправлены в восходящем, но не в ядре дистрибьютора в то время. У ext4 есть свой собственный набор проблем метаданных, таких как потеря данных о отложенном распределении , что менее вероятно случится в ext3. Я бы оценил вероятность того, что вы столкнетесь с ошибкой ext4, будет даже выше, чем обычно, если вы превысите нормальный размер, просто потому, что, скорее всего, в какой-то момент вы столкнетесь с менее хорошо протестированным новым путем кода ,

Альтернативная идея состоит в том, чтобы просто использовать более безопасный и скучный ext3, принять ограничение в 16 ТБ и лучше разбивать разделы, чтобы ни одна файловая система не была такой большой.

Один свободный конец, связанный с проблемами журнала. Вы не говорили о том, как все эти диски будут подключены. Убедитесь, что вы понимаете смысл любого кэширования записи, которое находится в вашей цепочке хранения здесь. Либо отключите его, либо убедитесь, что файловая система очищает кэш. Я спрятал некоторые ресурсы об этом в Reliable Writes, если вы еще не проверяли это.

Диски отстой. RAID массивы отстой. Файловые системы отстой. Многочисленные сбои случаются. Я рад видеть, что вы уже думаете о резервных копиях; Переход от хорошей к высокой надежности хранилища требует больше, чем просто RAID и некоторые запасные диски. Избыточность стоит чего-то на каждом уровне, и деньги на аппаратное обеспечение и сложность программного обеспечения сложно найти. И следите за вашими ожиданиями. В то время как RAID-массив, который вы рассматриваете, легко может работать с сотнями МБ / с, все, что требуется, - это два параллельных считывателя, постоянно ищущих диск, чтобы уменьшить его до нескольких МБ / с. Я легко могу разбить массив RAID10 на 24 диска, так что он обеспечивает производительность <5 МБ / с по сравнению с эталонной рабочей нагрузкой . Есть одна вещь, которая помогает в этом - убедиться, что вы настраиваете readahead вверх, если возможно несколько потоковых ридеров.

Грег Смит
источник
Я собираюсь использовать это дома, поэтому я планирую использовать основное оборудование. Можно также использовать серверное оборудование, но мне еще предстоит увидеть, что SB-E собирается предложить в следующем году в отделе xeon (мне также хотелось бы немного поиграть с виртуализацией). Если это не слишком дорого, я планирую использовать дешевое серверное оборудование и память ECC (много). По производительности я не хочу ничего особенного.
user51166
И да, я думаю о резервных копиях, но пока не внедрил их. Я все еще ищу решение для резервного копирования, способное создавать образ системы и / или легко заполняемые tar / zip / ... папки с интерфейсом управления, который позволяет выполнять автоматическое восстановление. BackupPC кажется просто ограниченным и не уверен, что я бы доверял Crashplan (используйте его для резервного копирования данных в удаленное местоположение, хотел бы иметь избыточность, следовательно, другую систему). Должен ли я написать веб-интерфейс самостоятельно или что-то подобное уже существует (программное обеспечение с открытым исходным кодом или, по крайней мере, бесплатное использование)
user51166
2

Развертывание на ZFS с использованием FreeBSD может происходить здесь с использованием gbde для шифрования. Сам ZFS будет поставщиком программного RAID, через RAIDZ . Сложность управления хранилищем при создании zpools существенно не отличается от того, что Linux собирается передать вам с помощью mdadm, а в некоторых случаях будет на самом деле проще. Моя первая установка ZFS (на Solaris 10 около 3 лет назад) имела файловую систему 17 ТБ и более 48 дисков. Там я без проблем пережил множество сбоев, изучая управление ZFS.

Главный плюс в том, что контрольная сумма ZFS обеспечивает лучшее обнаружение ошибок, чем Linux, что является защитой от плохого оборудования, которое стоит рассмотреть. Основным недостатком FreeBSD является то, что он менее популярен. Вы еще не знаете, как его администрировать, аппаратная поддержка немного слабее, чем в Linux, и, поскольку это менее популярная платформа, не так много людей обращаются за помощью, если вы столкнетесь с проблемами.

Массив хранения в несколько терабайт действительно показывает, в чем хорош ZFS. Стоит серьезно подумать, хотите ли вы окунуться в что-то новое. Если вы хотите исследовать настоящую паранойю резервного копирования, создайте серверы резервного копирования Linux и FreeBSD, чтобы уменьшить вероятность ошибок ОС в качестве единой точки отказа.

Грег Смит
источник
У меня уже есть Linux в качестве файлового сервера, и я все еще должен начать его использовать (я только начал некоторые тесты программного RAID-6 + LUKS на 6 дисках). Единственная проблема в том, что у меня очень мало времени, чтобы поиграть с ним. Мне нравится твой ответ. Так что вы предлагаете в качестве операционной системы, если идете по пути ZFS? FreeBSD и opensolaris (больше не поддерживается), OpenIndiana (OpenSolaris с открытым исходным кодом, как я видел это) и Solaris Express 11 (Oracle: S), похоже, являются единственными вариантами выбора. Я не использую это на работе, это мое хобби дома, но я все равно хотел бы что-то стабильное и легкое в использовании.
user51166
Я действительно привык использовать способности и появляться. Мое понимание того, как вы компилируете / управляете / обновляете порты в freebsd (cd / usr / ... && make install), заключается в том, что это просто не кажется «правильным» (надеюсь, пурист простит меня за использование этого термина , но мне кажется странным, что если вы хотите обновить пакет, вы должны это сделать, без автоматического разрешения зависимостей [я просто взглянул на руководство FreeBSD]). Или есть простая система управления пакетами, такая как Debian или Gentoo?
user51166
Я уже знаю, что могу просто rsync, что я хочу или tar / diff и т. Д., Но я хотел бы знать, если что-нибудь более практичное уже существует. Спасибо
user51166
-1

В соответствии с странице сравнения файловой системы Википедии , есть много известных файловых систем, которые удовлетворяют вашим потребностям, таких как JFS, XFS, UDF, ZFS, GPFS и Btrfs. Просто нажмите на максимальный размер файла, чтобы отсортировать и выбрать наиболее подходящий

phuclv
источник