内容要点:node
1、案例概述:算法
2、部署准备:vim
3、部署实例:centos
4、查看存储方式:缓存
1、案例概述:bash
本架构是将以前博客中讲到的 Glusterfs分布式文件系统,再结合 KVM 虚拟化,达到一个高可用的效果。服务器
(1)原理:利用Glusterfs的分布式复制卷,对kvm虚拟机文件进行分布存储和冗余功能。分布式复制卷主要用于须要冗余的状况下把一个文件存放在两个或以上的节点上,当其中一个节点数据丢失或者损坏以后,kvm 仍然可以经过卷组找到另外一节点上的虚拟机文件,保证虚拟机正常运行。当节点修复以后,Glusterfs 会自动同步同一组里面有数据的节点数据。网络
(2)Glusterfs 体系结构特色:架构
将计算、存储和I/O资源聚合到全局名称空间中,每台服务器都被视为节点,经过添加附加节点或向每一个节点添加额外存储来扩展容量。经过在更多节点之间部署存储来提升性能。分布式
支持基于文件的镜像和复制、分条、负载平衡、故障转移、调度、磁盘缓存、存储配额、卷快照等。
Glusterfs各客户端之间无链接,自己依赖于弹性哈希算法,而不是使用集中式或分布式元数据模型。
Glusterfs经过各类复制选项提供数据可靠性和可用性:复制卷、分布卷。
(3)原理图:
2、部署:
一、环境部署:
角色/主机名 | IP地址 |
node1 | 192.168.220.179 |
node2 | 192.168.220.131 |
node3 | 192.168.220.140 |
node4 | 192.168.220.136 |
kvm | 192.168.220.137 |
二、案例需求:
采用KVM+Glusterfs模式,来保证虚拟机存储的分布部署,以及分布冗余。避免当虚拟机文件损坏,或者丢失。从而在损坏或就丢失时有实时备份,保证业务正常运行。
三、部署思路:
安装KVM -----> 全部节点部署Glusterfs -----> 客户端挂载(Glusterfs)kvm使用挂载的Glusterfs目录建立虚拟机
3、部署实例:
第一步:安装部署 KVM 虚拟化平台
虚拟机配置以下:添加一块新硬盘;虚拟化引擎选项所有勾选。不然没法建立
(1)挂载镜像文件:
[root@kvm ~]# mkdir /abc [root@kvm ~]# mount.cifs //192.168.41.104/ISO /abc/ [root@kvm ~]# cp /abc/CentOS-7-x86_64-DVD-1708.iso /opt/ //将镜像文件复制到本地目录
(2)安装 KVM 所须要的软件:
yum groupinstall "GNOME Desktop" -y //安装桌面环境 yum install qemu-kvm -y //KVM模块 yum install qemu-kvm-tools -y //KVM调试工具 yum install virt-install -y //构建虚拟机的命令行工具 yum install qemu-img -y //qemu组件,建立磁盘,启动虚拟机 yum install bridge-utils -y //网络支持工具 yum install libvirt -y //虚拟机管理工具 yum install virt-manager -y //图像化管理虚拟机
(3)查看虚拟化是否安装成功:
cat /proc/cpuinfo | grep vmx //查看是否支持虚拟化 lsmod | grep kvm //检查KVM是否安装
(4)配置桥接网卡:
一、 vim /etc/sysconfig/network-scripts/ifcfg-ens33 末尾加上这行: BRIDGE=br0 //br0是桥接网卡的名称 二、 cd /etc/sysconfig/network-scripts/ cp -p ifcfg-ens33 ifcfg-br0 vim ifcfg-br0 修改桥接网卡信息以下: TYPE=Bridge PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=br0 DEVICE=br0 ONBOOT=yes IPADDR=192.168.220.137 NETMASK=255.255.255.0 GATEWAY=192.168.220.1 三、重启网卡: systemctl restart network
(4)开启虚拟化:
systemctl start libvirtd systemctl enable libvirtd
第二步:GlusterFS 部署
四台节点虚拟机添加一块新的磁盘
(1)修改好各自的主机名,关闭好防火墙。
(2)修改 /etc/hosts 文件,四台节点操做相同:
vim /etc/hosts 添加如下内容: 192.168.220.179 node1 192.168.220.131 node2 192.168.220.140 node3 192.168.220.136 node4 192.168.220.137 kvm
(3)安装 GlusterFS :
cd /opt/ mkdir /abc mount.cifs //192.168.10.157/MHA /abc //远程挂载到本地 cd /etc/yum.repos.d/ mkdir bak mv Cent* bak/ //将原来的源都移到新建的文件夹中 vim GLFS.repo //新建一个源 [GLFS] name=glfs baseurl=file:///abc/gfsrepo gpgcheck=0 enabled=1
(4)时间同步设置:
ntpdate ntp1.aliyun.com //时间同步(每台节点都须要操做) 添加存储信任池,在node1上添加全部节点: [root@localhost yum.repos.d]# gluster peer probe node2 peer probe: success. [root@localhost yum.repos.d]# gluster peer probe node3 peer probe: success. [root@localhost yum.repos.d]# gluster peer probe node4 peer probe: success. [root@localhost yum.repos.d]# gluster peer status //查看全部节点状态
(5)磁盘配置:
fdisk /dev/sdb //配置 mkfs.xfs /dev/sdb1 //格式化 mkdir -p /data/sdb1 //建立挂载点 mount /dev/sdb1 /data/sdb1/ //挂载
(6)建立分布式复制卷:
[root@node1 ~]# gluster volume create models replica 2 node1:/data/sdb1 node2:/data/sdb1 node3:/data/sdb1 node4:/data/sdb1 force [root@node1 ~]# gluster volume start models //开启卷 volume start: models: success
第三步: 客户端挂载glusterfs卷
(1)修改 hosts 文件:
vim /etc/hosts 添加如下主机名和对应IP地址: 192.168.220.179 node1 192.168.220.131 node2 192.168.220.140 node3 192.168.220.136 node4 192.168.220.137 kvm
(2)GlusterFS 部署:
[root@kvm ~]# cd /etc/yum.repos.d/ [root@kvm yum.repos.d]# mkdir bak [root@kvm yum.repos.d]# mv Cent* bak/ [root@kvm yum.repos.d]#mkdir /aaa [root@kvm yum.repos.d]#mount.cifs //192.168.41.104/MHA /aaa [root@kvm yum.repos.d]# vim GLFS.repo 添加如下代码: [GLFS] name=glfs baseurl=file:///aaa/gfsrepo gpgcheck=0 enabled=1 yum install -y glusterfs glusterfs-fuse //安装依赖包 再将原来的CentOS源转移出来: [root@kvm yum.repos.d]#mv bak/* ./
(3)挂载卷:
mkdir /kvmdata //建立挂载点 mount.glusterfs node1:models /kvmdata/ //将分布式复制卷挂载
再建立两个文件,一个做为 kvm虚拟化存储磁盘、一个为虚拟化镜像文件:
cd /kvmdata/ mkdir kgc_disk kgc_iso //kgc_disk做为磁盘存储位置;kgc_iso做为镜像存储位置 cd /opt/ mv CentOS-7-x86_64-DVD-1708.iso /kvmdata/kgc_iso/ //将镜像拷贝到刚刚建立好的文件里 virt-manager //进入虚拟化建立
(4)虚拟系统管理器:
一、建立两个存储池:store;iso
二、选择路径:就是刚刚建立的 kgc_disk;kgc_iso
三、添加存储卷,名为 centos7:
四、建立新的虚拟机:镜像和磁盘存储就路径就选择刚刚建立的两个
选择主机引导时启动虚拟机,在选择开始安装:
接下来就出现安装界面:
4、查看存储方式:
因为,咱们刚刚作了 KVM + GFS ,在 node1 上能够查看到 镜像和磁盘存储的文件:
因为分布式复制卷的性质,因此其余三台node节点上都是相同的卷: