BeeGFS
BeeGFS 是一个可扩展的网络存储平台,专注于分布式、弹性、高度可配置,并具有良好的性能和高可靠性。BeeGFS 非常可配置,管理员几乎可以控制系统的所有方面。命令行界面用于监控和控制集群。
来自 维基百科
- BeeGFS(原名 FhGFS)是一个并行文件系统,为高性能计算开发和优化。BeeGFS 包含一个分布式元数据架构,以实现可扩展性和灵活性。其最重要的方面是数据吞吐量。BeeGFS 最初由德国 弗劳恩霍夫高性能计算中心 的 Sven Breuner 团队开发,他后来成为 ThinkParQ 的 CEO,这是一家成立于 2014 年的衍生公司,旨在维护 BeeGFS 并提供专业服务。
来自 BeeGFS.io
- BeeGFS 是领先的并行集群文件系统,专注于性能开发,并为非常简单的安装和管理而设计。如果 I/O 密集型工作负载是您的问题,BeeGFS 就是解决方案。
术语
节点类型和描述 | 软件包 |
---|---|
管理服务器(一个节点)
|
beegfs-mgmtdAUR |
元数据服务器(至少一个节点)
|
beegfs-metaAUR |
存储服务器(至少一个节点)
|
beegfs-storageAUR |
基于 InfluxDB / Grafana 的监控服务器(可选)
|
beegfs-monAUR |
管理员的 BeeGFS 实用程序
|
beegfs-utilsAUR |
BeeGFS Common
|
beegfs-commonAUR |
客户端
|
beegfs-clientAUR |
除了此处描述的免费和开源软件包外,BeeGFS 还提供许多 企业功能和专业支持,其中包括
- 高可用性
- 配额强制执行
- 访问控制列表 (ACL)
- 存储池
- 带有 BeeOND 的突发缓冲区功能
安装
示例集群部署
以下硬件配置将在此示例中使用
主机名 | IP 地址 | 描述 |
---|---|---|
node01 | 192.168.0.1
|
管理服务器和监控(可选)服务器 |
node02 | 192.168.0.2
|
元数据服务器 |
node03 | 192.168.0.3
|
存储服务器 |
node04 | 192.168.0.4
|
客户端 |
NTP 客户端
安装 并在所有节点上运行时间同步客户端。有关详细信息,请参阅 时间同步。
管理服务器
在管理节点 192.168.0.1
上使用软件包 beegfs-mgmtdAUR 安装 它。
管理服务需要知道它可以将其数据存储在哪里。它只会存储一些节点信息,例如连接数据,因此它不需要太多存储空间,并且其数据访问对性能要求不高。因此,此服务通常不在专用机器上运行。
/etc/beegfs/beegfs-mgmtd
storeMgmtdDirectory = /mnt/beegfs/beegfs-mgmtd
启动/启用 管理节点上的 beegfs-mgmtd@node01.service
。
监控服务器
在管理/监控节点 192.168.0.1
上 安装 软件包 beegfs-monAUR,该软件包从系统收集统计信息,并使用时间序列数据库 InfluxDB 将其提供给用户。为了可视化数据,beegfs-mon
提供了预定义的 Grafana 面板,可以开箱即用。
在运行 beegfs-mon
之前,您需要编辑配置文件 /etc/beegfs/beegfs-mon.conf
。如果所有内容都安装在同一主机上,您只需要指定管理主机
/etc/beegfs/beegfs-mon.conf
sysMgmtHost = localhost
client
,或者您需要使用不同的数据库端口或名称,您还需要修改相应的条目/etc/beegfs/beegfs-mon.conf
dbHostName = node04 dbHostPort = 9096 dbHostName = beegfs_mon_client
启动/启用 管理/监控节点上的 beegfs-mon@node01.service
。
默认 Grafana 面板的配置
您可以对同一主机上的默认 InfluxDB 和 Grafana 部署使用提供的安装脚本。
# cd /etc/beegfs/grafana # ./import-dashboards default
访问 Grafana 面板
在本地主机上访问应用程序,例如:http://127.0.0.1:3000 。有关非默认安装和 自定义 Grafana 面板配置以及 所有监控指标的参考,请参阅。
/mnt/beegfs/beegfs-mgmtd
,监控服务器使用 /mnt/beegfs/beegfs-mon
。元数据服务器
在元数据服务器(即 192.168.0.2
)上 安装 软件包 beegfs-metaAUR。
元数据服务需要知道它可以将其数据存储在哪里以及管理服务在哪里运行。通常,将在不同的机器上运行多个元数据服务。
/etc/beegfs/beegfs-meta.conf
sysMgmtdHost = node01 storeMetaDirectory = /mnt/beegfs/beegfs-meta
启动/启用 元数据节点上的 beegfs-meta@node02.service
。
存储服务器
在存储服务器(即 192.168.0.3
)上 安装 软件包 beegfs-storageAUR。
存储服务需要知道它可以将其数据存储在哪里以及如何连接到管理服务器。通常,每个存储服务将在不同的机器上运行多个存储服务和/或多个存储目标(例如,每个存储服务多个 RAID 卷)。
/etc/beegfs/beegfs-storage.conf
sysMgmtdHost = node01 storeStorageDirectory = /mnt/beegfs/beegfs-storage
启动/启用 存储节点上的 beegfs-storage@node03.service
。
客户端
在客户端节点上 安装 软件包 beegfs-clientAUR,它将构建客户端 内核模块。
客户端服务需要知道它可以连接到哪个管理服务器。
/etc/beegfs/beegfs-client.conf
sysMgmtdHost = node01
客户端服务需要知道它可以将集群存储挂载在哪里,以及客户端配置文件的位置。
/etc/beegfs/beegfs-mount.conf
/mnt/beegfs/beegfs-mount /etc/beegfs/beegfs-client.conf
加载 内核模块及其依赖项。
# modprobe beegfs
启动/启用 客户端节点上的 beegfs-helperd@node04.service
。
启动/启用 客户端节点上的 beegfs-client.service
。
实用程序
安装 软件包 beegfs-utilsAUR。
检查连接性
使用以下命令从客户端节点检查检测到的网络接口和传输协议
# beegfs-ctl --listnodes --nodetype=mgmt --nicdetails node01 [ID: 1] Ports: UDP: 8008; TCP: 8008 Interfaces: + enp0s31f6[ip addr: 192.168.0.1; type: TCP]
# beegfs-ctl --listnodes --nodetype=meta --nicdetails node02 [ID: 2] Ports: UDP: 8005; TCP: 8005 Interfaces: + eno1[ip addr: 192.168.0.2; type: TCP]
# beegfs-ctl --listnodes --nodetype=storage --nicdetails node03 [ID: 3] Ports: UDP: 8003; TCP: 8003 Interfaces: + eno1[ip addr: 192.168.0.3; type: TCP]
# beegfs-ctl --listnodes --nodetype=client --nicdetails 4E451-5DAEDCBF-node04 [ID: 4] Ports: UDP: 8004; TCP: 0 Interfaces: + wlo1[ip addr: 192.168.0.4; type: TCP]
服务器调优和高级功能
InfiniBand 支持
- 显式 安装 beegfs-commonAUR,它将提供
libbeegfs-ib.so
共享对象库。 - 启用对 支持 RDMA 的网络硬件 的支持。
- 重建 客户端 内核模块。
ACL
存储池
配额强制执行
高可用性
参见
- 官方网站
- 官方源代码