ARM分布式存储架构解决方案和x86架构的融合存储解决方案

本文背景

众所周知,全球数据正以一种爆炸式的方式急速增长,高昂的设备扩容和快速上升的
设备能源消耗导致数据中心的部署和运营成本直线上升。低成本、低功耗、高密度已
成为计算和存储的共性需求,业界有越来越多的企业开始设计和部署 ARM 架构的服
务器。

有别于相对高成本的 ARM 服务器芯片(如 Qualcomm, Cavium 等)用于 Cloud
computing 的部署,WDLabs 在 2016 年上半年搭建了 504 个 Ceph OSD 节点的 ARM
测试储存池, 该方案采用了 504 片低成本的 ARM 芯片作为微服务器(Microserver)节
点。4 年前,集成 ARM 芯片于硬盘, Seagate 首推了以太网硬盘,并开放了以
Kinetic 命名的存储 API,作为其软件定义存储的解决方案。

目前 Ceph 是软件定义存储中最有影响力的开源项目之一,也是唯一一种可以同时提
供块,文件和对象存储的开源解决方案。本文将重点介绍在 Celluster 公司提供的
1U12 上部署 Ceph 集群,并初步探讨在 ARM 分布式架构上的 Ceph 性能分析。

方案介绍

1U12 标准机框集成了 12 个 ARM 微服务器(主芯片采用最新量产的低成本低功耗
Marvell Armada3700/3720 芯片, 主频 1.0Ghz 的双核 A53,功耗低至 1.8W ),每个微
服务器搭载一块硬盘,其两个 1G/2.5G 网口分别连接至两个以太网交换机。框内同时留
有 Com Express 接口,可选配一块 TDP 不高于 45w 的 x86 模块。

该方案主要面向 throughput 和 capacity 成本优化的存储应用场景。

1U12 实景图

1U12 系统配置

Test Bed Details

Ceph Tier

OSD

MON/TEST CLIENT

Module

ARM MicroServer *12

x86 COM Express module *1

CPU

ARM dual A53 @1.0GHz

Intel(R) Pentium(R) CPU D1517 @ 1.60GHz
(Optional) up to TDP 45W

Memory

1GB 800 MHz DDR4 (Optional up to
2GB/4GB)

16GB 2400 MHz DDR4

Network

2.5 GbE or 1 GbE

10 GbE

Storage

WD 2TB SATA (data + journal)
4/8/16GB on-board eMMC (Boot)

Samsung 256GB M.2 SSD (Boot)

1U12 CEPH 软件配置

Ceph Version: Jewel 10.2.3
(因 Jewel 10.2.3 之后的版本 ARM Cluster 与 x86 Client 之间交互有如下已知问题
http://tracker.ceph.com/issues/19705#change-99497,最新的 Luminous 12.2.0 正在解
决,所以本文选用 Jewel 10.2.3 搭建测试集群。 )

Deploy tool: ceph-deploy 1.5.35(缺省配置)

ceph.conf

cephadmin@1U12B:~$ cat /etc/ceph/ceph.conf

cephadmin@node1:~$ ceph -v
ceph version 10.2.3 (ecc23778eb545d8dd55e2e4735b53cc93f92e65b)

[global]
fsid = 7631be6c-d6ed-453c-87b2-c622304bd313
mon_initial_members = 1U12B
mon_host = 192.168.1.164
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_pool_default_size = 3
osd_pool_default_min_size = 1
public_network = 192.168.1.0/24
cluster_network = 192.168.2.0/24

Network configuration:

Node Name

Ceph Components

public network

cluster network

1u12B

Client/Monitor1/MDS

192.168.1.164

node1

osd.0

192.168.1.216

192.168.2.1

node2

osd.1

192.168.1.116

192.168.2.2

node3

osd.2

192.168.1.168

192.168.2.3

node4

osd.3

192.168.1.217

192.168.2.4

node5

osd.4

192.168.1.117

192.168.2.5

node6

osd.5

192.168.1.169

192.168.2.6

node7

osd.6

192.168.1.219

192.168.2.7

node8

osd.7

192.168.1.119

192.168.2.8

node9

osd.8

192.168.1.170

192.168.2.9

node10

osd.9

192.168.1.220

192.168.2.10

node11

osd.10

192.168.1.118

192.168.2.11

node12

osd.11

192.168.1.166

192.168.2.12

CEPH 集群状态

cephadmin@1U12B:~$ ceph -s
cluster 0e2f70df-d1f6-419c-9686-22a8bef53370

health HEALTH_OK
monmap e1: 1 mons at {1U12B=192.168.1.164:6789/0}

election epoch 3, quorum 0 1U12B
fsmap e4: 1/1/1 up {0=1U12B=up:active}

osdmap e84: 12 osds: 12 up, 12 in
flags sortbitwise

pgmap v4243: 768 pgs, 3 pools, 17328 MB data, 10356 objects
52540 MB used, 22233 GB / 22285 GB avail

768 active+clean

测试一

按照上文配置从 3 节点依次增加到 12 节点,测试 CEPH 集群 RBD 块存储 4M 顺序读写
性能, 并分析测试数据。
存储接口: 使用 CEPH Block Device 接口测试
测试工具: 使用 FIO- 2.1.10(ioengine=rbd, direct=1,bs=4M)测试 CEPH 集群的块
存储的读写带宽

测试二

测试 12 个节点 CEPH 集群的 File System 接口性能,并与 RBD 接口性能进行比较
测试工具: 使用 FIO- 2.1.10(ioengine=libaio, direct=1,bs=4K/4M)测试

Storage Interfaces

4k rand write

4k rand read

4M seq. write

4M seq. read

Block Device(MB/s)

2.0

21.0

166.0

719.4

File System (MB/s)

2.5

19.0

168.2

720.0

小结

  1. 当前测试环境下,从 3 节点到 12 节点,随着节点数增加,集群的 IO 性能几乎成线
    性增长,每增加一个节点 4M 读性能增加 40MB/s,4M 写性能增加 10MB/s

  2. 除了这组测试数据,我们还搭建了另一个 3 节点的集群,微服务器选用 2GB DDR3
    的配置,观察到 4M 的写性能达到 67MB/s,所以估测若选用 2GB DDR 的微服务器
    搭建集群,随着节点数的增加,写性能会有明显提升

  3. 观察 Block Device 接口与 File System 接口的测试结果,两种接口的读写性能几乎一

今后优化思路

  1. 如对写性能的 throughput 有更高要求,可以升级 12 片微服务器模块上现有的 1GB
    DDR 至 2GB,Ceph 实测每个模块 buffer/cache 将从 0.4G 增长到 1.4G,每增加节点
    4M 写性能会提高到 20MB/s,预估整机写性能会有 30%~40%的提升

  2. 目前测试时使用 Ceph Jewel 10.2.3 缺省配置,每个 OSD 的微服务器 CPU 在最高峰
    值压力测试情况下尚有 30%的空闲,留给软件进一步优化的可行性

如对上述文章内容有兴趣或疑问,请联系 service@celluster.com 或者 Tel: +86 13801975493 

Leave a Comment

电子邮件地址不会被公开。