目的
本文档旨在提供首次安装 GlusterFS 的逐步指引。在这个教程内,我们会假设你采用 CentOS(其它发行版本及方法已收录在下列的新用户指南)。我们亦不会详细解释每个步骤,此指南是要协助你尽快开始运作。当你按这些步骤完成 GlusterFS 的部署后,我们推荐你阅读 GlusterFS Admin Guide 学习如何管理 GlusterFS 及如何选择迎合你需要的扇区类型。有关下列步骤的深入解释,请阅读 GlusterFS New User Guide。我们盼望你能在最短时间内成功。
如果你需要更详细的指引,包括不同的安装方法(虚拟计算机、ECS2 及实体硬件)和针对不同发行版本的说明,请参阅 GlusterFS 的入门指南。
1. 采用「存储 SIG」的 Yum 软件库
如果你要采用「存储 SIG」的 RPM,你必须安装 centos-release-gluster RPM,因它提供了所需的 YUM 软件库档。该 RPM 已收录于 CentOS Extras 内。
样例(针对 CentOS 7/x86_64):
# yum install centos-release-gluster
Gluster 提供了不同发行版本:Long Term Maintenance(LTM 长期维护)及 Short Term Maintenance(STM 短期维护)。CentOS Extras 收录了数个 centos-release-gluster 组件,而安装 centos-release-gluster 时缺省会选择 LTM 发行版本。有关不同 Gluster 发行版本的详细数据已收录于 发行时间表。
2. 第一步 —— 准备最少两个节点
* 名为 server1 及 server2 的两个 CentOS 7 服务器 * 有效的网络连接 * 最少两个虚拟碟盘,一个供操作系统用(sda),一个作为 GlusterFS 存储器(sdb)。这个做法仿效现实世界的部署,把 GlusterFS 存储器从操作系统中分割出来。
注:GlusterFS 在 /var/lib/glusterd 存储它动态创建出来的配置文件,要是 GlusterFS 在任何时候不能写入这些文件,小则导致你的系统出现反常现象,大则导致系统完全瘫痪。因此我们推荐为 /var/log 等目录创建独立分区,确保以上情况不会出现。
3. 第二步 —— 格式化及挂载砖块
(在两个节点): 注:这些样例假设砖块将会位于 /dev/sdb1。
# mkfs.xfs -i size=512 /dev/sdb1 # mkdir -p /bricks/brick1 # vi /etc/fstab
加入以下内容:
/dev/sdb1 /bricks/brick1 xfs defaults 1 2
存储文件及离开
# mount -a && mount
你应该看见 sdb1 挂载在 /bricks/brick1
注:在 CentOS 6,你必须安装 xfsprogs 组件才能格式化 XFS 文件系统
# yum install xfsprogs
4. 第三步 —— 安装 GlusterFS
(在两个节点) 安装所需软件:
# yum install glusterfs-server
引导管理 GlusterFS 的守护程序(此样例采用 CentOS 7,在 CentOS 6,service 会有不同的输出):
# systemctl enable glusterd ln -s '/usr/lib/systemd/system/glusterd.service' '/etc/systemd/system/multi-user.target.wants/glusterd.service' # systemctl start glusterd # systemctl status glusterd glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled) Active: active (running) since Fri 2015-11-13 10:16:09 CET; 3s ago Process: 25972 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS) Main PID: 25973 (glusterd) CGroup: /system.slice/glusterd.service └─25973 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
存储 SIG 亦为其它生态环境(例如 Samba)提供 Gluster 组件。组件的详情已记录在此处
5. 第四步 —— 设置 iptables
你可以通过 iptables 规则执行 gluster,但你须决定如何设置这些规则。根据缺省值,glusterd 将会在 tcp/24007 上聆听,但单单在 gluster 节点上打开该端口并不足够。 每次你加入一台新的机器,它将会打开一个新的端口(你可以通过 gluster volume status 来查阅)
视乎你的设计,利用专用的网络卡来传输 gluster/存储器的数据是较好的选择,因此你可利用 netfilter 方案(CentOS 是 /etc/sysconfig/iptables 及 firewalld/firewall-cmd)来「信任」某网络卡/子网/gluster 节点。
设置 iptables 的方法已超越此文档的范畴,但你可以在 IPTables 的专用 wiki 页面读入有用的信息。
6. 第五步 —— 设置互信组别
在 server1 上
# gluster peer probe server2
注:采用主机名称时,首台服务器必须获另一台服务器侦察才能设置主机名称。
在 server2 上
# gluster peer probe server1
注:设立组别后,只有获信任的成员才能侦察新服务器加进组别。一台新的服务器不能侦察组别,它必须由组别侦察出来。
7. 第六步 —— 设立 GlusterFS 扇区
在 server1 及 server2 上:
# mkdir /bricks/brick1/gv0
在任何一台服务器上:
# gluster volume create gv0 replica 2 server1:/bricks/brick1/gv0 server2:/bricks/brick1/gv0 # gluster volume start gv0
确定扇区汇报 Started(已引导):
# gluster volume info
注:要是扇区未能引导,你可在其中一台或两台服务器的 /var/log/glusterfs 目录下的日志档找寻有关错误的线索 —— 信息多数记录在 etc-glusterfs-glusterd.vol.log
8. 第七步 —— 测试 GlusterFS 扇区
在此步骤,我们将会利用其中一台服务器挂载扇区。一般来说,你应该在另一台计算机,称为「客端」,进行此动作。但由于这个步骤涉及在客端计算机上安装额外的组件,因此服务器为我们的首轮测试提供了一个方便的测试点。
# 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
你应该看见 100 个文件。 接著,检查每台服务器的 GlusterFS 挂载点:
# ls -lA /bricks/brick1/gv0
采用上述的测试方法,你应该在每台服务器上看见 100 个文件。在一个不复制、分布式的扇区上(不会在此详述),你应该在每台机器看见约 50 个文件。
总结
就这样了,这大概是最快速的方法。恳请你阅读 Admin Guide 及 New User Guide 来取得更深入的理解,但这里已经为测试提供了一个很好的起点。
此页的灵感源自 Gluster 社群 的 快速入门指南
详情请参阅 Gluster 社群的文档主页。
Translation of revision 28