溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

KVM+GFS分布式文件系統(tǒng)高可用群集

發(fā)布時間:2020-05-07 21:37:52 來源:網(wǎng)絡 閱讀:1894 作者:一拳超人007 欄目:云計算

GlusterFS概述

GFS是一個可擴展的分布式文件系統(tǒng),用于大型的、分布式的、對大量數(shù)據(jù)進行訪問的應用。它運行于廉價的普通硬件上,并提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。
開源的分布式文件系統(tǒng);
由存儲服務器、客戶端以及 NFS/Samba 存儲網(wǎng)關(guān)組成;

GlusterFS 特點:

擴展性和高性能;
高可用性;
全局統(tǒng)一命名空間;
彈性卷管理;
基于標準協(xié)議

模塊化堆棧架構(gòu)

模塊化,堆棧式的結(jié)構(gòu)
通過對模塊的組合,實現(xiàn)復雜的功能

KVM+GFS分布式文件系統(tǒng)高可用群集

GlusterFS工作原理(流程)

KVM+GFS分布式文件系統(tǒng)高可用群集

彈性 HASH 算法:

通過 HASH 算法得到一個32位的整數(shù);
劃分為 N 個連接的子空間,每個空間對應一個 Brick;

彈性 HASH 算法的優(yōu)點:

保證數(shù)據(jù)平均分布在每一個 Brick 中;
解決了對元數(shù)據(jù)服務器的依賴,進而解決了單點故障以及訪問瓶頸。

GlusterFS 的卷類型:

(1)分布式卷:

沒有對文件進行分塊處理;
通過擴展文件屬性保存 HASH值;
支持的底層文件系統(tǒng)有 ext3 、ext4 、ZFS 、XFS等

特點:

文件分布在不同的服務器,不具備冗余性;
更容易和廉價地擴展卷的大?。?單點故障會造成數(shù)據(jù)丟失;
依賴底層的數(shù)據(jù)保護。

(2)條帶卷:

根據(jù)偏移量將文件分為 N 塊(N個條帶節(jié)點),輪詢的存儲在每個 Brick Server 節(jié)點;
存儲大文件時,性能尤為突出;
不具備冗余性,類似 raid0

特點:

數(shù)據(jù)被分割成更小塊分布到塊服務器群中的不同條帶區(qū);
分布減少了負載且更小的文件加速了存取的速度;
沒有數(shù)據(jù)冗余

(3)復制卷:

同一個文件保存一份或多分副本;
復制模式因為要保存副本,所以磁盤利用率較低;
多個節(jié)點上的存儲空間不一致,那么將安裝木桶效應取最低節(jié)點的容量作為該卷的總?cè)萘?/code>

特點:

卷中所有的服務器均保存一個完整的副本;
卷的副本數(shù)量可由客戶創(chuàng)建的時候決定;
至少由兩個塊服務器或更多服務器;
具備容災性。

(4)分布式條帶卷:

兼顧分布式和條帶卷的功能;
主要用于大文件訪問處理;
至少最少需要 4 臺服務器。

(5)分布式復制卷:

兼顧分布式卷和復制卷的功能;
用于需要冗余的情況下

原理:

KVM+GFS分布式文件系統(tǒng)高可用群集

實驗環(huán)境

node1 192.168.13.128
node2 192.168.13.129
node3 192.168.13.130
node4 192.168.13.131
kvm    192.168.13.133

node節(jié)點服務器添加一塊硬盤

KVM+GFS分布式文件系統(tǒng)高可用群集

kvm虛擬機上開啟虛擬化功能

KVM+GFS分布式文件系統(tǒng)高可用群集

