我的系统是 RHEL5 , 可能环境不一样, 需要安装的第三方依赖不一样啊, 反正大家在安装的过程中缺少什么就去安装什么, 一般都会有提示的。
下载 glusterfs-3.2.0.tar.gz 源码包。 随便解压到一个目录。
glusterfs 需要 fuse 的支持, 在安装开始之前请先安装 fuse。
fuse可以到http://fuse.sourceforge.net/进行下载
安装fuse的步骤如下:
./configure
make
make install
glusterfs 需要 ctypes 的支持, 在安装开始之前请先安装 ctypes。
ctypes看的下载地址为 http://python.net/crew/theller/ctypes/
ctypes库安装时需要使用 python,安装步骤如下
python setup.py build
python setup.py test
python setup.py install
安装glusterfs, 步骤如下:
cd /home/glusterfs-3.2.0
./configure –enable-fusermount
make
make install
下来需要进行配置,我这里的环境为 :
server端3台———– 192.168.2.85 和 192.168.2.222 和 192.168.2.98
client 端1台————192.168.2.55
配置文件所在的目录为 /etc/glusterfs/
-
[root@redhat1 glusterfs]# more protocol-server.vol
-
-
### Export volume “brick” with the contents of “/home/export” directory.
-
volume brick
-
type storage/posix # POSIX FS translator
-
option directory /data/movies # Export this directory
-
end-volume
-
-
### Add network serving capability to above brick.
-
volume server
-
type protocol/server
-
option transport-type tcp # For TCP/IP transport
-
option transport.socket.listen-port 24016
-
-
# option transport-type ib-verbs # For Infiniband Verbs transport
-
# option transport.ib-verbs.work-request-send-size 131072
-
# option transport.ib-verbs.work-request-send-count 64
-
# option transport.ib-verbs.work-request-recv-size 131072
-
# option transport.ib-verbs.work-request-recv-count 64
-
# option transport.ib-verbs.listen-port 24016
-
-
# option bind-address 192.168.1.10 # Default is to listen on all interfaces
-
# option client-volume-filename /etc/glusterfs/glusterfs-client.vol
-
subvolumes brick
-
option auth.addr.brick.allow 192.168.* # Allow access to “brick” volume
-
end-volume
上面是 服务器端 的配置文件,每台服务器的配置都一样, 共享数据目录为 /data/movies
启动服务器端的命令为 :
glusterfsd -l /etc/glusterfs/g.log -f /etc/glusterfs/protocol-server.vol
下面的配置文件时客户端的配置文件:
-
volume client0
-
type protocol/client
-
option transport-type tcp # for TCP/IP transport
-
# option transport-type ib-sdp # for Infiniband transport
-
option remote-host 192.168.2.85 # IP address of the remote brick
-
option transport.socket.remote-port 24016
-
-
# option transport-type ib-verbs # for Infiniband verbs transport
-
# option transport.ib-verbs.work-request-send-size 1048576
-
# option transport.ib-verbs.work-request-send-count 16
-
# option transport.ib-verbs.work-request-recv-size 1048576
-
# option transport.ib-verbs.work-request-recv-count 16
-
# option transport.ib-verbs.remote-port 24016
-
-
option remote-subvolume brick # name of the remote volume
-
# option transport-timeout 30 # default value is 120seconds
-
end-volume
-
-
volume client1
-
type protocol/client
-
option transport-type tcp # for TCP/IP transport
-
# option transport-type ib-sdp # for Infiniband transport
-
option remote-host 192.168.2.222 # IP address of the remote brick
-
option transport.socket.remote-port 24016
-
-
# option transport-type ib-verbs # for Infiniband verbs transport
-
# option transport.ib-verbs.work-request-send-size 1048576
-
# option transport.ib-verbs.work-request-send-count 16
-
# option transport.ib-verbs.work-request-recv-size 1048576
-
# option transport.ib-verbs.work-request-recv-count 16
-
# option transport.ib-verbs.remote-port 24016
-
-
option remote-subvolume brick # name of the remote volume
-
# option transport-timeout 30 # default value is 120seconds
-
end-volume
-
-
-
volume client2
-
type protocol/client
-
option transport-type tcp # for TCP/IP transport
-
# option transport-type ib-sdp # for Infiniband transport
-
option remote-host 192.168.2.98 # IP address of the remote brick
-
option transport.socket.remote-port 24016
-
-
# option transport-type ib-verbs # for Infiniband verbs transport
-
# option transport.ib-verbs.work-request-send-size 1048576
-
# option transport.ib-verbs.work-request-send-count 16
-
# option transport.ib-verbs.work-request-recv-size 1048576
-
# option transport.ib-verbs.work-request-recv-count 16
-
# option transport.ib-verbs.remote-port 24016
-
-
option remote-subvolume brick # name of the remote volume
-
# option transport-timeout 30 # default value is 120seconds
-
end-volume
-
-
-
volume unify
-
type cluster/distribute
-
subvolumes client0 client1 client2
-
end-volume
启动客户端的命令为:
glusterfs -l /etc/glusterfs/glusterfs.log -f /etc/glusterfs/protocol-client.vol /mnt
启动后可以检查 /etc/glusterfs/glusterfs.log 文件, 进行查看日志。
也可以用 df -h 命令来查看,如下代表成功
glusterfs#/etc/glusterfs/protocol-client.vol
654G 133G 487G 22% /mnt
由于glusterfs 使用了 fuse, 所以就和使用本地的一个目录一样使用这个分布式的文件系统了。
不信你就执行一下 :
ls /mnt
cp /etc/glusterfs/protocol-client.vol /mnt
ls /mnt
祝大家工作愉快 !
在配置的过程中如果有什么问题, 大家还可以参考
http://hi.baidu.com/farmerluo/blog/category/Glusterfs
介绍的还是蛮详细的。
有多种对Gluster配置的方式,此处介绍三种.
1.在一台服务器上建立Distributed Volume
假设服务器为:192.168.113.173(Server)
假设客户端为:192.168.113.179(Client)
首先配置Server,开启gluster服务
Server# modprobe fuse
Server# /etc/init/glusterd start
服务器只有一台,直接创建Volume即可,名为single-volume
Server# gluster volume create single-volume 192.168.113.173:/home/single1
启动volume
Server# gluster volume start single-volume
查看当前所有volume状态
Server# gluster volume info
若要使用Cache,则使用
Server# gluster volume set single-volume performance.cache-size 1GB
Gluster自动生成配置文件,在/etc/glusterd/vols/single-volume/文件夹中
在客户端挂载gluster镜像,客户端直接使用Server端的配置文件,不必创建自己的配置文件了
Client# modprobe fuse
Client# /etc/init/glusterd start
Client# mount.glusterfs 192.168.113.173:/single-volume /mnt/local-volume
2.在两台服务器上建立Distributed Volume
假设服务器A为:192.168.113.173(ServerA)
假设服务器B为:192.168.113.174(ServerB)
假设客户端为:192.168.113.179(Client)
首先配置Server,开启gluster服务
ServerA# modprobe fuse
ServerA# /etc/init/glusterd start
ServerB# modprobe fuse
ServerB# /etc/init/glusterd start
服务器有两台,要先绑定在一起(假设使用ServerA做主服务器)
ServerA# gluster peer probe 192.168.113.174
创建Volume,名为cluster-volume
ServerA# gluster volume create cluster-volume 192.168.113.173:/home/cluster1 192.168.113.174:/home/cluster2
启动volume
ServerA# gluster volume start cluster-volume
查看当前所有volume状态
ServerA# gluster volume info
若要使用Cache,则使用
ServerA# gluster volume set cluster-volume performance.cache-size 1GB
Gluster自动生成配置文件,在/etc/glusterd/vols/cluster-volume/文件夹中
在客户端挂载gluster镜像,客户端直接使用Server端的配置文件,不必创建自己的配置文件了
Client# modprobe fuse
Client# /etc/init/glusterd start
Client# mount.glusterfs 192.168.113.173:/cluster-volume /mnt/local-volume
3.在两台服务器上建立Striped Volume
假设服务器A为:192.168.113.173(ServerA)
假设服务器B为:192.168.113.174(ServerB)
假设客户端为:192.168.113.179(Client)
首先配置Server,开启gluster服务
ServerA# modprobe fuse
ServerA# /etc/init/glusterd start
ServerB# modprobe fuse
ServerB# /etc/init/glusterd start
服务器有两台,要先绑定在一起(假设使用ServerA做主服务器)
ServerA# gluster peer probe 192.168.113.174
创建Volume,名为stripe-volume
ServerA# gluster volume create stripe-volume stripe 2 transport tcp 192.168.113.173:/home/stripe1 192.168.113.174:/home/stripe2
启动volume
ServerA# gluster volume start stripe-volume
查看当前所有volume状态
ServerA# gluster volume info
若要使用Cache,则使用
ServerA# gluster volume set stripe-volume performance.cache-size 1GB
Gluster自动生成配置文件,在/etc/glusterd/vols/stripe-volume/文件夹中
在客户端挂载gluster镜像,客户端直接使用Server端的配置文件,不必创建自己的配置文件了
Client# modprobe fuse
Client# /etc/init/glusterd start
Client# mount.glusterfs 192.168.113.173:/stripe-volume /mnt/local-volume
摘要:GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。
相关阅读:
Glusterfs集群文件系统研究 http://www.linuxidc.com/Linux/2011-12/50579.htm
Glusterfs全局统一命名空间 http://www.linuxidc.com/Linux/2013-08/89106.htm
创建Glusterfs分布式RAID10卷 http://www.linuxidc.com/Linux/2011-12/50580.htm
Glusterfs 3.4 Beta 发布,集群文件系统 http://www.linuxidc.com/Linux/2013-05/84056.htm
Glusterfs Rebalance简析 http://www.linuxidc.com/Linux/2013-08/89104.htm
设计新Xlator扩展GlusterFS http://www.linuxidc.com/Linux/2013-08/89105.htm
过去一直以为GlusterFS和GFS为同一个东西,真是惭愧。昨天一同事用到才发现它是个好东西!
安装很简单,在所有存储服务器上执行:
yum -y install glusterfs glusterfs-server
chkconfig glusterd on
service glusterd start
将存储节点组合成一个集群,笔者以18节点为例。只需要在任一个节点执行:
gluster peer probe agent21.kisops.org
gluster peer probe agent22.kisops.org
gluster peer probe agent23.kisops.org
gluster peer probe agent24.kisops.org
gluster peer probe agent25.kisops.org
gluster peer probe agent26.kisops.org
gluster peer probe agent27.kisops.org
gluster peer probe agent28.kisops.org
gluster peer probe agent29.kisops.org
gluster peer probe agent30.kisops.org
gluster peer probe agent31.kisops.org
gluster peer probe agent32.kisops.org
gluster peer probe agent33.kisops.org
gluster peer probe agent34.kisops.org
gluster peer probe agent35.kisops.org
gluster peer probe agent36.kisops.org
gluster peer probe agent37.kisops.org
gluster peer probe agent38.kisops.org # 加入新节点
gluster peer status # 查看集群的节点信息
以/data/glusterfs为共享目录,创建一个名为gfs的存储卷,数据复制2份:
gluster volume create gfs replica 2 agent{21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38}.kisops.org:/data/glusterfs # 创建卷
gluster volume start gfs # 启动卷
gluster volume info # 查看卷信息
gluster volume set gfs auth.allow 10.20.* # 授权访问
OK,此时服务端已配置完毕,过程简单明了!客户端就更简单了:
yum -y install glusterfs glusterfs-fuse
mount -t glusterfs agent38.kisops.org:/gfs /mnt/gfs # 挂载任一节点即可(推荐)
mount.nfs agent38.kisops.org:/gfs /mnt/nfs -o nfsvers=3,proto=tcp # 使用NFS挂载,注意远端的rpcbind服务必须开启
mount -t nfs -o rw,nfsvers=3,proto=tcp,port=38465,nolock,noacl,nocto,noatime,nodiratime,rsize=131072,wsize=524288,async,soft,bg,acregmin=3,acregmax=10,acdirmin=1,acdirmax=5 agent21.kisops.org:/gfs /mnt/nfs # 标准挂法
# 若需要开机自动挂载,请更新/etc/fstab,追加:
agent38.kisops.org:/gfs /mnt/gfs glusterfs defaults,_netdev 0 1
GlusterFS分布式存储
2011-04-02 16:08:21| 分类: 分布式数据系统 | 标签:brick subvolume 分布式 remote glusterfs1 |举报|字号 订阅
GlusterFS分布式存储
2011-04-02 16:08:21| 分类: 分布式数据系统 | 标签:brick subvolume 分布式 remote glusterfs1 |举报|字号 订阅
本文环境:一台服务器,一台测试机均为CentOS-5.2操作系统,服务器端的ip为:192.168.10.252,测试机的ip为192.168.10.14 在服务端有一个独立的磁盘用来测试
一 服务器端的安装和配置
1.首先安装fuse扩展
[root@test-1 ~]# tar zvxf fuse-2.8.3.tar.gz
[root@test-1 ~]# cd fuse-2.8.3
[root@test-1 ~]# ./configure –enable-dependency-tracking –enable-lib –enable-util
[root@test-1 ~]# make
[root@test-1 ~]# make install
2. 检查fuse是否安装正确,如果不正确后面启动和挂载glusterfs时候都会报错
[root@test-1 ~]# ll /dev/fuse
crw-rw-rw- 1 root root 10, 229 Apr 23 14:08 /dev/fuse
3. 安装服务器端
[root@test-1 ~]# cd ..
[root@test-1 ~]# tar zvxf glusterfs-3.0.3.tar.gz
[root@test-1 ~]# cd glusterfs-3.0.3
[root@test-1 ~]# ./configure –enable-fusermount
[root@test-1 ~]# make
[root@test-1 ~]# make install
4. 创建本地的共享点同时挂载硬盘分区
[root@test-1 ~]# mkdir /home/gluster
[root@test-1 ~]# mount /dev/sdb1 /home/gluster/
[root@test-1 ~]# chmod 777 /home/gluster/
5. 查看挂载是否正常
[root@test-1 ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
7.0G 3.4G 3.2G 52% /
/dev/sda1 99M 12M 83M 13% /boot
tmpfs 125M 0 125M 0% /dev/shm
/dev/sdb1 4.0G 8.0M 3.8G 1% /home/gluster
6. 开始配置服务器端配置文件,首先先备份示例文件
[root@test-1 ~]#cd /usr/local/etc/glusterfs
[root@test-1 ~]# mkdir bak
[root@test-1 ~]# mv *.sample bak
[root@test-1 ~]# cp bak/glusterfsd.vol.sample glusterfsd.vol
[root@test-1 ~]# echo “” >glusterfsd.vol
[root@test-1 ~]# vi glusterfsd.vol(配置如下)
### Export volume “brick” with the contents of “/home/export” directory.
volume brick
type storage/posix # POSIX FS translator
option directory /home/gluster # Export this directory
end-volume
volume locker
type features/locks
subvolumes brick
end-volume
volume bricks
type performance/io-threads
option thread-count 50 #//开启50个线程
subvolumes locker
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp/server
option listen-port 6996 # Default is 6996
subvolumes locker
option auth.addr.bricks.allow *
option auth.addr.locker.allow *
end-volume
7. 启动服务器端
[root@test-1 glusterfs]# glusterfsd -l /var/log/glusterfs.log -f /usr/local/etc/glusterfs/glusterfsd.vol -p /var/run/glusterfs.pid
启动的过程中指定了pid文件位置和日志文件位置
8. 验证服务启动是否正常,端口监听
[root@test-1 glusterfs]# netstat -nltp |grep 6996 |grep -v grep
tcp 0 0 0.0.0.0:6996 0.0.0.0:* LISTEN 27698/glusterfsd
[root@test-1 glusterfs]#
二 客户端的安装和配置
1. 和服务器端同样的安装操作此处不多说了,接下来配置客户端配置文件
[root@localhost glusterfs]#cd /usr/local/etc/glusterfs
[root@localhost glusterfs]# mkdir bak
[root@localhost glusterfs]# mv *.sample bak
[root@localhost glusterfs]# cp bak/glusterfs.vol.sample glusterfs.vol
[root@localhost glusterfs]# echo “” >glusterfs.vol
[root@localhost glusterfs]# vi glusterfs.vol
volume client1
type protocol/client
option transport-type tcp/client
option remote-host 192.168.10.252 #//server ip
option remote-port 6996
option remote-subvolume locker
end-volume
volume bricks
type cluster/distribute
subvolumes client1
end-volume
2. 开始客户端的挂载,把服务器端对文件系统挂载到本地的/mnt目录
[root@localhost glusterfs]#glusterfs -l /var/log/glusterfs.log -f /usr/local/etc/glusterfs/glusterfsd.vol -p /var/run/glusterfs.pid
同样指定了pid文件和日志文件
3. 看看是否挂载成了本地文件系统
[root@localhost glusterfs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 5.7G 2.0G 3.4G 38% /
/dev/hda1 99M 12M 83M 12% /boot
tmpfs 252M 0 252M 0% /dev/shm
glusterfs#/usr/local/etc/glusterfs/glusterfs.vol
7.0G 3.2G 3.4G 49% /mnt
[root@localhost glusterfs]# mount | tail -1
glusterfs#/usr/local/etc/glusterfs/glusterfs.vol on /data type fuse (rw,allow_other,default_permissions,max_read=131072)
[root@localhost glusterfs]#
三 测试部分
1. 在服务器的共享点上创建文件和目录
[root@test-1 gluster]# cd /home/gluster/
[root@test-1 gluster]# touch test
[root@test-1 gluster]# mkdir -p qubaoquan
[root@test-1 gluster]# ls
qubaoquan test
[root@test-1 gluster]#
2. 在客户记得挂载点上查看
[root@localhost glusterfs]# cd /mnt/
[root@localhost data]# ls
qubaoquan test
Unify模式简介:
多台server目前空余的硬盘空间利用起来。这就是glusterfsUnify模式的功能,多存储空间的聚合。
本文环境:二台服务器,一台测试机均为CentOS-5.2操作系统,
服务器1的ip为:192.168.10.252,共享目录/home/gluterfs和/data3
服务器2的Ip为:192.168.10.253 , 共享目录是/data和/data2
测试机的ip为192.168.10.14 , 挂载点为/mnt
一 服务器1的安装和配置
1.首先安装fuse扩展
[root@test-1 ~]# tar zvxf fuse-2.8.3.tar.gz
[root@test-1 ~]# cd fuse-2.8.3
[root@test-1 ~]# ./configure –enable-dependency-tracking –enable-lib –enable-util
[root@test-1 ~]# make
[root@test-1 ~]# make install
2. 检查fuse是否安装正确,如果不正确后面启动和挂载glusterfs时候都会报错
[root@test-1 ~]# ll /dev/fuse
crw-rw-rw- 1 root root 10, 229 Apr 23 14:08 /dev/fuse
3. 安装服务器端
[root@test-1 ~]# cd ..
[root@test-1 ~]# tar zvxf glusterfs-2.0.0rc1.tar.gz
[root@test-1 ~]# cd glusterfs-2.0.0rc1
[root@test-1 ~]# ./configure
[root@test-1 ~]# make
[root@test-1 ~]# make install
4. 创建本地的共享点1
[root@test-1 ~]# mkdir /data
[root@test-1 ~]# chmod 777 /data
5. 创建本地输出目录2
[root@test-1 ~]#touch /data2
[root@test-1 ~]# chmod 777 /data2
6. 开始配置服务器端配置文件,首先先备份示例文件
[root@test-1 ~]#cd /usr/local/etc/glusterfs
[root@test-1 ~]# mkdir bak
[root@test-1 ~]# mv *.sample bak
[root@test-1 ~]# vi glusterfsd.vol(配置如下)
volume brick
type storage/posix # POSIX FS translator
option directory /home/gluster # Export this directory
end-volume
volume brick-ns
type storage/posix
option directory /data3
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp/server
subvolumes brick brick-ns
option auth.addr.brick.allow *
option auth.addr.brick-ns.allow *
end-volume
7. 启动服务器端
[root@test-1 glusterfs]# glusterfsd -l /var/log/glusterfs.log -f /usr/local/etc/glusterfs/glusterfsd.vol -p /var/run/glusterfs.pid
启动的过程中指定了pid文件位置和日志文件位置
8. 验证服务启动是否正常,端口监听
[root@test-1 glusterfs]# netstat -nltp |grep 6996 |grep -v grep
tcp 0 0 0.0.0.0:6996 0.0.0.0:* LISTEN 27698/glusterfsd
[root@test-1 glusterfs]#
二 服务器端2的安装和配置
1.首先安装fuse扩展
[root@test-2~]# tar zvxf fuse-2.8.3.tar.gz
[root@test-2~]# cd fuse-2.8.3
[root@test-2~]# ./configure –enable-dependency-tracking –enable-lib –enable-util
[root@test-2~]# make
[root@test-2~]# make install
2. 检查fuse是否安装正确,如果不正确后面启动和挂载glusterfs时候都会报错
[root@test-2~]# ll /dev/fuse
crw-rw-rw- 2root root 10, 229 Apr 23 14:08 /dev/fuse
3. 安装服务器端
[root@test-2~]# cd ..
[root@test-2~]# tar zvxf glusterfs-2.0.0rc1.tar.gz
[root@test-2~]# cd glusterfs-2.0.0rc1
[root@test-2~]# ./configure
[root@test-2~]# make
[root@test-2~]# make install
4. 创建本地的共享点1同时挂载硬盘分区
[root@test-2~]# mkdir /home/gluster
[root@test-2~]# mount /dev/sdb1 /home/gluster/
[root@test-2~]# chmod 777 /home/gluster/
5. 创建本地输出目录2
[root@test-2~]#touch /data3
[root@test-2~]# chmod 777 /data3
6. 查看挂载是否正常
[root@test-2~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
7.0G 3.4G 3.2G 52% /
/dev/sda1 99M 12M 83M 13% /boot
tmpfs 125M 0 125M 0% /dev/shm
/dev/sdb1 4.0G 8.0M 3.8G 1% /home/gluster
7. 开始配置服务器端配置文件,首先先备份示例文件
[root@test-2~]#cd /usr/local/etc/glusterfs
[root@test-2~]# mkdir bak
[root@test-2~]# mv *.sample bak
[root@test-2~]# vi glusterfsd.vol(配置如下)
volume brick
type storage/posix # POSIX FS translator
option directory /data # Export this directory
end-volume
volume brick-ns
type storage/posix
option directory /data2
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp/server
subvolumes brick brick-ns
option auth.addr.brick.allow *
option auth.addr.brick-ns.allow *
end-volume
8. 启动服务器端
[root@test-2glusterfs]# glusterfsd -l /var/log/glusterfs.log -f /usr/local/etc/glusterfs/glusterfsd.vol -p /var/run/glusterfs.pid
启动的过程中指定了pid文件位置和日志文件位置
9. 验证服务启动是否正常,端口监听
[root@test-2glusterfs]# netstat -nltp |grep 6996 |grep -v grep
tcp 0 0 0.0.0.0:6996 0.0.0.0:* LISTEN 27698/glusterfsd
[root@test-2glusterfs]#
三 客户端的安装和配置
1. 和服务器端同样的安装操作此处不多说了,接下来配置客户端配置文件
[root@localhost glusterfs]#cd /usr/local/etc/glusterfs
[root@localhost glusterfs]# mkdir bak
[root@localhost glusterfs]# mv *.sample bak
[root@localhost glusterfs]# vi glusterfs.vol
volume client1
type protocol/client
option transport-type tcp/client
option remote-host 192.168.10.252 #//server ip
option remote-port 6996
option remote-subvolume brick
end-volume
volume client2
type protocol/client
option transport-type tcp/client
option remote-host 192.168.10.253 #//server ip
option remote-port 6996
option remote-subvolume brick
end-volume
volume client1-ns
type protocol/client
option transport-type tcp/client
option remote-host 192.168.10.252
option remote-subvolume brick-ns
end-volume
volume unify
type cluster/unify
subvolumes client1 client2
option namespace client1-ns
option scheduler rr
end-volume
2. 开始客户端的挂载,把服务器端对文件系统挂载到本地的/mnt目录
[root@localhost glusterfs]#glusterfs -l /var/log/glusterfs.log -f /usr/local/etc/glusterfs/glusterfsd.vol -p /var/run/glusterfs.pid
同样指定了pid文件和日志文件
3. 看看是否挂载成了本地文件系统
[root@localhost glusterfs]# df –h
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 5.7G 2.1G 3.4G 39% /
/dev/hda1 99M 12M 83M 12% /boot
tmpfs 252M 0 252M 0% /dev/shm
glusterfs 11G 3.2G 7.2G 31% /mnt
[root@localhost glusterfs]# mount | tail -1
glusterfs#/usr/local/etc/glusterfs/glusterfs.vol on /data type fuse (rw,allow_other,default_permissions,max_read=131072)
[root@localhost glusterfs]#
三 测试部分
1. 在服务器1的共享点上创建文件
[root@test-1 ~]# cd /data3
[root@test-1 data3]# touch data3
[root@test-1 data3]# cd /home/gluster/
[root@test-1 gluster]# touch gluster
[root@test-1 gluster]#
2. 在服务器2的共享点上创建文件
[root@test-2 data]# cd /data
[root@test-2 data]# touch data
[root@test-2 data]# cd /data2
[root@test-2 data2]# touch data2
3. 在客户记得挂载点上查看
[root@localhost mnt]# ls
data data3 gluster data2
[root@localhost mnt]#
Replacte模式简介:
为glusterfs提供了类似RAID-1的功能。Replicate会复制文件或者文件夹到各个subvolumes里。因此,如果replicate部分设置了4个subvolume,那就会4分的文件或者文件夹的拷贝副本。replicate同样提供了高可用,比如如果其中的一个subvolume down掉了(或者说一台存储服务器坏了,网络连接出现问题)replicate依然可以使用冗余的拷贝副本来提供服务。
Replicate同样提供了自动修复功能,比如,如果一台crash掉的服务器恢复了,这台服务器上存储的过期的文件或者文件夹就会被更新成最新的版本。Replicate使用了后端文件系统的扩展功能来跟踪文件或者文件夹的版本来提供自动恢复的功能
本文环境:二台服务器,一台测试机均为CentOS-5.2操作系统,
服务器1的ip为:192.168.10.252,共享目录/home/gluterfs
服务器2的Ip为:192.168.10.253 , 共享目录是/data
测试机的ip为192.168.10.14 , 挂载点为/mnt
一 服务器1的安装和配置
1.首先安装fuse扩展
[root@test-1 ~]# tar zvxf fuse-2.8.3.tar.gz
[root@test-1 ~]# cd fuse-2.8.3
[root@test-1 ~]# ./configure –enable-dependency-tracking –enable-lib –enable-util
[root@test-1 ~]# make
[root@test-1 ~]# make install
2. 检查fuse是否安装正确,如果不正确后面启动和挂载glusterfs时候都会报错
[root@test-1 ~]# ll /dev/fuse
crw-rw-rw- 1 root root 10, 229 Apr 23 14:08 /dev/fuse
3. 安装服务器端
[root@test-1 ~]# cd ..
[root@test-1 ~]# tar zvxf glusterfs-2.0.0rc1.tar.gz
[root@test-1 ~]# cd glusterfs-2.0.0rc1
[root@test-1 ~]# ./configure
[root@test-1 ~]# make
[root@test-1 ~]# make install
4. 创建本地的共享点1
[root@test-1 ~]# mkdir /data
[root@test-1 ~]# chmod 777 /data
5. 开始配置服务器端配置文件,首先先备份示例文件
[root@test-1 ~]#cd /usr/local/etc/glusterfs
[root@test-1 ~]# mkdir bak
[root@test-1 ~]# mv *.sample bak
[root@test-1 ~]# vi glusterfsd.vol(配置如下)
volume brick
type storage/posix # POSIX FS translator
option directory /data
end-volume
volume locker
type features/posix-locks
subvolumes brick
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp/server
subvolumes locker
option auth.addr.brick.allow * # Allow access to “brick” volume
option auth.addr.locker.allow *
end-volume
6. 启动服务器端
[root@test-1 glusterfs]# glusterfsd -l /var/log/glusterfs.log -f /usr/local/etc/glusterfs/glusterfsd.vol -p /var/run/glusterfs.pid
启动的过程中指定了pid文件位置和日志文件位置
7. 验证服务启动是否正常,端口监听
[root@test-1 glusterfs]# netstat -nltp |grep 6996 |grep -v grep
tcp 0 0 0.0.0.0:6996 0.0.0.0:* LISTEN 27698/glusterfsd
[root@test-1 glusterfs]#
二 服务器端2的安装和配置
1.首先安装fuse扩展
[root@test-2~]# tar zvxf fuse-2.8.3.tar.gz
[root@test-2~]# cd fuse-2.8.3
[root@test-2~]# ./configure –enable-dependency-tracking –enable-lib –enable-util
[root@test-2~]# make
[root@test-2~]# make install
2. 检查fuse是否安装正确,如果不正确后面启动和挂载glusterfs时候都会报错
[root@test-2~]# ll /dev/fuse
crw-rw-rw- 2root root 10, 229 Apr 23 14:08 /dev/fuse
3. 安装服务器端
[root@test-2~]# cd ..
[root@test-2~]# tar zvxf glusterfs-2.0.0rc1.tar.gz
[root@test-2~]# cd glusterfs-2.0.0rc1
[root@test-2~]# ./configure
[root@test-2~]# make
[root@test-2~]# make install
4. 创建本地的共享点1同时挂载硬盘分区
[root@test-2~]# mkdir /home/gluster
[root@test-2~]# mount /dev/sdb1 /home/gluster/
[root@test-2~]# chmod 777 /home/gluster/
5. 查看挂载是否正常
[root@test-2~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
7.0G 3.4G 3.2G 52% /
/dev/sda1 99M 12M 83M 13% /boot
tmpfs 125M 0 125M 0% /dev/shm
/dev/sdb1 4.0G 8.0M 3.8G 1% /home/gluster
6. 开始配置服务器端配置文件,首先先备份示例文件
[root@test-2~]#cd /usr/local/etc/glusterfs
[root@test-2~]# mkdir bak
[root@test-2~]# mv *.sample bak
[root@test-2~]# vi glusterfsd.vol(配置如下)
volume brick
type storage/posix # POSIX FS translator
option directory /home/gluster
end-volume
volume locker
type features/posix-locks
subvolumes brick
end-volume
### Add network serving capability to above brick.
volume server
type protocol/server
option transport-type tcp/server
subvolumes locker
option auth.addr.brick.allow * # Allow access to “brick” volume
option auth.addr.locker.allow *
end-volume
7. 启动服务器端
[root@test-2glusterfs]# glusterfsd -l /var/log/glusterfs.log -f /usr/local/etc/glusterfs/glusterfsd.vol -p /var/run/glusterfs.pid
启动的过程中指定了pid文件位置和日志文件位置
8. 验证服务启动是否正常,端口监听
[root@test-2glusterfs]# netstat -nltp |grep 6996 |grep -v grep
tcp 0 0 0.0.0.0:6996 0.0.0.0:* LISTEN 27698/glusterfsd
[root@test-2glusterfs]#
三 客户端的安装和配置
1. 和服务器端同样的安装操作此处不多说了,接下来配置客户端配置文件
[root@localhost glusterfs]#cd /usr/local/etc/glusterfs
[root@localhost glusterfs]# mkdir bak
[root@localhost glusterfs]# mv *.sample bak
[root@localhost glusterfs]# vi glusterfs.vol
volume client1
type protocol/client
option transport-type tcp/client
option remote-host 192.168.10.252 #//server ip
option remote-port 6996
option remote-subvolume locker
end-volume
volume client2
type protocol/client
option transport-type tcp/client
option remote-host 192.168.10.253 #//server ip
option remote-port 6996
option remote-subvolume locker
end-volume
volume bricks
type cluster/replicate
subvolumes client1 client2
end-volume
2. 首先挂载fuse模块
[root@localhost glusterfs]#modprobe fuse
3. 开始客户端的挂载,把服务器端对文件系统挂载到本地的/mnt目录
[root@localhost glusterfs]#glusterfs -l /var/log/glusterfs.log -f /usr/local/etc/glusterfs/glusterfsd.vol -p /var/run/glusterfs.pid
同样指定了pid文件和日志文件
4. 看看是否挂载成了本地文件系统
[root@localhost glusterfs]# df –h
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 5.7G 2.1G 3.4G 39% /
/dev/hda1 99M 12M 83M 12% /boot
tmpfs 252M 0 252M 0% /dev/shm
glusterfs 11G 3.2G 7.2G 31% /mnt
[root@localhost glusterfs]# mount | tail -1
glusterfs#/usr/local/etc/glusterfs/glusterfs.vol on /data type fuse (rw,allow_other,default_permissions,max_read=131072)
[root@localhost glusterfs]#
三 测试部分
1. 在客户端的挂在点上创建文件
[root@localhost mnt]# cd /mnt
[root@localhost mnt]# touch test
2. 然后再两个服务器端查看,可以看到2个服务器同时产生了副本
[root@test-1 gluster]# cd /home/gluster/(服务器-1)
[root@test-1 gluster]# ls
test
[root@test-2 data]# cd /data(服务器-2)
[root@test-2 data]# ls
test
3. 挂掉服务器端1,然手再续在客户端创建新文件
[root@test-1 gluster]# kill -9 `cat /var/run/glusterfs.pid`(服务器-1)
[root@localhost mnt]# touch test2
[root@localhost mnt]# ls
test test2
[root@localhost mnt]#
4. 然后分别查看两个服务器端的数据变换
[root@test-1 gluster]# cd /home/gluster/(服务器-1)
[root@test-1 gluster]# ls
test
[root@test-2 data]# cd /data(服务器-2)
[root@test-2 data]# ls
test test2
5. 现在启动服务器-1,然后查看数据是否同步过来
[root@test-1 gluster]#glusterfsd -l /var/log/glusterfs.log -f /usr/local/etc/glusterfs/glusterfsd.vol -p /var/run/gluterfs.pid
[root@test-1 gluster]# cd /home/gluster/(服务器-1)
[root@test-1 gluster]# ls
test(暂时无变化)
6. 现在在客户端重新查询一下数据,以把请求复制到服务器-1上,这样两个服务器的内容就一致了
[root@localhost mnt]# cd /mnt
[root@localhost mnt]# ls
test test2
7. 到服务器-1上看test2文件是否已经复制过来了
[root@test-1 gluster]# cd /home/gluster/(服务器-1)
[root@test-1 gluster]# ls
test test2(已经复制成功)
来源URL:http://blog.chinaunix.net/uid-22166872-id-4194504.html