Огромная файловая система?
Предположим, что у каждого есть 100 машин (каждый с жестким диском 2 ТБ), все они подключены к сети.
Есть ли способ (в Linux) объединить эти объединенные 200 ТБ дискового пространства в одну папку, которую можно использовать с помощью NFS для всех компьютеров в сети?
По этому маршруту все машины смогут читать / записывать в одну и ту же папку, и таким образом операции ввода-вывода будут равномерно распределены между ними. Это хорошая идея, если нужна большая файловая система для хранения сотен ТБ данных? (примечание: данные будут разбиты на множество небольших файлов размером ~ 500 ГБ каждый).
Есть ли готовое решение (желательно с открытым исходным кодом), которое достигает именно этого?
6 ответов
GPFS IBM может сделать это (примечание: не с открытым исходным кодом).
С помощью 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) при необходимости.
- Я не работаю на IBM, но я немного поиграл с GPFS, и мне понравилось.
У меня еще не было возможности поиграть с ним, поэтому я не могу дать полный обзор, но я бы сказал, посмотрите на облачные материалы Openstack -> http://www.openstack.org/projects/storage/
Ceph - другой, хотя еще не готовый продукт. http://ceph.newdream.net/wiki/Main_Page