1,分別在node節(jié)點服務器和kvm服務器上配置本地hosts文件,安裝必要的gluster軟件

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# su
[root@localhost ~]# hostnamectl set-hostname kvm
[root@node1 ~]# vim /etc/hosts   ##修改本地解析文件
192.168.13.128 node1
192.168.13.129 node2
192.168.13.130 node3
192.168.13.131 node4
192.168.13.133 kvm
##所有服務器上關(guān)閉防火墻
[root@node1 ~]# systemctl stop firewalld.service   ##關(guān)閉防火墻
[root@node1 ~]# setenforce 0
##分別復制配置文件到所有服務器上
[root@node1 ~]# scp /etc/hosts root@192.168.13.129:/etc/hosts  
[root@node1 ~]# scp /etc/hosts root@192.168.13.130:/etc/hosts 
[root@node1 ~]# scp /etc/hosts root@192.168.13.131:/etc/hosts 
[root@node1 ~]# scp /etc/hosts root@192.168.13.133:/etc/hosts 
##在所有node節(jié)點服務器上掛載,修改yum配置文件
[root@node1 ~]# mkdir /gfs
[root@node1 ~]# mount.cifs //192.168.100.3/LNMP-C7 /gfs/  ##掛載
[root@node1 ~]# cd /etc/yum.repo.d/
[root@node1 yum.repos.d]# mkdir bak    ##創(chuàng)建備份目錄
[root@node1 yum.repos.d]# mv CentOS-* bak/
[root@node1 yum.repos.d]# vim abc.repo  ##所有node節(jié)點都需要配置yum源
[abc]
name=abc
baseurl=file:///gfs/gfsrepo   ##掛載目錄下的gfsrepo路徑
gpgcheck=0
enabled=1
[root@node1 yum.repos.d]# yum clean all && yum makecache ##建立元數(shù)據(jù)緩存
[root@node1 yum.repos.d]# yum install -y glusterfs glusterfs-server gluster-fuse glusterfs-rdma
##安裝必要的軟件
[root@node1 yum.repos.d]# systemctl start glusterd   ##開啟gluster服務
[root@node1 yum.repos.d]# systemctl enable glusterd  ##開機自啟動
[root@node1 yum.repos.d]# ntpdate ntp1.aliyun.com   ##同步時間

2,利用磁盤分區(qū)腳本進行分區(qū)掛載(所有node節(jié)點服務器)

[root@node1 yum.repos.d]# cd /opt/ 
[root@node1 opt]# vim disk.sh //掛載磁盤腳本,一鍵操作
#! /bin/bash
echo "the disks exist list:"
fdisk -l |grep '磁盤 /dev/sd[a-z]'
echo "=================================================="
PS3="chose which disk you want to create:"
select VAR in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit
do
        case $VAR in
        sda)
                fdisk -l /dev/sda
                break ;;
        sd[b-z])
                #create partitions
                echo "n
                                p

                                w"  | fdisk /dev/$VAR

                #make filesystem
                mkfs.xfs -i size=512 /dev/${VAR}"1" &> /dev/null
    #mount the system
                mkdir -p /data/${VAR}"1" &> /dev/null
                echo -e "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0\n" >> /etc/fstab
                mount -a &> /dev/null
                break ;;
        quit)
                break;;
        *)
                echo "wrong disk,please check again";;
        esac
done
[root@node1 opt]# chmod +x fdisk.sh   ##添加執(zhí)行權(quán)限
[root@node1 opt]# ./fdisk.sh   ##執(zhí)行腳本
[root@node1 opt]# df -hT  ##查看掛載信息

3,創(chuàng)建分布式復制卷

##添加存儲信任池,只要在一臺主機上添加其他三臺節(jié)點即可
[root@node1 opt]# gluster peer probe node2 
[root@node1 opt]# gluster peer probe node3
[root@node1 opt]# gluster peer probe node4
[root@node1 opt]# gluster volume create models replica 2 node1:/data/sdb1 node2:/data/sdb1 node3:/data/sdb1 node4:/data/sdb1 force
##創(chuàng)建分布式復制卷
gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
//創(chuàng)建分布式卷
gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
//創(chuàng)建條帶卷
gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
//創(chuàng)建復制卷
gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
//創(chuàng)建分布式條帶卷
[root@node1 opt]# gluster volume start models ##啟動分布式復制卷

4,在kvm服務器上掛載創(chuàng)建好的分布式復制卷

