安装环境
Fedora 22和以上,这里用23
不使用自动化安装Puppet-Gluster+Vagrant,贵在理解每个组件。
前提:
各种相关文件:http://download.gluster.org/pub/gluster/glusterfs/LATEST/
术语链接:http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Terminologies/
相关术语:
Trusted Storage Pool:可信存储池。A storage pool is a trusted network of storage servers。当你开启第一台server,存储池由单个服务器组成。
ACLs:允许你赋予不同的权限给user或者group,即使他们不符合原始所属的user和group
brick:基本的存储单元。表现形式为:可信存储池中的server上的导出目录。
Cluster:集群就是多个个有关联的主机集合在一起工作,以一台主机的形式进行工作。
Distributed File System:允许多个客户端同时访问计算机网络上的数据的文件系统。
FUSE:用户空间文件系统。意为替各种传统的Unix系统(比如FreeBSD、OpenBSD、SUN公司的Solaris)加载核心模块,以使没权限的user可以不编辑核心代码而创建自己的核心代码。这是通过在用户空间中运行中的文件系统代码而实现的,而fuse模块只提供一个“桥梁”的实际内核接口。
①
注意:自动生成的配置文件在/var/lib/glusterd,说是防止系统不稳定,减少损失什么的。还说分出一个区给日志文件,这里只是测试使用。就不搞了
②格式化和安装bricks:双节点均做
mkfs.xfs -i size=512 /dev/sdb1
mkdir -p /data/brick1
echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab
mount -a && mount
③安装FS:双节点均做
yum install glusterfs-server
service glusterd start
service glusterd status
glusterd.service - LSB: glusterfs server
Loaded: loaded (/etc/rc.d/init.d/glusterd)
Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago
Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/glusterd.service
├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid
├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost...
└ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...
④配置可信任池
server1做个动作:gluster peer probe server1
server2做个动作:gluster peer probe server1
或者直接用ip也行的。
注意:一旦做了池,只有可信任的成员才能感知(或者探测)新的servers进来了池。
A new server cannot probe the pool, it must be probed from the pool?有点难以理解,一新的server必须被这个池探测之后才能探测这个池?
⑤设置volume
server1和2均做:mkdir /data/brick1/gv0
选择任意其中一个server做:
gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0
gluster volume start gv0
确认卷的开启状态:gluster volume info
如果报错:/var/log/glusterfs on one or both of the servers -usually in etc-glusterfs-glusterd.vol.log
⑥测试卷
使用其中一个server来挂载volume,准备个客户端client来挂载它吧。客户端还是需要做些做动作的:
mount -t glusterfs server1:/gv0 /mnt
for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done
检查挂载点:
ls -lA /mnt | wc -l
理论会看到文件x
接下来检查每个server的挂载点:
ls -lA /data/brick1/gv0
没有副本,而是文件平均散落在每个server