目录
五、Moose File System的pacemaker高可用
MFS(Moose File System)是一个基于分布式网络文件系统的开源存储系统。MFS可以在多台计算机上组织文件并提供统一的文件系统访问。MFS的主要特点是高可用性、可靠性和扩展性。它使用存储在多个节点上的数据进行数据冗余,并使用快速而可靠的网络传输数据。MFS还支持在运行时动态添加和删除节点,以便随着系统需求的变化而进行快速和灵活的扩展。
Moose File System是一个分布式文件系统,它由多个组件组成。
MooseFS Master是一个开源的分布式文件系统管理器,它能够管理一个或多个MooseFS Chunk Servers,为客户端提供可靠的文件存储和访问服务。MooseFS Master使用Master-Slave架构,它可以处理超过数百个Chunk Server的集群,并且具有高可用性和可伸缩性。它支持多种数据备份策略,可以将数据备份到多个Chunk Server上,从而提高数据的可靠性和容错性。MooseFS Master还提供了Web界面和命令行工具,方便用户管理和监控文件系统的运行状态。
MooseFS Chunk Server 是MooseFS 分布式文件系统中的组成部分之一,主要负责存储和管理文件系统中的文件数据块。每个 MooseFS Chunk Server 可以存储多个数据块,并与 MooseFS Master Server 进行通信以保持文件系统的一致性和可用性。MooseFS Chunk Server 可以在多台服务器上部署,因此 MooseFS 文件系统可以通过多个节点并行地处理文件的存储、访问和备份。
这些组件共同协作,实现文件的存储和访问。MooseFS的设计使得它能够扩展到数百个节点,可以存储数PB的数据。
mfsmount:将 MooseFS 挂载到本地文件系统。
mfsmetarestore:用于将备份中的元数据恢复到 MooseFS 文件系统中。
mfsbackup:用于对 MooseFS 文件系统创建备份。它可以备份整个文件系统或单个目录。
mfsmount.cfg:MooseFS Mount 配置文件。它包含有关如何将 MooseFS 文件系统挂载到本地文件系统的信息。
mfsgooglecache:使用 Google Cloud Storage 作为 MooseFS 缓存。它可以帮助用户提高 MooseFS 系统的性能。
mfshdd:硬盘诊断工具。它可以帮助检测 MooseFS 存储节点中硬盘的健康状态。
mfsgetgoal: 查看设置的副本数
mfssetgoal:设置副本数。(必须设置在 1 到 9 之间,建议不要使用 1)。如果设置的副本数高于 Chunkservers 的总数,则副本数为 Chunkservers 的总数。
mfsdirinfo:查看目录详细信息。
mfsfileinfo:查看文件详细信息。
mfsgettrashtime:查看已删除文件(垃圾)的保留时间(默认为 1天)。
mfssettrashtime:修改已删除文件(垃圾)的保留时间。
mfsscadmin:用于管理MoosesFS存储集群中的文件系统实例。行实例的创建、删除、添加和删除存储节点,以及设置哈希分片策略等操作。
mfssetsclass:用来设置一个或多个文件或目录的存储类别。存储类别确定了文件或目录在存储设备上的位置和使用的存储策略,例如,高速缓存、磁盘存储、或者归档存储。
mfssetsclass [-c class] [-s] [-r] [-d] [-f] file or directory ...
等;
主机 | ip | 角色 |
mfs1 | 192.168.67.41 | Master Servers |
mfs2 | 192.168.67.42 | Chunkservers |
mfs3 | 192.168.67.43 | Chunkservers |
mfs4 | 192.168.67.44 | Clients |
mfs5 | 192.168.67.45 | Chunkservers |
软件安装(Master Servers):
软件仓库(所有节点)
- curl "https://repository.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
- curl "http://repository.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
安装:
- yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
- systemctl enable --now moosefs-master.service
- systemctl enable --now moosefs-cgiserv.service
添加解析
Chunkservers节点安装
yum install moosefs-chunkserver
修改配置:
- cd /etc/mfs/
- vim mfshdd.cfg
- mkdir chunk1
三节点同上
Clients节点安装:
yum install moosefs-client
修改文件(挂载点)
- cd /etc/mfs/
- vim mfsmount.cfg
- /mnt/mfs
-
- cd /mnt
- mkdir mfs
- mfsmount
所有节点都要添加解析
测试
- mkdir dir1
- mkdir dir2
- cd dir1
- touch file1 vim file1 (文件不能为空)
- mfsfileinfo file1
-
- mfsgetgoal -k dir2/
- mfssetgoal -r 1 dir2/
- cd dir2
- touch file1
- mfsfileinfo file1
MooseFS的Storage classes可以根据数据的需求来灵活的配置和选择不同的存储类型。它们可以根据应用需求来提供高性能的读写速度、数据的冗余备份和大规模的数据存储。
label是指对文件或目录进行标记,以便于对它们进行管理和区分。label可以是任何文本字符串,通常用于指示文件或目录的用途、状态或其他属性。例如,您可以为某个目录设置一个label,以指示它是用于存储备份文件,或者为某个文件设置一个label,以指示它是具有高优先级的任务数据。MooseFS使用label可以帮助用户更好地组织和管理文件系统中的数据。
同理扩容节点三
修改配置 添加标签
创建存储类及应用
(1)2S
- mfsscadmin create 2S class 2s
- cd dir1
- mfssetsclass -r class 2s file1
- mfsfileinfo file1
(2) A,B
- mfsscadmin create A,B class_ab
- mfssetsclass -r class ab file1
- mfsfileinfo file1
(3)S,H
- mkdir dir3
- mfsscadmin create S,H class sh
- touch file1
- mfssetsclass -r class sh file1
(4)3S
- mfssetgoal -r 3 dir3/
- 修改标签
- mfsscadmin create 3S class 3s
- mfssetsclass -r class 3s file1
- mfsfileinfo file1
所以创建的存储类
各种组合都可以有
主机 | ip | 角色 |
mfs1 | 192.168.67.41 | Master Servers + pacemaker + ISCSI(Client) |
mfs2 | 192.168.67.42 | Chunkservers |
mfs3 | 192.168.67.43 | Chunkservers |
mfs4 | 192.168.67.44 | Clients + ISCSI(Server) |
mfs5 | 192.168.67.45 | Chunkservers |
mfs6 | 192.168.67.46 | Master Servers + pacemaker + ISCSI(Client) |
防止两台高可用主机mfs用户id不同
- curl "https://repository.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
- curl "http://repository.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
- yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
- systemctl enable --now moosefs-master.service
- systemctl enable --now moosefs-cgiserv.service
查看id
配置软件仓库
- vim /etc/yum.repo.d/yyl.repo
-
-
- [HighAvailability]
- name=rhel7.6 HighAvailability
- baseurl=file:///media/addons/HighAvailability
- gpgcheck=0
安装高可用
yum install -y pacemaker pcs psmisc policycoreutils-python
启动pcsd服务 设置用户密码 节点认证
- systemctl enable --now pcsd.service
- ssh mfs6 systemctl enable --now pcsd.service
-
- echo westos | passwd --stdin hacluster
- ssh mfs6 'echo westos | passwd --stdin hacluster'
-
-
- pcs cluster auth mfs1 mfs6
创建集群
pcs cluster auth mfs1 mfs6
启动集群
- pcs cluster start--all
- pcs cluster enable --all
禁用stonith
pcs property set stonith-enabled=false
服务端配置:
在mfs4上添加一块硬盘
- yum install targetcli -y
- systemctl enable --now target
配置
- /backstores/block create yyl:storage /dev/sdb1
- /iscsi create iqn.2023-11.org.yyl:storage
- /iscsi/iqn.2023-11.org.yyl:storage/tpg1/luns create /backstores/block/yyl:storage
- /iscsi/iqn.2023-11.org.yyl:storage/tpg1/acls create iqn.2023-11.org.yyl:yylkey1
在高可用集群做客户端(mfs1,mfs6)
安装客户端:
yum install iscsi-initiator-utils.x86_64 -y
编辑认证文件
- vim /etc/iscsi/initiatorname.iscsi
- systemctl restart iscsid
客户端测试
- iscsiadm -m discovery -t st -p 192.168.67.44
- iscsiadm -m node -T iqn.2023-11.org.yyl:storage -p 192.168.67.44 -l
在服务端创建分区 格式化:
- fdisk /dev/sdb
- mkfs.xfs /dev/sdb1
测试挂载
应用:
在mfs文件系统
修改权限 可以启动就表示成功
取消挂载
- pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.67.200 op monitor interval=30s
- pcs resource create mfs ocf:heartbeat:Filesystem device=/dev/sdb1 directory=/var/lib/mfs fstype=xfs
- pcs resource create mfs-master systemd:moosefs-master op monitor interval=60s
- pcs resource group add groupmfs vip mfs mfs-master
在集群所有节点添加解析
测试: