KVM+GFS分布式存储系统构建KVM高可用

一、KVM+GFS 分布式存储系统构建 KVM 高可用

资源分配

  • 4台服务器部署GFS分布式文件系统

  • 1台服务器部署GFS客户端及KVM虚拟机搭建,4G4核

  • 4台GFS服务器各添加一块20G的磁盘,分区并进行挂载

实验环境

主机名 / IP / 磁盘:挂载点

node01 / 172.16.10.11 / sdb1:/data_kvm

node02 / 172.16.10.12 / sdb1:/data_kvm

node03 / 172.16.10.13 / sdb1:/data_kvm

node04 / 172.16.10.14 / sdb1:/data_kvm

kvm / 172.16.10.10

关闭防火墙和selinux

systemctl disable firewalld

systemctl stop firewalld

setenforce 0

添加hosts文件

cat >> /etc/hosts << EOF

172.16.10.11 node01

172.16.10.12 node02

172.16.10.13 node03

172.16.10.14 node04

172.16.10.10 kvm

时间同步

yum -y install chrony

systemctl start chronyd

chronyc sources -v

1.1 部署GFS

1.1.1 node节点安装gluster

  • 所有node节点上操作

 # 安装yum源
 [root@node1 ~]# yum -y install centos-release-gluster 
 # 安装gluster相关软件
 [root@node1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

1.1.2 启动GlusterFS

  • 所有node节点上操作

 [root@node1 ~]# systemctl start glusterd
 [root@node1 ~]# systemctl enable glusterd
 ​
 # 出现以下错误可以尝试升级systemd和openssl 
 [root@node1 ~]# yum -y install systemd openssl 
 # 报错信息:
 [root@node1 ~]# systemctl status glusterd -l 
 ● glusterd.service - GlusterFS, a clustered file-system server 
     Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled) 
     Active: failed (Result: exit-code) since 六 2021-07-24 15:02:18 CST; 26s ago Docs: man:glusterd(8) 
 7月 24 15:02:18 node3 systemd[1]: Starting GlusterFS, a clustered file-system server... 
 7月 24 15:02:18 node3 systemd[1]: glusterd.service: control process exited, code=exited status=1 
 7月 24 15:02:18 node3 systemd[1]: Failed to start GlusterFS, a clustered file- system server. 
 7月 24 15:02:18 node3 systemd[1]: Unit glusterd.service entered failed state. 
 7月 24 15:02:18 node3 systemd[1]: glusterd.service failed. 
 7月 24 15:02:20 node3 systemd[1]: [/usr/lib/systemd/system/glusterd.service:4] Unknown lvalue 'StartLimitBurst' in section 'Unit' 
 7月 24 15:02:20 node3 systemd[1]: [/usr/lib/systemd/system/glusterd.service:5] Unknown lvalue 'StartLimitIntervalSec' in section 'Unit

1.1.3 添加节点

  • 仅在node1上执行以下操作,添加node1~node4节点。

 [root@node1 ~]# gluster peer probe node1 # node1 也可以不执行 
 [root@node1 ~]# gluster peer probe node2 
 [root@node1 ~]# gluster peer probe node3 
 [root@node1 ~]# gluster peer probe node4

1.1.4 查看群集状态

  • 通过以下命令在每个节点上查看群集状态,正常情况下每个节点的输出结果均为“State: Peer in Cluster(Connected)”。如果显示 Disconnected,请检查 hosts 文件配置

 [root@node1 ~]# gluster peer status

1.1.5 创建分布式复制卷

 # 创建分布式复制卷
 [root@node1 ~]# gluster volume create  dis-rep replica 2  node1:/data_kvm node2:/data_kvm node3:/data_kvm node4:/data_kvm force
 # 查看卷的详细信息
 [root@node1 ~]# gluster volume info dis-rep
 # 启用GlusterFS逻辑卷
 [root@node1 ~]# gluster volume start dis-rep
 # 查看卷列表,显示所有的卷
 [root@node1 ~]# gluster volume list
 ​

1.2 部署Gluster客户端即kvm节点

