在企業中,一些重要的資料一般儲存在硬碟上,雖然硬碟本身的效能也在不斷提高,但 是無論硬碟的存取速度有多快,企業所追尋的首先是可靠性,然後才是效率。如果資料面臨 丟失的風險,再好的硬體也無法挽回企業的損失。加之近幾年雲端計算的出現,對儲存提出了更高的要求。而分散式儲存逐漸被人們所接受,它具有更好的效能、高擴充套件性以及可靠性。 大部分分散式解決方案都是通過元伺服器存放目錄結構等後設資料,後設資料伺服器提供了整個分散式儲存的索引工作。但是一旦後設資料伺服器損壞,整個分散式儲存業將無法運作。
GlusterFS 的工作流程如下
(1) 使用者端或應用程式通過 GlusterFS 的掛載點存取資料。
(2) Linux 系統核心通過 VFS API 收到請求並處理。
(3) VFS 將資料遞交給 FUSE 核心檔案系統,並向系統註冊一個實際的檔案系統 FUSE, 而 FUSE 檔案系統則是將資料通過/dev/fuse 裝置檔案遞交給了 GlusterFS client 端。可以 將 FUSE 檔案系統理解為一個代理。
(4) GlusterFS client 收到資料後,client 根據組態檔對資料進行處理。
(5) 經過 GlusterFS client 處理後,通過網路將資料傳遞至遠端的 GlusterFS Server, 並且將資料寫入伺服器儲存裝置
GlusterFS 支援七種卷,即分散式卷、條帶卷、複製卷、分散式條帶卷、分散式複製卷、 條帶複製卷和分散式條帶複製卷,這七種卷可以滿足不同應用對高效能、高可用的需求。
分散式卷是 GlusterFS 的預設卷,在建立卷時,預設選項是建立分散式卷。在該模式下, 並沒有對檔案進行分塊處理,檔案直接儲存在某個 Server 節點上。直接使用本地檔案系統進行檔案儲存,大部分 Linux 命令和工具可以繼續正常使用。需要通過擴充套件檔案屬性儲存 HASH 值,目前支援的底層檔案系統有 EXT3、EXT4、ZFS、XFS 等,由於使用的是本地檔案系統,所以存取效率並沒有提高,反而會因為網路通訊的原因而 有所降低;另外支援超大型檔案也會有一定的難度,因為分散式卷不會對檔案進行分塊處理
分散式卷具有如下特點:
Stripe 模式相當於 RAID0,在該模式下,根據偏移量將檔案分成 N 塊(N 個條帶節點), 輪詢地儲存在每個 Brick Server 節點。節點把每個資料塊都作為普通檔案存入本地檔案系統 中,通過擴充套件屬性記錄總塊數(Stripe-count)和每塊的序號(Stripe-index)。在設定時指定的條帶數必須等於卷中 Brick 所包含的儲存伺服器數,在儲存大檔案時,效能尤為突出, 但是不具備冗餘性
條帶卷具有如下特點。
複製模式,也稱為 AFR(AutoFile Replication),相當於 RAID1,即同一檔案儲存一份 或多份副本,每個節點上儲存相同的內容和目錄結構。複製模式因為要儲存副本,所以磁碟 利用率較低。如果多個節點上的儲存空間不一致,那麼將按照木桶效應取最低節點的容量作為該卷的總容量。在設定複製卷時,複製數必須等於卷中 Brick 所包含的儲存伺服器數,復 制卷具備冗餘性,即使一個節點損壞,也不影響資料的正常使用。
複製卷具有如下特點。
分散式條帶卷兼顧分散式卷和條帶卷的功能,主要用於大檔案存取處理,建立一個分佈 式條帶卷最少需要 4 臺伺服器
分散式複製卷兼顧分散式卷和複製卷的功能,主要用於需要冗餘的情況下
node1:192.168.245.203
node2:192.168.245.204
node3:192.168.245.205
node4:192.168.245.206
client:192.168.245.201
確定firewall防火牆和selinux已經關閉
iptables -F是沒有用的,一定要關閉firewall防火牆!!!
每臺node新新增4塊磁碟,大小20G
給這些新新增的磁碟分割區並格式化
建立掛載點
[root@node1 ~]# mkdir -p /data/sd{b,c,d,e}1
[root@node1 ~]# ls /data
sdb1 sdc1 sdd1 sde1
掛載分割區
[root@node1 ~]# mount /dev/sdb1 /data/sdb1
[root@node1 ~]# mount /dev/sdc1 /data/sdc1
[root@node1 ~]# mount /dev/sdd1 /data/sdd1
[root@node1 ~]# mount /dev/sde1 /data/sde1
[root@node1 ~]#
[root@node1 ~]# df -Th
檔案系統 型別 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root xfs 50G 4.2G 46G 9% /
devtmpfs devtmpfs 894M 0 894M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 11M 900M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 247G 37M 247G 1% /home
tmpfs tmpfs 182M 12K 182M 1% /run/user/42
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/sdb1 ext4 20G 45M 19G 1% /data/sdb1
/dev/sdc1 ext4 20G 45M 19G 1% /data/sdc1
/dev/sdd1 ext4 20G 45M 19G 1% /data/sdd1
/dev/sde1 ext4 20G 45M 19G 1% /data/sde1
修改節點的主機名,因為它是用主機名來識別各節點的
[root@node1 ~]# echo "192.168.245.203 node1" >> /etc/hosts
[root@node1 ~]# echo "192.168.245.204 node2" >> /etc/hosts
[root@node1 ~]# echo "192.168.245.205 node3" >> /etc/hosts
[root@node1 ~]# echo "192.168.245.206 node4" >> /etc/hosts
gfsrepo目錄裡是本地rpm包,裡面包含了gfs軟體包和依賴包
[root@node1 ~]# mkdir /abc
[root@node1 ~]# cd /abc
[root@node1 abc]# ll
總用量 12
drwxr-xr-x 3 root root 8192 9月 13 23:47 gfsrepo
把之前的yum網路源的組態檔備份一下
[root@node1 abc]# cd /etc/yum.repos.d/
[root@node1 yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo
[root@node1 yum.repos.d]# mkdir bak
[root@node1 yum.repos.d]# mv * bak
mv: 無法將目錄"bak" 移動至自身的子目錄"bak/bak" 下
[root@node1 yum.repos.d]#
[root@node1 yum.repos.d]# ls
bak
編輯本地yum源
[root@node1 yum.repos.d]# vim GLFS.repo
[glfs]
name=glfs
baseurl=file:///abc/gfsrepo
gpgcheck=0
enabled=1
把yum本地源組態檔推播給其他node節點(為了節省時間)
[root@node1 yum.repos.d]# scp GLFS.repo root@192.168.245.204:/etc/yum.repos.d/
The authenticity of host '192.168.245.204 (192.168.245.204)' can't be established.
ECDSA key fingerprint is SHA256:5qVFPbfSJ8tArL82/yswIhMAg7vdiKoK4nZsexYkUX4.
ECDSA key fingerprint is MD5:aa:db:41:8e:a3:70:d8:44:ce:28:b7:88:fe:0c:63:bb.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.245.204' (ECDSA) to the list of known hosts.
root@192.168.245.204's password:
GLFS.repo 100% 66 36.9KB/s 00:00
yum安裝之前,顯示所有已經安裝和可以安裝的程式包
[root@node1 yum.repos.d]# yum list
yum安裝以下軟體包
[root@node1 yum.repos.d]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
[root@node1 yum.repos.d]# systemctl start glusterd.service
[root@node1 ~]# netstat -antp | grep gluster
tcp 0 0 0.0.0.0:24007 0.0.0.0:* LISTEN 8760/glusterd
tcp 0 0 0.0.0.0:49152 0.0.0.0:* LISTEN 64209/glusterfsd
tcp 0 0 0.0.0.0:49153 0.0.0.0:* LISTEN 64514/glusterfsd
tcp 0 0 0.0.0.0:49154 0.0.0.0:* LISTEN 64788/glusterfsd
tcp 0 0 0.0.0.0:49155 0.0.0.0:* LISTEN 64963/glusterfsd
[root@node1 yum.repos.d]# ntpdate ntp1.aliyun.com
14 Sep 00:17:59 ntpdate[63937]: adjust time server 120.25.115.20 offset 0.007826 sec
只需要在一臺node上新增即可
[root@node1 ~]# gluster peer probe node2
peer probe: success.
[root@node1 ~]# gluster peer probe node3
peer probe: success.
[root@node1 ~]# gluster peer probe node4
peer probe: success.
通過以下命令在每個節點上檢視群集狀態,正常情況下每個節點的輸出結果均為「State: Peer in Cluster(Connected)」。如果顯示 Disconnected,請檢查 hosts 檔案設定
[root@node1 ~]# gluster peer status
Number of Peers: 3
Hostname: node2
Uuid: bc421d97-5e05-43da-af1d-2b28c46acdd3
State: Peer in Cluster (Connected)
Hostname: node3
Uuid: 7d4ccf9d-83b3-4b8d-8a30-42a9da6a78ee
State: Peer in Cluster (Connected)
Hostname: node4
Uuid: 4df47d8d-8dd4-4336-a411-9b96d996ae4a
State: Peer in Cluster (Connected)
使用gluster volume create建立卷,後面跟卷名稱,自己可識別即可,沒有指定型別,預設建立的是分散式卷,force表示強制,你想用哪些節點來儲存後面跟節點名和掛載點
[root@node1 ~]# gluster volume create fenbushi-vol node1:/data/sdb1 node2:/data/sdb1 force
volume create: fenbushi-vol: success: please start the volume to access data
gluster volume info 卷名可以檢視卷的詳細資訊
[root@node1 ~]# gluster volume info fenbushi-vol
Volume Name: fenbushi-vol
Type: Distribute
Volume ID: 47978ec2-b7e0-4ede-8723-cabec845ca31
Status: Created <----還在建立狀態
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdb1
Brick2: node2:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
檢視所有GFS卷列表
[root@node1 ~]# gluster volume list
fenbushi-vol
啟用分散式卷,建立之後還不能使用,必須要啟用它
使用gluster volume start 卷名啟用卷
[root@node1 ~]# gluster volume start fenbushi-vol
volume start: fenbushi-vol: success
[root@node1 ~]# gluster volume info fenbushi-vol
Volume Name: fenbushi-vol
Type: Distribute
Volume ID: 47978ec2-b7e0-4ede-8723-cabec845ca31
Status: Started <----狀態改變
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdb1
Brick2: node2:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
這裡指定型別為 stripe,數值為 2,而且後面跟了 2 個 node節點,所以建立的是條帶卷。
[root@node1 ~]# gluster volume create tiaodai-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
volume create: tiaodai-vol: success: please start the volume to access data
啟用條帶卷
[root@node1 ~]# gluster volume start tiaodai-vol
volume start: tiaodai-vol: success
[root@node1 ~]# gluster volume info tiaodai-vol
Volume Name: tiaodai-vol
Type: Stripe
Volume ID: d30c1262-a8bf-41eb-9200-8092209ca1fb
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdc1
Brick2: node2:/data/sdc1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# gluster volume list
fenbushi-vol
tiaodai-vol
這裡指定型別為 replica,數值為 2,而且後面跟了 2 個 node節點,所以建立的是複製卷
[root@node1 ~]# gluster volume create fuzhi-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
volume create: fuzhi-vol: success: please start the volume to access data
啟用複製卷
[root@node1 ~]# gluster volume start fuzhi-vol
volume start: fuzhi-vol: success
[root@node1 ~]# gluster volume list
fenbushi-vol
fuzhi-vol
tiaodai-vol
[root@node1 ~]# gluster volume info fuzhi-vol
Volume Name: fuzhi-vol
Type: Replicate
Volume ID: 39d55d25-5b6c-4b2e-85a6-24678ecfab43
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node3:/data/sdb1
Brick2: node4:/data/sdb1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
這裡指定型別為 stripe,數值為 2,而且後面跟了 4 個 node節點,是 2 的 2 倍,所以建立的是分散式條帶卷
[root@node1 ~]# gluster volume create fbsstr-vol stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
volume create: fbsstr-vol: success: please start the volume to access data
[root@node1 ~]# gluster volume start fbsstr-vol
volume start: fbsstr-vol: success
[root@node1 ~]# gluster volume info fbsstr-vol
Volume Name: fbsstr-vol
Type: Distributed-Stripe
Volume ID: b31d3cd6-38c4-46f6-b380-c8e39f17bf54
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node1:/data/sdd1
Brick2: node2:/data/sdd1
Brick3: node3:/data/sdd1
Brick4: node4:/data/sdd1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# gluster volume list
fbsstr-vol
fenbushi-vol
fuzhi-vol
tiaodai-vol
這裡指定型別為 replica,數值為 2,而且後面跟了 4 個 node節點,是 2 的 兩倍,所以建立的是分散式複製卷
[root@node1 ~]# gluster volume create fbsrep-vol replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
volume create: fbsrep-vol: success: please start the volume to access data
[root@node1 ~]# gluster volume start fbsrep-vol
volume start: fbsrep-vol: success
[root@node1 ~]# gluster volume info fbsrep-vol
Volume Name: fbsrep-vol
Type: Distributed-Replicate
Volume ID: bcb1f7f3-9d17-4702-935e-1dbd00da25fd
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node1:/data/sde1
Brick2: node2:/data/sde1
Brick3: node3:/data/sde1
Brick4: node4:/data/sde1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node1 ~]# gluster volume list
fbsrep-vol
fbsstr-vol
fenbushi-vol
fuzhi-vol
tiaodai-vol
在部署完分散式檔案系統後,需要對掛載的伺服器安裝使用者端軟體,並建立掛載目錄, 將分散式檔案系統掛載到剛建立目錄即可。
使用者端上的準備工作:
[root@node1 yum.repos.d]# scp GLFS.repo root@192.168.245.201:/etc/yum.repos.d/
[root@client ~]# yum -y install glusterfs glusterfs-fuse
[root@client ~]# echo "192.168.245.203 node1" >> /etc/hosts
[root@client ~]# echo "192.168.245.204 node2" >> /etc/hosts
[root@client ~]# echo "192.168.245.205 node3" >> /etc/hosts
[root@client ~]# echo "192.168.245.206 node4" >> /etc/hosts
建立掛載點
[root@client ~]# mkdir -p /test/fbs <----分散式卷
[root@client ~]# mkdir /test/tiaodai <----條帶卷
[root@client ~]# mkdir /test/fuzhi <----複製卷
[root@client ~]# mkdir /test/fbsstr <----分散式條帶卷
[root@client ~]# mkdir /test/fbsrep <----分散式複製卷
[root@client ~]#
[root@client ~]#
[root@client ~]# mount.glusterfs node1:fenbushi-vol /test/fbs
[root@client ~]# mount.glusterfs node1:tiaodai-vol /test/tiaodai/
[root@client ~]# mount.glusterfs node1:fuzhi-vol /test/fuzhi
[root@client ~]# mount.glusterfs node1:fbsstr-vol /test/fbsstr/
[root@client ~]# mount.glusterfs node1:fbsrep-vol /test/fbsrep/
[root@client ~]#
[root@client ~]# df -TH
檔案系統 型別 容量 已用 可用 已用% 掛載點
/dev/sda3 xfs 317G 14G 303G 5% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 14M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 1.1G 183M 881M 18% /boot
tmpfs tmpfs 396M 4.1k 396M 1% /run/user/42
tmpfs tmpfs 396M 25k 396M 1% /run/user/0
/dev/sr0 iso9660 4.6G 4.6G 0 100% /run/media/root/CentOS 7 x86_64
node1:fenbushi-vol fuse.glusterfs 43G 93M 40G 1% /test/fbs
node1:tiaodai-vol fuse.glusterfs 43G 93M 40G 1% /test/tiaodai
node1:fuzhi-vol fuse.glusterfs 22G 47M 20G 1% /test/fuzhi
node1:fbsstr-vol fuse.glusterfs 85G 186M 80G 1% /test/fbsstr
node1:fbsrep-vol fuse.glusterfs 43G 93M 40G 1% /test/fbsrep
在掛載時,所指定的 node1 只是為了從它那裡獲取到必要的設定資訊,在掛載之後, 客戶機不僅僅會與 node1 進行通訊,也會直接和邏輯儲存卷內其他 node所在的主機進行通訊。
產生5個測試檔案,每個大小40M
[root@client ~]# dd if=/dev/zero of=/demo1.log bs=1M count=40
記錄了40+0 的讀入
記錄了40+0 的寫出
41943040位元組(42 MB)已複製,0.0238866 秒,1.8 GB/秒
[root@client ~]# dd if=/dev/zero of=/demo2.log bs=1M count=40
記錄了40+0 的讀入
記錄了40+0 的寫出
41943040位元組(42 MB)已複製,0.0317271 秒,1.3 GB/秒
[root@client ~]# dd if=/dev/zero of=/demo3.log bs=1M count=40
記錄了40+0 的讀入
記錄了40+0 的寫出
41943040位元組(42 MB)已複製,0.0369535 秒,1.1 GB/秒
[root@client ~]# dd if=/dev/zero of=/demo4.log bs=1M count=40
記錄了40+0 的讀入
記錄了40+0 的寫出
41943040位元組(42 MB)已複製,0.0357797 秒,1.2 GB/秒
[root@client ~]# dd if=/dev/zero of=/demo5.log bs=1M count=40
記錄了40+0 的讀入
記錄了40+0 的寫出
41943040位元組(42 MB)已複製,0.0162924 秒,2.6 GB/秒
將這些測試檔案分別拷貝到掛載點
[root@client ~]# cp /demo* /test/tiaodai/
[root@client ~]# cp /demo* /test/fuzhi/
[root@client ~]# cp /demo* /test/fbs
[root@client ~]# cp /demo* /test/fbsrep/
[root@client ~]# cp /demo* /test/fbsstr/
驗證分散式卷儲存情況
檔案1-4儲存在了node1上,5儲存在了node2上
[root@node1 ~]# ll -h /data/sdb1
總用量 161M
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo1.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo2.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo3.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo4.log
[root@node2 yum.repos.d]# ll -h /data/sdb1
總用量 41M
-rw-r--r-- 2 root root 40M 9月 14 01:17 demo5.log
驗證條帶卷儲存情況
所有檔案都分成了兩半各自儲存在node1和node2上
[root@node1 ~]# ll -h /data/sdc1
總用量 101M
-rw-r--r-- 2 root root 20M 9月 14 01:12 demo1.log
-rw-r--r-- 2 root root 20M 9月 14 01:12 demo2.log
-rw-r--r-- 2 root root 20M 9月 14 01:12 demo3.log
-rw-r--r-- 2 root root 20M 9月 14 01:12 demo4.log
-rw-r--r-- 2 root root 20M 9月 14 01:17 demo5.log
[root@node2 yum.repos.d]# ll -h /data/sdc1
總用量 101M
-rw-r--r-- 2 root root 20M 9月 14 01:12 demo1.log
-rw-r--r-- 2 root root 20M 9月 14 01:12 demo2.log
-rw-r--r-- 2 root root 20M 9月 14 01:12 demo3.log
-rw-r--r-- 2 root root 20M 9月 14 01:12 demo4.log
-rw-r--r-- 2 root root 20M 9月 14 01:17 demo5.log
驗證複製卷
每個檔案都存在node3上一份,node4上一份
[root@node3 ~]# ll -h /data/sdb1
總用量 201M
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo1.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo2.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo3.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo4.log
-rw-r--r-- 2 root root 40M 9月 14 01:17 demo5.log
[root@node4 ~]# ll -h /data/sdb1
總用量 201M
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo1.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo2.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo3.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo4.log
-rw-r--r-- 2 root root 40M 9月 14 01:17 demo5.log
驗證分散式條帶卷
檔案1-4各分成一半存在了node1和node2上,檔案5分成兩半存在node3和node4上
[root@node1 ~]# ll -h /data/sdd1
總用量 81M
-rw-r--r-- 2 root root 20M 9月 14 01:13 demo1.log
-rw-r--r-- 2 root root 20M 9月 14 01:13 demo2.log
-rw-r--r-- 2 root root 20M 9月 14 01:13 demo3.log
-rw-r--r-- 2 root root 20M 9月 14 01:13 demo4.log
[root@node2 ~]# ll -h /data/sdd1
總用量 81M
-rw-r--r-- 2 root root 20M 9月 14 01:13 demo1.log
-rw-r--r-- 2 root root 20M 9月 14 01:13 demo2.log
-rw-r--r-- 2 root root 20M 9月 14 01:13 demo3.log
-rw-r--r-- 2 root root 20M 9月 14 01:13 demo4.log
[root@node3 ~]# ll -h /data/sdd1
總用量 21M
-rw-r--r-- 2 root root 20M 9月 14 01:17 demo5.log
[root@node4 ~]# ll -h /data/sdd1
總用量 21M
-rw-r--r-- 2 root root 20M 9月 14 01:17 demo5.log
驗證分散式複製卷
檔案1-4存在node1上一份,node2上一份,而檔案5寸在node3一份,node4一份
[root@node1 ~]# ll -h /data/sde1
總用量 161M
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo1.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo2.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo3.log
-rw-r--r-- 2 root root 40M 9月 14 01:13 demo4.log
[root@node2 ~]# ll -h /data/sde1
總用量 161M
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo1.log
-rw-r--r-- 2 root root 40M 9月 14 01:12 demo2.log
-rw-r--r-- 2 root root 40M 9月 14 01:13 demo3.log
-rw-r--r-- 2 root root 40M 9月 14 01:13 demo4.log
[root@node3 ~]# ll -h /data/sde1
總用量 41M
-rw-r--r-- 2 root root 40M 9月 14 01:17 demo5.log
[root@node4 ~]# ll -h /data/sde1
總用量 41M
-rw-r--r-- 2 root root 40M 9月 14 01:17 demo5.log
現在宕機node2觀察資料是否還完整
可以看到除了複製卷和分散式複製卷,其他的資料都不再完整
[root@client test]# ls /test
fbs fbsrep fbsstr fuzhi tiaodai
[root@client test]# ls /test/fbs
demo1.log demo2.log demo3.log demo4.log
[root@client test]# ls /test/tiaodai/
[root@client test]# ls /test/fuzhi/
demo1.log demo2.log demo3.log demo4.log demo5.log
[root@client test]# ls /test/fbsstr/
demo5.log
[root@client test]# ls /test/fbsrep/
demo1.log demo2.log demo3.log demo4.log demo5.log
如果有伺服器宕機的話想要刪除卷是無法刪除的,必須都線上才可以
刪除之前需要停止
[root@node1 ~]# gluster volume stop fuzhi-vol
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: fuzhi-vol: success
[root@node1 ~]# gluster volume delete fuzhi-vol
Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
volume delete: fuzhi-vol: failed: Some of the peers are down
建立卷時,儲存伺服器的數量如果等於條帶或複製數,那麼建立的是條帶卷或者複製卷;如果儲存伺服器的數量是條帶或複製數的 2 倍甚至更多,那麼將建立的是分散式條帶卷或分散式複製卷。