一、 GlusterFS 软件介绍
GlusterFS是一款开源的分布式存储系统,它基于 fuse 设计,具有强大的横向扩展能力,通过扩展能够支持数 PB 存储容量和处理数千客户端。 GlusterFS 借助 TCP/IP 或 InfiniBand RDMA 网络将物理分布的存储资源集中在一起,使用单一全局命名空间来管理数据。 GlusterFS 基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。
二、 Glusterfs安装介绍
1、 环境安装需求介绍:
http://download.gluster.com/pub/gluster/glusterfs/3.2/Documentation/IG/html/ch02.html
假设 操作系统 centos5.5 版本以上
2、 按照以下顺序安装相关 package——
2.1、 服务器端和客户端都必须安装以下安装包
#GlusterFS 需要 fuse 支持库,需先安装 :
yum -y install wget fuse fuse-devel httpd-devel libibverbs-devel
2.2、 确保左右机器的内网 TCP ports 111, 24007, 24008, 24009 (24009 + number of bricks across all volumes) 是开着的 . 如果有用 NFS, 还需要额外开 38465 到 38467 的 ports .
在 Centos5.5/5.6还需要安装 rsync 和 python-ctypes ,执行:
yum -y install rsync python-ctypes
2.3、 必备软件:GlusterFs3.2. x (当前版本为 3.2.6)
到 http://www.gluster.org/download/ 下载以下 gluster组件:
glusterfs-core
glusterfs-fuse
glusterfs-geo-replication
执行 glusterfs安装:
sudo rpm -Uvh glusterfs-core--3.2. 6 -1.x86_64.rpm
sudo rpm -Uvh glusterfs-fuse--3.2.0-1..x86_64.rpm
sudo rpm -ivh glusterfs-geo-replication-3.2. 6 -1..x86_64.rpm
glusterfs – version
出现下面信息表示安装成功 ;
glusterfs 3.2.6 built on Mar 10 2012 05:29:45
Repository revision: git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2011 Gluster Inc. <http://www.gluster.com>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
启动 glusterd daemon
service glusterd start
停止 glusterd daemon
service glusterd stop
glusterfs卷类型介绍
1、 Distributed Volumes
分布卷模式,卷中资源仅在一台服务器上存储,在存储池中非镜像或条带模式。
2、 Distributed Replicated Volumes
分布镜像卷模式:创建一个两两互为备份的卷,存储池中一块硬盘损坏,不会影响到数据的使用,最少需要两台服务器才能创建分布镜像卷。
3、 Distributed Striped Volumes
分布条带卷:每个文件分布在四台共享服务器上,通常用于大文件访问处理,最少需要 4 台服务器才能创建分布条带卷。
鉴于以上特点及我们公司的应用需求,我们选择第二种类型的 Volumes
1 前期准备
范例 :创建 volumes (以创建 4 台为例)
1.1、 在配置 GlusterFS volumes 之前,你需要创建一个包含存储服务器的存储池;而在创建存储池时必须每个存储服务器的 GlusterFS service 是开启的;
假设 4台server的hostname都设置好为:cmweb02、cmweb03、cmweb04、cmweb05,并在所有机器的/etc/hosts里设定好所有的hostname
创建存储池 peers 命令:
$ gluster peer probe SERVER
SERVER表示存储服务器的 IP 地址 或 hostname
例如我要创建包含两台服务器的存储池使用命令如下:
# gluster peer probe cmweb03
Probe successful
注意 : 在创建存储池时,需要在主存储服务器依次创建附加服务器的peers,主服务器不需要添加。
查看peers是不是创建成功:
# gluster peer status
出现如下信息表示存储池创建成功:
Number of Peers: 1
Hostname: cmweb03
Uuid: 5070f9cd-bb2f-49b7-a765-f0c04faf2240
State: Peer in Cluster ( Connected )
注意此信息中uuid必须是有值的,state处于连接状态,否则不能创建卷。
在各台server上创建sync server目录:
mkdir /opt/export
2、 创建 Volume:
2. 1、 创建Distributed Volumes
# g luster volume create cmwebvm transport tcp cmweb02 : / opt/export/ cmweb03 :/ opt/export/ cmweb04 :/ opt/export/ cmweb05 :/ opt/export/
C reation of volume distribute has been successful
红色字体部分需要根据实际情况修改 ; cmwebvm 表示卷名; tcp 表示传输协议; cmweb02 表示
存储服务器 hostname ; / opt/export/ 表示存储服务器存储挂载点。
查看 volume 信息: # gluster volume info
Volume Name: cmwebvm
Type: distribute
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick1: cmweb02 :/ opt/export
Brick2: cmweb03 :/ opt/export
Brick 3 : cmweb04 :/ opt/export
Brick 4 : cmweb05 :/ opt/export
# g luster volume create cmwebvm replica 4 transport tcp cmweb02 : / opt/export/ cmweb03 :/ opt/export/ cmweb04 :/ opt/export/ cmweb05 :/ opt/export/
红色字体部分需要根据实际情况修改 ; cmwebvm 表示卷名; replica 表示卷类型; 4 表示以 4个 为一组; tcp 表示传输协议; cmweb02 表示存储服务器 hostname ; / opt/export/ 表示存储服务器存储挂载点。
注: R eplicated volume s要求 2 个以上为一组才能创建。
查看 volume 信息: # gluster volume info
Volume Name: cmwebvm
Type: Replicate
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick2: cmweb03 :/ opt/export
Brick 3 : cmweb04 :/ opt/export
Brick 4 : cmweb05 :/ opt/export
2. 3、 创建Distributed Striped Volumes
# g luster volume create cmwebvm stripe 4 transport tcp cmweb02 : / opt/export/ cmweb03 :/ opt/export/ cmweb04 :/ opt/export/ cmweb05 :/ opt/export/
红色字体部分需要根据实际情况修改 ; cmwebvm 表示卷名; stripe 表示卷类型; 4 表示以 4 个为一组; tcp 表示传输协议; cmweb02 表示存储服务器 hostname ; / opt/export/ 表示存储服务器存储挂载点。
注: Distributed Strip ed volume s要求 2 个以上为一组才能创建;
查看 volume 信息: # gluster volume info
Volume Name: cmwebvm
Type: stripe
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick1: cmweb02 :/ opt/export
Brick2: cmweb03 :/ opt/export
Brick 3 : cmweb04 :/ opt/export
Brick 4 : cmweb05 :/ opt/export
2.4、启动停止volume
启动卷命令:
# gluster volume start cmwebvm
停止卷命令
# gluster volume stop cmwebvm
cmwebvm 表示卷名。
查看卷文件相关日志目录:
tail -f /var/log/glusterfs/bricks / opt-export .log
红色字体可能因挂载点不同而有所改变需要注意。
2.5、增加挂载服务器
如果以后要添加服务器,可以使用add-brick命令:
gluster volume add-brick cmwebvm cmweb06:/opt/export cmweb07:/opt/export
fuse module的安装(建议在线安装)
l 运行如下命令进行安装:
$ yum install openssh-server wget fuse fuse-libs openib libibverbs
l 验证安装:
n F use模块的验证:
u $ modprobe fuse
u $ dmesg | grep -i fuse
u 如果显示: fuse init (API version 7.1 0 ) ,则表示 fuse 模块安装成功
客户端挂载存储服务器卷使用 指令 :
mount -t glusterfs -o log-level=WARNING,log-file=/var/log/gluster.log cmweb02:/cmwebvm /opt/clusterfs
cmweb02 表示主 serverIP
cmwebvm 表示卷名
/ opt/clusterfs 表示客户端挂载点
验证 mount 是否成功 指令:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 219833192 1740060 206746024 1% /
/dev/sda1 194442 12191 172212 7% /boot
tmpfs 4083736 0 4083736 0% /dev/shm
glusterfs#cmweb02:/cmwebvm
219833088 1740032 206745984 1% /opt/clusterfs
出现红色 字体部分表示已经挂载上存储服务器。
3.3、 卸载卷
$ umount / opt/clusterfs
3.4、 如果要另外增加 client ,需确保机器上有安装好 glusterfs-fuse 和 glusterfs- core,然后通过一下方法执行——
方法一:
glusterfs -f /etc/glusterfs/glusterfs.vol / opt/clusterfs -l /var/log/glusterfs.log
方法二:
glusterfs -f $GLUSTERFSPATH/client.vol /mnt/glusterfs
官方主页:
http://gluster.com/community/documentation/index.php/Main_Page
服务器安装:
客户端安装:
http://gluster.com/community/documentation/index.php/Gluster_3.1_Native_Client_Guide
挂载卷:
http://gluster.com/community/documentation/index.php/Gluster_3.1:_Mounting_Volumes