SeaweedFS — это простая и хорошо масштабируемая распределенная файловая система. Есть две цели:
хранить миллиарды файлов! чтобы обслуживать файлы быстро!SeaweedFS начиналась как хранилище объектов для эффективной обработки небольших файлов. Вместо того, чтобы управлять всеми метаданными файлов в центральном мастере, центральный мастер управляет только томами файлов и позволяет этим серверам томов управлять файлами и их метаданными. Это снижает давление параллелизма со стороны центрального мастера и распространяет метаданные файлов на серверы томов, обеспечивая более быстрый доступ к файлам (O(1), обычно всего одна операция чтения с диска).
SeaweedFS может прозрачно интегрироваться с облаком. С горячими данными в локальном кластере и горячими данными в облаке со временем доступа O(1) SeaweedFS может обеспечить как быстрое время локального доступа, так и эластичную емкость облачного хранилища без каких-либо изменений на стороне клиента.
Для метаданных каждого файла требуется всего 40 байт дискового пространства. С чтением диска O(1) это настолько просто, что вы можете испытать производительность в своих реальных сценариях использования.
SeaweedFS начал с реализации дизайн-бумаги Facebook Haystack. Кроме того, SeaweedFS реализует кодирование стирания с идеями из f4: Facebook’s Warm BLOB Storage System.
Помимо хранилища объектов дополнительный Filer может поддерживать каталоги и атрибуты POSIX. Filer — это отдельный линейно масштабируемый сервер без сохранения состояния с настраиваемыми хранилищами метаданных, например, MySql, Postgres, Mongodb, Redis, Cassandra, Elastic Search, LevelDB, MemSql, TiDB, Etcd, CockroachDB и т. д.