用glusterfs搭建分布式集群

在前面已经安装好的glusterfs基础上,用两台虚拟机test1,test2来分布式存储测试,IP分别为:192.168.30.6,192.168.30.7

1.首先确保这两台虚拟机执行sudo /etc/init.d/glusterd start启动正常

2.用其中一台来执行gluster命令,形式分布式集群,例如本人用的是test1(192.168.30.6)这台机器来

3.在test1这台机器上,首先执行sudo gluster peer probe 192.168.30.7,首先将test2这台机器加入到受信任的存储池中(简单地说,一台机器上的一个目录,可以看作是一个存储池),test2的glusterd start要启动,才能连接上,可以使用sudo gluster peer status命令查看存储池信息。一旦这个存储池加进来,以前在这个存储池上做的一些操作,也会相应出来,比如,以前这个存储池做过复制式存储集群中的其中一台机器,这时用sudo gluster volume info命令查看就会显示出相应信息。这时可以直接在这个卷(gluster volume)上使用gluster volume命令扩展存储池和删减存储池。( gluster volume,简单地说,就是将多台机器上的资源(比如某个目录)整合到一起,形成一个volume,对多台机器统一管理,并按照配置命令形成相应操作,比如:将这多台机器形成分布式卷或备份式(即复制式)的卷)

4.这里只对分布式集群作说明,备份式的集群类似,详见官方文档。当test2成功peer probe后,在test1机器上,使用命令sudo gluster volume create test-volume transport tcp 192.168.30.6:/home/dir1 192.168.30.7:/home/dir1,这里有没有dir1这个目录无关紧要,如果没有这个目录,这个命令后会自动创建这个目录。(注意:因为本机默认已经在pool里,所以不用peer probe)

5.通过第4步,test1:/home/dir1和test2:/home/dir2就形成了一个简单的分布式集群。下面在客户端上做测试

 

客户端可以使用三种方式来挂载服务端的卷:1.NFS;2.CIFS;3.Gluster Native Client(这个是glusterfs自己的客户端),这里对后两种进行说明

1.Gluster Native Client。

(a).这个需要客户端(test3:192.168.30.8)上装glusterfs,详见前面"glusterfs安装配置"。在装好后,使用命令sudo mount -t  glusterfs 192.168.30.6:/test-volume /mnt/gluster(这个目录需要自己先建好)
(b).在挂载成功后,切换到test3的/mnt/gluster目录中,使用touch {1,2,3,4,5,6,7},然后回到test1的/home/dir1目录下查看,发现有1,5,7,在test2的/home/dir1目录中有2,3,4,6,说明已经将文件成功分布存储在不同机器上

2.CIFS(这个是windows上的网络文件传输协议,网上邻居就是采用这种协议)

原理:首先和gluster native client一样,将服务端的卷挂载到某个目录下,用samba将这个挂载目录export出去,这样在windows的网上邻居中就可以访问了

(a).在test1中,sudo mkdir /mnt/gluster,建立挂载目录

(b).sudo vim /etc/samba/smb.conf,将下面的内容添加到最后

      [glustertest]
             comment = For testing a Gluster volume exported through CIFS
             path = /mnt/gluster
             read only = no
             guest ok = yes

(c).在test1中,使用命令sudo mount -t glusterfs 192.168.30.6:/test-volume /mnt/gluster,这样windows主机的网上邻居中,就可以直接访问这个卷了。(其实test1的卷只是个虚拟的,必须挂载到物理目录上,才可以映射到网络中)

补充说明:

1.Glusterfs通过挂载volume到一个目录下的一个文件夹下,增删改查都像本地一样,对用户是透明的

2.sudo /etc/init.d/gluster start启动后,用sudo gluster peer status查看节点状态,可以看到如果节点机器上没有启动sudo /etc/init.d/gluster start的话,此时显示的是未连接,如果启动后,会自动连接上,用sudo gluster  volume info查看volume信息时,可以看到,无论节点机器有没有启动,它状态显示的都是started,也就是说默认是启动状态,此时只需要节点机器启动gluster守护进程,便可挂载volume了

3.samba是linux系统上实现SMB协议的一个免费软件,SMB协议通常是被windows系列用来实现磁盘和打印机共享

4.卸载挂载点:sudo umount /mnt/gluster

5.glusterfs最好用同一版本,我一个用3.1,一个用3.2,结果在peer probe的时候,显示的是probe failed,但去查看状态peer status时,发现其中显示的是已连接上

6.当使用配置文件来做分布式文件存储时,glusterfsd.vol是服务端配置模板文件,glusterfs.vol是客户端模板配置文件,服务端在启动时或客户端在挂载目录时,可以指定用哪个配置文件启动,组成不用的应用

7.glusterfsd.vol这个配置文件有没有,并不影响守护进程sudo /etc/init.d/glusterd start启动,/home/dir目录有没有,也不影响守护进程启动,就是当有目录且还将此目录exoirt的时候设了1777权限后,守护进程启动才会报错,刚开始受网上影响,因为先按配置文件来使用gluster的,导致在使用守护进程去管理glusterfs时,一直在启动守护进程这里出错

注:如果要直接在网上邻居中,对挂载的卷做添加文件和删除文件操作,必须对挂载的目录/mnt/gluster赋予权限,sudo chmod 777 /mnt/gluster,如果是1777的话,不能删除文件,只能添加

你可能感兴趣的:(虚拟机,windows,集群,存储,分布式存储,testing)