跳转至内容

BeeGFS

来自 ArchWiki

本文或本节需要在语言、wiki 语法或风格方面进行改进。请参阅 Help:Style 获取参考。

原因: 一些普遍的样式违规,章节未使用句首大写,内容重复(在 Talk:BeeGFS 中讨论)

BeeGFS是一个可伸缩的网络存储平台,其重点是分布式、弹性、高度可配置,并具有良好的性能和高可靠性。BeeGFS高度可配置,管理员可以控制系统的几乎所有方面。命令行界面用于监控和控制集群。

来自 Wikipedia

BeeGFS(原名FhGFS)是一个并行文件系统,为高性能计算而开发和优化。BeeGFS包含分布式元数据架构,以实现可伸缩性和灵活性。其最重要方面是数据吞吐量。BeeGFS最初由德国弗劳恩霍夫高性能计算中心的一个团队开发,团队负责人Sven Breuner后来成为2014年成立的、负责维护BeeGFS并提供专业服务的衍生公司ThinkParQ的首席执行官。

来自 BeeGFS.io

BeeGFS是领先的并行集群文件系统,开发时高度关注性能,并设计为易于安装和管理。如果I/O密集型工作负载是您的问题,BeeGFS就是解决方案。

术语

提示 完整的词汇表可在官方文档中找到。
节点类型和描述 软件包
管理服务器(一个节点)
  • 管理配置和组成员
  • 服务启动时,其他节点必须知道主机名或IP地址
beegfs-mgmtdAUR
元数据服务器(至少一个节点)
  • 存储目录信息并在存储服务器上分配文件空间
beegfs-metaAUR
存储服务器(至少一个节点)
  • 存储原始文件内容
beegfs-storageAUR
基于InfluxDB / Grafana的监控服务器(可选)
  • 持续监控服务器
  • 实时统计
  • beegfs-admon(基于Java的管理和监控GUI),不得安装在同一服务器上
beegfs-monAUR
BeeGFS管理员实用工具
  • 用于命令行管理的 `beegfs-ctl` 工具
  • 用于文件系统检查的 `beegfs-fsck` 工具
  • 几个小型辅助脚本,如日志记录和DNS解析功能
beegfs-utilsAUR
BeeGFS通用 beegfs-commonAUR
客户端
  • 挂载文件系统的内核模块
  • 需要用户空间辅助守护进程进行日志记录和主机名解析
beegfs-clientAUR

除了这里描述的免费开源软件包外,BeeGFS还提供企业功能和专业支持,其中包括

  • 高可用性
  • 配额强制执行
  • 访问控制列表(ACL)
  • 存储池
  • 通过BeeOND的突发缓冲区功能
警告 虽然BeeGFS服务器组件是用户空间守护进程,但客户端是原生内核模块。最新的BeeGFS v7.1.3版本支持高达4.19.x的内核。因此,`beegfs-client`AUR PKGBUILD中包含许多对客户端源代码构建文件的临时补丁。这反过来可能导致客户端内核模块不稳定。

安装

示例集群部署

以下硬件配置将用于此示例

主机名 IP地址 描述
node01 192.168.0.1 管理服务器和监控(可选)服务器
node02 192.168.0.2 元数据服务器
node03 192.168.0.3 存储服务器
node04 192.168.0.4 客户端
提示 可以自由选择为所有BeeGFS服务使用专用主机。BeeGFS允许在同一台机器上运行任何服务的组合(包括客户端和存储/元数据服务)。特别是管理和监控守护进程不属于性能关键型,因此通常不运行在专用机器上。

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
提示 如果您的InfluxDB安装在另一台主机上,例如`client`,或者您需要使用不同的数据库端口或名称,您还需要修改相应的条目。
/etc/beegfs/beegfs-mon.conf
dbHostName = node04
dbHostPort = 9096
dbHostName = beegfs_mon_client

在管理/监控节点上启动/启用 `beegfs-mon@node01.service`。

默认Grafana面板配置

可以在同一主机上使用提供的安装脚本部署默认的InfluxDBGrafana

# cd /etc/beegfs/grafana
# ./import-dashboards default

访问Grafana面板

访问localhost上的应用程序,例如: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]

服务器调优和高级功能

本文章或章节需要扩充。

原因: 空章节(在 Talk:BeeGFS 中讨论)

InfiniBand支持

ACLs

存储池

配额强制执行

高可用性

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.