溫馨提示×

溫馨提示×

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

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

搭建 GFS 分布式文件系統(tǒng)-----實(shí)操

發(fā)布時間:2020-06-27 20:47:22 來源:網(wǎng)絡(luò) 閱讀:1630 作者:wx5d3faba330584 欄目:云計算

一、GlusterFS 簡介:

GFS是一個可擴(kuò)展的分布式文件系統(tǒng),用于大型的、分布式的、對大量數(shù)據(jù)進(jìn)行訪問的應(yīng)用。它運(yùn)行于廉價的普通硬件上,并提供容錯功能。它可以給大量的用戶提供總體性能較高的服務(wù)。

開源的分布式文件系統(tǒng);
由存儲服務(wù)器、客戶端以及 NFS/Samba 存儲網(wǎng)關(guān)組成;
(1)GlusterFS 特點(diǎn):

擴(kuò)展性和高性能;
高可用性;
全局統(tǒng)一命名空間;
彈性卷管理;
基于標(biāo)準(zhǔn)協(xié)議
(2)模塊化堆棧架構(gòu):

1、模塊化,堆棧式結(jié)構(gòu);
2、通過對模塊的組合,實(shí)現(xiàn)復(fù)雜的功能;
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
3、GlusterFS 工作流程:
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
4、彈性 HASH 算法:

(1)通過 HASH 算法得到一個32位的整數(shù);
(2)劃分為 N 個連接的子空間,每個空間對應(yīng)一個 Brick;
(3)彈性 HASH 算法的優(yōu)點(diǎn):
(4)保證數(shù)據(jù)平均分布在每一個 Brick 中;
(5)解決了對元數(shù)據(jù)服務(wù)器的依賴,進(jìn)而解決了單點(diǎn)故障以及服訪問瓶頸。

二、GlusterFS 的卷類型:

(1)分布式卷:

(1)沒有對文件進(jìn)行分塊處理;
(2)通過擴(kuò)展文件屬性保存 HASH值;
(3)支持的底層文件系統(tǒng)有 ext3 、ext4 、ZFS 、XFS等
特點(diǎn):

(1)文件分布在不同的服務(wù)器,不具備冗余性;
(2)更容易和廉價地擴(kuò)展卷的大??;
(3)單點(diǎn)故障會造成數(shù)據(jù)丟失;
(4)依賴底層的數(shù)據(jù)保護(hù)。
(2)條帶卷:

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

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

(1)同一個文件保存一份或多分副本;
(2)復(fù)制模式因?yàn)橐4娓北?,所以磁盤利用率較低;
(3)多個節(jié)點(diǎn)上的存儲空間不一致,那么將安裝木桶效應(yīng)取最低節(jié)點(diǎn)的容量(4)作為該卷的總?cè)萘?br/>特點(diǎn):

(1)卷中所有的服務(wù)器均保存一個完整的副本;
(2)卷的副本數(shù)量可由客戶創(chuàng)建的時候決定;
(3)至少由兩個塊服務(wù)器或更多服務(wù)器;
(4)具備容災(zāi)性。
(4)分布式條帶卷:

(1)兼顧分布式和條帶卷的功能;
(2)主要用于大文件訪問處理;
(3)至少最少需要 4 臺服務(wù)器。
(5)分布式復(fù)制卷:

(1)兼顧分布式卷和復(fù)制卷的功能;
(2)用于需要冗余的情況下

三、GlusterFS 實(shí)操走起:

五臺虛擬機(jī):一臺作為客戶端,另外四臺作為節(jié)點(diǎn),每個虛擬機(jī)新增4塊磁盤(每個磁盤20G)
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
1、先將各個磁盤分區(qū)、格式化、掛載好,可以使用以下腳本

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

2、在四臺 node 節(jié)點(diǎn)上的操作
(1)修改主機(jī)名(node1、node2、node3、node4),并關(guān)閉防火墻等。

(2)編輯 hosts 文件(當(dāng)用戶在瀏覽器中輸入一個需要登錄的網(wǎng)址時,系統(tǒng)會首先自動從Hosts文件中尋找對應(yīng)的IP地址,一旦找到,系統(tǒng)會立即打開對應(yīng)網(wǎng)頁,如果沒有找到,則系統(tǒng)會再將網(wǎng)址提交DNS域名解析服務(wù)器進(jìn)行IP地址的解析。),添加主機(jī)名和 IP地址

vim   /etc/hosts

192.168.220.172 node1
192.168.220.131 node2
192.168.220.140 node3
192.168.220.136 node4

(3)編寫 yum 源的庫,安裝 GlusterFS :

cd /opt/
mkdir /abc
mount.cifs //192.168.10.157/MHA /abc   //遠(yuǎn)程掛載到本地
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)安裝軟件包

yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

(5)開啟服務(wù)

systemctl start glusterd
systemctl status glusterd

