內容要點: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節點上都是相同的卷: