您好,登錄后才能下訂單哦!
GFS是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用。它運行于廉價的普通硬件上,并提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。
開源的分布式文件系統;
由存儲服務器、客戶端以及 NFS/Samba 存儲網關組成;
(1)GlusterFS 特點:
擴展性和高性能;
高可用性;
全局統一命名空間;
彈性卷管理;
基于標準協議
(2)模塊化堆棧架構:
1、模塊化,堆棧式結構;
2、通過對模塊的組合,實現復雜的功能;
3、GlusterFS 工作流程:
4、彈性 HASH 算法:
(1)通過 HASH 算法得到一個32位的整數;
(2)劃分為 N 個連接的子空間,每個空間對應一個 Brick;
(3)彈性 HASH 算法的優點:
(4)保證數據平均分布在每一個 Brick 中;
(5)解決了對元數據服務器的依賴,進而解決了單點故障以及服訪問瓶頸。
(1)分布式卷:
(1)沒有對文件進行分塊處理;
(2)通過擴展文件屬性保存 HASH值;
(3)支持的底層文件系統有 ext3 、ext4 、ZFS 、XFS等
特點:
(1)文件分布在不同的服務器,不具備冗余性;
(2)更容易和廉價地擴展卷的大小;
(3)單點故障會造成數據丟失;
(4)依賴底層的數據保護。
(2)條帶卷:
(1)根據偏移量將文件分為 N 塊(N個條帶節點),輪詢的存儲在每個 Brick (2)Server 節點;
(3)存儲大文件時,性能尤為突出;
(4)不具備冗余性,類似 raid0
特點:
(1)數據被分割成更小塊分布到塊服務器群中的不同條帶區;
(2)分布減少了負載且更小的文件加速了存取的速度;
(3)沒有數據冗余
(3)復制卷:
(1)同一個文件保存一份或多分副本;
(2)復制模式因為要保存副本,所以磁盤利用率較低;
(3)多個節點上的存儲空間不一致,那么將安裝木桶效應取最低節點的容量(4)作為該卷的總容量
特點:
(1)卷中所有的服務器均保存一個完整的副本;
(2)卷的副本數量可由客戶創建的時候決定;
(3)至少由兩個塊服務器或更多服務器;
(4)具備容災性。
(4)分布式條帶卷:
(1)兼顧分布式和條帶卷的功能;
(2)主要用于大文件訪問處理;
(3)至少最少需要 4 臺服務器。
(5)分布式復制卷:
(1)兼顧分布式卷和復制卷的功能;
(2)用于需要冗余的情況下
五臺虛擬機:一臺作為客戶端,另外四臺作為節點,每個虛擬機新增4塊磁盤(每個磁盤20G)
1、先將各個磁盤分區、格式化、掛載好,可以使用以下腳本
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 節點上的操作
(1)修改主機名(node1、node2、node3、node4),并關閉防火墻等。
(2)編輯 hosts 文件(當用戶在瀏覽器中輸入一個需要登錄的網址時,系統會首先自動從Hosts文件中尋找對應的IP地址,一旦找到,系統會立即打開對應網頁,如果沒有找到,則系統會再將網址提交DNS域名解析服務器進行IP地址的解析。),添加主機名和 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 //遠程掛載到本地
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)開啟服務
systemctl start glusterd
systemctl status glusterd
(6)查看狀態
3、時間同步,每臺節點都需要操作
ntpdate ntp1.aliyun.com //時間同步
添加存儲信任池,只要在一臺主機上添加其他三臺節點即可:
這是在 node1 節點上的操作:
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
gluster peer status //查看所有節點狀態
1、建分布式卷
gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
//利用node1和node2上的兩塊磁盤創建;dis-vol為磁盤名;force表示強制
gluster volume start dis-vol //啟動
gluster volume info dis-vol //查看狀態
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、建復制卷
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、分布式復制卷
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)關閉防火墻
(2)配置安裝 GFS 源:
cd /opt/
mkdir /abc
mount.cifs //192.168.10.157/MHA /abc //遠程掛載到本地
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)創建臨時掛載點:
mkdir -p /text/dis //遞歸創建一個掛載點
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/ //掛載復制卷
mkdir /text/dis-str
mount.glusterfs node2:dis-stripe /text/dis-str/ //掛載分布式條帶卷
mkdir /text/dis-rep
mount.glusterfs node4:dis-rep /text/dis-rep/ //掛載分布式復制卷
(6)df-hT:查看掛載信息:
(1)創建 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)創建的 5 個文件分別復制到不同的卷上:
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、條帶卷:
所有文件都被分成各一半進行分布存儲。
3、復制卷:
所有文件都被完整復制一遍,進行存儲。
4、分布式條帶卷:
5、分布式復制卷:
(4)故障破壞測試:
現在關閉第二臺節點服務器,模擬宕機;再在客戶機上查看各個卷的情況:
總結:
1、分布式卷所有文件都在;
2、復制卷所有文件都在;
3、掛載分布式條帶卷只有 demo5.log 一個文件了,丟失了4個;
4、掛載分布式復制卷所有文件都在;
5、條帶卷所有文件都丟失了。
(5)其他操作:
1、刪除卷(先停止,再刪除):
gluster volume stop 卷名
gluster volume delete 卷名
2、黑白名單設置:
gluster volume set 卷名 auth.reject 192.168.220.100 //拒絕某臺主機掛載
gluster volume set 卷名 auth.allow 192.168.220.100 //允許某臺主機掛載
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。