Какая файловая система для больших LVM дисков (8 ТБ)?

21

У меня есть сервер Linux со многими дисками по 2 ТБ, все в настоящее время имеют LVM, что дает около 10 ТБ пространства. Я использую все это пространство в разделе ext4, и в настоящее время у меня есть около 8,8 ТБ данных.

Проблема в том, что я часто получаю ошибки на своих дисках, и даже если я заменяю (то есть копирую старый диск на новый с помощью dd, а затем помещаю новый на сервер), как только появляются ошибки, Я часто получаю около 100 МБ поврежденных данных на нем. Это заставляет e2fsck сходить с ума каждый раз, и часто требуется неделя, чтобы снова вернуть файловую систему ext4 в нормальное состояние.

Итак, вопрос: что бы вы порекомендовали мне использовать в качестве файловой системы на моем LVM? Или что бы вы порекомендовали мне сделать вместо этого (мне не нужен LVM)?

Профиль моей файловой системы:

  • множество папок разных общих размеров (некоторые по 2 ТБ, некоторые по 100 МБ)
  • почти 200 000 файлов разных размеров (3/4 из них около 10 МБ, 1/4 от 100 МБ до 4 ГБ; в настоящее время я не могу получить больше статистики о файлах, так как мой раздел ext4 полностью разрушен за несколько дней)
  • много читает, но мало пишет
  • и мне нужна отказоустойчивость (я перестал использовать mdadm RAID, потому что ему не нравится иметь ОДНУ ошибку на всем диске, и у меня иногда возникают сбойные диски, которые я заменяю, как только могу, но это означает, что я могу получить поврежденные данные на моя файловая система)

Основная проблема - выход из строя дисков; Я могу потерять некоторые файлы, но я не могу позволить себе потерять все одновременно.

Если я продолжу использовать ext4, я услышал, что лучше всего попытаться сделать файловые системы меньшего размера и каким-то образом «объединить» их, но я не знаю как.

Я слышал, что btrfs был бы хорош, но я не могу найти какой-либо подсказки относительно того, как он управляет потерей части диска (или целого диска), когда данные НЕ реплицируются ( mkfs.btrfs -d single?).

Любые советы по этому вопросу будут приветствоваться, заранее спасибо!

alphatiger
источник
1
Точно, какие ошибки на диске вы получаете. Это должно дать подсказку
Сохам Чакраборти
Плохие секторы, часто это всего один или два
поврежденных
Это означает, что ваш диск работает плохо. Вряд ли что-нибудь сделать с файловой системой. Если диск плохой, то, что бы вы ни использовали, будет удобно. Как уже упоминали другие, перейдите на RAID-диски и / или купить корпоративные диски. Также ищите качественные контроллеры тоже.
Сохам Чакраборти
Да, я знаю, поэтому я заменяю диски, которые идут плохо. Извините, если мой вопрос не был ясен. Но все же я думал, что некоторые файловые системы будут вести себя лучше с поврежденными данными ...
alphatiger
Вы действительно должны заменить неисправные части вашего оборудования. Это все равно, что смотреть на манекен для краш-теста после того, как автомобиль врезался в стену со скоростью 200 км / ч. «О, смотри! С его левой ногой почти все в порядке! Тест прошел успешно!» ... никакая файловая система не может помочь вам, если основное оборудование гниет. XFS имеет более быстрый fsck, чем ext *, и после того, как пройдет достаточно времени, и файловая система станет более зрелой, возможно, btrfs также сработает. Тогда есть ZFS, но в Linux его состояние немного печальное.
Янне Пиккарайнен

Ответы:

22

Это не проблема файловой системы, это физические ограничения дисков. Вот некоторые данные:

Диски SATA обычно указываются с невосстановимой частотой ошибок чтения (URE) 10 ^ 14. Это означает, что 1 байт на 12 ТБ будет безвозвратно потерян, даже если диски работают нормально.

Это означает, что без RAID вы потеряете данные, даже если ни один из дисков не выйдет из строя - RAID - единственный вариант.

Если вы выберете RAID5 (общая емкость n-1, где n = количество дисков), этого все равно будет недостаточно. Благодаря RAID 105 ТБ, состоящему из 6 x 2 ТБ жестких дисков, у вас будет 20% вероятности отказа одного диска в год, а при отказе одного диска, благодаря URE у вас будет 50% шансов на успешное восстановление RAID5 и восстановление 100% ваших данных. ,

