在你配置glusterfs的volume之前,你需要先创建一个由存储服务器组成的可以信任的存储池,glusterfs服务必须运行在每一台加入存储池的服务器上。
加入一台服务器到可信任存储池
命令:gluster peer probe server-name
在GlusterFS-Server1上加入两台服务器到存储池中,在GlusterFS-Server1上不需要设置加入自己,只需要设置要加入进来的服务器。在加入进来的服务器上会看到GlusterFS-Server1的。
gluster peer probe GlusterFS-Server2
gluster peer probe GlusterFS-Server3
如下图:
检查加入可信任存储池中的服务器状态
命令:gluster peer status
gluster peer status
如下图:
从存储池中移除一台服务器
命令:gluster peer detach server
gluster peer detach GlusterFS-Server3
如图:
创建glusterfs的volume,volume是bricks的逻辑集合,每一个bricks都是在信任的存储池中服务器上导出的目录,当创建volume的时候,你必须指定volume由那些bricks组成。
创建一个新volume
命令:gluster volume create NEW-VOLNAME [stripe COUNT | replica COUNT] [transport tcp | rdma | tcp, rdma] NEW-BRICK1 NEW-BRICK2 NEW-BRICK3
在GlusterFS中有五中类型的volume可以被创建:
Distributed:分布式卷,文件通过hash算法随机的分布到由bricks组成的卷上。
Replicated:复制式卷,类似raid1,replica数必须等于volume中brick所包含的存储服务器数,可用性高。
Striped:条带式卷,类似与raid0,stripe数必须等于volume中brick所包含的存储服务器数,文件被分成数据块,以Round Robin的方式存储在bricks中,并发粒度是数据块,大文件性能好。
Distributed Striped:分布式的条带卷,volume中brick所包含的存储服务器数必须是stripe的倍数(>=2倍),兼顾分布式和条带式的功能。
Distributed Replicated:分布式的复制卷,volume中brick所包含的存储服务器数必须是 replica 的倍数(>=2倍),兼顾分布式和复制式的功能。
下面开始构建Distributed Volumes
只需要在volume中的一台存储服务器上操作,我们选择在GlusterFS-Server1上操作
分布式的卷把文件分布的存放在整个卷的bricks中,分布式卷一般用于扩展存储或者数据冗余要求不高的地方,但是如果存储服务器或者磁盘故障,分布式的卷会导致严重的数据丢失。文件在分布式卷中是随机存放的,默认使用tcp协议。
创建一个分布式的卷,包含GlusterFS-Server1:/opt/Server1、GlusterFS-Server2:/opt/Server2、GlusterFS-Server3:/opt/Server3等目录。
gluster volume create test-volume GlusterFS-Server1:/opt/Server1 GlusterFS-Server2:/opt/Server2 GlusterFS-Server3:/opt/Server3
如图:
查看创建的卷的信息
命令:gluster volume info
gluster volume info
如图:可以看到在GlusterFS-Server2/GlusterFS-Server3中可以看到相同的信息
在创建完volume之后,就该启动创建的卷了:
启动volumes
命令:gluster volume start volume-name
也可以在卷中的其他存储机器上启动卷,我们在GlusterFS-Server3上启动test-volume
gluster volume start test-volume
如图:
设置glusterfs客户端 访问数据
glusterfs提供了三种方式访问存储服务器的数据:
Gluster Native Client:这种方式提供了高并发、高性能、高传输速率的方式。
NFS:可以使用NFS V3版本访问数据,你需要在客户端和服务端安装 nfs-common软件包。
CIFS:在windows下使用,类似与samba,samab客户端须在客户端安装。
客户端其实和服务端一样,服务端既可以做服务端也可以做客户端,都需要fuse,检查fuse模块是否被加载:
dmesg | grep -i fuse
手动挂载卷
在命令行指定的存储挂载服务器是用来获取gluster的卷配置文件的,随后客户端会直接和配置文件中提到的服务器进行通讯。所以只要是卷中的服务器都可以挂载。
挂载test-volume卷到/mnt目录:
mount -t glusterfs GlusterFS-Server1:/test-volume /mnt
如图:
在客户端的/mnt目录建一批测试文件:
cd /mnt
touch test{1,2,3,4,5,6,7,8,9}
如图:
然后观察存储服务端文件的分布情况 因为我挂载的是分布式卷,文件在卷中是随机存放的,所以可以看到是无规律的。
来源:oschina
链接:https://my.oschina.net/u/123777/blog/69898