Предположим, у вас есть 100 машин (каждая с жестким диском емкостью 2 ТБ), все подключенные к сети.
Есть ли способ (в Linux) объединить эти 200 ТБ дискового пространства в одну папку, которую можно использовать совместно с NFS для всех компьютеров в сети?
Следуя этому маршруту, все машины смогут читать / писать в одну и ту же папку, и таким образом ввод / вывод будет равномерно распределяться между ними. Это хорошая идея, если нужна большая файловая система для хранения 100 ТБ данных? (примечание: данные будут разделены на множество файлов меньшего размера, размером ~ 500 ГБ каждый).
Есть ли готовое решение (желательно с открытым исходным кодом), которое позволяет это сделать?
На ум приходят два варианта: GlusterFS и Hadoop HDFS.
IBM GPFS может это сделать (примечание: не с открытым исходным кодом).
С помощью GPFS вы можете создавать сетевые общие диски (NSD), которые состоят из любого типа блочного хранилища (например, локального или представленного через iSCSI или FC). Было бы вполне возможно создать файловую систему (устройство) GPFS, состоящую из NSD, которые охватывают каждый жесткий диск емкостью 2 ТБ на ваших 100 серверах.
Я не буду претендовать на то, чтобы вспомнить все сумасшедшие маркетинговые цифры, но GPFS - одна из самых популярных кластерных файловых систем для суперкомпьютеров в списке «500 лучших», потому что она поддерживает чрезвычайно большие объемы данных и невероятно высокий уровень параллельного ввода-вывода. Википедия есть несколько цифр.
GPFS может реплицировать блоки данных и метаданных в файловой системе. Когда вы создаете свои NSD, вы определяете «группу сбоев», вы делаете это для того, чтобы GPFS записывала реплики ваших блоков в другом месте (то есть вы не хотите, чтобы обе копии вашего блока находились в одной группе сбоев). Вы также можете многоуровневое хранилище, используя их концепцию «пулов хранения», с помощью которой вы можете определить такое поведение, как ... файлы, к которым был получен доступ за последнюю неделю, живут на моих дисках Fusion IO или SSD, но после этого переместите блоки в более дешевое хранилище.
Все узлы в вашем кластере будут иметь доступ к устройству (например, / dev / gpfs0), к которому они могут подключаться и получать к нему доступ, поскольку вся файловая система была локальной для каждого узла. Вы упомянули NFS; в этой модели, однако, нет необходимости вводить дополнительный протокол, если у вас нет систем за пределами кластера 100 узлов, которые действуют как потребители / клиенты данных, и вы не хотите делать их клиентами GPFS / серверами NSD (путем загрузки Модуль ядра GPFS). Однако вы можете легко экспортировать файловые системы GPFS через NFS и даже при необходимости использовать Clustered-NFS (CNFS).
У меня еще не было возможности поиграть с ним, поэтому я не могу дать полный обзор, но я бы посоветовал взглянуть на облачные материалы Openstack -> http://www.openstack.org/projects/storage/
Вы, наверное, хотите что-то вроде PVFS.
Eсть Полный список в Википедии.
Ceph - еще один, но еще не готовый продукт. http://ceph.newdream.net/wiki/Main_Page