В основном из-за большой емкости дисков и относительно высокого URE вам нужен RAID6 для обеспечения безопасности даже в случае отказа одного диска.

Читать это: http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162

C2H5OH
источник
3
Подождите, URE означает неустранимая Read Error , но это не означает , что диск фактически HAS ошибку. Следующее чтение может (и, вероятно, будет) возвращать правильный бит. ОС, вероятно, просто перечитает сектор и получит правильные данные. Вы также забыли поговорить о SMART: до того, как какой-либо сектор будет поврежден, SMART попытается прочитать / записать данные из / в него. Если он обнаруживает слишком много сбоев, SMART просто перемещает содержимое сектора в другое место и помечает сектор как BAD, и никто не сможет снова в него записать.
Авио
Итак, вы просто предлагаете купить тонны дисков, не спрашивая, ПОЧЕМУ его диски настолько неисправны. Это может быть проблема с нагревом, это может быть проблема с неисправным контроллером SATA, это может быть проблема плохих разъемов SATA и т. Д. И т. Д. И т. П.
Avio
@ Avio То, что я говорю, это то, что с 10 ТБ данных у вас будут ошибки чтения из-за ограничений жесткого диска, даже если все диски, контроллер SATA, разъемы SATA и т. Д. Находятся в отличном состоянии и работают в соответствии со спецификациями. Я также говорю, что даже если вы решите использовать RAID для смягчения, вам следует использовать RAID6, потому что емкость диска + URE делают даже RAID5 недостаточно надежным. Даже сбой одного диска на RAID5 имеет высокую (50% FFS!) Вероятность потери данных.
c2h5oh
1
@Avio U в URE означает « Неустранимый, как и ушедший навсегда».
c2h5oh
Это может быть проблемой файловой системы, если вы используете копию при записи файловой системы, такую ​​как btrfs или xfs, вы, скорее всего, сможете восстановить предыдущую версию файла, поэтому потеряете только последнее изменение в файле. (если это когда-либо было изменено)
Дженс Тиммерман
13

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

После этого файловая система уже не так важна - ext4, xfs - отличный выбор.

Свен
источник
1
Я согласен, что я должен;) но я не использую RAID по многим причинам. Главное - это цена, так как они в 2-3 раза дороже, и я не могу себе этого позволить. Вторая причина заключается в том, что в прошлый раз, когда я использовал RAID 5, мне посчастливилось получить два поврежденных диска, прежде чем я смог подключить новый и повторно синхронизировать его (у меня не было запасных дисков в то время, мне пришлось ждать новый, я согласен, что с дисками класса RAID, у меня была бы эта проблема). Третья причина заключается в том, что по мере роста объема данных, которые я должен хранить, я постепенно добавляю новые диски большего размера, чего я не могу сделать с конфигурацией RAID.
alphatiger
Поэтому я пытаюсь выяснить, существует ли файловая система, которую кто-то порекомендовал бы мне использовать в конфигурации, где я не могу полагаться на нетленные данные. Тем не менее, спасибо за ваш ответ!
alphatiger
4
То есть вы говорите, что ваши данные не стоят дополнительных затрат? Если вы не можете позволить себе иметь как минимум две копии своих данных, то вам следует считать их утерянными. Вы правы, что RAID5, вероятно, не является хорошим выбором, вам, вероятно, стоит взглянуть на RAID6 или RAID10.
Зоредаче
@alphatiger: Диски слишком дороги, если ваше время и ваши данные слишком дешевы.
Восстановить Монику - М. Шредер
8

Мне повезло с ZFS, вы можете проверить, доступен ли он на любом дистрибутиве, который вы используете. Честное предупреждение, это, вероятно, будет означать перестройку всей системы, но она дает действительно хорошую производительность и отказоустойчивость.

