內容要點:
一、案例概述:
二、部署準備:
三、部署實例:
四、查看存儲方式:
一、案例概述:
本架構是將之前博客中講到的 Glusterfs分佈式文件系統,再結合 KVM 虛擬化,達到一個高可用的效果。
(1)原理:利用Glusterfs的分佈式複製卷,對kvm虛擬機文件進行分佈存儲和冗餘功能。分佈式複製卷主要用於需要冗餘的情況下把一個文件存放在兩個或以上的節點上,當其中一個節點數據丟失或者損壞之後,kvm 仍然能夠通過卷組找到另一節點上的虛擬機文件,保證虛擬機正常運行。當節點修復之後,Glusterfs 會自動同步同一組裏面有數據的節點數據。
(2)Glusterfs 體系結構特點:
將計算、存儲和I/O資源聚合到全局名稱空間中,每臺服務器都被視爲節點,通過添加附加節點或向每個節點添加額外存儲來擴展容量。通過在更多節點之間部署存儲來提高性能。
支持基於文件的鏡像和複製、分條、負載平衡、故障轉移、調度、磁盤緩存、存儲配額、卷快照等。
Glusterfs各客戶端之間無連接,本身依賴於彈性哈希算法,而不是使用集中式或分佈式元數據模型。
Glusterfs通過各種複製選項提供數據可靠性和可用性:複製卷、分佈卷。
(3)原理圖:
二、部署:
1、環境部署:
角色/主機名 | 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 |
2、案例需求:
採用KVM+Glusterfs模式,來保證虛擬機存儲的分佈部署,以及分佈冗餘。避免當虛擬機文件損壞,或者丟失。從而在損壞或就丟失時有實時備份,保證業務正常運行。
3、部署思路:
安裝KVM -----> 所有節點部署Glusterfs -----> 客戶端掛載(Glusterfs)kvm使用掛載的Glusterfs目錄創建虛擬機
三、部署實例:
第一步:安裝部署 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)配置橋接網卡:
1、 vim /etc/sysconfig/network-scripts/ifcfg-ens33 末尾加上這行: BRIDGE=br0 //br0是橋接網卡的名稱 2、 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 3、重啓網卡: 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)虛擬系統管理器:
1、創建兩個存儲池:store;iso
2、選擇路徑:就是剛剛創建的 kgc_disk;kgc_iso
3、添加存儲卷,名爲 centos7:
4、創建新的虛擬機:鏡像和磁盤存儲就路徑就選擇剛剛創建的兩個
選擇主機引導時啓動虛擬機,在選擇開始安裝:
接下來就出現安裝界面:
四、查看存儲方式:
由於,我們剛剛做了 KVM + GFS ,在 node1 上可以查看到 鏡像和磁盤存儲的文件:
由於分佈式複製卷的性質,所以其他三臺node節點上都是相同的卷: