<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
CentOS 7 GlusterFS
3臺機器安裝 GlusterFS 組成一個叢集。
使用 docker volume plugin GlusterFS
10.6.0.140
10.6.0.192
10.6.0.196
設定 hosts
10.6.0.140 swarm-manager
10.6.0.192 swarm-node-1
10.6.0.196 swarm-node-2
10.6.0.94 node-94
CentOS 安裝 glusterfs 非常的簡單
在三個節點都安裝glusterfs
yum install centos-release-gluster yum install -y glusterfs glusterfs-server glusterfs-fuseglusterfs-rdma
啟動 glusterFS
systemctl start glusterd.service systemctl enable glusterd.service
在 swarm-manager 節點上設定,將 節點 加入到 叢集中。
[root@swarm-manager ~]#gluster peer probe swarm-manager peer probe: success. Probe on localhost not needed [root@swarm-manager ~]#gluster peer probe swarm-node-1 peer probe: success. [root@swarm-manager ~]#gluster peer probe swarm-node-2 peer probe: success.
[root@swarm-manager ~]#gluster peer status Number of Peers: 2 Hostname: swarm-node-1 Uuid: 41573e8b-eb00-4802-84f0-f923a2c7be79 State: Peer in Cluster (Connected) Hostname: swarm-node-2 Uuid: da068e0b-eada-4a50-94ff-623f630986d7 State: Peer in Cluster (Connected)
[root@swarm-manager ~]#mkdir -p /opt/gluster/data [root@swarm-node-1 ~]# mkdir -p /opt/gluster/data [root@swarm-node-2 ~]# mkdir -p /opt/gluster/data
[root@swarm-manager ~]#gluster volume info No volumes present
[root@swarm-manager ~]#gluster volume create models replica 3 swarm-manager:/opt/gluster/data swarm-node-1:/opt/gluster/data swarm-node-2:/opt/gluster/data force volume create: models: success: please start the volume to access data
一、 預設模式,既DHT, 也叫 分佈卷: 將檔案已hash演演算法隨機分佈到 一臺伺服器節點中儲存。
gluster volume create test-volume server1:/exp1 server2:/exp2
二、 複製模式,既AFR, 建立volume 時帶 replica x 數量: 將檔案複製到 replica x 個節點中。
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
三、 條帶模式,既Striped, 建立volume 時帶 stripe x 數量: 將檔案切割成資料塊,分別儲存到 stripe x 個節點中 ( 類似raid 0 )。
gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2
四、 分散式條帶模式(組合型),最少需要4臺伺服器才能建立。 建立volume 時 stripe 2 server = 4 個節點: 是DHT 與 Striped 的組合型。
gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
五、 分散式複製模式(組合型), 最少需要4臺伺服器才能建立。 建立volume 時 replica 2 server = 4 個節點:是DHT 與 AFR 的組合型。
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
六、 條帶複製卷模式(組合型), 最少需要4臺伺服器才能建立。 建立volume 時 stripe 2 replica 2 server = 4 個節點: 是 Striped 與 AFR 的組合型。
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
七、 三種模式混合, 至少需要8臺 伺服器才能建立。 stripe 2 replica 2 , 每4個節點 組成一個 組。
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8
[root@swarm-manager ~]#gluster volume info Volume Name: models Type: Replicate Volume ID: e539ff3b-2278-4f3f-a594-1f101eabbf1e Status: Created Number of Bricks: 1 x 3 = 3 Transport-type: tcp Bricks: Brick1: swarm-manager:/opt/gluster/data Brick2: swarm-node-1:/opt/gluster/data Brick3: swarm-node-2:/opt/gluster/data Options Reconfigured: performance.readdir-ahead: on
啟動 models
[root@swarm-manager ~]#gluster volume start models volume start: models: success
開啟 指定 volume 的配額: (models 為 volume 名稱)
gluster volume quota models enable
限制 models 中 / (既總目錄) 最大使用 80GB 空間
gluster volume quota models limit-usage / 80GB #設定 cache 4GB gluster volume set models performance.cache-size 4GB #開啟 非同步 , 後臺操作 gluster volume set models performance.flush-behind on #設定 io 執行緒 32 gluster volume set models performance.io-thread-count 32 #設定 回寫 (寫資料時間,先寫入快取內,再寫入硬碟) gluster volume set models performance.write-behind on
部署GlusterFS使用者端並mount GlusterFS檔案系統 (使用者端必須加入 glusterfs hosts 否則報錯。)
[root@node-94 ~]#yum install -y glusterfs glusterfs-fuse [root@node-94 ~]#mkdir -p /opt/gfsmnt [root@node-94 ~]#mount -t glusterfs swarm-manager:models /opt/gfsmnt/ [root@node-94 ~]#df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/mapper/vg001-root 98G 1.2G 97G 2% / devtmpfs 32G 0 32G 0% /dev tmpfs 32G 0 32G 0% /dev/shm tmpfs 32G 130M 32G 1% /run tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/mapper/vg001-opt 441G 71G 370G 17% /opt /dev/sda2 497M 153M 344M 31% /boot tmpfs 6.3G 0 6.3G 0% /run/user/0 swarm-manager:models 441G 18G 424G 4% /opt/gfsmnt
DHT 模式 使用者端 建立一個 1G 的檔案
[root@node-94 ~]#time dd if=/dev/zero of=hello bs=1000M count=1 記錄了1+0 的讀入 記錄了1+0 的寫出 1048576000位元組(1.0 GB)已複製,9.1093 秒,115 MB/秒 real 0m9.120s user 0m0.000s sys 0m1.134s
AFR 模式 使用者端 建立一個 1G 的檔案
[root@node-94 ~]#time dd if=/dev/zero of=hello.txt bs=1024M count=1 錄了1+0 的讀入 記錄了1+0 的寫出 1073741824位元組(1.1 GB)已複製,27.4566 秒,39.1 MB/秒 real 0m27.469s user 0m0.000s sys 0m1.065s
Striped 模式 使用者端 建立一個 1G 的檔案
[root@node-94 ~]#time dd if=/dev/zero of=hello bs=1000M count=1 記錄了1+0 的讀入 記錄了1+0 的寫出 1048576000位元組(1.0 GB)已複製,9.10669 秒,115 MB/秒 real 0m9.119s user 0m0.001s sys 0m0.953s
條帶複製卷模式 (Number of Bricks: 1 x 2 x 2 = 4) 使用者端 建立一個 1G 的檔案
[root@node-94 ~]#time dd if=/dev/zero of=hello bs=1000M count=1 記錄了1+0 的讀入 記錄了1+0 的寫出 1048576000位元組(1.0 GB)已複製,17.965 秒,58.4 MB/秒 real 0m17.978s user 0m0.000s sys 0m0.970s
分散式複製模式 (Number of Bricks: 2 x 2 = 4) 使用者端 建立一個 1G 的檔案
[root@node-94 ~]#time dd if=/dev/zero of=haha bs=100M count=10 記錄了10+0 的讀入 記錄了10+0 的寫出 1048576000位元組(1.0 GB)已複製,17.7697 秒,59.0 MB/秒 real 0m17.778s user 0m0.001s sys 0m0.886s
針對 分散式複製模式還做了如下測試:
4K隨機寫 測試:
安裝 fio (yum -y install libaio-devel (否則執行fio 會報錯engine libaio not loadable, 已安裝需重新編譯,否則一樣報錯))
[root@node-94 ~]#fio -ioengine=libaio -bs=4k -direct=1 -thread -rw=randwrite -size=10G -filename=1.txt -name="EBS 4KB randwrite test" -iodepth=32 -runtime=60 write: io=352204KB, bw=5869.9KB/s, iops=1467, runt= 60002msec WRITE: io=352204KB, aggrb=5869KB/s, minb=5869KB/s, maxb=5869KB/s, mint=60002msec, maxt=60002msec
4K隨機讀 測試:
fio -ioengine=libaio -bs=4k -direct=1 -thread -rw=randread -size=10G -filename=1.txt -name="EBS 4KB randread test" -iodepth=8 -runtime=60 read: io=881524KB, bw=14692KB/s, iops=3672, runt= 60001msec READ: io=881524KB, aggrb=14691KB/s, minb=14691KB/s, maxb=14691KB/s, mint=60001msec, maxt=60001msec
512K 順序寫 測試:
fio -ioengine=libaio -bs=512k -direct=1 -thread -rw=write -size=10G -filename=512.txt -name="EBS 512KB seqwrite test" -iodepth=64 -runtime=60 write: io=3544.0MB, bw=60348KB/s, iops=117, runt= 60135msec WRITE: io=3544.0MB, aggrb=60348KB/s, minb=60348KB/s, maxb=60348KB/s, mint=60135msec, maxt=60135msec
1. 檢視GlusterFS中所有的volume:
[root@swarm-manager ~]#gluster volume list
2. 刪除GlusterFS磁碟:
[root@swarm-manager ~]#gluster volume stop models #停止名字為 models 的磁碟 [root@swarm-manager ~]#gluster volume delete models #刪除名字為 models 的磁碟
注: 刪除 磁碟 以後,必須刪除 磁碟( /opt/gluster/data ) 中的 ( .glusterfs/ .trashcan/ )目錄。
否則建立新 volume 相同的 磁碟 會出現檔案 不分佈,或者 型別 錯亂 的問題。
3. 解除安裝某個節點GlusterFS磁碟
[root@swarm-manager ~]#gluster peer detach swarm-node-2
4. 設定存取限制,按照每個volume 來限制
[root@swarm-manager ~]#gluster volume set models auth.allow 10.6.0.*,10.7.0.*
5. 新增GlusterFS節點:
[root@swarm-manager ~]#gluster peer probe swarm-node-3 [root@swarm-manager ~]#gluster volume add-brick models swarm-node-3:/opt/gluster/data
注:如果是複製卷或者條帶卷,則每次新增的Brick數必須是replica或者stripe的整數倍
6. 設定卷
[root@swarm-manager ~]# gluster volume set
7. 縮容volume:
先將資料遷移到其它可用的Brick,遷移結束後才將該Brick移除:
[root@swarm-manager ~]#gluster volume remove-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data start
在執行了start之後,可以使用status命令檢視移除進度:
[root@swarm-manager ~]#gluster volume remove-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data status
不進行資料遷移,直接刪除該Brick:
[root@swarm-manager ~]#gluster volume remove-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data commit
注意,如果是複製卷或者條帶卷,則每次移除的Brick數必須是replica或者stripe的整數倍。
擴容:
gluster volume add-brick models swarm-node-2:/opt/gluster/data
8. 修復命令:
[root@swarm-manager ~]#gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data commit -force
9. 遷移volume:
[root@swarm-manager ~]#gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data start pause 為暫停遷移 [root@swarm-manager ~]#gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data pause abort 為終止遷移 [root@swarm-manager ~]#gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data abort status 檢視遷移狀態 [root@swarm-manager ~]#gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data status 遷移結束後使用commit 來生效 [root@swarm-manager ~]#gluster volume replace-brick models swarm-node-2:/opt/gluster/data swarm-node-3:/opt/gluster/data commit
10. 均衡volume:
[root@swarm-manager ~]#gluster volume models lay-outstart [root@swarm-manager ~]#gluster volume models start [root@swarm-manager ~]#gluster volume models startforce [root@swarm-manager ~]#gluster volume models status [root@swarm-manager ~]#gluster volume models stop
到此這篇關於CentOS7安裝GlusterFS叢集的文章就介紹到這了,更多相關CentOS7安裝GlusterFS內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45