Ceph 早期采用者:南特大学
如果您错过了 Loic 关于最近访问南特大学的记录,我们在此复制他的博客。看到社区采用 Ceph 并取得伟大的成就总是很棒的,即使他们没有 Inktank 支持。继续阅读,了解 Ceph 早期采用者的精彩见解。
南特大学 (Université de Nantes) 早在 2012 年初就开始使用 Ceph 进行备份,甚至在 Bobtail 发布或 Inktank 成立之前。在 Yann Dupont 的领导下,IRTS 部门创建了一个包含十二个节点的 Ceph 集群来存储备份。它包含由 35,000 名学生和 4,500 名员工生成的数据,总计 1 亿个 inode 和 25TB 的数据(40TB 总容量)。硬件分布在三个地理位置(卢瓦尔河、尚特雷里和隆巴德里),Ceph 被配置为即使其中一个位置发生故障也能透明地工作。备份池有两个副本,crushmap 指示每个副本必须存储在不同的地理位置。例如,当隆巴德里无法访问时(本周由于计划中的断电与意外的 UPS 故障相结合),Ceph 会从位于卢瓦尔河和尚特雷里的副本提供对象。
虽然最近向 Ceph 集群添加了三个 Dell R720xd,并使用 SSD 磁盘来存储日志,但大部分都重用了现有硬件。然而,这些站点通过黑色光纤连接,确保了稳定的低延迟(即,两个 Ceph 节点相距 13 公里时的 RTT 为 0.44 毫秒)。
作为早期采用者充满挑战,而且团队规模较小,容错率很低:Ceph 的维护工作不得超过收益,并且不能优先于用户请求的持续流程,例如确保在线课程材料的可用性或照顾分布在 20 个地理位置的员工的人力资源部门的需求。
三个 Ceph 集群共存于相同的硬件上:其中一个专门用于备份并运行 Cuttlefish 0.61.4,另一个运行最新的开发版本 0.65 以试验 Owncloud(众多实验项目之一),最后一个正在为 OpenStack 块存储做准备。对各种 Linux 内核和文件系统的组合(以及 2012 年的一些错误报告)的实验发现,linux-3.2 和 XFS 是一个稳定的组合。专用于备份的 Ceph 集群已从 Bobtail 升级到 Cuttlefish,在过去一年中没有数据丢失或停机。更具实验性的集群的维护优先级低于其他任务。运行它们有助于定义下一个稳定的安装版本。例如,其中一台新的 Dell 720xd 正在运行 linux-3.10,它将显示内核虚拟内存死锁是否已修复,该死锁有时会发生在任何 linux > 3.2 在重度恢复期间。
擦除编码,这是我的日常工作,也被讨论了,尽管它在当前用例中只能节省 25% 的磁盘空间。随着更多地理位置的添加(一年后计划再添加一个),它将更具吸引力。当前挑战主要是找到时间来正确诊断错误并将其报告给 Linux 内核、XFS 或 Ceph。有趣的部分是观看 Ceph 即使在地理位置不可用时也能工作,并知道上传到 Owncloud 的文件存储在 Cephfs 的实验版本中。
南特大学 ¶
南特是布列塔尼的一个美丽的城镇,那里有许多大学和学校。Yann Dupont 是 IRTS 部门的负责人(该部门是 DSIN 的一部分,即南特大学信息系统和数字方向),负责所有大学甚至附近城镇(圣纳泽尔……)的 IT 工作。他与 Jacky Carimalo、Yoann Juet、Damiano Albani、Thomas Boudard、Arnaud Abélard、Benjamin Mazinghien 以及其他人 一起提供存储、开发、系统管理、安全、监控等,但桌面由另一个部门处理。该基础设施每年被 35,000 名学生和 4,500 名员工使用。他们提供广泛的服务,从备份到提供在线课程。
在法国,大多数大学都由国家资助,没有人需要担心为了获得良好的教育而省钱。因此,他们的预算很紧张,购买新硬件并不容易:如果机器几年前购买,在达到其计划寿命之前就不能更换。然而,南特大学获得了运营 1992 年城市安装的黑色光纤的许可。
架构 ¶
三个机器室(隆巴德里、卢瓦尔河和尚特雷里)通过黑色光纤连接,并使用 Alcatel Lucent 设备以 10Gp/s 连接。黑色光纤专用于存储,并且可以提供更多的带宽。但所需的网络设备目前太昂贵了(尽管计划在 2014 年再添加 10GB)。三个站点之间的距离和往返时间如下
卢瓦尔河 > 隆巴德里(4 公里):0.275 毫秒 RTT 卢瓦尔河 > 尚特雷里(13 公里):0.440 毫秒 RTT 隆巴德里 > 尚特雷里(10.5 公里):0.335 毫秒 RTT
RTT 不仅包括字节通过光纤传输的时间,还包括机器室内设备的添加时间。例如,隆巴德里内部设备添加的时间为 0.19 毫秒。
MON 和 MDS 不托管在专用硬件上。它们在 LXC 容器中运行,与其他与 Ceph 无关的 LXC 容器一起。每个站点和每个集群都有一个 MON 和一个 MDS。
每个站点有四个物理机器专门用于 OSD。除最近添加的三个 Dell R720xd 之外,所有节点都共享相同的配置。一个 Dell M610 刀片服务器配备 40GB 内存,连接到一个专用于它的 fiber channel transtec SAN,其中包含 16 个 2TB 磁盘,并有两个内部 SAS 磁盘用于 Ceph 日志。Dell R720xd 具有两个 RAID0 SSD 专用于 Ceph 日志、12 个 3TB SATA 磁盘和 64GB 内存。所有机器都有两个 10GB 端口,但只有一个连接并用于所有目的。
在每个机器中,物理磁盘使用 RAID5 分组以最大程度地减少故障的可能性。例如,12 个磁盘分为 3 个 RAID5 磁盘,每个磁盘包含 4 个磁盘。操作系统仅看到三个磁盘。这与 Ceph 提供的服务是冗余的,如果必须购买新硬件,建议不要购买 RAID5 控制器以降低成本。但是,硬件已经可用,并且使用 RAID5 可以降低 Ceph 故障的可能性。它可以节省一年中的几个小时的工作。
操作系统是 Debian Wheezy,运行 3.2 Linux 内核和 XFS,Ceph 包来自 Inktank 提供的存储库。OSD 在 LXC 容器中运行:每个磁盘(即,磁盘的 RAID5 组)一个,用于给定的 Ceph 集群。
machine +--------------------------------------------------+ | disk one ( 4 physical disks RAID5 ) | | +----------------------------------------------+ | | | +------------LXC-+ +--------------LXC-+ | | | | | OSD 1 | | OSD 1 | ... | | | | | cluster backup | | cluster owncloud | | | | | +----------------+ +------------------+ | | | +----------------------------------------------+ | | disk two ( 4 physical disks RAID5 ) | | +----------------------------------------------+ | | | +------------LXC-+ +--------------LXC-+ | | | | | OSD 2 | | OSD 2 | ... | | | | | cluster backup | | cluster owncloud | | | | | +----------------+ +------------------+ | | | +----------------------------------------------+ | | .... | +----------------------------- 10GB ether ---------+
对于备份集群,crushmap 显示三个数据中心(隆巴德里、尚特雷里和卢瓦尔河),每个数据中心包含一个房间。机架实际上是物理机器,节点是 LXC 容器,每个 LXC 容器包含一个 OSD。
datacenter lombarderie { ... item lombarderie-ltc weight 22.500 }
room lombarderie-ltc { ... item kavalan weight 9.000 item braeval weight 4.500 item inchmurrin weight 9.000 }
node inchmurrin { ... item ceph-osd-lmb-A-4-1.u107 weight 3.000 item ceph-osd-lmb-A-4-2.u107 weight 3.000 item ceph-osd-lmb-A-4-3.u107 weight 3.000 }
lxc ceph-osd-lmb-A-4-1.u107 { ... item osd.38 weight 3.000 }
备份集群 LXC 中安装的 Ceph 版本是 Cuttlefish 0.61.4,owncloud 集群中安装的 Ceph 版本是 0.65。
当位于 Ceph 集群外部的 LXC 容器想要访问 Ceph 集群时,它无法完全在容器内完成,因为内核 RBD 模块尚不支持网络内核命名空间。相反,它安装在主机上并定义为 LXC 挂载点。
副本和擦除编码 ¶
当前的设置对备份使用大小为 2 的池,并使用 crush 规则强制副本永远不要位于同一数据中心。
rule rbd { ... step chooseleaf firstn 0 type datacenter ... }
由于 Ceph 使用副本,1TB 可用空间需要 2TB 的物理存储空间。如果使用擦除编码代替副本,1TB 可用空间只需要 1.5TB 的物理存储空间。如果三个站点中的一个发生故障,其他两个站点必须保存至少 50% 的重建所需的信息,即每个站点 0.5TB,总共 1.5TB。例如,如果使用 reed-solomon,其中 2 个数据块 + 1 个奇偶校验块,并且 crush map 确保每个站点存储 3 个块中的 1 个块,则 1TB 被编码为 1.5TB,从而节省 25%。随着更多站点的添加,节省的成本会增加。
漏洞挖掘 ¶
通常,当发现诸如 XFS 损坏之类的错误时,会对其进行诊断并报告给上游。最近的一个与内核 3.4 较慢有关,因为在与 XFS 一起使用时分配工作队列较慢。
此博客从 Loic Dachary 的博客 复制而来。如果您有想在 Ceph.com 上展示的文章,请随时发送电子邮件给我们的 社区团队。我们喜欢原创内容、技术专题或像您在这里看到的那样复制内容。
scuttlemonkey 结束



