一、glusterFS 简介
glusterFS是一个开源的,scale-out的分布式文件系统。官网:http://www.gluster.org 可能会很卡,最好弄个代理
scale-out与sacle-up架构:
scale-out:通过增加服务器的数量,以及优秀的负载均衡策略才提高服务器的性能。
scale-up :通过提高服务器的质量,如增加处理器,硬盘,内存等等手段,来提高服务器的性能。
二、glusterFS安装
我用的电脑是ubuntu 14.04版本,直接apt-get install glusterfs-sever 就可以。但是安装的不是最新版,所以采用了官网针对ubuntu用户PPA的方法。
<span style="white-space:pre"> </span>sudo add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.5
sudo apt-get update
sudo apt-get install glusterfs-server
这样既可以安装最新版的glusterfs了,我的版本是3.5.1
三、搭建集群环境
一共有两台机器,IP分别为:172.16.70.36 以及 172.16.70.175
3.1 准备工作:
机器172.16.70.36上:
新建/export/sdb1/目录,然后将目录挂载到随便一块硬盘分区上(使用mount命令),我是挂载到了/dev/sda2下面
sudo mount /dev/sda2 /export/sdb1/
然后进入到目录/export/sdb1新建目录brick2,新建文件file1。
机器172.16.70.36上:
新建/export/sdb1/目录,然后将目录挂载到随便一块硬盘分区上(使用mount命令),我是挂载到了/dev/sda2下面
sudo mount /dev/sda2 /export/sdb1/
然后进入到目录/export/sdb1新建目录brick1,新建文件file2。
3.2 搭建分布式的volume
glusterFS支持很多类型的volume,这里我们搭建一个最简单的distrubuted volume。
上面的结构图来自官方的文档。这里我们只不过是换了点brick的名字
以下所有操作无特殊说明均在172.16.70.36上执行,并关闭两台机器的防火墙
1. 首先我们新建一个trusted pool: 这是一些host的集合,在我们的例子里就是172.16.70.36 与 172.16.70.175两个主机的集合。
gluster peer probe 172.16.70.175
执行完毕后,到172.16.70.175上运行gluster peer status可以看到
Number of Peers: 1
Hostname: 172.16.70.36
Uuid: f2b0aec8-5454-4c95-9fe8-25bb23f2a376
State: Peer in Cluster (Connected)
说明我们的trusted pool建立成功
2. 下面我们利用之前在每一个机器上建立的brick来进行gluster volume的创建
sudo gluster volume create test-volume 172.16.70.36:/export/sdb1/brick2/ 172.16.70.175:/export/sdb1/brick1/
执行sudo gluster volume info 可以看到执行成功的信息。
3. 下面只需要将test-volume挂载到36机器上就可以使用了
在/mnt目录下新建目录glusterfs
然后将test-volume挂载到这个目录上
sudo mount -t glusterfs 172.16.70.36:/test-volume /mnt/glusterfs/
然后进入到/mnt/glusterfs目录就可以看到file1 以及 file2了,大功告成。
四、概念说明
我比较喜欢先实践,后理论,这样可能更有乐趣吧 个人觉的。
1. a trusted pool:上面已经说过,是一个后端host的集合,所有的glusterfs都在这个集合上进行操作
2. a node or a "server":指的是trusted pool 的一部分,不一定是一个host哦
3. a brick 对应上面的一个目录,具有文件系统的目录,glusterfs中brick跟文件系统是对应的,其余的概念都是不基于文件系统的
4. an export 是指一个server的一个或一些brick的路径
5. a gluster volume: 是brick的集合。 个人理解这个概念就是gluster的硬盘。
五、参考
1 http://www.gluster.org/documentation/Getting_started_common_criteria/
2. Gluster_File_System-3.3.0-Administration_Guide-en-US.pdf 文档