設備串列:
node1:20.0.0.3
node2:20.0.0.5
node3:20.0.0.6
node4:20.0.0.7
客戶端:20.0.0.8
- 開局必配操作,不然一定會出問題
四臺都要做此操作!!!
[root@node1 ~]# systemctl stop firewalld ###關閉防火墻
[root@node1 ~]# systemctl disable firewalld ###關閉自啟動
[root@node1 ~]# vim /etc/selinux/config ###關閉核心防護
SELINUX=disabled ###設定成disabled,一共三種模式,
Enforcing:強制模式,代表SELinux在運行中,且已經開始限制domain/type之間的驗證關系
Permissive:寬容模式,代表SELinux在運行中,不過不會限制domain/type之間的驗證關系,即使驗證不正確,程仍可以對檔案進行操作,不過如果驗證不正確會發出警告
Disabled:關閉模式,SELinux并沒有實際運行
- 添加硬碟
把四臺服務器,各加四塊硬碟,算上自己本身的,每個服務器都有五塊硬碟
[root@localhost ~]# fdisk -l ###用這條命令查看一下剛剛添加進去的硬碟,是否在
[root@localhost ~]# 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 systeml
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
- 給腳本一個執行權限
[root@localhost ~]# chmod +x disk.sh ###給腳本一個執行權限
- 通過root用戶遠程拷貝到20.0.0.5、6、7主機上的根目錄
[root@localhost ~]# scp disk.sh root@20.0.0.5:/root
然后輸入yes 輸入密碼Abc123(root密碼)
[root@localhost ~]# scp disk.sh root@20.0.0.6:/root
然后輸入yes 輸入密碼Abc123(root密碼)
[root@localhost ~]# scp disk.sh root@20.0.0.7:/root
然后輸入yes 輸入密碼Abc123(root密碼)
- 給硬碟磁區格式化
[root@localhost ~]# ./disk.sh ### 然后在四臺服務器都執行該腳本
1) sdb
2) sdc
3) sdd
4) sde
5) quit
chose which disk you want to create: //這里就輸入1,然后在執行一次腳本在輸入2,依次執行,
注意:每一個執行都要留一段時間,不然可能失敗
[root@localhost ~]# df -Th ###查看一下四塊硬碟是否創建好
---------------------------------如果單個硬碟出現沒做好,可以以下方法解決----------------------------------
[root@localhost ~]# mkfs -t xfs /dev/sdb1 ###格式化sdb1
[root@localhost ~]# mount -a ###重新掛載
[root@localhost ~]# df -Th ###再檢查一下
- 設定四臺服務器主機名,這樣可以用主機名映射ip地址,
[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# hostnamectl set-hostname node2
[root@localhost ~]# hostnamectl set-hostname node3
[root@localhost ~]# hostnamectl set-hostname node4
[root@localhost ~]# su ### 每一個都要su重繪一下,這里就不過多寫了
- 設定hosts映射檔案,四臺都要這樣映射,設定主機名為了簡化等會的操作,
[root@node1 ~]# vim /etc/hosts
20.0.0.3 node1
20.0.0.5 node2
20.0.0.6 node3
20.0.0.7 node4
[root@node1 ~]# ping node4 ###可以測驗一下,ping主機名,能ping通
- yum倉庫在我的windows電腦上,需要共享后掛載使用
找到本機yum源,進行共享操作
一、檔案共享添加Everyone 用戶指定讀取權限



二、設定本地策略secpol.msc
win鍵加R 輸入 secpol.msc,進入本地策略組





三、網路和共享中心》》共享選項》》把所有共享選項設定為允許(無密碼保護共享)


- 掛載宿主機的yum源
[root@node1 ~]# smbclient -L //192.168.10.2 ###查看一下宿主機的共享目錄
---然后不用輸入密碼直接回車---
[root@node1 ~]# mkdir /abc ###在node1創建一個abc目錄
[root@node1 ~]# mount.cifs //192.168.10.2/gfsrepo /abc ###然后把剛剛的yum源掛載進去
- 配置yum倉庫,四臺都要做相同的配置!!!
[root@node1 abc]# cd /etc/yum.repos.d/ ###進入到etc/yum.repos.d/ 目錄里
[root@node1 yum.repos.d]# mkdir backup ###創建一個backup目錄
[root@node1 yum.repos.d]# mv CentOs-* backup/ ###把CentOs放到backup目錄里
[root@node1 yum.repos.d]# vim GLFS.repo
[GLFS]
name=glfs
baseurl=file:///abc ###這個目錄要注意 http://mirror.centos.org/centos/$releasever/storage/$basearch/gluster-3.12/
gpgcheck=0
enabled=1
[root@node1 yum.repos.d]# yum clean all ###清除快取
[root@node1 yum.repos.d]# yum list ###重新加載
---------------------------如果不能啟動就使用下面的辦法------------------------------
用線網源!!!
[root@node1 yum.repos.d]# vim GLFS.repo
baseurl=file:///abc 改成 ==》》 http://mirror.centos.org/centos/$releasever/storage/$basearch/gluster-3.12/
[root@node1 yum.repos.d]# yum clean all
[root@node1 yum.repos.d]# yum makecache
[root@node1 yum.repos.d]# yum -y install glusterfs-server glusterfs glusterfs-fuse glusterfs-rdma
- 安裝環境包,四臺都要安裝
[root@node1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
[root@node1 yum.repos.d]# systemctl start glusterd.service ###啟動服務
[root@node1 yum.repos.d]# systemctl enable glusterd ###開機自啟
[root@node1 yum.repos.d]# systemctl status glusterd ###查看狀態
- 時間同步,四臺都要做
[root@node1 yum.repos.d]# ntpdate ntp1.aliyun.com
- 在任意一臺主機上,添加入存盤信任池
[root@node1 yum.repos.d]# gluster peer probe node2
[root@node1 yum.repos.d]# gluster peer probe node3
[root@node1 yum.repos.d]# gluster peer probe node4
- 查看所有節點
[root@node1 yum.repos.d]# gluster peer status
Number of Peers: 3
Hostname: node2
Uuid: 63f568a6-9f1a-47f7-8667-0893186ef99e
State: Peer in Cluster (Connected)
Hostname: node3
Uuid: b69de245-b692-46bc-8848-8db471f304b8
State: Peer in Cluster (Connected)
Hostname: node4
Uuid: 9f0decde-ba47-4537-a0f0-50464962d182
State: Peer in Cluster (Connected)
- 分布式卷
分布式卷
沒有對檔案進行分塊處理
通過擴展檔案屬性保存HASH值
支持的底層檔案系統有ext3、ext4、ZFS、XFS等
###分布式卷具有如下特點###
檔案分布在不同的服務器,不具備冗余性更容易和廉價地擴展卷的大小
單點故障會造成資料丟失依賴底層的資料保護
[root@node4 yum.repos.d]# gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force ###創建分布式卷,卷名叫dis-vol,用了node1:/data/sdb1和node2:/data/sdb1
[root@node4 yum.repos.d]# gluster volume info dis-vol ###查看詳細資訊和狀態
Volume Name: dis-vol ###名稱
Type: Distribute ###分布式卷的型別
Volume ID: 5b75e4bd-d830-4e3f-9714-456261c276be ###id,獨一無二的
Status: Created ###Created(創建)狀態不能使用
Snapshot Count: 0
Xlator 1: BD
Capability 1: thin
Capability 2: offload_copy
Capability 3: offload_snapshot
Number of Bricks: 2 ###兩個塊組成
Transport-type: tcp ###tcp協議
Bricks:
Brick1: node1:/data/sdb1 ###node1的sdb1
Brick1 VG:
Brick2: node2:/data/sdb1 ###node2的sbd1
Brick2 VG:
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[root@node4 yum.repos.d]# gluster volume start dis-vol ###開啟
[root@node4 yum.repos.d]# gluster volume info dis-vol ###再用這條查看狀態就是Started
Status: Started
- 條帶卷
條帶卷
根據偏移量將檔案分成N塊(N個條帶節點),輪詢的存盤在每個Brick Server節點存盤大檔案時,性能尤為突出
不具備冗余性,類似Raid0
####條帶卷特點###
資料被分割成更小塊分布到塊服務器群中的不同條帶區分布減少了負載且更小的檔案加速了存取的速度
沒有資料冗余
[root@node4 yum.repos.d]# gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
[root@node4 yum.repos.d]# gluster volume info stripe-vol ###查看詳細資訊和狀態
[root@node4 yum.repos.d]# gluster volume start stripe-vol ###開啟
[root@node4 yum.repos.d]# gluster volume info stripe-vol ###在查看詳細資訊和狀態
```bash
- 復制卷
```bash
復制卷
同一檔案保存一份或多分副本
復制模式因為要保存副本,所以磁盤利用率較低
多個節點上的存盤空間不一致,那么將按照木桶效應取最低節點的容量作為該卷的總容量
###特點###
卷中所有的服務器均保存一個完整的副本卷的副本數量可由客戶創建的時候決定至少由兩個塊服務器或更多服務器
具備冗余性
[root@node4 yum.repos.d]# gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
[root@node4 yum.repos.d]# gluster volume info rep-vol ###查看詳細資訊和狀態
[root@node4 yum.repos.d]# gluster volume start rep-vol ###開啟
[root@node4 yum.repos.d]# gluster volume info rep-vol ###在查看詳細資訊和狀態
- 分布式條帶卷
分布式條帶卷
兼顧分布式卷和條帶卷的功能主要用于大檔案訪問處理
至少最少需要4臺服務器
[root@node4 yum.repos.d]# gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
[root@node4 yum.repos.d]# gluster volume info dis-stripe ###查看詳細資訊和狀態
[root@node4 yum.repos.d]# gluster volume start dis-stripe ###開啟
[root@node4 yum.repos.d]# gluster volume info dis-stripe ###在查看詳細資訊和狀態
- 分布式復制卷
分布式復制卷
兼顧分布式卷和復制卷的功能
用于需要冗余的情況下
[root@node4 yum.repos.d]# gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
[root@node4 yum.repos.d]# gluster volume info dis-rep ###查看詳細資訊和狀態
[root@node4 yum.repos.d]# gluster volume start dis-rep ###開啟
[root@node4 yum.repos.d]# gluster volume info dis-rep ###在查看詳細資訊和狀態
[root@node4 yum.repos.d]# gluster volume list ###查看一下有幾個卷
dis-rep
dis-stripe
dis-vol
rep-vol
stripe-vol
- 客戶端的配置
#########開局必配操作,不然一定會出問題##########
[root@node1 ~]# systemctl stop firewalld ###關閉防火墻
[root@node1 ~]# systemctl disable firewalld ###關閉自啟動
[root@node1 ~]# vim /etc/selinux/config ###關閉核心防護
- 掛載宿主機的yum源
[root@node1 ~]# smbclient -L //192.168.10.2 ###查看一下宿主機的共享目錄
---然后不用輸入密碼直接回車---
[root@node1 ~]# mkdir /abc ###在node1創建一個abc目錄
[root@node1 ~]# mount.cifs //192.168.10.2/gfsrepo /abc ###然后把剛剛的yum源掛載進去
- 配置yum倉庫,四臺都要做相同的配置!!!
[root@node1 abc]# cd /etc/yum.repos.d/ ###進入到etc/yum.repos.d/ 目錄里
[root@node1 yum.repos.d]# mkdir backup ###創建一個backup目錄
[root@node1 yum.repos.d]# mv CentOs-* backup/ ###把CentOs放到backup目錄里
[root@node1 yum.repos.d]# vim GLFS.repo
[GLFS]
name=glfs
baseurl=file:///abc ###這個目錄要注意
gpgcheck=0
enabled=1
[root@node1 yum.repos.d]# yum clean all ###清除快取
[root@node1 yum.repos.d]# yum list ###重新加載
[root@client yum.repos.d]# yum -y install glusterfs glusterfs-fuse
- 設定hosts映射
[root@client yum.repos.d]# vim /etc/hosts
20.0.0.3 node1
20.0.0.5 node2
20.0.0.6 node3
20.0.0.7 node4
- 臨時掛載
[root@client yum.repos.d]# mkdir -p /test/dis ### 掛載分布式卷
[root@client yum.repos.d]# mount.glusterfs node1:dis-vol /test/dis/
[root@client yum.repos.d]# mkdir -p /test/stripe
[root@client yum.repos.d]# mount.glusterfs node1:stripe-vol /test/stripe/ ### 掛載條帶卷
[root@client yum.repos.d]# mkdir -p /test/rep
[root@client yum.repos.d]# mount.glusterfs node1:rep-vol /test/rep/ ### 掛載復制卷
[root@client yum.repos.d]# mkdir -p /test/dis-stripe
[root@client yum.repos.d]# mount.glusterfs node1:dis-stripe /test/dis-stripe/ ### 掛載分布條帶卷
[root@client yum.repos.d]# mkdir -p /test/dis-rep
[root@client yum.repos.d]# mount.glusterfs node1:dis-rep /test/dis-rep/ ### 掛載分布復制卷
[root@client yum.repos.d]# df -Th ####查看一下對不對
node1:dis-vol fuse.glusterfs 40G 65M 40G 1% /test/dis
node1:stripe-vol fuse.glusterfs 40G 65M 40G 1% /test/stripe
node1:rep-vol fuse.glusterfs 20G 33M 20G 1% /test/rep
node1:dis-stripe fuse.glusterfs 80G 130M 80G 1% /test/dis-stripe
node1:dis-rep fuse.glusterfs 40G 65M 40G 1% /test/dis-rep
- 測驗
###創建5個40M的檔案
[root@client yum.repos.d]# dd if=/dev/zero of=/demo1.log bs=1M count=40
[root@client yum.repos.d]# dd if=/dev/zero of=/demo2.log bs=1M count=40
[root@client yum.repos.d]# dd if=/dev/zero of=/demo3.log bs=1M count=40
[root@client yum.repos.d]# dd if=/dev/zero of=/demo4.log bs=1M count=40
[root@client yum.repos.d]# dd if=/dev/zero of=/demo5.log bs=1M count=40
###復制5個檔案到不同的卷上
[root@client yum.repos.d]# cp /demo* /test/dis
[root@client yum.repos.d]# cp /demo* /test/stripe/
[root@client yum.repos.d]# cp /demo* /test/rep/
[root@client yum.repos.d]# cp /demo* /test/dis-stripe/
[root@client yum.repos.d]# cp /demo* /test/dis-rep/
###查看分布式卷
[root@node1 yum.repos.d]# ls -h /data/sdb1/
demo1.log demo2.log demo3.log demo4.log
[root@node2 ~]# ls -h /data/sdb1/
demo5.log
###查看條帶卷
[root@node1 yum.repos.d]# ls -lh /data/sdc1
total 100M
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo1.log
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo2.log
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo3.log
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo4.log
-rw-r--r-- 2 root root 20M Oct 27 06:29 demo5.log
[root@node2 ~]# ls -lh /data/sdc1
total 100M
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo1.log
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo2.log
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo3.log
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo4.log
-rw-r--r-- 2 root root 20M Oct 27 18:29 demo5.log
###查看復制卷
[root@node3 yum.repos.d]# ll -lh /data/sdb1
total 200M
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo1.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo2.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo3.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo4.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo5.log
[root@node4 yum.repos.d]# ll -lh /data/sdb1
總用量 200M
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo1.log
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo2.log
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo3.log
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo4.log
-rw-r--r--. 2 root root 40M 10月 27 06:30 demo5.log
###查看分布式復制卷
[root@node1 yum.repos.d]# ls -lh /data/sde1
total 160M
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo1.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo2.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo3.log
-rw-r--r-- 2 root root 40M Oct 27 06:30 demo4.log
[root@node2 ~]# ls -lh /data/sde1
total 160M
-rw-r--r-- 2 root root 40M Oct 27 18:30 demo1.log
-rw-r--r-- 2 root root 40M Oct 27 18:30 demo2.log
-rw-r--r-- 2 root root 40M Oct 27 18:30 demo3.log
-rw-r--r-- 2 root root 40M Oct 27 18:30 demo4.log
###查看分布式條帶卷
[root@node1 yum.repos.d]# ls -lh /data/sdd1
total 80M
-rw-r--r-- 2 root root 20M Oct 27 06:30 demo1.log
-rw-r--r-- 2 root root 20M Oct 27 06:30 demo2.log
-rw-r--r-- 2 root root 20M Oct 27 06:30 demo3.log
-rw-r--r-- 2 root root 20M Oct 27 06:30 demo4.log
[root@node2 ~]# ls -lh /data/sdd1
total 80M
-rw-r--r-- 2 root root 20M Oct 27 18:30 demo1.log
-rw-r--r-- 2 root root 20M Oct 27 18:30 demo2.log
-rw-r--r-- 2 root root 20M Oct 27 18:30 demo3.log
-rw-r--r-- 2 root root 20M Oct 27 18:30 demo4.log
- 破壞測驗
關閉node1服務器觀察結果
[root@node1 yum.repos.d]# init 0
-------在客戶端---------
[root@client ~]# cd /test/
[root@client test]# ls
dis dis-rep dis-stripe rep stripe
[root@client test]# ls dis ###查看一下分布式卷,只有demo5了
demo5.log
[root@client test]# ls stripe ###查看條帶卷,不能查看了
ls: cannot access stripe: Transport endpoint is not connected
[root@client test]# ls dis-stripe/ ###查看分布式條帶卷,只能看demo5了
demo5.log
[root@client test]# ls dis-rep/ ###查看分布式復制卷,完整
demo1.log demo2.log demo3.log demo4.log demo5.log
-----------------------------------------洗掉卷----------------------------------------
[root@node3 yum.repos.d]# gluster volume stop rep-vol ###要先stop
Stopping volume will make its data inaccessible. Do you want to continue? (y/n)y
volume stop: rep-vol: success
[rootnode3 yum.repos.d]# gluster volume list
dis-rep
dis-stripe
dis-vol
rep-vol
stripe-vol
//注意:洗掉卷時,信任池中不能有主機處于拓機狀態,否則洗掉不成功(只有開啟狀態才能洗掉)
[root@node3 yum.repos.d]# gluster volume delete rep-vol
Deleting volume will erase all information about the volume. Do you want to continue?(y/n)y
volume delete: rep-vol: success
[root@node3 yum.repos.d]# gluster volume list
dis-rep
dis-stripe
dis-vol
stripe-vol
-----------------------------------------訪問控制----------------------------------------
//僅拒絕
[root@node1 yum.repos.d]# gluster volume set dis-vol auth.reject 192.168.10.20
volume set: success
//僅允許
[root@node1 yum.repos.d]# gluster volume set dis-vol auth.allow 192.168.10.3
volume set: success
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/196355.html
標籤:java
上一篇:測驗工程師必備Linux知識點
