日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux实战教学笔记52:GlusterFS分布式存储系统

發(fā)布時(shí)間:2023/12/15 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux实战教学笔记52:GlusterFS分布式存储系统 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一,分布式文件系統(tǒng)理論基礎(chǔ)

1.1 分布式文件系統(tǒng)出現(xiàn)

  • 計(jì)算機(jī)通過(guò)文件系統(tǒng)管理,存儲(chǔ)數(shù)據(jù),而現(xiàn)在數(shù)據(jù)信息爆炸的時(shí)代中人們可以獲取的數(shù)據(jù)成指數(shù)倍的增長(zhǎng),單純通過(guò)增加硬盤(pán)個(gè)數(shù)來(lái)擴(kuò)展計(jì)算機(jī)文件系統(tǒng)的存儲(chǔ)容量的方式,已經(jīng)不能滿足目前的需求。
  • 分布式文件系統(tǒng)可以有效解決數(shù)據(jù)的存儲(chǔ)和管理難題,將固定于某個(gè)地點(diǎn)的某個(gè)文件系統(tǒng),擴(kuò)展到任意多個(gè)地點(diǎn)/多個(gè)文件系統(tǒng),眾多的節(jié)點(diǎn)組成一個(gè)文件系統(tǒng)網(wǎng)絡(luò)。每個(gè)節(jié)點(diǎn)可以分布在不同的地點(diǎn),通過(guò)網(wǎng)絡(luò)進(jìn)行節(jié)點(diǎn)間的通信和數(shù)據(jù)傳輸。人們?cè)谑褂梅植际轿募到y(tǒng)時(shí),無(wú)需關(guān)心數(shù)據(jù)是存儲(chǔ)在哪個(gè)節(jié)點(diǎn)上,或者是從哪個(gè)節(jié)點(diǎn)從獲取的,只需要像使用本地文件系統(tǒng)一樣管理和存儲(chǔ)文件系統(tǒng)中的數(shù)據(jù)。

1.2 典型代表NFS

NFS(Network File System)即網(wǎng)絡(luò)文件系統(tǒng),它允許網(wǎng)絡(luò)中的計(jì)算機(jī)之間通過(guò)TCP/IP網(wǎng)絡(luò)共享資源。在NFS的應(yīng)用中,本地NFS的客戶端應(yīng)用可以透明地讀寫(xiě)位于遠(yuǎn)端NFS服務(wù)器上的文件,就像訪問(wèn)本地文件一樣。NFS的優(yōu)點(diǎn)如下:

(1)節(jié)約使用的磁盤(pán)空間

客戶端經(jīng)常使用的數(shù)據(jù)可以集中存放在一臺(tái)機(jī)器上,并使用NFS發(fā)布,那么網(wǎng)絡(luò)內(nèi)部所有計(jì)算機(jī)可以通過(guò)網(wǎng)絡(luò)訪問(wèn),不必單獨(dú)存儲(chǔ)。

(2)節(jié)約硬件資源

NFS還可以共享軟驅(qū),CDROM和ZIP等的存儲(chǔ)設(shè)備,減少整個(gè)網(wǎng)絡(luò)上的可移動(dòng)設(shè)備的數(shù)量。

(3)用戶主目錄設(shè)定

對(duì)于特殊用戶,如管理員等,為了管理的需要,可能會(huì)經(jīng)常登陸到網(wǎng)絡(luò)中所有的計(jì)算機(jī),若每個(gè)客戶端,均保存這個(gè)用戶的主目錄很繁瑣,而且不能保證數(shù)據(jù)的一致性。實(shí)際上,經(jīng)過(guò)NFS服務(wù)的設(shè)定,然后在客戶端指定這個(gè)用戶的主目錄位置,并自動(dòng)掛載,就可以在任何計(jì)算機(jī)上使用用戶主目錄的文件。

1.3 面臨的問(wèn)題

存儲(chǔ)空間不足,需要更大容量的存儲(chǔ)
直接用NFS掛載存儲(chǔ),有一定風(fēng)險(xiǎn),存在單點(diǎn)故障
某些場(chǎng)景不能滿足需求,大量的訪問(wèn)磁盤(pán)IO是瓶頸

1.4 GlusterFS概述

  • GlusterFS是Scale-Out存儲(chǔ)解決方案Gluster的核心,它是一個(gè)開(kāi)源的分布式文件系統(tǒng),具有強(qiáng)大的橫向擴(kuò)展能力,通過(guò)擴(kuò)展能夠支持?jǐn)?shù)PB存儲(chǔ)容量和處理數(shù)千客戶端。GlusterFS借助TCP/IP或InfiniBand RDMA網(wǎng)絡(luò)將物理分布的存儲(chǔ)資源聚集在一起,使用單一全局命名空間來(lái)管理數(shù)據(jù)。
  • GlusterFS支持運(yùn)行在任何標(biāo)準(zhǔn)IP網(wǎng)絡(luò)上標(biāo)準(zhǔn)應(yīng)用程序的標(biāo)準(zhǔn)客戶端,用戶可以在全局統(tǒng)一的命令空間中使用NFS/CIFS等標(biāo)準(zhǔn)協(xié)議來(lái)訪問(wèn)應(yīng)用程序。GlusterFS使得用戶可擺脫原有的獨(dú)立,高成本的封閉存儲(chǔ)系統(tǒng),能夠利用普通廉價(jià)的存儲(chǔ)設(shè)備來(lái)部署可集中管理,橫向擴(kuò)展,虛擬化的存儲(chǔ)池,存儲(chǔ)容量可擴(kuò)展至TB/PB級(jí)。
  • 目前glusterfs已被redhat收購(gòu),它的官方網(wǎng)站是:http://www.gluster.org/

超高性能(64個(gè)節(jié)點(diǎn)時(shí)吞吐量也就是帶寬甚至達(dá)到32GB/s)

1.5 GlusterFS企業(yè)主要應(yīng)用場(chǎng)景

理論和實(shí)踐上分析,GlusterFS目前主要適用大文件存儲(chǔ)場(chǎng)景,對(duì)于小文件尤其是海量小文件(小于1M),存儲(chǔ)效率和訪問(wèn)性能都表現(xiàn)不佳。海量小文件LOSF問(wèn)題是工業(yè)界和學(xué)術(shù)界公認(rèn)的難題,GlusterFS作為通用的分布式文件系統(tǒng),并沒(méi)有對(duì)小文件作額外的優(yōu)化措施(小于1M),性能不好也是可以理解的。

  • [x] Media

