MFS分布式(二)

 

目录

实验前准备(还原上次分布式环境)

数据还原

寻址问题:

冷热数据分离【数据定位】

如何做热被(高可用实施)

构建双机热被集群


实验前准备(还原上次分布式环境)


server1:

systemctl start moosefs-master 
 #用这个命令开不起来是因为上次实验结束后非法关闭虚拟机了,mfs没有正常保持元数据

可以用mfsmaster -a  修复启动
netstat -antlp  #查看端口是否开启

systemctl enable moosefs-master  #设置开机自启
systemctl start moosefs-cgiserv.service  #开启图形接口

 server2、3

systemctl start moosefs-chunkserver
systemctl enable moosefs-chunkserver

客户端(真机中):
mfsmount

网页中:http://172.25.70.1:9425/ #可以看到上次实验的数据

数据还原

客户端:
制造问题:删除文件

cd /mnt/mfs/
cd dir1/
mfsfileinfo passwd  #copy在2上
mfsgettrashtime passwd  #可以看到这个文件默认回收时间
rm -rf passwd 
 # 在分布式文件系统里并没有被删除,在到达回收时间后才会被清理
*默认情况下master端是允许挂接的
df

 解决问题:还原数据

 cd /mnt/
ls
mkdir mfsmeta  #新建立目录作为元数据目录
cd 
mfsmount -m /mnt/mfsmeta/  #-m挂载元数据
mount
cd /mnt/mfsmeta/
ls  #可以看到mfsmeta目录下有一个回收站
cd trash/
ls
find -name *passwd* #用find命令检索passwd
cd 004/
ls
ll
mv 00000004\|dir1\|passwd  undel/
ls
cd /mnt/mfs
cd dir1/
ls  #可以看到passwd文件已经被还原了
mfsfileinfo passwd  #copy在3上

 

寻址问题:

umount /mnt/mfsmeta  #元数据不用的时候可以卸载掉
【客户端要umount卸载掉,再关闭mfs集群,不然客户端容易卡】

dd if=/dev/zero of=bigfile bs=1M count=100
mfsfileinfo bigfile   #可以看到100兆的文件分成了两个chunk
cd ..
cd dir2
ls
dd if=/dev/zero of=bigfile2 bs=1M count=100
mfsfileinfo bigfile2
 #dir2里存的文件有两个副本,每个块会有一个副本,这样dir2的文件有四个副本


冷热数据分离【数据定位】

server1:scp /etc/yum.repos.d/MooseFS.repo server4:/etc/yum.repos.d/  

 添加新的chunkserver

server4:

cd /etc/yum.repos.d/
yum install -y moosefs-chunkserver
mkdir /mnt/chunk3
chown mfs.mfs /mnt/chunk3/
cd /etc/mfs/
vim mfshdd.cfg
  #最后添加:/mnt/chunk3
vim /etc/hosts  
   #添加解析:server1上 mfsmaster
systemctl start moosefs-chunkserver
systemctl enable moosefs-chunkserver

网页上可以看到server4的相关信息

  设置存储类:【默认有9个】
可以通过标签的方式表达主机的位置eg:

server2:

vim /etc/mfs/mfschunkserver.cfg
   第84: LABELS = A
systemctl reload moosefs-chunkserver.service 

 server3:

vim /etc/mfs/mfschunkserver.cfg
   第84: LABELS = B
systemctl reload moosefs-chunkserver.service 

 server4:

vim /etc/mfs/mfschunkserver.cfg
   第84: LABELS = C
systemctl reload moosefs-chunkserver.service 

 网页上:刷新,可以看到我们刚才定义的标签【表达,三个节点处于不同的数据中心】

创建存储类:

 客户端:

cd /mnt/mfs/dir2
mfsfileinfo fstab  #可以看到两个副本分布在3和4上

mfsscadmin create A,B AB_class  
#创建A,B,让数据分别存放在A和B上(2、3) AB_class是创建的存储类的名字,可以随便

mfsscadmin list #列举可以看到刚才创建的节点

网页上:刷新也可以看到刚才创建

mfssetsclass AB_class fstab 
mfsfileinfo fstab   ##可以看到两个副本自动移动到2和3上

补充:

A,B:表示两份,一份在A,一份在B【把数据分布在不同的数据中心】

