BeeGFS 部署指南
wutz opened this issue · 0 comments
wutz commented
-
准备
-
节点规划
角色 主机名 存储 mgmt/meta node201 1 x 960G NVMe SSD mgmt/meta node202 1 x 960G NVMe SSD storage node301 2 x 15.36TB NVMe SSD storage node302 2 x 15.36TB NVMe SSD client node401 NA - 512GB of metadata capacity is usually good for about 150 million user files
- metadata apacity: 0.5% of total storage space
-
配置 hosts
-
配置 ssh 无密码登录
-
配置软件安装源
## 所有 Server 节点执行 $ export VERSION=7.4.2 # Ubuntu $ export CODENAME=$(lsb_release -cs) $ sudo wget -O /etc/apt/sources.list.d/beegfs-${CODENAME}.list https://www.beegfs.io/release/beegfs_${VERSION}/dists/beegfs-${CODENAME}.list # old $ sudo wget -q https://www.beegfs.io/release/beegfs_${VERSION}/gpg/GPG-KEY-beegfs -O- | apt-key add - # new $ sudo wget -q https://www.beegfs.io/release/beegfs_${VERSION}/gpg/GPG-KEY-beegfs -O- | gpg --dearmor > /etc/apt/trusted.gpg.d/beegfs.gpg $ sudo apt update # RHEL-Like $ export CODENAME=rhel8 $ sudo wget -O /etc/yum.repos.d/beegfs_${CODENAME}.repo https://www.beegfs.io/release/beegfs_${VERSION}/dists/beegfs-${CODENAME}.repo
-
如果配置 IB/ROCE 网络,所有 meta, storage 和 client 节点需要安装 NVDIA MLNX_OFED 驱动
-
-
安装
# mgmt node $ sudo yum install beegfs-mgmtd # meta node $ sudo yum install beegfs-meta libbeegfs-ib # storage node $ sudo yum install beegfs-storage libbeegfs-ib # client node $ sudo yum install beegfs-client beegfs-helperd beegfs-utils
- 只有安装了 InfiniBand, Omni-Path, RoCE 网络设备的环境才需要安装
- server:
libbeegfs-ib
- client: 在服务启动时 autobuild beegfs.ko
- server:
- 只有安装了 InfiniBand, Omni-Path, RoCE 网络设备的环境才需要安装
-
配置
## mgmt node $ sudo /opt/beegfs/sbin/beegfs-setup-mgmtd -p /data/beegfs/beegfs_mgmtd
## meta node ## 准备数据目录 $ lsblk $ sudo mkfs -t xfs /dev/nvme0n1 $ sudo mkdir -p /data/lun_meta # 获取 nvme0n1 的 UUID 填入下面的 /etc/fstab 中,例如获取的 UUID 为 fFvJ2Q-ej1Z-4cYD-tVlY-9FQe-NQcr-5dUvp7 $ sudo lsblk -o +UUID # blkid $ sudo vi /etc/fstab UUID=fFvJ2Q-ej1Z-4cYD-tVlY-9FQe-NQcr-5dUvp7 /data/lun_meta xfs defaults,nofail 0 2 $ sudo mount -a ## 指定元数据服务 sid 为 201/202, 管理节点为 node201 # node201 节点执行 $ sudo /opt/beegfs/sbin/beegfs-setup-meta -p /data/lun_meta -s 201 -m node201 # node202 节点执行 $ sudo /opt/beegfs/sbin/beegfs-setup-meta -p /data/lun_meta -s 202 -m node201
## storage node ## 如果有多个 nvme 设备重复下面过程 $ sudo mkfs -t xfs /dev/nvme0n1 $ sudo mkdir -p /data/lun_storage_1 # 例如获取 UUID 为 JQtAcv-HYg5-dCPh-UNfM-4mLF-BmHt-HB8AQY $ sudo lsblk -o +UUID $ sudo vi /etc/fstab UUID=JQtAcv-HYg5-dCPh-UNfM-4mLF-BmHt-HB8AQY /data/lun_storage_1 xfs defaults,nofail 0 2 $ sudo mount -a # 301 为存储节点代号,30101 是设备的代号, 管理节点为 node201 # node301 节点执行 $ sudo /opt/beegfs/sbin/beegfs-setup-storage -p /data/lun_storage_1 -s 301 -i 30101 -m node201 $ sudo /opt/beegfs/sbin/beegfs-setup-storage -p /data/lun_storage_2 -s 301 -i 30102 -m node201 # node302 节点执行 $ sudo /opt/beegfs/sbin/beegfs-setup-storage -p /data/lun_storage_1 -s 302 -i 30201 -m node201 $ sudo /opt/beegfs/sbin/beegfs-setup-storage -p /data/lun_storage_2 -s 302 -i 30202 -m node201 # echo {0..7} |xargs -n1 |xargs -I {} /opt/beegfs/sbin/beegfs-setup-storage -p /data/lun_storage_{} -s 301 -i 3010{} -m node201
## client node # 如果安装 MLNX OFED 驱动,则需要配置自动构建使用的 OFED 驱动位置. $ sudo yum install kernel-devel $ sudo sed -i '/^buildArgs=-j8/s/.*/& OFED_INCLUDE_PATH=\/usr\/src\/ofa_kernel\/default\/include/' /etc/beegfs/beegfs-client-autobuild.conf # 指定管理节点为 node201 $ sudo /opt/beegfs/sbin/beegfs-setup-client -m node201 # 第一项为挂载点 /share,第二项为配置文件 $ sudo vim /etc/beegfs/beegfs-mounts.conf /share /etc/beegfs/beegfs-client.conf
## auth # 准备 $ sudo dd if=/dev/random of=/etc/beegfs/connauthfile bs=128 count=1 $ sudo chmod 400 /etc/beegfs/connauthfile # 拷贝到所有节点 $ sudo scp /etc/beegfs/connauthfile <all-nodes>:/etc/beegfs # mgmt node $ sudo sed -i '/^connAuthFile/s/.*/& \/etc\/beegfs\/connauthfile/' /etc/beegfs/beegfs-mgmtd.conf # meta node $ sudo sed -i '/^connAuthFile/s/.*/& \/etc\/beegfs\/connauthfile/' /etc/beegfs/beegfs-meta.conf # storage node $ sudo sed -i '/^connAuthFile/s/.*/& \/etc\/beegfs\/connauthfile/' /etc/beegfs/beegfs-storage.conf # client node $ sudo sed -i '/^connAuthFile/s/.*/& \/etc\/beegfs\/connauthfile/' /etc/beegfs/beegfs-{client,helperd}.conf
-
启动
# mgmt node $ sudo systemctl start beegfs-mgmtd # meta node $ sudo systemctl start beegfs-meta # storage node $ sudo systemctl start beegfs-storage # client node $ sudo systemctl start beegfs-helperd beegfs-client
-
状态查询
# 元数据节点列表 $ beegfs-ctl --listnodes --nodetype=meta node201 [ID: 201] node202 [ID: 202] # 存储节点列表 $ beegfs-ctl --listnodes --nodetype=storage node301 [ID: 301] node302 [ID: 302] beegfs-ctl --listtargets --mirrorgroups beegfs-ctl --listnodes --nodetype=client # 元数据列表 $ beegfs-ctl --listtargets --nodetype=meta --state TargetID Reachability Consistency NodeID ======== ============ =========== ====== 201 Online Good 201 202 Online Good 202 # 存储列表 $ beegfs-ctl --listtargets --nodetype=storage --state TargetID Reachability Consistency NodeID ======== ============ =========== ====== 30101 Online Good 301 30102 Online Good 301 30201 Online Good 302 30202 Online Good 302
- Reachability 可达性,Buddy Mirror 依赖此状态进行故障转移
- Online
- Offline
- Consistency 一致性
- Good
- Needs-resync: 尝试进行同步数据
- Bad: 尝试同步是吧
- Reachability 可达性,Buddy Mirror 依赖此状态进行故障转移
-
配置 HA Buddy Mirror
# 自动创建元数据 Buddy Group $ sudo beegfs-ctl --addmirrorgroup --automatic --nodetype=meta # 自动创建存储 Buddy Group $ sudo beegfs-ctl --addmirrorgroup --automatic --nodetype=storage # 激活 metadata mirroring 需要重启 meta service, 以及重新挂载所有 Client $ sudo systemctl stop beegfs-client $ sudo beegfs-ctl --mirrormd # 所有 meta 节点执行 $ sudo systemctl restart beegfs-meta # 查看 meta buddy group 状态 $ sudo beegfs-ctl --listmirrorgroups --nodetype=meta # 查看 storage buddy group 状态 $ sudo beegfs-ctl --listmirrorgroups --nodetype=storage # 查询存储设备状态 $ sudo beegfs-ctl --listtargets --mirrorgroups
# 手动创建 Buddy Group $ sudo beegfs-ctl --addmirrorgroup --nodetype=storage --primary=3011 --secondary=3021 --groupid=1
-
设置条带化
$ beegfs-ctl --getentryinfo /share # 设置 raid0 模式目录 $ mkdir /share/raid0-dir $ beegfs-ctl --setpattern --pattern=raid0 --chunksize=1m --numtargets=4 /share/raid0-dir # 设置 Buddy 模式目录 $ mkdir /share/buddy-dir $ beegfs-ctl --setpattern --pattern=buddymirror --chunksize=1m --numtargets=4 /share/buddy-dir