本文所列内容在Linode和Vultr的VPS上面均测试通过。

 

简介
GlusterFS是一个集群文件系统,非常强大,详细的介绍请搜索一下吧……

 

1,初步说明

本文使用两台机器:
server1.example.com: IP address 192.168.0.100 (服务器)
client1.example.com: IP address 192.168.0.101 (客户机)
因为是示例的主机名,所以DNS肯定无法解析到,所以你需要编辑hosts文件:
命令:

nano /etc/hosts

增加两行:

192.168.0.100   server1.example.com     server1
192.168.0.101   client1.example.com     client1

不过,你也可以直接使用IP地址,也是一样的,具体就看你喜好了。

 

2,安装GlusterFS服务器

在Debian源中是有GlusterFS包的,所以你可以直接安装:

命令:

apt-get install glusterfs-server

然后你可以看一下安装的版本,命令:

glusterfsd --version

将会回显已经安装的版本,本文安装的是3.2.7:

root@server1:~# glusterfsd --version
glusterfs 3.2.7 built on Nov 12 2012 19:30:08
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.
root@server1:~#

如果你在服务器端(server1.example.com)打开了防火墙,比如iptables之类的,你需要开放TCP的端口,包括111、24007、24008、24009以及所有大于24009的端口。

 

然后我们在服务器上建立共享命名testvol到/data目录(这里只是示例,如果已经有这个的话,可以换名或者跳过)

命令:

gluster volume create testvol server1.example.com:/data

回显:

root@server1:~# gluster volume create testvol server1.example.com:/data
Creation of volume testvol has been successful. Please start the volume to access data.
root@server1:~#

然后启动这个卷:

gluster volume start testvol

回显告知已经成功了:

root@server1:~# gluster volume start testvol
Starting volume testvol has been unsuccessful
root@server1:~#

你可以检查一下这个卷的状态:

gluster volume info

回显:

root@server1:~# gluster volume info

Volume Name: testvol
Type: Distribute
Status: Started
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
root@server1:~#

如果状态(status)是已经启动了(started),那么一切ok,否则的话你可以再启动一下试试看,或者检查是否有问题。

默认情况下,所有客户端都是可以连接到这个卷的,如果你只允许客户端client1.example.com(= 192.168.0.101)连接,那么允许下面的命令:

gluster volume set testvol auth.allow 192.168.0.101

也可以使用通配符,比如(192.168.*)这样的匹配多个IP地址或者IP段。

然后再检查一下卷的状态:

gluster volume info

回显:

root@server1:~# gluster volume info

Volume Name: testvol
Type: Distribute
Status: Started
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: server1.example.com:/data
Options Reconfigured:
auth.allow: 192.168.0.101
root@server1:~#

 

3,客户端设置

在客户机上面,我们用下面的命令来安装GlusterFS客户端程序:

apt-get install glusterfs-client

然后我们来建立一个目录用来挂载用:

mkdir /mnt/glusterfs

接着挂载起来:

mount.glusterfs server1.example.com:/testvol /mnt/glusterfs

ok了,我们来看一下客户机的挂载情况:

mount

回显:

root@client1:~# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=126813,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=102704k,mode=755)
/dev/mapper/server1-root on / type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=205400k)
/dev/sda1 on /boot type ext2 (rw,relatime,errors=continue)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
server1.example.com:/testvol on /mnt/glusterfs type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
root@client1:~#

再看看df -h,呵呵:

df -h

回显:

root@client1:~# df -h
Filesystem                    Size  Used Avail Use% Mounted on
rootfs                         29G  1.2G   26G   5% /
udev                           10M     0   10M   0% /dev
tmpfs                         101M  240K  101M   1% /run
/dev/mapper/server1-root       29G  1.2G   26G   5% /
tmpfs                         5.0M     0  5.0M   0% /run/lock
tmpfs                         201M     0  201M   0% /run/shm
/dev/sda1                     228M   18M  199M   9% /boot
server1.example.com:/testvol   29G  1.2G   26G   5% /mnt/glusterfs
root@client1:~#

我们可以编辑一下/etc/fstab文件,让系统启动的时候可以自动挂载:

命令:

nano /etc/fstab

新增一行:

server1.example.com:/testvol /mnt/glusterfs glusterfs defaults,_netdev 0 0

到这里,就完成了,现在可以重启一下看看能否自动挂载:

reboot

启动以后,再看看df -h和mount的回显就好了。

 

作者 听涛

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注