您好,登錄后才能下訂單哦!
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ù)雜的功能;
3、GlusterFS 工作流程:
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)故障以及服訪問瓶頸。
(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)用于需要冗余的情況下
五臺虛擬機(jī):一臺作為客戶端,另外四臺作為節(jié)點(diǎn),每個虛擬機(jī)新增4塊磁盤(每個磁盤20G)
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)
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)
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:查看掛載信息:
(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、分布式卷:
可以看出都是每個文件都是完整的。
2、條帶卷:
所有文件都被分成各一半進(jìn)行分布存儲。
3、復(fù)制卷:
所有文件都被完整復(fù)制一遍,進(jìn)行存儲。
4、分布式條帶卷:
5、分布式復(fù)制卷:
(4)故障破壞測試:
現(xiàn)在關(guān)閉第二臺節(jié)點(diǎn)服務(wù)器,模擬宕機(jī);再在客戶機(jī)上查看各個卷的情況:
總結(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ī)掛載
免責(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)容。