A,*:表示第一份数据在A上,第二分数据在任意节点上
*,*:表示两份数据,随便放在那个节点上
AB,C+D:表示两份数据,第一份数据在AB节点上(第一份节点要同时有A标签和B 标签);第二分数据,可以在C上,也可以在D上。
A,B[X+Y],C[X+Y]:三分数据,第一份数据在A节点,第二份数据在BX或BY节点,第三份数据在CX或CY节点
A,A:两份数据都在A节点上
A,BC,BC,BC:表示4份数据,一份数据在A上另外三份在BC上

server2

vim /etc/mfs/mfschunkserver.cfg
   第84: LABELS = A S  #S表示固态
systemctl reload moosefs-chunkserver.service 

  server3

vim /etc/mfs/mfschunkserver.cfg
   第84: LABELS = B H #H表示机械的
systemctl reload moosefs-chunkserver.service

 server4:

vim /etc/mfs/mfschunkserver.cfg
   第84: LABELS = C S
systemctl reload moosefs-chunkserver.service 

网页上:刷新可以看到数据节点改变

 客户端:【把数据存到AS或CS上】

mfsscadmin create AS,CS 2S_class #刷新网页也可以看到2S_class
mfssetsclass 2S_class fstab
mfsfileinfo fstab    #可以看到数据在2、4上

 server4:

vim /etc/mfs/mfschunkserver.cfg
   第84: LABELS = C S B
systemctl reload moosefs-chunkserver.service 

客户端:

mfsscadmin create AS,2B[H+S] 3S_class
cd ..
mkdir dir3
mfssetsclass -r 3S_class dir3/
cd dir3/
cp /etc/passwd .
mfsfileinfo passwd 

 server2:

vim /etc/mfs/mfschunkserver.cfg
   第84: LABELS = A S H
systemctl reload moosefs-chunkserver.service 

 server4:

vim /etc/mfs/mfschunkserver.cfg
   第84: LABELS = C S B A
systemctl reload moosefs-chunkserver.service 

 客户端:

mfsscadmin create -C 2AS -K AS,BS -A AH,BH -d 7 4S_class  
#2AS表示两份都在一个数据中心,用固态盘 -K 是保持,保持在AS或BS上 
-A打包,打包在AH和BH上(访问量不大的时候保存在机械盘上), -d时间

mfssetsclass 4S_class passwd  #生效
mfsfileinfo passwd 


如何做热被(高可用实施)


server4:

停掉chunk,之后做master的备机

systemctl stop moosefs-chunkserver.service 
systemctl disable moosefs-chunkserver.service
安装master
yum install -y moosefs-master

 解决1和4数据同步问题
server1:

cd
yum install -y iscsi-*
cd /etc/iscsi/
ls
cat initiatorname.iscsi 
  【InitiatorName=iqn.1994-05.com.redhat:f72fca9bf41】 #默认情况下iqn名字的形式

 server2:
加一块虚拟磁盘(5G就够)【用来做共享存储】

fdisk -l #查看磁盘使用情况
yum install -y targetic
cd 
systemctl start target  #启动

 

targetcli 
-/>   ls
-/>   cd /backstores/
-/backstores>   ls
/backstores> cd block 
/backstores/block> ls
/backstores/block> create my_disk /dev/vdb
/backstores/block> ls
/backstores/block> cd /
/> ls
/> cd iscsi 
/iscsi> ls
/iscsi> create iqn.2021-12.org.westos:target1
/iscsi> ls
/iscsi> cd iqn.2021-12.org.westos:target1/
/iscsi/iqn.20...estos:target1> cd tpg1/
/iscsi/iqn.20...:target1/tpg1> ls
/iscsi/iqn.20...:target1/tpg1> cd acls 
/iscsi/iqn.20...et1/tpg1/acls> ls
/iscsi/iqn.20...et1/tpg1/acls> create iqn.2021-12.org.westos:client
/iscsi/iqn.20...et1/tpg1/acls> cd ..
/iscsi/iqn.20...:target1/tpg1> cd luns 
/iscsi/iqn.20...et1/tpg1/luns> ls
/iscsi/iqn.20...et1/tpg1/luns> create /backstores/block/my_disk 
/iscsi/iqn.20...et1/tpg1/luns> ls
/iscsi/iqn.20...et1/tpg1/luns> cd ..
/iscsi/iqn.20...:target1/tpg1> ls
/iscsi/iqn.20...:target1/tpg1> exit

 server1:

