前 言:
适合存储大文件(文件被分块存储),比如log什么的,为map/reduce做了优化
hadoop DFS java 写的
KosmosFS c++ 写的 (这玩意现在换了个时髦名字叫 CloudStore )
适合存储不常变化的小文件什么的
MogileFS 用的比较多,Perl写的,用mysql做元数据的保存。
GlusterFS
GlusterFS
相信接触过流量大些项目的同学们都会把图片从php服务器上分离出去,建立单独的服务器进行存储,那么如何存储数量较大的图片,解决备份,负载均衡,高可靠性等问题呢,今天简单介绍一下最近研究学习的分布式文件系统 glusterfs
glusterfs 是一个配置灵活的可伸缩的集群式文件系统,可存储PB级别的数据(很大的哦),支持多种分布式结构的配置,以达到灵活的配置需求。
建议使用centos5.2 以上系统安装因为有yum 非常方便
glusterfs 需要系统安装bdb, fuse 一般linux都已经安装bdb,不再叙述
1. fuse的安装
modprobe -l | grep fuse 检查fuse 是否加载
如果没有则modprobe fuse
如果出现加载不到模块说明fuse 还没有安装
下载fuse 最新稳定版本2.4.7
./configure –with-kernel=/user/src/kernerls/你的kernerl源代码路径
make && make install
这里如果那个路径没有东西 则说明你没有安装过kernel的源代码 要安装kernel-devel
yum -y install kernel-devel
安装结束后 modprobe fuse 如果没有提示则证明成功加载
2.安装glusterfs
./configure –prefix=/home/pubserver/glusterfs
make && make install
安装结束
3. 配置
这里先配置最简单的模式 需要两台机器: 一个客户端,一个服务端
vm里安装两个centos5.2, IP分别为192.168.230.128,192.168.230.129
服务端的配置server.vol如下
volume brick
type storage/posix
option directory /home/pubserver/gdisk
end-volume
volume server
type protocol/server
option transport-type tcp
option transport.socket.bind-address 192.168.230.128
option transport.socket.listen-port 6996
subvolumes brick
option auth.addr.brick.allow 192.168.230.*
end-volume
客户端的配置client.vol如下
volume client
type protocol/client
option transport-type tcp
option remote-host 192.168.230.128
option transport.socket.remote-port 6996
option remote-subvolume brick
end-volume
配置结束.
4.启 动
服务端启动
modprobe fuse
cd /home/pubserver/glusterfs/
./sbin/glusterfsd -f ./etc/glusterfs/server.vol -l glusterfs.log
客户端启动
modprobe fuse
cd /home/pubserver/glusterfs/
./sbin/glusterfsd -f ./etc/glusterfs/client.vol -l glusterfs.log /home/pubserver/gdisk
客户端需要将远程服务器上的服务目录挂在到 本地的一个目录 /home/pubserver/gdisk 就是挂载的目录
启动成功后 可以在服务端 写入一个文件 在客户端目录下查看,如果有则证明安装成功。如果启动失败可以去log中查看错误原因 也可以使用
./sbin/glusterfsd -f ./etc/glusterfs/server.vol -l glusterfs.log --debug 来进行跟踪错误