【一】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個檔案。