TMN
источник
В настоящее время я использую Debian GNU / Linux, кажется, что есть реализация FUSE, но нет пакета (из-за проблем с лицензированием). Я, вероятно, попробую (после компиляции из исходников, поскольку использование FUSE не очень хорошо для высокой производительности), я не беспокоюсь о необходимости перестраивать всю мою файловую систему. Благодарность !
alphatiger
+1 за ZFS. Традиционный RAID будет молча повреждать данные, потому что он недостаточно умен, чтобы знать, когда блоки неправильны, или как их исправить. ZFS, с другой стороны, будет обнаруживать поврежденные блоки (с помощью контрольных сумм) и восстанавливать их из известных исправных зеркальных копий. Запуск ZFS под FUSE, хотя и не идеальный, будет работать достаточно хорошо для многих рабочих нагрузок. При этом вы должны нагрузочно протестировать свое приложение, прежде чем использовать его в производственной среде.
Багамат
1
Еще +1 для ZFS. Практически все серверы здесь работают под управлением Linux, и я большой поклонник этого, но ZFS оказался настолько полезным для меня за последние 3 с лишним года, что я действительно потратил усилия на изучение и настройку FreeBSD на большая система хранения, чтобы иметь возможность использовать ZFS без каких-либо проблем с лицензированием или производительностью.
SSC
Я использую его под управлением Solaris на своей старой рабочей станции Sun, и производительность не может не вызывать удивления, учитывая аппаратное обеспечение (одноядерный Opteron @ 2,2 ГГц с 3G-памятью и парой 250 ГБ SATA-дисков).
TMN
8

Я постепенно добавляю новые диски больших размеров

Поскольку вы заинтересованы в использовании LVM и хотите работать с несколькими дисками, простой ответ будет состоять в том, чтобы просто использовать функцию зеркалирования, которая является частью LVM. Просто добавьте все физические тома в свой LVM. Когда вы создаете логический том, пропустите --mirrorsопцию. Это дублирует ваши данные.

Другим вариантом может быть установка нескольких пар RAID1. Затем добавьте все тома RAID1 в качестве PV в VG. Тогда, когда вы захотите расширить свое хранилище, просто купите пару дисков.

Zoredache
источник
7

Вы действительно должны использовать RAID 5, 6, 10, 50 или 60. Вот несколько ресурсов для начала:

Справочная информация о RAID

инструкции и настройки

Проверьте мои восхитительные ссылки на дополнительные ссылки RAID: http://delicious.com/slmingol/raid

ОДС
источник
Посмотрите мои комментарии к ответу SvenW, чтобы понять, почему я действительно не хочу RAID. (На самом деле, я уже настроил несколько программных RAID в компании, которая могла себе это позволить ...) Тем не менее, спасибо!
alphatiger
Я всегда использовал обычные диски для RAID, никогда не использовал те, которые рассчитаны на использование RAID, и у меня никогда не было проблем с этим, если вы выбираете RAID с достаточной избыточностью (RAID 6 или RAID 60). При использовании RAID 6 вам нужен четный номер. Вы можете довольно легко наращивать RAID-массивы, заменяя существующие элементы большими дисками, а затем увеличивая пространство на новых дисках.
Slm
4

Если вы действительно беспокоитесь о повреждении данных, я бы порекомендовал файловую систему с контрольной суммой, такую ​​как zfs и btrfs, хотя учтите, что btrfs по-прежнему считается находящимся в разработке и не готовым к работе.

Нет гарантии, что данные, прочитанные (даже успешно прочитанные) с диска, будут правильными. Блоки имеют контрольные суммы, но это простые контрольные суммы, которые не всегда отлавливают ошибки. Более новые файловые системы, такие как ZFS, прикрепляют к файлам более способные контрольные суммы и могут (и, как сообщается, делают) перехватывать и исправлять ошибки данных, не замеченные жестким диском или контроллером RAID.

tylerl
источник
1

Как @ C2H5OH говорит , то неисправимый имеет решающее значение - это означает , что диск уже пытался и не перечитать сектор.

По моему опыту, когда диск начинает выдавать неустранимые ошибки чтения (URE), некоторые данные теряются навсегда, и ваша единственная надежда - немедленно создать резервную копию всех данных, используя GNU ddrescue , который может повторить попытки сбойных секторов, а также пропустить невосстановимые.

Предполагая, что у вас есть резервные копии, они вполне могли потерпеть неудачу из-за URE и, конечно, будут иметь некоторые поврежденные файлы, так что вам придется собрать воедино полный набор данных из различных резервных копий одной и той же файловой системы.

Другие ответы, рекомендующие ZFS, заслуживают прочтения, поскольку их непрерывная очистка данных и функции RAID помогут обеспечить безопасность ваших данных в будущем - хотя они по-прежнему не заменяют резервные копии, которые также защищают от ошибок пользователей и администраторов.

Я бы использовал LVM, только если вам не нужны моментальные снимки - он не так хорошо интегрируется с RAID, не включает в себя очистку данных / контрольные суммы данных, и вам по-прежнему нужны резервные копии, поэтому что-то вроде ZFS, вероятно, является лучшим вариантом. Посмотрите этот ответ о проблемах и рисках LVM больше.

RichVel
источник