Я использую систему хранения. Отказоустойчивость обеспечивается на уровне приложений (файлы хранятся на нескольких серверах, даже в центрах обработки данных).
Поэтому мне не нужна и даже не нужна избыточность на одном сервере (Raid 5 подойдет, но я использую серверы с обычным бюджетом, поэтому все, что требует больших ресурсов или требует дорогостоящего оборудования, плохо).
В настоящее время я использую LVM для создания группы томов из всех дисков на сервере, а затем помещаю на нее один большой том.
Пока это работает нормально.
Проблема в том, что в будущем я хочу использовать более крупные серверы, содержащие до 40+ дисков.
Вероятность выхода из строя одного диска и, таким образом, уничтожения всей группы томов недопустимо высока. Данные хранятся в другом месте и могут быть восстановлены приложением, но восстановление более 100 ТБ через пиринг чертовски дорого и занимает много времени.
Если один диск выйдет из строя, я бы хотел потерять только файлы, хранящиеся на этом диске.
Было бы также идеально, если бы файлы можно было хранить на диске целиком и несколько равномерно распределить по нескольким дискам (из соображений производительности и уменьшения объема данных, которые необходимо восстановить в случае выхода из строя одного диска).
Есть что-то, что подходит моим потребностям?
Я думаю, что это очень распространенная проблема для больших групп томов lvm.
Небольшая программа, которая представляет "объединенный вид" и монтируется через предохранитель, была бы идеальной.
К сожалению, мое приложение недостаточно гибкое, чтобы обрабатывать несколько томов на одном сервере.
Я знаю, что для lvm есть средства восстановления, но, честно говоря, я действительно не хочу запускать их в продуктивной системе ...
Также: как lvm «распределяет» данные по нескольким устройствам в группе томов? Добавляет ли он к первому до полного заполнения, а затем запускает второй? Или это скорее где-то случайно?
Редактировать:
Как это не настоящий вопрос ??? Этот вопрос не о том, «что было бы тоже хорошо ...», этот вопрос также не о избыточности отказоустойчивости.
У меня очень конкретный вопрос. Это просто немного необычно. Вот почему мне нужно задать вопрос, а не вводить его в Google.
Какую программу я могу использовать для объединения нескольких дисков в один большой том И потерять файлы, хранящиеся на ОДНОМ диске, только в случае отказа ОДНОГО диска.
Raid -> этого не делает. Raid может хранить информацию о резервировании, чтобы предотвратить потерю в первом месте. Raid ТАКЖЕ может объединить несколько дисков в один.
Представьте себе маленькую секретаршу, которая получает файл. помещает его на диск, на котором есть свободное место. И если вы его запросите, он его найдет или запомнит, где он был, и даст вам его с этого диска.
Если один диск пропал, маленький секретарь извиняется и говорит, что у него больше нет файлов на этом устройстве, но он может передать вам все остальные.
Это может показаться натяжкой, но, поскольку вы заботитесь только о целостности файлов на конкретном устройстве хранения, посмотрите на Опция копирования файловой системы ZFS, упомянутая здесь и подробно (как "то же самое") на сайте Oracle Вот и Вот. Это очень ориентировано на защиту на уровне файлов, но может быть согласовано с тем, что вы ищете.
В наши дни ZFS доступна для некоторых дистрибутивов Linux, поэтому ОС на основе Solaris больше не является строгим требованием.
Нет, если, нет, но - вам нужна какая-то форма RAID на реальных машинах, я знаю, что вы делаете всю репликацию по частям, но вы не можете ожидать, что это поможет справиться с одним отказом диска - даже если у вас просто есть массивные массивы R6 все равно лучше, чем ничего.
В остальном, похоже, вам просто нужна кластерная файловая система, например, gluster, hadoop dfs или что-то подобное.
Я не тестировал это, но я бы монтировал каждый диск по отдельности и объединял их все вместе, используя файловую систему, например UnionFS или mhddfs. Таким образом, если диск выходит из строя, теряются только файлы на нем, а это именно то, что вы ищете.
Если вы работаете с отказоустойчивостью на уровне приложений, я бы вместо этого использовал более дешевые / меньшие серверы. Если приложение правильно распределено, это означает, что оно будет работать еще быстрее.
Другой альтернативой (не уверен, что это возможно) может быть запуск нескольких экземпляров приложения, направленных на каждый из дисков.
Я думаю, что массивы Raid не подходят для вашего случая использования.
С уважением.