云网牛站
所在位置:首页 > Linux新闻 > ScoutFS存档文件系统已经开源,能储存1万亿文件

ScoutFS存档文件系统已经开源,能储存1万亿文件

2018-09-19 12:21:22作者:LINUX人稿源:开源社区

Versity Software 已经把 ScoutFS 存档文件系统开源了,该项目最大的特性是能储存1万亿文件,并且支持跨平台。ScoutFS 项目始创于 2016 年,旨在解决对更大的 POSIX 命名空间和更快的元数据处理的日益增长的要求,它设计能在单一的命名空间储存最多一万亿文件。

 

背景

由于世界各地的大型归档站点都在规划未来的数据存储系统,因此命名空间的可扩展性成了关注重点领域。当前技术通常依赖于中央服务器进行元数据管理,超过10亿个文件的数据收集变得难以管理。在 2016 年,Versity 开始研究一种新的归档文件系统,该系统专门用于通过使用节点集群来扩展元数据处理来管理超大型命名空间。然后“scale out filesystem(扩展文件系统)”即 ScoutFS 就诞生了。

 

ScoutFS简介

ScoutFS 是第一个在 GPL 下发布的存档文件系统,兼容 POSIX,设计和实现将庞大数据集归档到低成本的外部储存源如磁带、磁盘、对象和云端。 

 

ScoutFS主要特性及优势

1.主要特性:

集成一致的索引以加速归档维护操作

共享 LSM 索引结构,用于根据存储带宽扩展元数据速率

从序列化设备写入解耦逻辑锁定以减少争用

2.优势:

节点之间完全一致的 POSIX 语义

丰富的元数据,以确保元数据引用的完整性

原子事务维护一致的持久性结构

一流的内核实现,实现高性能和低延迟

基于开源的 GPLv2 实现

ScoutFS存档文件系统已经开源,能储存1万亿文件

 

相关链接

scoutfs-kmod-dev

 

附:Quick Start

This following a very rough example of the procedure to get up and running, experience will be needed to fill in the gaps. We're happy to help on the mailing list.

Some software components (pacemaker?) may be packaged seperately by distributions.

The requirements for running scoutfs on a small cluster are:

1.One or more nodes running x86-64 CentOS/RHEL 7.4 (or 7.3)

2.Access to a single shared block device

3.IPv4 connectivity between the nodes

The steps for getting scoutfs mounted and operational are:

1.Configure pacemaker clustering and the kernel DLM for locking

2.Get the kernel module running on the nodes

3.Make a new filesystem on the device with the userspace utilities

4.Mount the device on all the nodes

In this example we run all of these commands on two nodes. The block device name is the same on all the nodes. The listen= mount option is given the local IP address of each node.

1.Configure and Start the DLM

yum install pcs pacemaker fence-agents-all

firewall-cmd --permanent --add-service=high-availability

firewall-cmd --add-service=high-availability

passwd hacluster

systemctl start pcsd.service

systemctl enable pcsd.service

pcs cluster auth node1 node2

pcs cluster setup --start --name scoutfs node1 node2

pcs cluster enable

yum install dlm

systemctl enable dlm

systemctl start dlm

2.Get the Kernel Module and Userspace Binaries

1].Either use snapshot RPMs built from git by Versity:

rpm -i https://scoutfs.s3-us-west-2.amazonaws.com/scoutfs-repo-0.0.1-1.el7_4.noarch.rpm

yum install scoutfs-utils kmod-scoutfs

2].Or use the binaries built from checked out git repositories:

yum install kernel-devel

git clone git@github.com:versity/scoutfs-kmod-dev.git

make -C scoutfs-kmod-dev module 

modprobe libcrc32c

insmod scoutfs-kmod-dev/src/scoutfs.ko

git clone git@github.com:versity/scoutfs-utils-dev.git

make -C scoutfs-utils-dev

alias scoutfs=$PWD/scoutfs-utils-dev/src/scoutfs

3.Make a New Filesystem (destroys contents, no questions asked)

scoutfs mkfs /dev/shared_block_device

4.Mount the Filesystem

mkdir /mnt/scoutfs

mount -t scoutfs -o cluster=scoutfs,listen=node_ip_address \

 /dev/shared_block_device /mnt/scoutfs

5.For Kicks, Observe the Metadata Change Index

The meta_seq index tracks the inodes that are changed in each transaction.

scoutfs walk-inodes meta_seq 0 -1 /mnt/scoutfs

touch /mnt/scoutfs/one; sync

scoutfs walk-inodes meta_seq 0 -1 /mnt/scoutfs

touch /mnt/scoutfs/two; sync

scoutfs walk-inodes meta_seq 0 -1 /mnt/scoutfs

touch /mnt/scoutfs/one; sync

scoutfs walk-inodes meta_seq 0 -1 /mnt/scoutfs

 

相关主题

为知笔记Linux版:集收集、记录、保存、分享于一体

精选文章
热门文章