通知:SQL Extractor數據庫取證修復軟件10.96試用版發布,支持預覽,支持修復病毒加密數據庫,電話:18651607829

中國數據恢復協會 數據恢復與存儲安全研發中心 [ 咨詢免費 檢測免費 ] 24小時電話: 13813824669 技術部:025-83608636(白天) 查詢電話:18913825606(白天) RAID專家:13813824669

站內搜索

聯系我們

  • 1136878877
  • 025-83608636
  • 18651607829
當前位置:首頁 > 西數新聞 > IT技術文章 IT技術文章
GlusterFS分布式存儲

GlusterFS分布式存儲

目錄0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

glusterfs簡介0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

glusterfs部署0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

glustefs分布式存儲優化0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

glusterfs在企業中應用場景0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

參考文章地址0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

一、glusterfs簡介0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

Glusterfs是一個開源的分布式文件系統,是Scale存儲的核心,能夠處理千數量級的客戶端。是整合了許多存儲塊(server)通過Infiniband RDMA或者 Tcp/Ip方式互聯的一個并行的網絡文件系統。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

  特征:0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

  • 容量可以按比例的擴展,且性能卻不會因此而降低。
  • 廉價且使用簡單,完全抽象在已有的文件系統之上。
  • 擴展和容錯設計的比較合理,復雜度較低
  • 適應性強,部署方便,對環境依賴低,使用,調試和維護便利

二、glusterfs安裝部署0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

一般在企業中,采用的是分布式復制卷,因為有數據備份,數據相對安全。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 網絡要求全部千兆環境,gluster 服務器至少有 2 塊網卡,1 塊網卡綁定供 gluster 使用,剩余一塊分配管理網絡 IP,用于系統管理。如果有條件購買萬兆交換機,服務器配置萬兆網卡,存儲性能會更好。網絡方面如果安全性要求較高,可以多網卡綁定。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 跨地區機房配置 Gluster,在中國網絡格局下不適用。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

  • 注意:GlusterFS將其動態生成的配置文件存儲在/var/lib/glusterd中。如果在任何時候GlusterFS無法寫入這些文件(例如,當后備文件系統已滿),它至少會導致您的系統不穩定的行為; 或者更糟糕的是,讓您的系統完全脫機。建議為/var/log等目錄創建單獨的分區,以確保不會發生這種情況。

1、安裝glusterfs前的環境準備 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

  1.1、服務規劃:0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

操作系統 IP 主機名 硬盤數量(三塊)
centos 7.4 10.0.0.101 node1 sdb:5G  sdc:5G  sdd:5G
centos 7.4 10.0.0.102 node2 sdb:5G  sdc:5G  sdd:5G
centos 7.4 10.0.0.103 node3 sdb:5G  sdc:5G  sdd:5G
centos 7.4 10.0.0.104 node4 sdb:5G  sdc:5G  sdd:5G
centos 7.4 10.0.0.105 node5-client sda:20G

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

   1.2、首先關閉iptables和selinux,配置hosts文件如下(全部glusterfs主機)0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