[root@kvm ~]# mkdir /abc
[root@kvm ~]# mount.cifs //192.168.100.3/iOS /abc/
[root@kvm ~]# cp /abc/CentOS-7-x86_64-DVD-1708.iso /opt/ &  
##將centos7鏡像復制到/opt/進行后臺運行
[root@kvm ~]# cd /etc/yum.repo.d/
[root@kvm yum.repos.d]# mkdir bak    ##創(chuàng)建備份目錄
[root@kvm yum.repos.d]# mv CentOS-* bak/
[root@kvm yum.repos.d]# scp -r root@192.168.13.128:/gfs/gfsrepo /  
##復制gfs源到根目錄下
[root@kvm yum.repos.d]# vim abc.repo  ##所有node節(jié)點都需要配置yum源
[abc]
name=abc
baseurl=file:///gfsrepo   ##源文件的路徑
gpgcheck=0
enabled=1
[root@kvm yum.repos.d]# umount /abc/  ##centos鏡像復制完成后解掛載
[root@kvm yum.repos.d]# yum install -y glusterfs glusterfs-fuse  ##安裝必要的軟件
[root@kvm yum.repos.d]# mv bak/* ./   ##釋放原有的yum源
[root@kvm yum.repos.d]# rm -rf bak/
[root@kvm yum.repos.d]# yum list    ##yum列表更新
[root@kvm yum.repos.d]# mkdir /kvmdata   ##創(chuàng)建掛載點
[root@kvm yum.repos.d]# mount.glusterfs node1:models /kvmdata 
##將分布式復制卷掛載到掛載點中
[root@kvm yum.repos.d]# df -hT  ##可以看出原來一共是160G現(xiàn)在是80G

5,在kvm服務器上部署虛擬化平臺

[root@kvm ~]# yum groupinstall "GNOME Desktop" -y   ##桌面環(huán)境
yum install qemu-kvm -y   ##kvm內(nèi)核
yum install qemu-kvm-tools -y ##調(diào)試工具
yum install virt-install -y  ##命令行工具
yum install qemu-img -y   ##組件,創(chuàng)建磁盤,啟動虛擬機
yum install bridge-utils -y ##網(wǎng)絡支持工具
yum install libvirt -y ##虛擬機管理工具
yum install virt-manager -y ##圖形化管理虛擬機
[root@kvm ~]# egrep '(vmx|svm)' /proc/cpuinfo   ##看cpu是否支持
[root@kvm ~]# lsmod | grep kvm   ##檢查kvm是否安裝
[root@kvm ~]# systemctl start libvirtd   ##開啟服務
[root@kvm ~]# systemctl status libvirtd
[root@kvm ~]# systemctl enable libvirtd  ##開啟自啟
[root@kvm ~]# cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]# vim ifcfg-ens33 
##末行添加
BRIDGE=br0
[root@kvm network-scripts]# cp -p ifcfg-ens33 ifcfg-br0  ##復制配置文件為橋接
[root@kvm network-scripts]# vim ifcfg-br0
TYPE=Bridge    ##橋接模式
BOOTPROTO=static  ##靜態(tài)
NAME=br0     ##名字為br0
DEVICE=br0
IPADDR=192.168.13.133   ##ip地址
NETMASKE=255.255.255.0   ##子網(wǎng)掩碼
GATEWAY=192.168.13.1   ##網(wǎng)關(guān)
[root@kvm network-scripts]# service network restart   ##重啟網(wǎng)卡
[root@kvm network-scripts]# cd /kvmdata/  ##切換到GFS掛載點
[root@kvm kvmdata]# mkdir kgc_disk kgc_iso  ##創(chuàng)建文件系統(tǒng)目錄及鏡像目錄
[root@kvm kvmdata]# cp /opt/CentOS-7-x86_64-DVD-1708.iso kgc_iso/ &
##將鏡像文件復制到鏡像目錄中

6,用kvm的圖形化界面進行操作

[root@kvm ~]# virt-manager 

KVM+GFS分布式文件系統(tǒng)高可用群集
KVM+GFS分布式文件系統(tǒng)高可用群集
KVM+GFS分布式文件系統(tǒng)高可用群集
KVM+GFS分布式文件系統(tǒng)高可用群集
KVM+GFS分布式文件系統(tǒng)高可用群集
KVM+GFS分布式文件系統(tǒng)高可用群集
KVM+GFS分布式文件系統(tǒng)高可用群集
KVM+GFS分布式文件系統(tǒng)高可用群集

7,查看node節(jié)點服務器磁盤上的信息

[root@node1 ~]# cd /data/sdb1/  ##分布在各個node節(jié)點服務器上
[root@node1 sdb1]# ls
kgc_disk  kgc_iso

謝謝閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI