本教程展示怎么在Fedora 12上安装一个独立存储服务器。这里我将会使用GlusterFS而不是NFS。客户系统能够像本地文件系统一样访问该存储器。GlusterFS是一个可以 扩展到几个peta字节的集群式文件系统。它将几个存储块通过Infiniband RDMA或者TCP/IP互联聚合成一个大的并行网络文件系统。存储块可以使用任意商业化硬件组成,比如使用SATA-II RAID和Infiniband HBA的x86_64服务器。
我不作出任何保证说这种办法一定适用于你!
1 前期工作
本教程中我会使用两个系统, 一个服务器和一个客户:
- server1.example.com: IP地址为192.168.0.100 (服务器)
- client1.example.com: IP地址为192.168.0.101 (客户)
每个系统都应该能够解析到另一个系统的主机名. 如果这一点不能通过DNS达到, 你就要在两个系统上编辑/etc/hosts文件使之包含下 面两行:
vi /etc/hosts
[...] |
(在接下来的安装过程中也可以使用IP地址来代替主机名. 如果你喜欢使用IP地址, 你不需要关心主机名能否被解析.)
2 安装GlusterFS服务器
server1.example.com:
GlusterFS服务器是Fedora 12中一个已经可用的软件包, 所以你可以这样来安装:
yum install glusterfs-server
命令
glusterfs --version
则可以显示你所安装的GlusterFS的版本 (本例中是2.0.9):
[root@server1 ~]# glusterfs --version
glusterfs 2.0.9 built on Jan 3 2010 00:12:49
Repository revision: v2.0.9
Copyright (c) 2006-2009 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 ~]#
接下来我们创建一些目录:
mkdir /data/
mkdir /data/export
mkdir /data/export-ns
现在我们创建GlusterFS服务器的配置文件/etc/glusterfs/glusterfsd.vol (之前首先要对原始的/etc/glusterfs/glusterfsd.vol进行备 份)来定义即将被导出的目录(/data/export)和允许进行连接的客户机(192.168.0.101 = client1.example.com):
cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig
cat /dev/null > /etc/glusterfs/glusterfsd.vol
vi /etc/glusterfs/glusterfsd.vol
volume posix |
值得注意的是可以在IP地址中使用通配符 (比如192.168.*) 并且可以通过逗号分隔来指定多个IP地址 (如 192.168.0.101,192.168.0.102).
然后我们创建GlusterFS的系统自启动链接并且启动之:
chkconfig --levels 35 glusterfsd on
/etc/init.d/glusterfsd start
3 安装GlusterFS客户
client1.example.com:
有一个用于Fedora 12的GlusterFS客户端rpm包,但是当你尝试访问GlusterFS共享存储的时候存在一个类似于这样的问题: df: `/mnt/glusterfs': Software caused connection abort 或者 df: `/mnt/glusterfs': Transport endpoint is not connected. 这就是为什么我们要从源代码开始构建GlusterFS客户端以避免这个问题的原因。
在构建GlusterFS客户端之前,我们先安装其先决条件:
yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install libibverbs-devel fuse-devel
然后我们下载GlusterFS 2.0.9的源码(请注意这是和已经安装的服务器相同的版本!) 并按如下步骤构建GlusterFS:
cd /tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz
tar xvfz glusterfs-2.0.9.tar.gz
cd glusterfs-2.0.9
./configure
在 ./configure命令结束的尾部,你会看到类似于这样的信息:
[...]
GlusterFS configure summary
===========================
FUSE client : yes
Infiniband verbs : yes
epoll IO multiplex : yes
Berkeley-DB : yes
libglusterfsclient : yes
argp-standalone : no
[root@client1 glusterfs-2.0.9]#
make && make install
ldconfig
然后检查GlusterFS的版本(应该是2.0.9):
glusterfs --version
[root@client1 glusterfs-2.0.9]# glusterfs --version
glusterfs 2.0.9 built on Feb 19 2010 19:20:46
Repository revision: v2.0.9
Copyright (c) 2006-2009 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@client1 glusterfs-2.0.9]#
然后我们创建如下两个目录:
mkdir /mnt/glusterfs
mkdir /etc/glusterfs
接下来创建文件/etc/glusterfs/glusterfs.vol:
vi /etc/glusterfs/glusterfs.vol
volume remote |
确保你在option remote-host行使用了正确的服务器主机名或者IP地址!
就这么回事! 现在你可以使用下面两个命令中的一个来将GlusterFS文件系统挂载到/mnt/glusterfs:
glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs
或者
mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs
你现在应该可以在mount的输出中看到新的共享信息...
[root@client1 glusterfs-2.0.9]# mount
/dev/mapper/vg_server2-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
[root@client1 glusterfs-2.0.9]#
... 还有...
df -h
[root@client1 glusterfs-2.0.9]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server2-lv_root
29G 2.6G 25G 10% /
tmpfs 185M 0 185M 0% /dev/shm
/dev/sda1 194M 23M 161M 13% /boot
/etc/glusterfs/glusterfs.vol
29G 2.7G 25G 10% /mnt/glusterfs
[root@client1 glusterfs-2.0.9]#
相比于在客户端手动挂载GlusterFS共享,你还可以修改/etc/fstab以 实现在客户端启动时让共享存储自动挂载。
打开/etc/fstab并且添加下面这行:
vi /etc/fstab
[...] |
想要测试修改过的/etc/fstab是否正常工作,重启客户端:
reboot
重启之后,你可以在下列命令的输出中发现共享存储的信息...
df -h
... 和...
mount
4 相关链接
- GlusterFS: http://www.gluster.org/
- Fedora: http://fedoraproject.org/
原文:http://www.howtoforge.com/creating-an-nfs-like-standalone-storage- server-with-glusterfs-on-fedora-12