注:node01~node04所有的主機hosts文件均為此內容;同時全部修改為對應的主機名,centos7修改主機名方式:#hostnamectl set-hostname 主機名 (即為臨時和永久生效)
可以使用#hostnamectl status   查看系統基本信息
復制代碼
[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.101  node01
10.0.0.102  node02
10.0.0.103  node03
10.0.0.104  node04
[[email protected] ~]# systemctl stop firewalld.service       #停止firewalld
[[email protected] ~]# systemctl disable firewalld.service    #禁止firewalld開機自啟
[[email protected] ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config   #關閉SELinux
[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce
Permissive
[[email protected] ~]# ntpdate time.windows.com   #同步時間
復制代碼

   1.3、安裝gluterfs源(全部glusterfs主機)0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
[[email protected] ~]#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo   #不是必須的
[[email protected] ~]#yum search  centos-release-gluster   #查看有哪些版本的glusterfs源    
================================================ N/S matched: centos-release-gluster =================================================
centos-release-gluster310.noarch : Gluster 3.10 (Long Term Stable) packages from the CentOS Storage SIG repository
centos-release-gluster312.noarch : Gluster 3.12 (Long Term Stable) packages from the CentOS Storage SIG repository
centos-release-gluster313.noarch : Gluster 3.13 (Short Term Stable) packages from the CentOS Storage SIG repository
centos-release-gluster36.noarch : GlusterFS 3.6 packages from the CentOS Storage SIG repository
centos-release-gluster37.noarch : GlusterFS 3.7 packages from the CentOS Storage SIG repository
centos-release-gluster38.noarch : GlusterFS 3.8 packages from the CentOS Storage SIG repository
centos-release-gluster39.noarch : Gluster 3.9 (Short Term Stable) packages from the CentOS Storage SIG repository
復制代碼

     這里我們使用glusterfs的3.12版本的源0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

[[email protected] ~]# yum  -y  install centos-release-gluster312.noarch

   1.4、安裝glusterfs(全部glusterfs主機)0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

在安裝glusterfs的時候直接指定源為glusterfs源,由于 源[centos-gluster310-test]的enable為0,所以在指定源的時候用--enablerepo來讓源生效0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 cat /etc/yum.repos.d/CentOS-Gluster-3.12.repo

    安裝glusterfs0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

[[email protected] ~]# yum -y --enablerepo=centos-gluster*-test install glusterfs-server glusterfs-cli glusterfs-geo-replication

  1.5、查看glusterfs版本并啟動glusterfs服務(全部glusterfs主機)0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
[[email protected] ~]# glusterfs -V
glusterfs 3.12.5

[[email protected] ~]# systemctl start glusterd.service
[[email protected] ~]# systemctl enable glusterd.service
[[email protected] ~]# systemctl status glusterd.service
[[email protected] ~]# netstat -lntup
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      866/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      972/master          
tcp        0      0 0.0.0.0:24007           0.0.0.0:*               LISTEN      2268/glusterd       
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      866/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      972/master          
udp        0      0 0.0.0.0:111             0.0.0.0:*                           2266/rpcbind        
udp        0      0 0.0.0.0:745             0.0.0.0:*                           2266/rpcbind        
udp        0      0 127.0.0.1:323           0.0.0.0:*                           527/chronyd         
udp6       0      0 :::111                  :::*                                2266/rpcbind        
udp6       0      0 :::745                  :::*                                2266/rpcbind        
udp6       0      0 ::1:323                 :::*                                527/chronyd  
復制代碼

   1.6、格式化磁盤(全部glusterfs主機)0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

  在每臺主機上創建幾塊硬盤,做接下來的分布式存儲使用0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 注:創建的硬盤要用xfs格式來格式化硬盤,如果用ext4來格式化硬盤的話,對于大于16TB空間格式化就無法實現了。所以這里要用xfs格式化磁盤(centos7默認的文件格式就是xfs),并且xfs的文件格式支持PB級的數據量0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 如果是centos6默認是不支持xfs的文件格式,要先安裝xfs支持包0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

yum install xfsprogs -y

  用fdisk -l 查看磁盤設備,例如查看data-1-1的磁盤設備,這里的sdc、sdd、sde是新加的硬盤0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

[[email protected] ~]# fdisk -l
Disk /dev/sdb: 5368 MB, 5368709120 bytes
Disk /dev/sdc: 5368 MB, 5368709120 bytes
Disk /dev/sdd: 5368 MB, 5368709120 bytes

   特別說明:0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

   如果磁盤大于 2T 的話就用 parted 來分區,這里我們不用分區(可以不分區);
   做分布式文件系統的時候數據盤一般不需要做 RAID,一般系統盤會做 RAID 1;
   如果有raid卡的話,最好用上,raid卡有數據緩存功能,也能提高磁盤的iops,最好的話,用RAID 5;
   如果都不做raid的話,也是沒問題的,glusterfs也是可以保證數據的安全的。

這里使用官方推薦的格盤方式:http://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/#purpose-of-this-document
[[email protected] ~]# mkfs.xfs  -i size=512 /dev/sdb
[[email protected] ~]# mkfs.xfs  -i size=512 /dev/sdc
[[email protected] ~]# mkfs.xfs  -i size=512 /dev/sdd

  在四臺機器上創建掛載塊設備的目錄,掛載硬盤到目錄0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
mkdir -p /data/brick{1..3}
echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab
echo '/dev/sdc /data/brick2 xfs defaults 0 0' >> /etc/fstab
echo '/dev/sdd /data/brick3 xfs defaults 0 0' >> /etc/fstab
#掛載
mount -a

[[email protected] ~]# df -h
/dev/sdc        5.0G   33M  5.0G   1% /data/brick2
/dev/sdd        5.0G   33M  5.0G   1% /data/brick3
/dev/sdb        5.0G   33M  5.0G   1% /data/brick1
復制代碼

注:再次說明——以上操作均在node01-node04上同時操作0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 2、操作0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

   2.1、將分布式存儲主機加入到信任主機池并查看加入的主機狀態0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 隨便在一個開啟glusterfs服務的主機上將其他主機加入到一個信任的主機池里,這里選擇node010ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
[[email protected] ~]# gluster peer probe node02
peer probe: success. 
[[email protected] ~]# gluster peer probe node03
peer probe: success. 
[[email protected] ~]# gluster peer probe node04
peer probe: success.
復制代碼

       查看主機池中主機的狀態0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
[[email protected] ~]# gluster peer status
Number of Peers: 3      #除本機外,還有三臺主機主機池中

Hostname: node02
Uuid: 6020709d-1b46-4e2c-9cdd-c4b3bba47b4b
State: Peer in Cluster (Connected)

Hostname: node03
Uuid: 147ee557-51f1-43fe-a27f-3dae2880b5d4
State: Peer in Cluster (Connected)

Hostname: node04
Uuid: f61af299-b00d-489c-9fd9-b4f6a336a6c7
State: Peer in Cluster (Connected)
注意:一旦建立了這個池,只有受信任的成員可能會將新的服務器探測到池中。新服務器無法探測池,必須從池中探測。
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

  2.2、創建glusterfs卷0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

GlusterFS 五種卷  0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

  • Distributed:分布式卷,文件通過 hash 算法隨機分布到由 bricks 組成的卷上。
  • Replicated: 復制式卷,類似 RAID 1,replica 數必須等于 volume 中 brick 所包含的存儲服務器數,可用性高。
  • Striped: 條帶式卷,類似 RAID 0,stripe 數必須等于 volume 中 brick 所包含的存儲服務器數,文件被分成數據塊,以 Round Robin 的方式存儲在 bricks 中,并發粒度是數據塊,大文件性能好。
  • Distributed Striped: 分布式的條帶卷,volume中 brick 所包含的存儲服務器數必須是 stripe 的倍數(>=2倍),兼顧分布式和條帶式的功能。
  • Distributed Replicated: 分布式的復制卷,volume 中 brick 所包含的存儲服務器數必須是 replica 的倍數(>=2倍),兼顧分布式和復制式的功能。

 分布式復制卷的brick順序決定了文件分布的位置,一般來說,先是兩個brick形成一個復制關系,然后兩個復制關系形成分布。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 企業一般用后兩種,大部分會用分布式復制(可用容量為 總容量/復制份數),通過網絡傳輸的話最好用萬兆交換機,萬兆網卡來做。這樣就會優化一部分性能。它們的數據都是通過網絡來傳輸的。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 配置分布式卷0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
#在信任的主機池中任意一臺設備上創建卷都可以,而且創建好后可在任意設備掛載后都可以查看
[[email protected] ~]# gluster volume create gv1 node01:/data/brick1 node02:/data/brick1 force      #創建分布式卷
volume create: gv1: success: please start the volume to access data
[[email protected] ~]# gluster volume start gv1    #啟動卷gv1
volume start: gv1: success
[[email protected] ~]# gluster volume info gv1     #查看gv1的配置信息
 
Volume Name: gv1
Type: Distribute  #分布式卷
Volume ID: 85622964-4b48-47d5-b767-d6c6f1e684cc
Status: Started
Snapshot Count: 0
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: node01:/data/brick1
Brick2: node02:/data/brick1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[[email protected] ~]# mount -t glusterfs 127.0.0.1:/gv1 /opt   #掛載gv1卷
[[email protected] ~]# df -h
文件系統        容量  已用  可用 已用% 掛載點/dev/sdc        5.0G   33M  5.0G    1% /data/brick2
/dev/sdd        5.0G   33M  5.0G    1% /data/brick3
/dev/sdb        5.0G   33M  5.0G    1% /data/brick1
127.0.0.1:/gv1   10G   65M   10G    1% /opt     #連個設備容量之和
[[email protected] ~]# cd /opt/
[[email protected] opt]# touch {a..f}      #創建測試文件
[[email protected] opt]# ll
總用量 0
-rw-r--r--. 1 root root 0 2月   2 23:59 a
-rw-r--r--. 1 root root 0 2月   2 23:59 b
-rw-r--r--. 1 root root 0 2月   2 23:59 c
-rw-r--r--. 1 root root 0 2月   2 23:59 d
-rw-r--r--. 1 root root 0 2月   2 23:59 e
-rw-r--r--. 1 root root 0 2月   2 23:59 f
# 在node04也可看到新創建的文件,信任存儲池中的每一臺主機掛載這個卷后都可以看到
[[email protected] ~]# mount -t glusterfs 127.0.0.1:/gv1 /opt
[[email protected] ~]# ll /opt/
總用量 0
-rw-r--r--. 1 root root 0 2月   2 2018 a
-rw-r--r--. 1 root root 0 2月   2 2018 b
-rw-r--r--. 1 root root 0 2月   2 2018 c
-rw-r--r--. 1 root root 0 2月   2 2018 d
-rw-r--r--. 1 root root 0 2月   2 2018 e
-rw-r--r--. 1 root root 0 2月   2 2018 f
[[email protected] opt]# ll /data/brick1/
總用量 0
-rw-r--r--. 2 root root 0 2月   2 23:59 a
-rw-r--r--. 2 root root 0 2月   2 23:59 b
-rw-r--r--. 2 root root 0 2月   2 23:59 c
-rw-r--r--. 2 root root 0 2月   2 23:59 e
[[email protected] ~]# ll /data/brick1
總用量 0
-rw-r--r--. 2 root root 0 2月   2 23:59 d
-rw-r--r--. 2 root root 0 2月   2 23:59 f
#文件實際存在位置node01和node02上的/data/brick1目錄下,通過hash分別存到node01和node02上的分布式磁盤上
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

配置復制卷0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
注:復制模式,既AFR, 創建volume 時帶 replica x 數量: 將文件復制到 replica x 個節點中。
這條命令的意思是使用Replicated的方式,建立一個名為gv2的卷(Volume),存儲塊(Brick)為2個,分別為node01:/data/brick2和node02:/data/brick2;
fore為強制創建:因為復制卷在雙方主機通信有故障再恢復通信時容易發生腦裂。本次為實驗環境,生產環境不建議使用。

[[email protected] ~]# gluster volume create gv2 replica 2 node01:/data/brick2 node02:/data/brick2 force  
volume create: gv2: success: please start the volume to access data
[[email protected] ~]# gluster volume start gv2    #啟動gv2卷
volume start: gv2: success
[[email protected] ~]# gluster volume info gv2   #查看gv2信息
Volume Name: gv2
Type: Replicate   #復制卷
Volume ID: 9f33bd9a-7096-4749-8d91-1e6de3b50053
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node01:/data/brick2
Brick2: node02:/data/brick2
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
[[email protected] ~]# mount -t glusterfs 127.0.0.1:/gv2 /mnt
[[email protected] ~]# df -h
文件系統        容量  已用  可用 已用% 掛載點
/dev/sdc        5.0G   33M  5.0G    1% /data/brick2
/dev/sdd        5.0G   33M  5.0G    1% /data/brick3
/dev/sdb        5.0G   33M  5.0G    1% /data/brick1
127.0.0.1:/gv1   10G   65M   10G    1% /opt
127.0.0.1:/gv2  5.0G   33M  5.0G    1% /mnt    #容量是總容量的一半
[[email protected] ~]# cd /mnt/
[[email protected] mnt]# touch {1..6}
[[email protected] mnt]# ll /data/brick2
總用量 0
-rw-r--r--. 2 root root 0 2月   3 01:06 1
-rw-r--r--. 2 root root 0 2月   3 01:06 2
-rw-r--r--. 2 root root 0 2月   3 01:06 3
-rw-r--r--. 2 root root 0 2月   3 01:06 4
-rw-r--r--. 2 root root 0 2月   3 01:06 5
-rw-r--r--. 2 root root 0 2月   3 01:06 6
[[email protected] ~]# ll /data/brick2
總用量 0
-rw-r--r--. 2 root root 0 2月   3 01:06 1
-rw-r--r--. 2 root root 0 2月   3 01:06 2
-rw-r--r--. 2 root root 0 2月   3 01:06 3
-rw-r--r--. 2 root root 0 2月   3 01:06 4
-rw-r--r--. 2 root root 0 2月   3 01:06 5
-rw-r--r--. 2 root root 0 2月   3 01:06 6
#創建文件的實際存在位置為node01和node02上的/data/brick2目錄下,因為是復制卷,這兩個目錄下的內容是完全一致的。
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

配置條帶卷0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 
復制代碼
[[email protected] ~]# gluster volume create gv3 stripe 2 node01:/data/brick3 node02:/data/brick3 force
volume create: gv3: success: please start the volume to access data
[[email protected] ~]# gluster volume start gv3
volume start: gv3: success
[[email protected] ~]# gluster volume info gv3
 
Volume Name: gv3
Type: Stripe
Volume ID: 54c16832-6bdf-42e2-81a9-6b8d7b547c1a
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node01:/data/brick3
Brick2: node02:/data/brick3
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
[[email protected] ~]# mkdir /data01
[[email protected] ~]# mount -t glusterfs 127.0.0.1:/gv3 /data01
[[email protected] ~]# df -h
文件系統        容量  已用  可用 已用% 掛載點
127.0.0.1:/gv3   10G   65M   10G    1% /data01
[[email protected] ~]# dd if=/dev/zero bs=1024 count=10000 of=/data01/10M.file
[[email protected] ~]# dd if=/dev/zero bs=1024 count=20000 of=/data01/20M.file
[[email protected] ~]# ll /data01/ -h
總用量 30M
-rw-r--r--. 1 root root 9.8M 2月   3 02:03 10M.file
-rw-r--r--. 1 root root  20M 2月   3 02:04 20M.file
*************************************************************************************
#文件的實際存放位置:
[[email protected] ~]# ll -h /data/brick3
總用量 15M
-rw-r--r--. 2 root root 4.9M 2月   3 02:03 10M.file
-rw-r--r--. 2 root root 9.8M 2月   3 02:03 20M.file
[[email protected] ~]# ll -h /data/brick3
總用量 15M
-rw-r--r--. 2 root root 4.9M 2月   3 02:03 10M.file
-rw-r--r--. 2 root root 9.8M 2月   3 02:04 20M.file
# 上面可以看到 10M 20M 的文件分別分成了 2 塊(這是條帶的特點),寫入的時候是循環地一點一點在node01和node02的磁盤上.

#上面配置的條帶卷在生產環境是很少使用的,因為它會將文件破壞,比如一個圖片,它會將圖片一份一份地分別存到條帶卷中的brick上。
復制代碼
 

 配置分布式復制卷0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

最少需要4臺服務器才能創建,[生產場景推薦使用此種方式]0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
#將原有的復制卷gv2進行擴容,使其成為分布式復制卷;0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
#要擴容前需停掉gv20ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
  [[email protected] ~]# gluster volume stop gv2
[[email protected] ~]# gluster volume add-brick gv2 replica 2 node03:/data/brick1 node04:/data/brick1 force  #添加brick到gv2中
volume add-brick: success
[[email protected] ~]# gluster volume start gv2
volume start: gv2: success
[[email protected] ~]# gluster volume info gv2
 
Volume Name: gv2
Type: Distributed-Replicate    # 這里顯示是分布式復制卷,是在 gv2 復制卷的基礎上增加 2 塊 brick 形成的
Volume ID: 9f33bd9a-7096-4749-8d91-1e6de3b50053
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node01:/data/brick2
Brick2: node02:/data/brick2
Brick3: node03:/data/brick1
Brick4: node04:/data/brick1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

注意:當你給分布式復制卷和分布式條帶卷增加 bricks 時,你增加的 bricks 數目必須是復制或條帶數目的倍數,
例如:你給一個分布式復制卷的 replica 為 2,你在增加 bricks 的時候數量必須為2、4、6、8等。
擴容后進行測試,發現文件都分布在擴容前的卷中。
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

配置分布式條帶卷
復制代碼
#將原有的復制卷gv3進行擴容,使其成為分布式條帶卷
#要擴容前需停掉gv3
[[email protected] ~]# gluster volume stop gv3
[[email protected] ~]# gluster volume add-brick gv3 stripe 2 node03:/data/brick2 node04:/data/brick2 force  #添加brick到gv3中
[[email protected] ~]# gluster volume start gv3
volume start: gv3: success
[[email protected] ~]# gluster volume info gv3
 
Volume Name: gv3
Type: Distributed-Stripe   # 這里顯示是分布式條帶卷,是在 gv3 條帶卷的基礎上增加 2 塊 brick 形成的
Volume ID: 54c16832-6bdf-42e2-81a9-6b8d7b547c1a
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node01:/data/brick3
Brick2: node02:/data/brick3
Brick3: node03:/data/brick2
Brick4: node04:/data/brick2
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
復制代碼
 

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 

分布式復制卷的最佳實踐:0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 1)搭建條件
  - 塊服務器的數量必須是復制的倍數
   - 將按塊服務器的排列順序指定相鄰的塊服務器成為彼此的復制
例如,8臺服務器:
 - 當復制副本為2時,按照服務器列表的順序,服務器1和2作為一個復制,3和4作為一個復制,5和6作為一個復制,7和8作為一個復制
 - 當復制副本為4時,按照服務器列表的順序,服務器1/2/3/4作為一個復制,5/6/7/8作為一個復制
 2)創建分布式復制卷
磁盤存儲的平衡
平衡布局是很有必要的,因為布局結構是靜態的,當新的 bricks 加入現有卷,新創建的文件會分布到舊的 bricks 中,所以需要平衡布局結構,使新加入的 bricks 生效。布局平衡只是使新布局生效,并不會在新的布局中移動老的數據,如果你想在新布局生效后,重新平衡卷中的數據,還需要對卷中的數據進行平衡。
復制代碼
#在gv2的分布式復制卷的掛載目錄中創建測試文件入下
[[email protected] ~]# df -h
文件系統        容量  已用  可用 已用% 掛載點
127.0.0.1:/gv2   10G   65M   10G    1% /mnt
[[email protected] ~]# cd /mnt/
[[email protected] mnt]# touch {x..z}
#新創建的文件只在老的brick中有,在新加入的brick中是沒有的
[[email protected] mnt]# ls /data/brick2
1  2  3  4  5  6  x  y  z
[[email protected] ~]# ls /data/brick2
1  2  3  4  5  6  x  y  z
[[email protected] ~]# ll -h /data/brick1
總用量 0
[[email protected] ~]# ll -h /data/brick1
總用量 0
# 從上面可以看到,新創建的文件還是在之前的 bricks 中,并沒有分布中新加的 bricks 中

# 下面進行磁盤存儲平衡
[[email protected] ~]# gluster volume rebalance gv2 start
[[email protected] ~]# gluster volume rebalance gv2 status  #查看平衡存儲狀態
# 查看磁盤存儲平衡后文件在 bricks 中的分布情況
[[email protected] ~]# ls /data/brick2
1  5  y
[[email protected] ~]# ls /data/brick2
1  5  y
[[email protected] ~]# ls /data/brick1
2  3  4  6  x  z
[[email protected] ~]# ls /data/brick1
2  3  4  6  x  z
#從上面可以看出部分文件已經平衡到新加入的brick中了
每做一次擴容后都需要做一次磁盤平衡。 磁盤平衡是在萬不得已的情況下再做的,一般再創建一個卷就可以了。
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

移除 brick

你可能想在線縮小卷的大小,例如:當硬件損壞或網絡故障的時候,你可能想在卷中移除相關的 bricks。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
  注意:當你移除 bricks 的時候,你在 gluster 的掛載點將不能繼續訪問數據,只有配置文件中的信息移除后你才能繼續訪問 bricks 中的數據。當移除分布式復制卷或者分布式條帶卷的時候,移除的 bricks 數目必須是 replica 或者 stripe 的倍數。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 

  但是移除brick在生產環境中基本上不做的,如果是硬盤壞掉的話,直接換個好的硬盤即可,然后再對新的硬盤設置卷標識就可以使用了,后面會演示硬件故障或系統故障的解決辦法。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
[[email protected] ~]# gluster volume stop gv2
[[email protected] ~]# gluster volume remove-brick gv2 replica 2 node03:/data/brick1 node04:/data/brick1 force   #強制移除brick塊
[[email protected] ~]# gluster volume info gv2    
Volume Name: gv2
Type: Replicate
Volume ID: 9f33bd9a-7096-4749-8d91-1e6de3b50053
Status: Stopped
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node01:/data/brick2
Brick2: node02:/data/brick2
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
# 如果誤操作刪除了后,其實文件還在 /storage/brick1 里面的,加回來就可以了
[[email protected] ~]# gluster volume add-brick gv2 replica 2 node03:/data/brick1 node04:/data/brick1 force  
volume add-brick: success
[[email protected] ~]# gluster volume info gv2
 
Volume Name: gv2
Type: Distributed-Replicate
Volume ID: 9f33bd9a-7096-4749-8d91-1e6de3b50053
Status: Stopped
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: node01:/data/brick2
Brick2: node02:/data/brick2
Brick3: node03:/data/brick1
Brick4: node04:/data/brick1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
復制代碼
刪除卷
  一般會用在命名不規范的時候才會刪除 
[[email protected] ~]# gluster volume stop gv1
[[email protected] ~]# gluster volume delete gv
模擬誤刪除卷信息故障及解決辦法
復制代碼
[[email protected] ~]# ls /var/lib/glusterd/vols/
gv2  gv3
[[email protected] ~]# rm -rf /var/lib/glusterd/vols/gv3 #刪除卷gv3的卷信息
[[email protected] ~]# ls /var/lib/glusterd/vols/     #再查看卷信息情況如下:gv3卷信息被刪除了
gv2
[[email protected] ~]# gluster volume sync node02      #因為其他節點服務器上的卷信息是完整的,比如從node02上同步所有卷信息如下:
Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y
volume sync: success
[[email protected] ~]# ls /var/lib/glusterd/vols/    #驗證卷信息是否同步過來
gv2  gv3
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

模擬復制卷數據不一致故障及解決辦法0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
[[email protected] ~]# ls /data/brick2    #復制卷的存儲位置的數據
1  5  y
[[email protected] ~]# rm -f /data/brick2/y 
[[email protected] ~]# ls /data/brick2
1  5
[[email protected] ~]# ls /data/brick2
1  5  y
[[email protected] ~]# gluster start gv2   #因為之前關閉了,如果未關閉可以忽略此步。
[[email protected] ~]# cat /mnt/y     #通過訪問這個復制卷的掛載點的數據來同步數據
[[email protected] ~]# ls /data/brick2/     #這時候再看復制卷的數據是否同步成功
1  5  y
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

3、glustefs分布式存儲優化0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
Auth_allow  #IP訪問授權;缺省值(*.allow all);合法值:Ip地址
Cluster.min-free-disk  #剩余磁盤空間閥值;缺省值(10%);合法值:百分比
Cluster.stripe-block-size  #條帶大??;缺省值(128KB);合法值:字節
Network.frame-timeout  #請求等待時間;缺省值(1800s);合法值:1-1800
Network.ping-timeout  #客戶端等待時間;缺省值(42s);合法值:0-42
Nfs.disabled  #關閉NFS服務;缺省值(Off);合法值:Off|on
Performance.io-thread-count  #IO線程數;缺省值(16);合法值:0-65
Performance.cache-refresh-timeout  #緩存校驗時間;缺省值(1s);合法值:0-61
Performance.cache-size  #讀緩存大??;缺省值(32MB);合法值:字節

Performance.quick-read: #優化讀取小文件的性能
Performance.read-ahead: #用預讀的方式提高讀取的性能,有利于應用頻繁持續性的訪問文件,當應用完成當前數據塊讀取的時候,下一個數據塊就已經準備好了。
Performance.write-behind:先寫入緩存內,在寫入硬盤,以提高寫入的性能。
Performance.io-cache:緩存已經被讀過的、
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

3.1、優化參數調整方式0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
命令格式:
gluster.volume set <卷><參數>


例如:
#打開預讀方式訪問存儲
[[email protected]ode01 ~]# gluster volume set gv2 performance.read-ahead on

#調整讀取緩存的大小
[[email protected] gv2]# gluster volume set gv2 performance.cache-size 256M
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

3.2、監控及日常維護0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
使用zabbix自帶的模板即可,CPU、內存、磁盤空間、主機運行時間、系統load。日常情況要查看服務器監控值,遇到報警要及時處理。
#看下節點有沒有在線
gluster volume status nfsp

#啟動完全修復
gluster volume heal gv2 full

#查看需要修復的文件
gluster volume heal gv2 info

#查看修復成功的文件
gluster volume heal gv2 info healed

#查看修復失敗的文件
gluster volume heal gv2 heal-failed

#查看主機的狀態
gluster peer status

#查看腦裂的文件
gluster volume heal gv2 info split-brain

#激活quota功能
gluster volume quota gv2 enable

#關閉quota功能
gulster volume quota gv2 disable

#目錄限制(卷中文件夾的大?。?
gluster volume quota limit-usage /data/30MB --/gv2/data

#quota信息列表
gluster volume quota gv2 list

#限制目錄的quota信息
gluster volume quota gv2 list /data

#設置信息的超時時間
gluster volume set gv2 features.quota-timeout 5

#刪除某個目錄的quota設置
gluster volume quota gv2 remove /data

備注:quota功能,主要是對掛載點下的某個目錄進行空間限額。如:/mnt/gulster/data目錄,而不是對組成卷組的空間進行限制。
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

3.3、Gluster日常維護及故障處理0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

注:給自己的提示:此處如有不詳之處查看qq微云--linux-glusterfs文件夾0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 1、硬盤故障0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

如果底層做了raid配置,有硬件故障,直接更換硬盤,會自動同步數據。
  如果沒有做raid處理方法:

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 2、一臺主機故障0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

一臺節點故障的情況包含以下情況:0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
物理故障0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
同時有多塊硬盤故障,造成數據丟失0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
系統損壞不可修復0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
解決方法:0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
找一臺完全一樣的機器,至少要保證硬盤數量和大小一致,安裝系統,配置和故障機同樣的 IP,安裝 gluster 軟件,0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606
保證配置一樣,在其他健康節點上執行命令 gluster peer status,查看故障服務器的 uuid0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
[[email protected] ~]# gluster peer status
Number of Peers: 3

Hostname: mystorage3
Uuid: 36e4c45c-466f-47b0-b829-dcd4a69ca2e7
State: Peer in Cluster (Connected)

Hostname: mystorage4
Uuid: c607f6c2-bdcb-4768-bc82-4bc2243b1b7a
State: Peer in Cluster (Connected)

Hostname: mystorage1
Uuid: 6e6a84af-ac7a-44eb-85c9-50f1f46acef1
State: Peer in Cluster (Disconnected)
復制代碼
修改新加機器的 /var/lib/glusterd/glusterd.info 和 故障機器一樣

[[email protected] ~]# cat /var/lib/glusterd/glusterd.info
UUID=6e6a84af-ac7a-44eb-85c9-50f1f46acef1
operating-version=30712
在信任存儲池中任意節點執行

# gluster volume heal gv2 full
就會自動開始同步,但在同步的時候會影響整個系統的性能。

可以查看狀態

# gluster volume heal gv2 info
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

GlusterFS在企業中應用場景

  理論和實踐分析,GlusterFS目前主要使用大文件存儲場景,對于小文件尤其是海量小文件,存儲效率和訪問性能都表現不佳,海量小文件LOSF問題是工業界和學術界的人工難題,GlusterFS作為通用的分布式文件系統,并沒有對小文件額外的優化措施,性能不好也是可以理解的。0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

復制代碼
Media
  -文檔、圖片、音頻、視頻
 *Shared storage  
  -云存儲、虛擬化存儲、HPC(高性能計算)
 *Big data
  -日志文件、RFID(射頻識別)數據
復制代碼

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

 0ze南京數據恢復-西數科技: 硬盤/手機/SSD數據恢復專家. 025-83608636 18913825606

上一篇:ASM是Oracle 10g R2中為了簡化Oracle數據庫的管理而推出來的一項新功能
下一篇:Why "沒有發現密碼" message for BitLocker recovery?
Copyright(C)2014 南京西數科技有限公司 wdsos.com 備案號:蘇ICP備09074223號
地址:江蘇省南京市玄武區珠江路435號華海大廈6樓601室(同慶樓右側上電梯) 技術部:025-83608636(8:30-18:30)
數據恢復:025-86883952 產品銷售:18913825606 聯系人:陳兵兵
整站策劃由 西數科技 提供
辽宁十一选五中奖号码