第2版 高性能计算技术、方案和行业全面解析( 二 )


当beegfs客户端被加载时 , 它将挂载在/etc/beegfs/beegfs-mounts.conf中定义的文件系统 , 并非基于/etc/ fstab配置 。
像其他任何Linux服务一样 , 可通过服务启动脚本启动beegfs-client 。系统更新将自动重新编译BeeGFS客户端模块 。当客户端模块重新加载后 , 定义在beegfs-mounts.conf中的文件系统将被重新安装 。
元数据服务器:
元数据服务是横向扩展服务 , 每个元数据服务都有一个确切的元数据目标(ST)来存储元数据 。在元数据目标(MDT)上 , BeeGFS为每个用户创建的文件创建一个元数据文件 。BeeGFS元数据是按目录分布的 。元数据服务向客户端提供数据条带化信息(Coordinate) , 并不参与文件打开/关闭数据访问 。

第2版 高性能计算技术、方案和行业全面解析


PowerEdge R740xd用于元数据存储 , 24个Intel P4600 1.6TB NVMe驱动器 。由于BeeGFS元数据对存储容量的需求非常小的 , 所以不使用专用元数据服务器 , 而只在NUMA0区域的12个驱动器用来承载MetaData Targets(MDTs) , 而NUMA区主机上的剩余的12个驱动器用来承载(STs) 。
第2版 高性能计算技术、方案和行业全面解析


元数据服务:NUMA0区的驱动器配置将用于元数据 , 12个驱动器配置为6* RAID 1磁盘组 , 每组包括2个驱动器 , 每个驱动器均用作MDT 。运行6个元数据服务 , 每个元数据服务处理一个MDT 。
存储服务:NUMA1区剩余的12个存储驱动器 , 配置3* RAID 0磁盘组 , 每组4个驱动器 。在NUMA 1区域上运行3个存储服务 , 对应3个ST 。
因此 , 元数据服务器同时运行6个元数据目标和3个存储目标服务 , 具有6个MDT和3个ST 。每个MDT是基于RAID 1配置的ext4文件系统 , ST基于RAID 0中配置的XFS文件系统 。
存储服务器: 采用5台PowerEdge R740xd服务器 。每个存储服务器被配置为用6*RAID 0组 , 每组4个驱动器 , 每台服务器6个STs(每个NUMA区3个) 。
元数据服务一样 , 存储服务也是横向扩展服务 。BeeGFS文件系统中可能有许多存储服务实例 。但是 , 与元数据服务不同 , 每个存储服务可以有多个存储目标 。存储服务存储条带化用户文件的内容 , 也称为数据块文件 。
第2版 高性能计算技术、方案和行业全面解析


BeeGFS方案包含6个MDTs和33(3+30)个STs , 5*存储服务器可提供211TB的原始容量和190TiB的可用容量 。
TiB估算的可用容量=驱动器数*每个驱动器的容量TB x 0.99(文件系统开销)*(10^ 12/2 ^ 40) 。
鉴于以下因素 , 选择RAID 0配置 , 而不是RAID 10作为存储目标 。
使用dd命令创建一个块为1MiB的10GiB文件 , 测试IO写入性能 , 对于RAID 0设备 , 每个设备的平均速度约为5.1GB/s , 而对于RAID10设备 , 平均的速度为3.4GB/s 。
StorageBench基准测试显示 , RAID 0配置的最大吞吐量为5.5 GB / s , 而RAID 10配置的最大吞吐量为3.4 GB / s 。类似于使用dd命令获得的结果 。
RAID 10可将磁盘容量利用率降低50% , 写入性能也可降低50% 。使用RAID10是获得存储冗余方案成本昂贵 。
NVMe驱动器价格昂贵 , 并且RAID 0配置性能最好 。
英特尔P4600固态硬盘具备DWPD=3的可靠性 , 这意味着单盘每天可写4.8 TB的数据 , 支持未来5年数据量写入 。

推荐阅读