文檔,圖片,音頻,視頻

  • [x] Shared storage

云存儲(chǔ),虛擬化存儲(chǔ),HPC(高性能計(jì)算)

  • [x] Big data

日志文件,RFID(射頻識(shí)別)數(shù)據(jù)

二,部署安裝

2.1 GlusterFS 安裝前的準(zhǔn)備

  • 電腦一臺(tái),內(nèi)存>=4G,可用磁盤(pán)空間大于50G
  • 安裝VMWARE Workstation虛擬機(jī)軟件
  • 安裝好四臺(tái)CentOS-6-x86_64(6.2-6.8都可以)的虛擬機(jī)
  • 基本系統(tǒng):1核CPU+1024M內(nèi)存+10G硬盤(pán)
  • 網(wǎng)絡(luò)選擇:網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
  • 關(guān)閉iptables和SELinux
  • 預(yù)裝glusterfs軟件包
  • 描述IP主機(jī)名
    Linux_node1192.168.200.150mystorage01
    Linux_node2192.168.200.151mystorage02
    Linux_node3192.168.200.152mystorage03
    Linux_node4192.168.200.153mystorage04
    Linux_node5192.168.200.154WebServerClinet
    #為了實(shí)驗(yàn)的準(zhǔn)確性,請(qǐng)盡量和我用一個(gè)版本的Linux操作系統(tǒng) #并用實(shí)驗(yàn)給的rpm包作為yum源 [root@localhost rpm]# cat /etc/redhat-release CentOS release 6.5 (Final)[root@localhost rpm]# uname -r 2.6.32-431.el6.x86_64 [root@localhost rpm]# pwd /root/rpm [root@localhost rpm]# ls dbench-4.0-12.el6.x86_64.rpm libaio-0.3.107-10.el6.x86_64.rpm glusterfs-3.7.20-1.el6.x86_64.rpm libevent-1.4.13-4.el6.x86_64.rpm glusterfs-api-3.7.20-1.el6.x86_64.rpm libgssglue-0.1-11.el6.x86_64.rpm glusterfs-api-devel-3.7.20-1.el6.x86_64.rpm libntirpc-1.3.1-1.el6.x86_64.rpm glusterfs-cli-3.7.20-1.el6.x86_64.rpm libntirpc-devel-1.3.1-1.el6.x86_64.rpm glusterfs-client-xlators-3.7.20-1.el6.x86_64.rpm libtirpc-0.2.1-13.el6_9.x86_64.rpm glusterfs-coreutils-0.0.1-0.1.git0c86f7f.el6.x86_64.rpm nfs-utils-1.2.3-75.el6_9.x86_64.rpm glusterfs-coreutils-0.2.0-1.el6_37.x86_64.rpm nfs-utils-lib-1.1.5-13.el6.x86_64.rpm glusterfs-devel-3.7.20-1.el6.x86_64.rpm python-argparse-1.2.1-2.1.el6.noarch.rpm glusterfs-extra-xlators-3.7.20-1.el6.x86_64.rpm python-gluster-3.7.20-1.el6.noarch.rpm glusterfs-fuse-3.7.20-1.el6.x86_64.rpm pyxattr-0.5.0-1.el6.x86_64.rpm glusterfs-ganesha-3.7.20-1.el6.x86_64.rpm repodata glusterfs-geo-replication-3.7.20-1.el6.x86_64.rpm rpcbind-0.2.0-13.el6_9.1.x86_64.rpm glusterfs-libs-3.7.20-1.el6.x86_64.rpm rsync-3.0.6-12.el6.x86_64.rpm glusterfs-rdma-3.7.20-1.el6.x86_64.rpm userspace-rcu-0.7.16-2.el6.x86_64.rpm glusterfs-resource-agents-3.7.20-1.el6.noarch.rpm userspace-rcu-0.7.7-1.el6.x86_64.rpm glusterfs-server-3.7.20-1.el6.x86_64.rpm userspace-rcu-devel-0.7.16-2.el6.x86_64.rpm keyutils-1.4-5.el6.x86_64.rpm userspace-rcu-devel-0.7.7-1.el6.x86_64.rpm keyutils-libs-1.4-5.el6.x86_64.rpm [root@localhost rpm]# yum -y install glusterfs-server glusterfs-cli glusterfs-geo-replication

    2.2 GlusterFS 安裝

    2.2.1 修改主機(jī)名

    2.2.2 添加hosts文件實(shí)現(xiàn)集群主機(jī)之間相互能夠解析

    [root@glusterfs01 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.200.150 glusterfs01 192.168.200.151 glusterfs02 192.168.200.152 glusterfs03 192.168.200.153 glusterfs04

    2.2.3 關(guān)閉selinux和防火墻

    #關(guān)閉selinux sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/sysconfig/selinux #關(guān)閉iptables service iptables stop chkconfig iptables off

    2.2.4 利用教程附帶的rpm軟件包組,充當(dāng)本地定制化yum源

    yum -y install createrepo yum -y install glusterfs-server glusterfs-cli glusterfs-geo-replication

    2.3 配置glusterfs

    2.3.1 查看glusterfs版本信息

    [root@glusterfs01 ~]# which glusterfs /usr/sbin/glusterfs [root@glusterfs01 ~]# glusterfs -V glusterfs 3.7.20 built on Jan 30 2017 15:39:27 Repository revision: git://git.gluster.com/glusterfs.git Copyright (c) 2006-2013 Red Hat, Inc. <http://www.redhat.com/> GlusterFS comes with ABSOLUTELY NO WARRANTY. It is licensed to you under your choice of the GNU Lesser General Public License, version 3 or any later version (LGPLv3 or later), or the GNU General Public License, version 2 (GPLv2), in all cases as published by the Free Software Foundation.

    2.3.2 啟動(dòng)停止服務(wù)

    [root@glusterfs01 ~]# /etc/init.d/glusterd status #查看服務(wù)狀態(tài) glusterd (pid 906) is running... [root@glusterfs01 ~]# /etc/init.d/glusterd stop #停止 Stopping glusterd: [ OK ] [root@glusterfs01 ~]# /etc/init.d/glusterd status glusterd is stopped [root@glusterfs01 ~]# /etc/init.d/glusterd start #啟動(dòng) Starting glusterd: [ OK ] [root@glusterfs01 ~]# /etc/init.d/glusterd status glusterd (pid 1356) is running... [root@glusterfs01 ~]# chkconfig glusrerd on #添加開(kāi)機(jī)啟動(dòng)

    2.3.3 存儲(chǔ)主機(jī)加入信任存儲(chǔ)池

    虛擬機(jī)添加信任存儲(chǔ)池
    特別提示:只需要讓一個(gè)虛擬機(jī)進(jìn)行添加操作即可。但自己并不需要添加信任自己

    #確保所有的虛擬機(jī)的glusterd服務(wù)都處于開(kāi)啟狀態(tài),然后執(zhí)行如下操作 [root@glusterfs01 ~]# gluster peer probe glusterfs02 peer probe: success. [root@glusterfs01 ~]# gluster peer probe glusterfs03 peer probe: success. [root@glusterfs01 ~]# gluster peer probe glusterfs04 peer probe: success.

    2.3.4 查看虛擬機(jī)信任狀態(tài)添加結(jié)果

    [root@glusterfs01 ~]# gluster peer status Number of Peers: 3Hostname: glusterfs02 Uuid: 0b52290d-96b0-4b9c-988d-44062735a8a8 State: Peer in Cluster (Connected)Hostname: glusterfs03 Uuid: c5dd23d5-c93c-427c-811b-3255da3c9691 State: Peer in Cluster (Connected) Hostname: glusterfs04 Uuid: a43ac51b-641c-4fc4-be56-f6873423b462 State: Peer in Cluster (Connected)

    同學(xué)們可以查看每臺(tái)虛擬機(jī)的信任狀態(tài),他們此時(shí)彼此都應(yīng)該已經(jīng)互有信任記錄了

    2.3.5 配置前的準(zhǔn)備工作

    #鏈接光盤(pán)源,安裝xfs支持包(Centos7已經(jīng)不再需要安裝) #所有都要裝 yum -y install xfsprogs

    在企業(yè)里我們還需要分區(qū)然后才能進(jìn)行格式化。但是我們這里就省略了,我們直接格式化每臺(tái)虛擬機(jī)的那塊10G硬盤(pán)

    [root@glusterfs01 ~]# mkfs.ext4 /dev/sdb mke2fs 1.41.12 (17-May-2010) /dev/sdb is entire device, not just one partition! Proceed anyway? (y,n) y Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 655360 inodes, 2621440 blocks 131072 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2684354560 80 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 28 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

    在四臺(tái)機(jī)器上執(zhí)行mkdir -p /gluster/brick1 建立掛在塊設(shè)備的目錄
    掛載磁盤(pán)到文件系統(tǒng)(4臺(tái)都做,步驟相同)

    [root@glusterfs01 ~]# mkdir -p /gluster/brick1 [root@glusterfs01 ~]# mount /dev/sdb /gluster/brick1 [root@glusterfs01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 18G 1.1G 16G 7% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/sr0 4.2G 4.2G 0 100% /media/cdrom /dev/sdb 9.9G 151M 9.2G 2% /gluster/brick1

    繼續(xù)重復(fù)以上步驟,將第二塊磁盤(pán)sdc格式化,并掛載到每臺(tái)虛擬機(jī)的/gluster/brick2上

    4臺(tái)虛擬機(jī)加入開(kāi)機(jī)自動(dòng)掛載

    [root@glusterfs01 ~]# echo "mount /dev/sdb /gluster/brick1" >> /etc/rc.local [root@glusterfs01 ~]# echo "mount /dev/sdc /gluster/brick2" >> /etc/rc.local [root@glusterfs01 ~]# tail -2 /etc/rc.local mount /dev/sdb /gluster/brick1 mount /dev/sdc /gluster/brick2

    2.3.6 創(chuàng)建volume分布式卷

    • [x] 基本卷:
      • 分布式卷(Distributed):
      • 復(fù)制卷(Replicated):
      • 條帶式卷(Striped):
    • [x] 復(fù)合卷:
      • 分布式復(fù)制卷(Distributed Replicated):
      • 分布式條帶卷(Distributed Striped):
      • 復(fù)制條帶卷(Replicated Striped):
      • 分布式復(fù)制條帶卷(Distributed Replicated Striped):
    #創(chuàng)建分布式卷(在glusterfs01上操作) [root@glusterfs01 ~]# gluster volume create gs1 glusterfs01:/gluster/brick1 glusterfs02:/gluster/brick1 force volume create: gs1: success: please start the volume to access data #啟動(dòng)創(chuàng)建的卷(在glusterfs01上操作) [root@glusterfs01 ~]# gluster volume start gs1 volume start: gs1: success #然后我們發(fā)現(xiàn)4臺(tái)虛擬機(jī)都能看到如下信息(在任意虛擬機(jī)上操作) [root@glusterfs04 ~]# gluster volume info Volume Name: gs1 #卷名 Type: Distribute #分布式 Volume ID: 0f0adf7a-3b8f-4016-ac72-83f633e90fac #ID號(hào) Status: Started #啟動(dòng)狀態(tài) Number of Bricks: 2 #一共兩個(gè)塊設(shè)備 Transport-type: tcp #tcp的連接方式 Bricks: #塊信息 Brick1: glusterfs01:/gluster/brick1 Brick2: glusterfs02:/gluster/brick1 Options Reconfigured: performance.readdir-ahead: on

    2.3.7 volume的兩種掛載方式

    (1)以glusterfs方式掛載

    #掛載卷到目錄(在glusterfs01上操作) [root@glusterfs01 ~]# mount -t glusterfs 127.0.0.1:/gs1 /mnt #將本地的分布式卷gs01掛載到/mnt目錄下 [root@glusterfs01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 18G 1.1G 16G 7% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/sr0 4.2G 4.2G 0 100% /media/cdrom /dev/sdb 9.9G 151M 9.2G 2% /gluster/brick1 127.0.0.1:/gs1 20G 302M 19G 2% /mnt #掛載成功,我們看到磁盤(pán)空間已經(jīng)整合 #在掛載好的/mnt目錄里創(chuàng)建實(shí)驗(yàn)文件(在glusterfs01上操作) [root@glusterfs01 ~]# touch /mnt/{1..5} [root@glusterfs01 ~]# ls /mnt 1 2 3 4 5 #在其他虛擬機(jī)上掛載分布式卷gs1,查看同步掛載結(jié)果 [root@glusterfs02 rpm]# mount -t glusterfs 127.0.0.1:/gs1 /mnt [root@glusterfs02 rpm]# ls /mnt 1 2 3 4 5 [root@glusterfs03 rpm]# mount -t glusterfs 127.0.0.1:/gs1 /mnt [root@glusterfs03 rpm]# ls /mnt 1 2 3 4 5 [root@glusterfs04 ~]# mount -t glusterfs 127.0.0.1:/gs1 /mnt [root@glusterfs04 ~]# ls /mnt 1 2 3 4 5

    (2)以NFS方式進(jìn)行掛載

    在掛載之前我們先來(lái)看一下如何打開(kāi)glusterfs的NFS掛載方式

    #在glusterfs01上執(zhí)行如下操作 [root@glusterfs01 ~]# gluster volume status #查看分布式卷的狀態(tài) Status of volume: gs1 Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick glusterfs01:/gluster/brick1 49152 0 Y 1911 Brick glusterfs02:/gluster/brick1 49152 0 Y 1695 NFS Server on localhost N/A N/A N N/A #本地分布式卷NFS掛載未開(kāi)啟 NFS Server on glusterfs04 2049 0 Y 2679 NFS Server on glusterfs02 2049 0 Y 2600 #出現(xiàn)具體的端口就表明開(kāi)啟了 NFS Server on glusterfs03 2049 0 Y 2608 Task Status of Volume gs1 ------------------------------------------------------------------------------ There are no active volume tasks

    以上結(jié)果是是什么原因呢?
    如果NFS Server的掛載端口顯示N/A表示未開(kāi)啟掛載功能,這是由于要先進(jìn)行nfs掛載是需要裝兩個(gè)nfs的軟件包的rpcbind和nfs-utils
    當(dāng)然就算系統(tǒng)裝了這兩個(gè)軟件包,那么我們也需要開(kāi)啟rpcbind服務(wù),然后在重啟glusterfs服務(wù)才能夠進(jìn)行nfs掛載的操作。
    現(xiàn)在我們就來(lái)開(kāi)啟glusterfs01的nfs掛載功能,如下:

    #在glusterfs01上執(zhí)行如下操作 [root@glusterfs01 ~]# rpm -qa nfs-utils #查看是否安裝nfs-utils nfs-utils-1.2.3-75.el6_9.x86_64 [root@glusterfs01 ~]# rpm -qa rpcbind #查看是否安裝rpcbind rpcbind-0.2.0-13.el6_9.1.x86_64 [root@glusterfs01 ~]# /etc/init.d/rpcbind status #查看rpcbind服務(wù)狀態(tài) rpcbind is stopped [root@glusterfs01 ~]# /etc/init.d/rpcbind start #開(kāi)啟rpcbind服務(wù) Starting rpcbind: [ OK ] [root@glusterfs01 ~]# /etc/init.d/glusterd stop #停止glusterd服務(wù) Stopping glusterd: [ OK ] [root@glusterfs01 ~]# /etc/init.d/glusterd start #開(kāi)啟glusterd服務(wù) Starting glusterd: [ OK ] root@glusterfs01 ~]# gluster volume status #這里需要等幾秒再查看,就會(huì)發(fā)現(xiàn)nfs掛載方式開(kāi)啟了 Status of volume: gs1 Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick glusterfs01:/gluster/brick1 49152 0 Y 1911 Brick glusterfs02:/gluster/brick1 49152 0 Y 1695 NFS Server on localhost 2049 0 Y 2984 #已經(jīng)開(kāi)啟 NFS Server on glusterfs04 2049 0 Y 2679 NFS Server on glusterfs03 2049 0 Y 2608 NFS Server on glusterfs02 2049 0 Y 2600 Task Status of Volume gs1 ------------------------------------------------------------------------------ There are no active volume tasks

    接下來(lái),我們嘗試在準(zhǔn)備好的第五臺(tái)虛擬機(jī)WebServer上進(jìn)行nfs方式的掛載

    #在Webserver上進(jìn)行如下操作 [root@WebServer ~]# rpm -qa nfs-utils #查看nfs-utils是否安裝 nfs-utils-1.2.3-39.el6.x86_64 [root@WebServer ~]# mount -t nfs 192.168.200.150:/gs1 /mnt #以nfs方式遠(yuǎn)程掛載分布式卷 mount.nfs: rpc.statd is not running but is required for remote locking. mount.nfs: Either use '-o nolock' to keep locks local, or start statd. mount.nfs: an incorrect mount option was specified #根據(jù)提示我們加上-o nolock參數(shù) [root@WebServer ~]# mount -o nolock -t nfs 192.168.200.150:/gs1 /mnt [root@WebServer ~]# ls /mnt #掛載成功 1 2 3 4 5 6 666 sss yunjisuan [root@WebServer ~]# touch /mnt/benet #創(chuàng)建文件測(cè)試 [root@WebServer ~]# ls /mnt 1 2 3 4 5 6 666 benet sss yunjisuan #在glusterfs任意虛擬機(jī)上進(jìn)行如下操作 [root@glusterfs04 ~]# mount -t glusterfs 127.0.0.1:/gs1 /mnt [root@glusterfs04 ~]# ls /mnt 1 2 3 4 5 6 666 benet sss yunjisuan #數(shù)據(jù)已經(jīng)同步

    2.3.8 創(chuàng)建分布式復(fù)制卷

    #在任意一臺(tái)gluster虛擬機(jī)上進(jìn)行如下操作 [root@glusterfs01 ~]# gluster volume create gs2 replica 2 glusterfs03:/gluster/brick1 glusterfs04:/gluster/brick1 force volume create: gs2: success: please start the volume to access data [root@glusterfs01 ~]# gluster volume info gs2 Volume Name: gs2 Type: Replicate #復(fù)制卷 Volume ID: c76fe8fd-71a7-4395-9dd2-ef1dc85163b8 Status: Created Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs03:/gluster/brick1 Brick2: glusterfs04:/gluster/brick1 Options Reconfigured: performance.readdir-ahead: on [root@glusterfs01 ~]# gluster volume start gs2 #啟動(dòng)卷 volume start: gs2: success

    2.3.9 創(chuàng)建分布式條帶卷

    [root@glusterfs01 ~]# gluster volume create gs3 stripe 2 glusterfs01:/gluster/brick2 glusterfs02:/gluster/brick2 force volume create: gs3: success: please start the volume to access data [root@glusterfs01 ~]# gluster volume info gs3 Volume Name: gs3 Type: Stripe #條帶卷 Volume ID: 6d2e27c7-f5a1-4473-9df8-a7261851a2ed Status: Created Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs01:/gluster/brick2 Brick2: glusterfs02:/gluster/brick2 Options Reconfigured: performance.readdir-ahead: on [root@glusterfs01 ~]# gluster volume start gs3 #啟動(dòng)卷 volume start: gs3: success

    三,進(jìn)行卷的數(shù)據(jù)寫(xiě)入測(cè)試

    在WebServer服務(wù)器掛載創(chuàng)建的三種類型卷gs1,gs2,gs3,進(jìn)行數(shù)據(jù)寫(xiě)入測(cè)試

    3.1 分布式卷gs1的數(shù)據(jù)寫(xiě)入測(cè)試

    #在WebServer上進(jìn)行數(shù)據(jù)寫(xiě)入操作 [root@WebServer ~]# mount -o nolock -t nfs 192.168.200.150:/gs1 /mnt [root@WebServer ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 18G 1014M 16G 7% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/sr0 4.2G 4.2G 0 100% /media/cdrom 192.168.200.150:/gs1 20G 301M 19G 2% /mnt [root@WebServer ~]# touch /mnt/{1..10} [root@WebServer ~]# ls /mnt/ 1 10 2 3 4 5 6 7 8 9 #在glusterfs01和glusterfs02上進(jìn)行查看(看看數(shù)據(jù)到底寫(xiě)入了哪個(gè)盤(pán)) [root@glusterfs01 ~]# ls /gluster/brick1 1 5 7 8 9 [root@glusterfs02 ~]# ls /gluster/brick1 10 2 3 4 6

    結(jié)論:分布式卷的數(shù)據(jù)存儲(chǔ)方式是將數(shù)據(jù)平均寫(xiě)入到每個(gè)整合的磁盤(pán)中,類似于raid0,寫(xiě)入速度快,但這樣磁盤(pán)一旦損壞沒(méi)有糾錯(cuò)能力。

    3.2 分布式復(fù)制卷gs2的數(shù)據(jù)寫(xiě)入測(cè)試

    #在WebServer上進(jìn)行數(shù)據(jù)寫(xiě)入操作 [root@WebServer ~]# mount -o nolock -t nfs 192.168.200.150:/gs2 /mnt [root@WebServer ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 18G 1014M 16G 7% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/sr0 4.2G 4.2G 0 100% /media/cdrom 192.168.200.150:/gs2 9.9G 151M 9.2G 2% /mnt #可用容量減半 [root@WebServer ~]# ls /mnt lost+found [root@WebServer ~]# touch /mnt/{1..10} [root@WebServer ~]# ls /mnt 1 10 2 3 4 5 6 7 8 9 lost+found #在glusterfs03和glusterfs04上進(jìn)行查看(看看數(shù)據(jù)到底寫(xiě)入了哪個(gè)盤(pán)) [root@glusterfs03 ~]# ls /gluster/brick1 1 10 2 3 4 5 6 7 8 9 lost+found [root@glusterfs04 ~]# ls /gluster/brick1 1 10 2 3 4 5 6 7 8 9 lost+found

    結(jié)論:分布式復(fù)制卷的數(shù)據(jù)存儲(chǔ)方式為,每個(gè)整合的磁盤(pán)中都寫(xiě)入同樣的數(shù)據(jù)內(nèi)容,類似于raid1,數(shù)據(jù)非常安全,讀取性能高,占磁盤(pán)容量。

    3.3 分布式條帶卷gs3的數(shù)據(jù)寫(xiě)入測(cè)試

    #在WebServer上進(jìn)行數(shù)據(jù)寫(xiě)入操作 [root@WebServer ~]# umount /mnt [root@WebServer ~]# mount -o nolock -t nfs 192.168.200.150:/gs3 /mnt [root@WebServer ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 18G 1014M 16G 7% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/sr0 4.2G 4.2G 0 100% /media/cdrom 192.168.200.150:/gs3 20G 301M 19G 2% /mnt [root@WebServer ~]# dd if=/dev/zero of=/root/test bs=1024 count=262144 #創(chuàng)建大小為256M的文件 262144+0 records in 262144+0 records out 268435456 bytes (268 MB) copied, 1.81006 s, 148 MB/s [root@WebServer ~]# du -sh test 256M test [root@WebServer ~]# cp test /mnt/ #復(fù)制到/mnt目錄下 [root@WebServer ~]# ls /mnt test [root@WebServer ~]# du -sh /mnt/test #查看大小為256M 256M /mnt/test #在glusterfs01和glusterfs02上進(jìn)行查看(看看數(shù)據(jù)到底是怎么存的) [root@glusterfs01 ~]# du -sh /gluster/brick2/test 129M /gluster/brick2/test [root@glusterfs02 ~]# du -sh /gluster/brick2/test 129M /gluster/brick2/test

    結(jié)論:我們發(fā)現(xiàn)分布式條帶卷,是將數(shù)據(jù)的容量平均分配到了每個(gè)整合的磁盤(pán)節(jié)點(diǎn)上。大幅提高大文件的并發(fā)讀訪問(wèn)。

    四,存儲(chǔ)卷中brick塊設(shè)備的擴(kuò)容

    4.1 分布式復(fù)制卷的擴(kuò)容

    [root@glusterfs01 ~]# gluster volume add-brick gs2 replica 2 glusterfs03:/gluster/brick2 glusterfs04:/gluster/brick2 force #添加兩個(gè)塊設(shè)備 volume add-brick: success [root@glusterfs01 ~]# gluster volume info gs2 Volume Name: gs2 Type: Distributed-Replicate Volume ID: c76fe8fd-71a7-4395-9dd2-ef1dc85163b8 Status: Started Number of Bricks: 2 x 2 = 4 #已經(jīng)擴(kuò)容 Transport-type: tcp Bricks: Brick1: glusterfs03:/gluster/brick1 Brick2: glusterfs04:/gluster/brick1 Brick3: glusterfs03:/gluster/brick2 Brick4: glusterfs04:/gluster/brick2 Options Reconfigured: performance.readdir-ahead: on

    特別提示:
    對(duì)分布式復(fù)制卷和分布式條帶卷進(jìn)行擴(kuò)容時(shí),要特別注意,如果創(chuàng)建卷之初的時(shí)候選擇的是replica 2 或者stripe 2。那么擴(kuò)容時(shí),就必須一次性擴(kuò)容兩個(gè)或兩個(gè)的倍數(shù)的塊設(shè)備。
    例如你給一個(gè)分布式復(fù)制卷的replica為2,你在增加bricks的時(shí)候數(shù)量必須為2,4,6,8等。

    4.2 查看擴(kuò)容后的容量并進(jìn)行寫(xiě)入測(cè)試

    #在WebServer上掛載gs2并查看掛載目錄的容量 [root@WebServer ~]# umount /mnt [root@WebServer ~]# mount -o nolock -t nfs 192.168.200.150:/gs2 /mnt [root@WebServer ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 18G 1.3G 16G 8% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 33M 427M 8% /boot /dev/sr0 4.2G 4.2G 0 100% /media/cdrom 192.168.200.150:/gs2 20G 301M 19G 2% /mnt #已經(jīng)擴(kuò)容

    我們?cè)俅螌?xiě)入數(shù)據(jù)

    #在WebServer上進(jìn)行數(shù)據(jù)寫(xiě)入操作 [root@WebServer ~]# touch /mnt/{11..20} [root@WebServer ~]# ls /mnt 1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 5 6 7 8 9 lost+found #在glusterfs03和glusterfs04上查看數(shù)據(jù)存到哪里去了 [root@glusterfs03 ~]# gluster volume info gs2 Volume Name: gs2 Type: Distributed-Replicate Volume ID: c76fe8fd-71a7-4395-9dd2-ef1dc85163b8 Status: Started Number of Bricks: 2 x 2 = 4 Transport-type: tcp Bricks: Brick1: glusterfs03:/gluster/brick1 #組成gs2的塊設(shè)備就在03和04上 Brick2: glusterfs04:/gluster/brick1 Brick3: glusterfs03:/gluster/brick2 Brick4: glusterfs04:/gluster/brick2 Options Reconfigured: performance.readdir-ahead: on [root@glusterfs03 ~]# ls /gluster/brick1 1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 5 6 7 8 9 lost+found [root@glusterfs03 ~]# ls /gluster/brick2 lost+found #什么都沒(méi)有 [root@glusterfs04 ~]# ls /gluster/brick1 1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 5 6 7 8 9 lost+found [root@glusterfs04 ~]# ls /gluster/brick2 lost+found #還是什么都沒(méi)有

    通過(guò)對(duì)擴(kuò)容的gs2進(jìn)行寫(xiě)入測(cè)試,我們發(fā)現(xiàn)數(shù)據(jù)并沒(méi)有被寫(xiě)入到新加入的塊設(shè)備中,這是為甚什么?
    這是因?yàn)?#xff0c;為了數(shù)據(jù)的安全,新擴(kuò)容塊設(shè)備的卷,默認(rèn)必須先做一次磁盤(pán)平衡(塊設(shè)備同步),如此才能正常開(kāi)始使用。

    4.3 進(jìn)行磁盤(pán)存儲(chǔ)的平衡

    注意:平衡布局是很有必要的,因?yàn)椴季纸Y(jié)構(gòu)是靜態(tài)的,當(dāng)新的bricks加入現(xiàn)有卷,新創(chuàng)建的文件會(huì)分布到舊的bricks中,所以需要平衡布局結(jié)構(gòu),使新加入的bricks生效。布局平衡只是使新布局生效,并不會(huì)在新的布局移動(dòng)老的數(shù)據(jù),如果你想在新布局生效后,重新平衡卷中的數(shù)據(jù),還需要對(duì)卷中的數(shù)據(jù)進(jìn)行平衡。

    #對(duì)gs2進(jìn)行磁盤(pán)存儲(chǔ)平衡 [root@glusterfs01 ~]# gluster volume rebalance gs2 start volume rebalance: gs2: success: Rebalance on gs2 has been started successfully. Use rebalance status command to check status of the rebalance process. ID: 0024338c-84df-4edb-b68c-107415a27506 #檢查gs2塊設(shè)備磁盤(pán)平衡結(jié)果 [root@glusterfs03 ~]# ls /gluster/brick1 10 12 14 15 16 17 2 3 4 6 lost+found [root@glusterfs03 ~]# ls /gluster/brick2 1 11 13 18 19 20 5 7 8 9 lost+found [root@glusterfs04 ~]# ls /gluster/brick1 10 12 14 15 16 17 2 3 4 6 lost+found [root@glusterfs04 ~]# ls /gluster/brick2 1 11 13 18 19 20 5 7 8 9 lost+found

    執(zhí)行磁盤(pán)存儲(chǔ)平衡以后,我們發(fā)現(xiàn)數(shù)據(jù)被復(fù)制成了4份在4個(gè)塊設(shè)備中。

    五,存儲(chǔ)卷的縮減與刪除

    (1)對(duì)存儲(chǔ)卷中的brick進(jìn)行縮減

    注意:你可能想在線縮小卷的大小,例如:當(dāng)硬件損壞或者網(wǎng)絡(luò)故障的時(shí)候,你可能想在卷中移除相關(guān)的bricks。注意,當(dāng)你移除bricks的時(shí)候,你在gluster的掛載點(diǎn)將不能繼續(xù)訪問(wèn)是數(shù)據(jù),只有配置文件中的信息移除后你才能繼續(xù)訪問(wèn)bricks的數(shù)據(jù)。當(dāng)移除分布式復(fù)制卷或者分布式條帶卷的時(shí)候,移除的bricks數(shù)目必須是replica或者stripe的倍數(shù)。例如:一個(gè)分布式條帶卷的stripe是2,當(dāng)你移除bricks的時(shí)候必須是2,4,6,8等。

    #先停止卷gs2 [root@glusterfs01 ~]# gluster volume stop gs2 Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y volume stop: gs2: success#然后移除卷,因?yàn)槭菑?fù)制卷且replica為2,因此每次移除必須是2的倍數(shù) [root@glusterfs01 ~]# gluster volume remove-brick gs2 replica 2 glusterfs03:/gluster/brick2 glusterfs04:/gluster/brick2 force Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y volume remove-brick commit force: success #我們發(fā)現(xiàn)gs2的卷已經(jīng)被移除 [root@glusterfs01 ~]# gluster volume info gs2 Volume Name: gs2 Type: Replicate Volume ID: c76fe8fd-71a7-4395-9dd2-ef1dc85163b8 Status: Stopped Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs03:/gluster/brick1 Brick2: glusterfs04:/gluster/brick1 Options Reconfigured: performance.readdir-ahead: on #重新啟動(dòng)卷gs2 [root@glusterfs01 ~]# gluster volume start gs2 volume start: gs2: success

    (2)對(duì)存儲(chǔ)卷進(jìn)行刪除

    #停止卷gs1 [root@glusterfs01 ~]# gluster volume stop gs1 Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y volume stop: gs1: success #刪除卷gs1 [root@glusterfs01 ~]# gluster volume delete gs1 Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y volume delete: gs1: success #查看卷信息,發(fā)現(xiàn)gs1已經(jīng)沒(méi)了 [root@glusterfs01 ~]# gluster volume info Volume Name: gs2 Type: Replicate Volume ID: c76fe8fd-71a7-4395-9dd2-ef1dc85163b8 Status: Started Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs03:/gluster/brick1 Brick2: glusterfs04:/gluster/brick1 Options Reconfigured: performance.readdir-ahead: on Volume Name: gs3 Type: Stripe Volume ID: 6d2e27c7-f5a1-4473-9df8-a7261851a2ed Status: Started Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs01:/gluster/brick2 Brick2: glusterfs02:/gluster/brick2 Options Reconfigured: performance.readdir-ahead: on

    特別提示:
    無(wú)論是縮減卷還是刪除卷,并不會(huì)是清除卷中的數(shù)據(jù)。數(shù)據(jù)仍舊會(huì)保存在對(duì)應(yīng)磁盤(pán)上。

    六,構(gòu)建企業(yè)級(jí)分布式存儲(chǔ)

    6.1 硬件要求

    一般選擇2U的機(jī)型,磁盤(pán)STAT盤(pán)4T,如果I/O要求比較高,可以采購(gòu)SSD固態(tài)硬盤(pán)。為了充分保證系統(tǒng)的穩(wěn)定性和性能,要求所有g(shù)lusterfs服務(wù)器硬件配置盡量一致,尤其是硬盤(pán)數(shù)量和大小。機(jī)器的RAID卡需要帶電池,緩存越大,性能越好。一般情況下,建議做RAID10,如果出于空間要求考慮,需要做RAID5,建議最好能有1-2塊硬盤(pán)的熱備盤(pán)。

    6.2 系統(tǒng)要求和分區(qū)劃分

    系統(tǒng)要求使用CentOS6.x,安裝完成后升級(jí)到最新版本,安裝的時(shí)候,不要使用LVM,建議/boot分區(qū)200M,根分區(qū)100G,swap分區(qū)和內(nèi)存一樣大小,剩余空間給gluster使用,劃分單獨(dú)的硬盤(pán)空間。系統(tǒng)安裝軟件沒(méi)有特殊要求,建議除了開(kāi)發(fā)工具和基本的管理軟件,其他軟件一律不裝。

    6.3 網(wǎng)絡(luò)環(huán)境

    網(wǎng)絡(luò)要求全部千兆環(huán)境,gluster服務(wù)器至少有2塊網(wǎng)卡,1塊網(wǎng)卡綁定供gluster使用,剩余一塊分配管理網(wǎng)絡(luò)ip,用于系統(tǒng)管理。如果有條件購(gòu)買萬(wàn)兆交換機(jī),服務(wù)器配置萬(wàn)兆網(wǎng)卡,存儲(chǔ)性能會(huì)更好。網(wǎng)絡(luò)方面如果安全性要求高,可以多網(wǎng)卡綁定。

    6.4 服務(wù)器擺放分布

    服務(wù)器主備機(jī)器要放在不同的機(jī)柜,連接不同的交換機(jī),即使一個(gè)機(jī)柜出現(xiàn)問(wèn)題,還有一份數(shù)據(jù)正常訪問(wèn)。

    6.5 構(gòu)建高性能,高可用存儲(chǔ)

    一般在企業(yè)中,采用的是分布式復(fù)制卷,因?yàn)橛袛?shù)據(jù)備份,數(shù)據(jù)相對(duì)安全,分布式條帶卷目前對(duì)glusterfs來(lái)說(shuō)沒(méi)有完全成熟,存在一定的是數(shù)據(jù)安全風(fēng)險(xiǎn)。

    6.5.1 開(kāi)啟防火墻端口

    一般在企業(yè)應(yīng)用中Linux防火墻是打開(kāi)的,開(kāi)通服務(wù)器之間訪問(wèn)的端口

    iptables -I INPUT -p tcp --dport 24007:24011 -j ACCEPT iptables -I INPUT -p tcp --dport 49152:49162 -j ACCEPT [root@glusterfs01 ~]# cat /etc/glusterfs/glusterd.vol volume managementtype mgmt/glusterdoption working-directory /var/lib/glusterdoption transport-type socket,rdmaoption transport.socket.keepalive-time 10 option transport.socket.keepalive-interval 2 option transport.socket.read-fail-log off option ping-timeout 0 option event-threads 1 # option base-port 49152 #默認(rèn)端口可以在這里改,因?yàn)檫@個(gè)端口可能會(huì)和企業(yè)里的kvm端口沖突

    6.5.2 Glusterfs文件系統(tǒng)優(yōu)化

    參數(shù)項(xiàng)目說(shuō)明缺省值合法值
    Auth.allowIP訪問(wèn)授權(quán)*(allow all)IP地址
    Cluster.min-free-disk剩余磁盤(pán)空間閾值10%百分比
    Cluster.stripe-block-size條帶大小128KB字節(jié)
    Network.frame-timeout請(qǐng)求等待時(shí)間1800s0-1800
    Network.ping-timeout客戶端等待時(shí)間42s0-42
    Nfs.disabled關(guān)閉NFS服務(wù)OffOff|on
    Performance.io-thread-countIO線程數(shù)160-65
    Performance.cache-refresh-timeout緩存校驗(yàn)周期1s0-61
    Performance.cache-size讀緩存大小32MB字節(jié)

    Performance.quick-read:優(yōu)化讀取小文件的性能
    Performance.read-ahead:用預(yù)讀的方式提高讀取的性能,有利于應(yīng)用頻繁持續(xù)性的訪問(wèn)文件,當(dāng)應(yīng)用完成當(dāng)前數(shù)據(jù)塊讀取的時(shí)候,下一個(gè)數(shù)據(jù)塊就已經(jīng)準(zhǔn)備好了。
    Performance.write-behind:寫(xiě)入數(shù)據(jù)時(shí),先寫(xiě)入緩存內(nèi),再寫(xiě)入硬盤(pán)內(nèi),以提高寫(xiě)入的性能。
    Performance.io-cache:緩存已經(jīng)被讀過(guò)的。

    調(diào)整方法:

    Glusster volume set <卷> <參數(shù)>

    [root@glusterfs01 ~]# gluster volume info gs2 Volume Name: gs2 Type: Replicate Volume ID: c76fe8fd-71a7-4395-9dd2-ef1dc85163b8 Status: Started Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs03:/gluster/brick1 Brick2: glusterfs04:/gluster/brick1 Options Reconfigured: performance.readdir-ahead: on [root@glusterfs01 ~]# gluster volume set gs2 performance.read-ahead on #設(shè)置預(yù)緩存優(yōu)化 volume set: success [root@glusterfs01 ~]# gluster volume info gs2 Volume Name: gs2 Type: Replicate Volume ID: c76fe8fd-71a7-4395-9dd2-ef1dc85163b8 Status: Started Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs03:/gluster/brick1 Brick2: glusterfs04:/gluster/brick1 Options Reconfigured: performance.read-ahead: on #已經(jīng)添加上了 performance.readdir-ahead: on [root@glusterfs01 ~]# gluster volume set gs2 performance.cache-size 256MB #設(shè)置讀緩存大小 volume set: success [root@glusterfs01 ~]# gluster volume info gs2 Volume Name: gs2 Type: Replicate Volume ID: c76fe8fd-71a7-4395-9dd2-ef1dc85163b8 Status: Started Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: glusterfs03:/gluster/brick1 Brick2: glusterfs04:/gluster/brick1 Options Reconfigured: performance.cache-size: 256MB #已經(jīng)添加上了 performance.read-ahead: on performance.readdir-ahead: on

    6.5.3 監(jiān)控及日常維護(hù)

    使用Zabbix自帶模板即可。Cpu,內(nèi)存,主機(jī)存活,磁盤(pán)空間,主機(jī)運(yùn)行時(shí)間,系統(tǒng)load。日常情況要查看服務(wù)器的監(jiān)控值,遇到報(bào)警要及時(shí)處理。

    #以下命令在復(fù)制卷的場(chǎng)景下才會(huì)有 #gluster volume status gs2 查看節(jié)點(diǎn)NFS是否在線 (開(kāi)沒(méi)開(kāi)端口) #gluster volume heal gs2 full 啟動(dòng)完全修復(fù) #gluster volume heal gs2 info 查看需要修復(fù)的文件 #gluster volume heal gs2 info healed 查看修復(fù)成功的文件 #gluster volume heal gs2 info heal-failed 查看修復(fù)失敗文件 #gluster volume heal gs2 info split-brain 查看腦裂的文件 #gluster volume quota gs2 enable --激活quota功能 #gluster volume quota gs2 disable --關(guān)閉quota功能 #gluster volume quota gs2 limit-usage /data 10GB --/gs2/data 目錄限制 #gluster volume quota gs2 list --quota 信息列表 #gluster volume quota gs2 list /data --限制目錄的quota信息 #gluster volume set gs2 features.quota-timeout 5 --設(shè)置信息的超時(shí)事實(shí)上時(shí)間 #gluster volume quota gs2 remove /data -刪除某個(gè)目錄的quota設(shè)置 備注: 1)quota 功能,主要是對(duì)掛載點(diǎn)下的某個(gè)目錄進(jìn)行空間限額。如:/mnt/glusterfs/data目錄,而不是對(duì)組成卷組的空間進(jìn)行限制

    七 生產(chǎn)環(huán)境遇到常見(jiàn)故障處理

    7.1 硬盤(pán)故障

    因?yàn)榈讓幼隽藃aid配置,有硬件故障,直接更換硬盤(pán),會(huì)自動(dòng)同步數(shù)據(jù)。(raid5)

    7.2 一臺(tái)主機(jī)故障

    一臺(tái)節(jié)點(diǎn)故障的情況包括以下類型:

    1,物理故障
    2,同時(shí)有多塊硬盤(pán)故障,造成是數(shù)據(jù)丟失
    3,系統(tǒng)損壞不可修復(fù)

    解決方法:

    找一臺(tái)完全一樣的機(jī)器,至少要保證硬盤(pán)數(shù)量大小一致,安裝系統(tǒng),配置和故障機(jī)同樣的ip,安裝gluster軟件,保證配置一樣,在其他健康的節(jié)點(diǎn)上執(zhí)行命令gluster peer status,查看故障服務(wù)器的uuid

    #例如: [root@glusterfs03 ~]# gluster peer status Number of Peers: 3Hostname: glusterfs02 Uuid: 0b52290d-96b0-4b9c-988d-44062735a8a8 State: Peer in Cluster (Connected) Hostname: glusterfs04 Uuid: a43ac51b-641c-4fc4-be56-f6873423b462 State: Peer in Cluster (Connected) Hostname: glusterfs01 Uuid: 198f2c7c-1104-4671-8989-b430b77540e9 State: Peer in Cluster (Connected) [root@glusterfs03 ~]#

    修改新加機(jī)器的/var/lib/glusterd/glusterd.info和故障機(jī)器的一樣

    [root@glusterfs04 ~]# cat /var/lib/glusterd/glusterd.info UUID=a43ac51b-641c-4fc4-be56-f6873423b462 operating-version=30712

    在新機(jī)器掛載目錄上執(zhí)行磁盤(pán)故障的操作(任意節(jié)點(diǎn))

    [root@glusterfs04 ~]# gluster volume heal gs2 full Launching heal operation to perform full self heal on volume gs2 has been successful Use heal info commands to check status

    就會(huì)自動(dòng)開(kāi)始同步,但是同步的時(shí)候會(huì)影響整個(gè)系統(tǒng)的性能
    可以查看狀態(tài)

    [root@glusterfs04 ~]# gluster volume heal gs2 info Brick glusterfs03:/gluster/brick1 Status: Connected Number of entries: 0 Brick glusterfs04:/gluster/brick1 Status: Connected Number of entries: 0 金牌IT職業(yè)再教育培訓(xùn)機(jī)構(gòu),歡迎來(lái)校資源。QQ:215379068

    轉(zhuǎn)載于:https://www.cnblogs.com/skyhu365/p/10652878.html

    總結(jié)

    以上是生活随笔為你收集整理的Linux实战教学笔记52:GlusterFS分布式存储系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。