(6)查看狀態(tài)
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
3、時間同步,每臺節(jié)點(diǎn)都需要操作

ntpdate ntp1.aliyun.com   //時間同步

添加存儲信任池,只要在一臺主機(jī)上添加其他三臺節(jié)點(diǎn)即可:
這是在 node1 節(jié)點(diǎn)上的操作:

gluster peer probe node2
gluster peer probe node3
gluster peer probe node4

gluster peer status //查看所有節(jié)點(diǎn)狀態(tài)

搭建 GFS 分布式文件系統(tǒng)-----實(shí)操

四、創(chuàng)建各種卷

1、建分布式卷

gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
  //利用node1和node2上的兩塊磁盤創(chuàng)建;dis-vol為磁盤名;force表示強(qiáng)制

gluster volume start dis-vol    //啟動
gluster volume info dis-vol     //查看狀態(tài)

2、建條帶卷

gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force

gluster volume start stripe-vol
gluster volume info stripe-vol

3、建復(fù)制卷

gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force

gluster volume start rep-vol
gluster volume info rep-vol

4、分布式條帶卷

gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force

gluster volume start dis-stripe
gluster volume info dis-stripe

5、分布式復(fù)制卷

gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force

gluster volume start dis-rep
gluster volume info dis-rep

6、客戶端配置
(1)關(guān)閉防火墻

(2)配置安裝 GFS 源:

cd /opt/
mkdir /abc
mount.cifs //192.168.10.157/MHA /abc   //遠(yuǎn)程掛載到本地
cd /etc/yum.repos.d/

vim GLFS.repo   //新建一個源
[GLFS]
name=glfs
baseurl=file:///abc/gfsrepo
gpgcheck=0
enabled=1

(3)安裝軟件包

yum -y install glusterfs glusterfs-fuse  

(4)修改 hosts文件:

vim /etc/hosts

192.168.220.172 node1
192.168.220.131 node2
192.168.220.140 node3
192.168.220.136 node4

(5)創(chuàng)建臨時掛載點(diǎn):

mkdir -p /text/dis   //遞歸創(chuàng)建一個掛載點(diǎn)
mount.glusterfs node1:dis-vol /text/dis/         //掛載分布式卷

mkdir /text/strip
mount.glusterfs node1:stripe-vol /text/strip/     //掛載條帶卷

mkdir /text/rep
mount.glusterfs node3:rep-vol /text/rep/          //掛載復(fù)制卷

mkdir /text/dis-str
mount.glusterfs node2:dis-stripe /text/dis-str/    //掛載分布式條帶卷

mkdir /text/dis-rep
mount.glusterfs node4:dis-rep /text/dis-rep/        //掛載分布式復(fù)制卷

(6)df-hT:查看掛載信息:
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操

五、測試各個卷

(1)創(chuàng)建 5 個40M 的文件:

dd if=/dev/zero of=/demo1.log bs=1M count=40
dd if=/dev/zero of=/demo2.log bs=1M count=40
dd if=/dev/zero of=/demo3.log bs=1M count=40
dd if=/dev/zero of=/demo4.log bs=1M count=40
dd if=/dev/zero of=/demo5.log bs=1M count=40

(2)創(chuàng)建的 5 個文件分別復(fù)制到不同的卷上:

cp /demo* /text/dis
cp /demo* /text/strip
cp /demo* /text/rep/
cp /demo* /text/dis-str
cp /demo* /text/dis-rep

(3)查看各個卷是如何分布的:ll -h /data/sdb1
1、分布式卷:
可以看出都是每個文件都是完整的。
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
2、條帶卷:
所有文件都被分成各一半進(jìn)行分布存儲。
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
3、復(fù)制卷:
所有文件都被完整復(fù)制一遍,進(jìn)行存儲。
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
4、分布式條帶卷:
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
5、分布式復(fù)制卷:搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操

(4)故障破壞測試:
現(xiàn)在關(guān)閉第二臺節(jié)點(diǎn)服務(wù)器,模擬宕機(jī);再在客戶機(jī)上查看各個卷的情況:
搭建 GFS 分布式文件系統(tǒng)-----實(shí)操
總結(jié):

1、分布式卷所有文件都在;
2、復(fù)制卷所有文件都在;
3、掛載分布式條帶卷只有 demo5.log 一個文件了,丟失了4個;
4、掛載分布式復(fù)制卷所有文件都在;
5、條帶卷所有文件都丟失了。
(5)其他操作:

1、刪除卷(先停止,再刪除):

gluster volume stop 卷名
gluster volume delete 卷名

2、黑白名單設(shè)置:

gluster volume set 卷名 auth.reject 192.168.220.100     //拒絕某臺主機(jī)掛載

gluster volume set 卷名 auth.allow 192.168.220.100      //允許某臺主機(jī)掛載
向AI問一下細(xì)節(jié)

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

AI