相對於本機端的文件系統而言,分佈式文件系統(英語:Distributed file system, DFS),或是網絡文件系統(英語:Network File System),是一種容許文件經過網絡在多臺主機上分享的文件系統,可以讓多機器上的多用戶分享文件和存儲空間。centos
在這樣的文件系統中,客戶端並不是直接訪問底層的數據存儲區塊,而是經過網絡,以特定的通訊協議和服務器溝通。藉由通訊協議的設計,能夠讓客戶端和服務器端都能根據訪問控制清單或是受權,來限制對於文件系統的訪問。服務器
Gluster是一個分佈式文件系統。它是各類不一樣的存儲服務器之上的組合,這些服務器由以太網或無限帶寬技術Infiniband以及遠程直接內存訪問RDMA互相融匯,最終所造成的一個大的並行文件系統網絡。網絡
它有包括雲計算在內的多重應用,諸如:生物醫藥科學,文檔存儲。Gluster是由GNU託管的自由軟件,證書是AGPL。Gluster公司是Gluster的首要商業贊助商,且提供商業產品以及基於Gluster的解決方案。tcp
注意:最少須要擁有兩塊硬盤分佈式
系統環境說明ide
glusterfs01信息工具
[root@glusterfs01 ~]# hostname glusterfs01 [root@glusterfs01 ~]# uname -r 3.10.0-693.el7.x86_64 [root@glusterfs01 ~]# sestatus SELinux status: disabled [root@glusterfs01 ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@glusterfs01 ~]# hostname -I 10.0.0.120 172.16.1.120
glusterfs02信息測試
[root@glusterfs02 ~]# uname -r 3.10.0-693.el7.x86_64 [root@glusterfs02 ~]# sestatus SELinux status: disabled [root@glusterfs02 ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@glusterfs02 ~]# hostname -I 10.0.0.121 172.16.1.121
注意配置好hosts解析ui
gluster01主機掛載磁盤this
[root@glusterfs01 ~]# mkfs.xfs /dev/sdb [root@glusterfs01 ~]# mkdir -p /data/brick1 [root@glusterfs01 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab [root@glusterfs01 ~]# mount -a && mount
gluster02主機掛載磁盤
[root@glusterfs02 ~]# mkfs.xfs /dev/sdb [root@glusterfs02 ~]# mkdir -p /data/brick1 [root@glusterfs02 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab [root@glusterfs02 ~]# mount -a && mount
在兩個節點上操做
yum install centos-release-gluster -y # 修改鏡像源加速 sed -i 's#http://mirror.centos.org#https://mirrors.shuosc.org#g' /etc/yum.repos.d/CentOS-Gluster-3.12.repo yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
軟件版本
[root@glusterfs01 ~]# rpm -qa glusterfs glusterfs-3.12.5-2.el7.x86_64
在兩個節點上都進行操做
[root@glusterfs01 ~]# systemctl start glusterd.service [root@glusterfs01 ~]# systemctl status glusterd.service ● glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/usr/lib/systemd/system/glusterd.service; disabled; vendor preset: disabled) Active: active (running) since 三 2018-02-07 21:02:44 CST; 2s ago Process: 1923 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS) Main PID: 1924 (glusterd) CGroup: /system.slice/glusterd.service └─1924 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO 2月 07 21:02:44 glusterfs01 systemd[1]: Starting GlusterFS, a clustered file-system server... 2月 07 21:02:44 glusterfs01 systemd[1]: Started GlusterFS, a clustered file-system server. Hint: Some lines were ellipsized, use -l to show in full.
在glusterfs01上操做
[root@glusterfs01 ~]# gluster peer probe glusterfs02 peer probe: success.
在glusterfs02上操做
[root@glusterfs02 ~]# gluster peer probe glusterfs01 peer probe: success.
注意:一旦創建了這個池,只有受信任的成員可能會將新的服務器探測到池中。新服務器沒法探測池,必須從池中探測。
[root@glusterfs01 ~]# gluster peer status Number of Peers: 1 Hostname: 10.0.0.121 Uuid: 61d043b0-5582-4354-b475-2626c88bc576 State: Peer in Cluster (Connected) Other names: glusterfs02
注意:看到的UUID應不相同。
[root@glusterfs02 ~]# gluster peer status Number of Peers: 1 Hostname: glusterfs01 Uuid: e2a9367c-fe96-446d-a631-194970c18750 State: Peer in Cluster (Connected)
在兩個節點上操做
mkdir -p /data/brick1/gv0
在任意一個節點上執行
[root@glusterfs01 ~]# gluster volume create gv0 replica 2 glusterfs01:/data/brick1/gv0 glusterfs02:/data/brick1/gv0 Replica 2 volumes are prone to split-brain. Use Arbiter or Replica 3 to avoid this. See: http://docs.gluster.org/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/. Do you still want to continue? (y/n) y volume create: gv0: success: please start the volume to access data
啓用存儲卷
[root@glusterfs01 ~]# gluster volume start gv0 volume start: gv0: success
查看信息
[root@glusterfs01 ~]# gluster volume info Volume Name: gv0 Type: Replicate Volume ID: 865899b9-1e5a-416a-8374-63f7df93e4f5 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs01:/data/brick1/gv0 Brick2: glusterfs02:/data/brick1/gv0 Options Reconfigured: transport.address-family: inet nfs.disable: on performance.client-io-threads: off
至此,服務端配置結束
掛載測試
[root@clsn6 ~]# yum install centos-release-gluster -y [root@clsn6 ~]# yum install -y glusterfs glusterfs-fuse
注意:要配置好hosts文件,不然鏈接會出錯
[root@clsn6 ~]# mount.glusterfs glusterfs01:/gv0 /mnt [root@clsn6 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 2.2G 16G 13% / tmpfs 238M 0 238M 0% /dev/shm /dev/sda1 190M 40M 141M 22% /boot glusterfs01:/gv0 100G 33M 100G 1% /mnt
[root@clsn6 ~]# for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done
客戶端檢查文件
[root@clsn6 ~]# ls -lA /mnt/copy* | wc -l 10
服務節點檢查文件
[root@glusterfs01 ~]# ls -lA /data/brick1/gv0/copy* |wc -l 100
服務節點檢查文件
[root@glusterfs02 ~]# ls -lA /data/brick1/gv0/copy* |wc -l 100
至此Glusterfs簡單配置完成