聚集群办公环境

scuttlemonkey

Ceph 社区成员 Loic Dachary 本周发布了一篇有趣的帖子,介绍了如何使用办公室中已有的硬件,即您的台式机,来构建一个集群。事实证明,这是一个相当简单的设置,并且可以处理随机机器为重启而消失的情况。请看一看。

2013年7月1日,Heinlein 使用七位愿意托管 Ceph 节点并共享部分磁盘的员工的台式机设置了一个 Ceph “Cuttlefish”(现已升级到版本 0.61.8)集群。这些节点部分通过 1Gb/s 链路连接,有些只有 100Mb/s。该集群支持一个 4TB Ceph 文件系统

ceph-office$ df -h . 文件系统 大小 已用 可用 使用率 挂载点 x.x.x.x,y.y.y.y,z.z.z.z:/ 4,0T 2,0T 2,1T 49% /mnt/ceph-office

该文件系统用作临时空间来交换文件。在典型的一天中,至少有一台台式机被关闭和重新启动。自安装以来,该集群一直在自我修复,唯一的例外是放置组卡住并使用手动 pg 修复 解决。

用法

愿意使用 ceph 文件系统的每个员工可以将以下行添加到 /etc/fstab

x.x.x.x,y.y.y.y,z.z.z.z:/ /mnt/ceph-office ceph noatime,dirstat,name=office,secret=SECRET_IN_BASE64 0 0

运行 mkdir /mnt/ceph-office ; mount /mnt/ceph-office 并开始传输/丢弃文件以在公司内部交换它们。有些人用它来存储临时 git 仓库。

ceph-deploy

节点的安装使用 ceph-deploy 并遵循文档说明完成。有三个监控器,其中两个在台式机上运行,一个在专门用于 Ceph 的虚拟机中。同一个虚拟机托管活动 MDS,另一个位于一台台式机上。截至今天,ceph -s 显示

$ ceph -s health HEALTH_OK monmap e7: 3 mons at {mon01=192.168.100.x:6789/0, mon02=192.168.100.y:6789/0, mon03=192.168.100.z:6789/0}, election epoch 124, quorum 0,1,2 mon01,mon02,mon03 osdmap e2497: 7 osds: 7 up, 7 in pgmap v329003: 464 pgs: 464 active+clean; 124 GB data, 1934 GB used, 2102 GB / 4059 GB avail; 614B/s wr, 0op/s mdsmap e31488: 1/1/1 up {0=192.168.100.a=up:active}, 1 up:standby

部署 OSD

在大多数机器上,磁盘分区专用于 ceph,并用于存储日志和数据。在其他机器上,创建了一个 LVM 逻辑卷用于 ceph。在将其挂载到 /mnt/lvm/ceph 后,ceph-deploy 被用来将其指定为用于 OSD 的目录。

/var/lib/ceph/osd$ ls -l total 0 lrwxrwxrwx 1 root root 13 Jul 4 11:21 ceph-1 -> /mnt/lvm/ceph/

虽然逻辑卷可以用作常规磁盘或分区,但这需要使用 kpartx 等工具,没有实际的好处。曾尝试使用环回设备,但由于某种原因,导致了较高的 IOwait,因此放弃了这种选择。
所有节点都使用 XFS 和 SATA 磁盘。

crush map

这些机器位于建筑物不同的楼层和不同的办公室。crush map 配置为反映这一点,但两个副本被强制使用两个不同的办公室,无论楼层如何。ceph osd tree 如下所示

# id weight type name up/down reweight -1 3.08 root default -12 0.35 floor three -7 0.21 office 304 -5 0.21 host node01 3 0.21 osd.3 up 1 -8 0.06999 office 305 -6 0.06999 host node02 4 0.06999 osd.4 up 1 -9 0.06999 office 307 -2 0.06999 host node03 7 0.06999 osd.7 up 1 -13 2.73 floor four -10 0.49 office 403 -3 0.24 host node04 1 0.24 osd.1 up 1 -14 0.25 host node05 5 0.25 osd.5 up 1 -11 0.24 office 404 -4 0.24 host node06 0 0.24 osd.0 up 1 -16 2 office 405 -15 2 host node07 6 2 osd.6 up 1

crush map 的相关行是

rule data { ruleset 0 type replicated min_size 1 max_size 10 step take default step chooseleaf firstn 0 type office step emit } rule metadata { ruleset 1 type replicated min_size 1 max_size 10 step take default step chooseleaf firstn 0 type office step emit }

最初由 Loic Dachary 发布。

看起来是启动分布式存储的好方法!当然,一旦您决定获取专用硬件来处理此问题,将这些资源添加并逐步将您的数据从台式机基础设施迁移将相对容易。这只是 Ceph 具有惊人的灵活性和强大功能,可以满足几乎任何用例的又一个例子。

如果您有像这样有趣且令人兴奋的项目,我们很乐意了解。请将您的笔记/想法/草稿发送到 社区团队,以便我们与社区的其余成员分享您的精彩。

scuttlemonkey 结束