1.2.1 安装客户端软件

 # 安装yum源
 [root@kvm ~]# yum -y install centos-release-gluster 
 # 安装gluster相关软件
 [root@kvm ~]# yum -y install glusterfs glusterfs-fuse

1.2.2 创建挂载点

 [root@kvm ~]# mkdir /data_kvm

1.2.3 挂载Gluster文件系统

 # 手动挂载
 [root@kvm ~]#  mount -t glusterfs node1:dis-rep /data_kvm
 # 自动挂载
 [root@kvm ~]# vim /etc/fstab
 node1:dis-rep  /data_kvm  glusterfs  defaults,_netdev  0  0
 [root@kvm ~]# mount -a
 [root@kvm ~]# df -Th

1.3 部署kvm

1.3.1 部署KVM

  • 仅在kvm节点部署

 # 安装需要的软件包
 [root@kvm ~]# yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager virt-viewer
 ​
# 启动libvirt服务
[root@kvm ~]# systemctl start libvirtd
[root@kvm ~]# systemctl enable libvirtd

 # 配置桥接网络
 [root@kvm ~]# cd /etc/sysconfig/network-scripts/
 [root@kvm network-scripts]# vim ifcfg-ens33 
 #IPADDR=172.16.10.10     ## 这几行注释掉
 #NETMASK=255.255.255.0
 #GATEWAY=172.16.10.2
 #DNS1=172.16.10.2
 BRIDGE=br0
 [root@kvm01 network-scripts]# vim ifcfg-br0 
 TYPE=Bridge    ##类型为 桥接
 NAME=br0
 DEVICE=br0
 IPADDR=172.16.10.10
 NETMASK=255.255.255.0
 GATEWAY=172.16.10.2
 DNS1=172.16.10.2
 UUID=famjoaflajoagm75979afarw  ## 删掉uuid
 [root@kvm01 network-scripts]# systemctl restart network
 ​
 # 在gluster挂载点下创建存储目录
 [root@kvm~]# mkdir /data_kvm/store
 [root@kvm ~]# mkdir /data_lvm/iso
 ​
 # 上传镜像并将镜像移动到/data_kvm/iso/目录下
 [root@kvm01 ~]# mv CentOS-7-x86_64-Minimal-2009.iso /data_kvm/iso/

1.3.2 创建虚拟机test01

 # 创建虚拟机
 [root@kvm01 ~]# virt-install --name test01 -r 1024 --vcpus=1 \
 --disk path=/data_kvm/store/test01.qcow2,size=10 -w bridge:br0 \
 --virt-type=kvm --accelerate --autostart  \
 -c /data_kvm/iso/CentOS-7-x86_64-Minimal-2009.iso  \
 --vnc --vncport=5901 --vnclisten=0.0.0.0  
 WARNING  无法连接到图形控制台:没有安装 virt-viewer。请安装 'virt-viewer' 软件包。
 WARNING  没有控制台用于启动客户机,默认为 --wait -1
 开始安装......
 正在分配 'test01.qcow2'                     |  10 GB  00:00:00 
 ERROR    unsupported format character '奠(0xffffffe7) at index 47
 域安装失败,您可以运行下列命令重启您的域:
 'virsh start virsh --connect qemu:///system start test01'
 否则请重新开始安装。
 ​
 # vnc连接虚拟机进行安装
 ​
 # 安装好开启虚拟机test01
 [root@kvm01 ~]# virsh start test01

1.3.3 验证存储

  • 查看4台node节点上的目录里是否存在虚拟机文件

 [root@node1 ~]# ll /data_kvm/store
 总用量 4168
 -rw-------. 2 root root 21478375424 8 月 29 10:40 test01.qcow2 
 [root@node2 ~]# ll /data_kvm/store
 总用量 4168
 -rw-------. 2 root root 21478375424 8 月 29 10:40 test01.qcow2 
 [root@node3 ~]# ll /data_kvm/store
 总用量 0
 [root@node4 ~]# ll /data_kvm/store
 总用量 0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值