BeeGFS
BeeGFS是一个可伸缩的网络存储平台,其重点是分布式、弹性、高度可配置,并具有良好的性能和高可靠性。BeeGFS高度可配置,管理员可以控制系统的几乎所有方面。命令行界面用于监控和控制集群。
来自 Wikipedia
- BeeGFS(原名FhGFS)是一个并行文件系统,为高性能计算而开发和优化。BeeGFS包含分布式元数据架构,以实现可伸缩性和灵活性。其最重要方面是数据吞吐量。BeeGFS最初由德国弗劳恩霍夫高性能计算中心的一个团队开发,团队负责人Sven Breuner后来成为2014年成立的、负责维护BeeGFS并提供专业服务的衍生公司ThinkParQ的首席执行官。
来自 BeeGFS.io
- BeeGFS是领先的并行集群文件系统,开发时高度关注性能,并设计为易于安装和管理。如果I/O密集型工作负载是您的问题,BeeGFS就是解决方案。
术语
| 节点类型和描述 | 软件包 |
|---|---|
管理服务器(一个节点)
|
beegfs-mgmtdAUR |
元数据服务器(至少一个节点)
|
beegfs-metaAUR |
存储服务器(至少一个节点)
|
beegfs-storageAUR |
基于InfluxDB / Grafana的监控服务器(可选)
|
beegfs-monAUR |
BeeGFS管理员实用工具
|
beegfs-utilsAUR |
BeeGFS通用
|
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
/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面板
访问localhost上的应用程序,例如:http://127.0.0.1:3000。有关非默认安装以及所有监控指标的参考,请参阅自定义Grafana面板配置。
元数据服务器
在元数据服务器上,例如`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的网络硬件的支持。
- 重新构建客户端内核模块。
ACLs
存储池
配额强制执行
高可用性
参见
- 官方网站
- 官方源代码