1. 程式人生 > >【一】GlusterFS 快速部署指南

【一】GlusterFS 快速部署指南

一、GlusterFS 快速部署指南

本章節將指導你在最短時間內,成功地快速部署完成一套GlusterFS管理系統。然後基於我們剛剛部署完成的GlusterFS系統,再深入說明系統架構原理和管理員需要具備的相關技能要求。對於測試環境可以使用/etc/hosts來定義主機名與IP的對映關係,對於生產環境建議部署DNS服務提供解析服務。此外,生產環境中使用GlusterFS,應該部署和使用NTP伺服器。

1.準備兩臺主機

  • CentOS7 作業系統(xfs檔案系統);
  • 主機名分別命名為server1和server2;
  • 一塊網絡卡;
  • 每臺主機至少兩塊磁碟,一塊用於安裝OS,其它的用於GlusterFS storage;
  • GlusterFS 預設地把動態生成的配置資料存放於/var/lib/glusterd目錄下,日誌資料放於/var/log下,請確保它們所在的分割槽空間足夠多,避免因磁碟滿而導致GlusterFS 執行故障或服務當機;

2.格式化並掛接儲存塊(bricks)

我們假定每個主機的/dev/sdb1分割槽,是用於GlusterFS 使用的儲存塊brick。

  #mkfs.xfs -i size=512 /dev/sdb1    #mkdir -p /data/brick1    #echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab    #mount -a && mount

3.安裝GlusterFS 軟體包

    #yum install glusterfs-server

啟動GlusterFS 的後臺管理程序:

    #service glusterd start   

#service glusterd status   

glusterd.service - LSB: glusterfs server           Loaded: loaded (/etc/rc.d/init.d/glusterd)       Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago      Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)       CGroup: name=systemd:/system/glusterd.service           ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid           ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost...           └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...

4.設定可信任的儲存池

在主機server1上:

    #gluster peer probe server2

在主機server2上:

    #gluster peer probe server1

注:請為兩臺主機基於/etc/hosts做好相互之間的主機名和IP的解析對映。

一旦設定了可信的儲存池,就會僅允許儲存池中的被信任的節點主動發現其它的新節點,並將其加入到池中。而一個獨立的新節點,是不被允許自行加入可信儲存池中的。

檢視儲存池狀態:

# gluster peer status

從儲存池中移除指定伺服器:

    # gluster peer detach server2

5.建立一個GlusterFS 卷

GlusterFS 卷共有三基本型別,分別是Distributed(分佈儲存)、Striped(將一個檔案分成多個固定長度的資料,分佈存放在所有儲存塊,相當於RAID0)、Replicated(映象儲存,相當於RAID1)。基於striped和replicated,結合使用distributed後,又可以擴展出分散式分片儲存卷和分散式映象儲存卷兩種新的型別。而後兩種擴充套件型別並沒有新的命令格式,僅是通過設定資料冗餘份數和新增進邏輯卷的bricks數量來動態定義的。詳情可參見第二章關於GlusterFS體系結構的相關內容。

5.1 建立一個GlusterFS Replicated卷

在兩臺主機上:

    mkdir /data/brick1/gv0

在兩臺主機中的任一個上面執行以下命令:

#gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0 #gluster volume start gv0

檢視儲存卷的狀態:

    #gluster volume info

如果以上操作遇到報錯,請檢視/var/log/glusterfs下的日誌,以定位和排錯。

5.2 建立Distributed邏輯卷

# gluster volume create gv1 server1:/data server2:/data

# gluster volume info

#gluster volume start gv1

5.3 建立Striped邏輯卷

建立一個名字為gv2,包含兩個儲存塊,使用TCP協議的Striped邏輯卷:

# gluster volume create gv2 stripe 2 transport tcp server1:/data server2:/data

# gluster volume info

#gluster volume start gv2

5.4 停止GlusterFS邏輯卷或刪除GlusterFS邏輯卷

# gluster volume stop gv0

# gluster volume delete gv0

5.5 與儲存塊brick相關的邏輯卷管理

在gv0卷中增加一個儲存塊server3:/data:

# gluster volume add-brick gv0 server3:/data

# gluster volume rebalance gv0 start

刪除Brick:

# gluster volume remove-brick gv0 server3:/data

# gluster volume rebalance gv0 start

6.測試GlusterFS 卷

到這裡,我們已經可以把GlusterFS 卷掛接到一個客戶端主機上去了。在此之前,可以先使用以上兩臺server主機進行下簡單的測試。任選一臺然後執行以下命令。

#mount -t glusterfs server1:/gv0 /mnt#for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done

先檢查一下掛接點:

    #ls -lA /mnt | wc -l

你應該可以看到已經拷貝進去的100個檔案。而且你應該是可以在server1和server2的/mnt目錄下各看到100個檔案。