vim /etc/iscsi/initiatorname.iscsi
   #改为:InitiatorName=iqn.2021-12.org.westos:client

 server4:

yum install -y iscsi-*
vim /etc/iscsi/initiatorname.iscsi
   #改为:InitiatorName=iqn.2021-12.org.westos:client

 server1:

iscsiadm -m discovery -t st -p  172.25.70.2
iscsiadm -m node -l  
#-m node 匹配,-l登陆

fdisk -l   #可以找到一个5G的磁盘【是server输出的vdb】
fdisk /dev/sda  #分区
  n(新建)-p(分区)-1(一个主分区)-回车-w(保存)
mkfs.xfs /dev/sda1 #格式化
ls

 server4:

iscsiadm -m discovery -t st -p 172.25.70.2
fdisk -l
iscsiadm -m node -l
server4不用做格式化分区,只需在一个节点做好

server1: 

mount /dev/sda1 /mnt/  #挂到/mnt上(临时目录)
ls
df
cd /var/lib/mfs/
ls
systemctl stop moosefs-master.service 
cp -p * /mnt/  
#拷贝之前要停掉服务,不然没停掉是.back文件,启动找的是metadata.mfs文件没有.back后缀

cd /mnt/
ls
chown mfs.mfs /mnt/  #加权限是跟分区走不是目录
ll -d .
df
cd
umount /mnt/
ll -d /mnt/  #目录又回到原来的样子
【/dev/sda1同时只能一个点去挂载写入,xfs是本地文件系统只允许一个节点可以往里写】

server4:

fdisk -l  #可以找到sda
cd 
mount /dev/sda1 /var/lib/mfs/
cd /var/lib/mfs/
ls
ll
systemctl start moosefs-master
mfsmaster -a
netstat -antlp
systemctl stop moosefs-master.service 
df
cd 
umount /var/lib/mfs/

 


构建双机热被集群

ssh-keygen  #生成密钥
ssh-copy-id server4 #密钥给server4进行免密操作
cd /etc/yum.repos.d/
vim dvd.repo 
  添加高可用目录:
  [HighAvailability]
  name=rhel7.6 HighAvailability
  baseurl=http://172.25.70.250/rhel7/addons/HighAvailability
  gpgcheck=0

yum install -y pacemaker pcs psmisc policycoreutils-python
scp dvd.repo server4:/etc/yum.repos.d/
ssh server4 yum install -y pacemaker pcs psmisc policycoreutils-python
cd
systemctl start pcsd.service
systemctl enable pcsd.service 
ssh server4 systemctl enable --now pcsd.service 
id hacluster
echo westos | passwd --stdin hacluster
ssh server4 'echo westos | passwd --stdin hacluster'
pcs cluster auth server1 server4   #在server1和4节点上做认证:输入用户名。密码是刚給的
pcs cluster setup --name mycluster server1 server4 
pcs cluster start --all    #在所有节点上启动相应程序
pcs status   #看集群状态【此时有警告】
crm_verify -LV  #校验(STONITH是激活状态)
pcs property set stonith-enabled=false   #关掉stonith
crm_verify -LV  #校验就没u报错
pcs status   #状态也ok

【资源级别的监控】

pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.70.100 op monitor interval=30s 
 #对资源每30秒监控一次

pcs status   #vip激活了,默认在server1
ip addr   
pcs status 
ip addr del 172.25.70.100/24 dev eth0

ip addr   #30秒后刚才删掉的vip地址就会自动恢复

pcs status  #可以看到vip监控每隔30秒,在server1没有开启,就会调用脚本再次激活

 

 

 【节点级别监控】

pcs node standby   #让节点休息,不会起资源,会把资源交给集群外另一个节点(server4)
pcs status 
pcs node unstandby  #再次上线
pcs status  #可以看到资源是online的状态
资源操作
pcs resource standards
pcs resource providers
pcs resource agents ocf:heartbeat
pcs resource describe ocf:heartbeat:IPaddr2  
#查看脚本里的选项【(required) 时表示必须要加的选项】
pcs status 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值