加入一台服务器到可信任存储池
命令:gluster peer probe server-name
在GlusterFS-Server1上加入两台服务器到存储池中,在GlusterFS-Server1上不需要设置加入自己,只需要设置要加入进来的服务器。在加入进来的服务器上会看到GlusterFS-Server1的。
1 | gluster peer probe GlusterFS-Server2 |
2 | gluster peer probe GlusterFS-Server3 |
检查加入可信任存储池中的服务器状态
命令:gluster peer status
1 | gluster peer status |
如下图:
从存储池中移除一台服务器
命令:gluster peer detach server
1 | 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等目录。
1 | gluster volume create test -volume GlusterFS-Server1:/opt/Server1 GlusterFS-Server2:/opt/Server2 GlusterFS-Server3:/opt/Server3 |
如图:
查看创建的卷的信息
命令:gluster volume info
1 | gluster volume info |
如图:可以看到在GlusterFS-Server2/GlusterFS-Server3中可以看到相同的信息
在创建完volume之后,就该启动创建的卷了:
启动volumes
命令:gluster volume start volume-name
也可以在卷中的其他存储机器上启动卷,我们在GlusterFS-Server3上启动test-volume
1 | gluster volume start test -volume |
如图:
设置glusterfs客户端 访问数据
glusterfs提供了三种方式访问存储服务器的数据:
Gluster Native Client:这种方式提供了高并发、高性能、高传输速率的方式。
NFS:可以使用NFS V3版本访问数据,你需要在客户端和服务端安装 nfs-common软件包。
CIFS:在windows下使用,类似与samba,samab客户端须在客户端安装。
客户端其实和服务端一样,服务端既可以做服务端也可以做客户端,都需要fuse,检查fuse模块是否被加载:
1 | dmesg | grep -i fuse |
手动挂载卷
在命令行指定的存储挂载服务器是用来获取gluster的卷配置文件的,随后客户端会直接和配置文件中提到的服务器进行通讯。所以只要是卷中的服务器都可以挂载。
挂载test-volume卷到/mnt目录:
1 | mount -t glusterfs GlusterFS-Server1:/ test -volume /mnt |
如图:
在客户端的/mnt目录建一批测试文件:
1 | cd /mnt |
2 | touch test {1,2,3,4,5,6,7,8,9} |
如图:
然后观察存储服务端文件的分布情况 因为我挂载的是分布式卷,文件在卷中是随机存放的,所以可以看到是无规律的。