一、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