распределенные файловые системы - кто что использует

StUV

Rotaredom
распределенные файловые системы - кто что использует

Всем добрый день!

Интересует вопрос синхронизации структуры каталогов/файлов для системы серверов под linux/freebsd.
Т.е. кто/что использует для автоматизации синхронизации файловых хранилищ.
Собственно, достаточно ссылок и аббревиатур (сам ессно уже в гугле)...

Спасибо за любую инфу.
 

Wicked

Новичок
На данный момент внедряем MogileFS. Это не совсем файловая система, скорее сервис, доступный через API.

Для деплоймента проекта (что, по сути, тоже синхронизация) использую rsync.

Может конкретизируешь задачу? Что делать собираешься?
 

StUV

Rotaredom
в общем есть система серверов под linux/freebsd
есть выделенный master, остальные машины работают как slave's с возможностью "горячей" замены одного из них на master, в случае падения первого

соединение между серверами по ssh

необходимо обеспечить полную синхронизацию некоторого дерева файлов с master'a на все остальные сервера
т.е. при появлении/изменении/удалении файла на мастере - в течение "наименьшего" времени эти изменения должны произойти на всех серверах кластера

естественно есть требования по отказоустойчивости, валидации операций в случаях вроде разрыва/перегрузки сети и т.п...

примерно так... =)

-~{}~ 25.12.07 12:54:

промежуточным хранилищем данных может быть какая-нить in-memory database

-~{}~ 25.12.07 16:19:

нафик пост
столько уже нагуглил...
+ отдельное спасибо Wicked за направление поисков

а тема все равно будет дохлой, так как полностью расписать что к чему не смогу... - надо самому ковыряться =)
 

zerkms

TDD infected
Команда форума
нафик пост
столько уже нагуглил...
поделись с общественностью. я, например, специально искать не буду, но при наличии ссылок полистаю для расширения кругозора

да и тему вынесите из корзины... пусть лучше утонет, чем канет в лету
 

StUV

Rotaredom
ссылки от Wicked:
----------
http://en.wikipedia.org/wiki/Category:Distributed_data_sharing
http://en.wikipedia.org/wiki/Category:Network_file_systems
http://en.wikipedia.org/wiki/File_Area_Network

+
можно погуглить по: MogileFS
http://lists.danga.com/pipermail/mogilefs/2006-August/000468.html
http://mogilefs.pbwiki.com/HighLevelOverview
----------

+
я ковырял в основном в сторону: PeerFS, Hadoop, Ceph, Lustre, ...

много статей/новостей/ссылок на www.opennet.ru - через поиск по dfs, nfs, ...
 

Wicked

Новичок
Я бегло просмотрел hadoop'овский HDFS. Накидал небольшое сравнение его с MogileFS, которое мне так и так нужно было по проекту. М.б. будет полезно тем, кто знает один из этих проектов, и хотел бы потрогать второй.

* Обе системы используют один главный сервер метаданных (HDFS' NameNode = MFS' Tracker + Database), и N серверов данных (HDFS' DataNode = MFS' Storage Node).

* MogileFS использует MySQL в качестве хранилища метаданных о хранимых в FS файлах, HDFS - flat файлы и оперативку для оперативности.

* В обоих случаях крайне желательно позаботиться о том, чтобы главный сервер был весь из себя reilable, highly available и failover. Для HDFS есть несколько практик: Во-первых файлы с метаданными можно реплицировать на несколько физических девайсов в рамках сервера. Если есть запасной главный сервер, то на него можно реплицировать метаданные с помощью NFS или DRBD. В MogileFS это все делается типичными для MySQL-сервера практиками (Сам Tracker вроде данные у себя не держит, так что и в репликации не нуждается. Ему только нужно уметь свапаться при падении).

* HDFS сделан на Java. MogileFS - на Perl.

* HDFS исползует иерархическую огранизацию файлов. MofileFS - проскую key -> file.

* HDFS работает с блоками файлов по 64 мегабайта, MogileFS - с файлами целиком. Так что для хранения больших файлов HDFS предпочтительней.

* В HDFS есть подвижки в сторону уменьшения нагрузки на сеть - например, при репликации блоков файлов в первую очередь для репликации выбираются DataNode-ы в той же серверной стойке.

* В слечае, когда файл вдруг оказался чересчур реплицированным, то в MogileFS лишние копии не убиваются. HDFS за этим следит лучше.

* HDFS, как часть проекта Hadoop, больше подходит для произведения работы над большими объемами данными, когда не данные доставляются к вычислительному блоку, а наоборот, задача "приносится" поближе к данным, по принципу MapReduce.
 
Сверху