У меня есть сервер Linux с множеством дисков 2 ТБ, все в настоящее время в LVM, что дает около 10 ТБ места. Я использую все это пространство на разделе ext4, и в настоящее время у меня около 8,8 ТБ данных.
Проблема в том, что у меня часто возникают ошибки на моих дисках, и даже если я заменяю (то есть я копирую старый диск на новый с помощью dd, я помещаю новый на сервер) их, как только появляются ошибки, Я часто получаю на нем около 100 МБ поврежденных данных. Это сводит e2fsck с ума каждый раз, и часто требуется неделя, чтобы снова привести файловую систему ext4 в нормальное состояние.
Итак, вопрос: Что вы порекомендуете мне использовать в качестве файловой системы на моем LVM? Или что бы вы посоветовали мне сделать вместо этого (мне действительно не нужен LVM)?
Профиль моей файловой системы:
Основная проблема - неисправные диски; Я могу потерять несколько файлов, но не могу позволить себе потерять все одновременно.
Если я продолжу использовать ext4, я слышал, что лучше всего попытаться сделать файловые системы меньшего размера и как-то их «объединить», но я не знаю, как это сделать.
Я слышал, что btrfs было бы неплохо, но я не могу найти никаких подсказок относительно того, как он управляет потерей части диска (или всего диска), когда данные НЕ реплицируются (mkfs.btrfs -d single
?).
Любые советы по вопросу приветствуются, заранее спасибо!
Это не проблема файловой системы, это физические ограничения дисков. Вот некоторые данные:
Для дисков SATA обычно указывается частота неисправимых ошибок чтения (URE) 10 ^ 14. Что означает, что 1 байт на 12 ТБ будет потерян безвозвратно даже если диски работают нормально.
Это означает, что без RAID вы потеряете данные, даже если ни один диск не выйдет из строя - RAID - ваш единственный вариант.
Если вы выберете RAID5 (общая емкость n-1, где n = количество дисков), этого все равно будет недостаточно. С RAID5 10 ТБ, состоящим из 6 жестких дисков по 2 ТБ, вероятность отказа одного диска в год составляет 20%. при выходе из строя одного диска из-за URE у вас будет 50% -ный шанс успешного восстановления RAID5 и восстановления 100% ваших данных.
По сути, с большой емкостью дисков и относительно высоким URE вам нужен RAID6, чтобы быть защищенным даже в случае отказа одного диска.
Прочитайте это: http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162
Сделайте себе одолжение и используйте RAID для своих дисков, может даже программный RAID с mdadm. Также подумайте, почему вы «часто получаете ошибки на ваших дисках» - это ненормально, кроме случаев, когда вы используете дешевые диски SATA для настольных ПК вместо дисков RAID.
После этого файловая система больше не так важна - ext4 и xfs - хороший выбор.
Я постепенно добавляю новые диски большего размера
Поскольку вам интересно использовать LVM и вы хотите работать с несколькими дисками, простым ответом было бы просто использовать функцию зеркалирования, которая является частью LVM. Просто добавьте все физические тома в свой LVM. При создании логического тома передайте --mirrors
вариант. Это дублирует ваши данные.
Другой вариант - просто настроить несколько пар RAID1. Затем добавьте все тома RAID1 в качестве PV в свою группу VG. Затем, когда вы захотите расширить хранилище, просто купите пару дисков.
Мне повезло с ZFS, вы можете проверить, доступен ли он в любом используемом вами дистрибутиве. Справедливое предупреждение, это, вероятно, будет означать перестройку всей вашей системы, но это дает действительно хорошую производительность и отказоустойчивость.
Вам действительно стоит использовать RAID 5, 6, 10, 50 или 60. Вот несколько ресурсов, которые помогут вам начать:
справочная информация о RAID
инструкции и настройка
Посмотрите мои восхитительные ссылки для дополнительных ссылок на RAID: http://delicious.com/slmingol/raid
Если вы действительно беспокоитесь о повреждении данных, я бы порекомендовал файловую систему с контрольной суммой, такую как zfs и btrfs, хотя обратите внимание, что btrfs по-прежнему считается в развитие и не готов к производству.
Нет гарантии, что данные, прочитанные (даже успешно прочитанные) с диска, будут правильными. У блоков есть контрольные суммы, но это простые контрольные суммы, которые не всегда обнаруживают ошибки. Новые файловые системы, такие как ZFS, прикрепляют к файлам более эффективные контрольные суммы и могут (и, как сообщается, делают) вылавливать и исправлять ошибки данных, которые не замечаются жестким диском или контроллером RAID.
Так как @ c2h5oh говорит, то Безвозвратно критично - значит, диск уже попытался перечитать сектор и не смог.
По моему опыту, как только диск начинает производить неустранимые ошибки чтения (URE), некоторые данные теряются навсегда, и ваша единственная надежда - немедленно создать резервную копию всех данных, используя GNU ddrescue, который может повторить попытку отказавших секторов, а также пропустить невосстановимые.
Предполагая, что у вас есть резервные копии, они вполне могли выйти из строя из-за URE и, безусловно, будут иметь некоторые поврежденные файлы, поэтому вам придется собрать полный набор данных из различных резервных копий одной и той же файловой системы.
Стоит прочитать другие ответы, рекомендующие ZFS, так как его непрерывная очистка данных и функции RAID помогут сохранить ваши данные в большей безопасности в будущем - хотя все еще не заменяют резервные копии, которые также защищают от ошибок пользователей и администратора.
Я бы использовал LVM только в том случае, если вам не нужны снимки - он не так хорошо интегрируется с RAID, не включает очистку данных / контрольные суммы данных, и вам все еще нужны резервные копии, поэтому что-то вроде ZFS, вероятно, лучший вариант. Видеть этот ответ о проблемах и рисках LVM для большего.