本文所列内容在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的回显就好了。