Enhance Software-Defined-Storage on Arm Servers

About this project

In the storage area, the cost of all-flash storage (SSD/NVME) is decreasing gradually, and the performance is much better than traditional HDD disk. We can see that the all-flash solution is becoming the industry trend, and all-flash based high-performance solutions are required by the market.

To provide competitive high performance all-flash storage solutions with Arm servers, there are still some big gaps we need to resolve together in the Arm server ecosystem (compared to x86). In this area, x86 has big advantages with long term investment and contribution by Intel in projects like: the next-gen Ceph solution (Crimson[1]), the ISA-L storage acceleration library[2], the DPDK[3]/SPDK[4]/PMDK[5] development kits, the DAOS[6] storage solution for HPC. But for Arm servers, we still have a lot to improve. Ceph is only functionally working on ARM64, but performance is not optimized yet (e.g, multi-core performance tuning). There are no official ARM64 releases yet for Lustre[7] and BeeGFS[8]. Besides, the ARM64 support in ISA-L is not complete either (there are some assembly optimizations specific for x86). Linaro and its members have already done some work for Ceph, Lustre, SPDK, ISA-L, etc, it can be better to have some holistic view and collaboration with a separate project to improve SDS on Arm servers.

[1] https://docs.ceph.com/en/latest/dev/crimson/crimson/
[2] https://github.com/intel/isa-l
[3] https://www.dpdk.org/
[4] https://spdk.io/
[5] https://pmem.io/pmdk/
[6] https://daos-stack.github.io/
[7] https://www.lustre.org/
[8] https://www.beegfs.io/

Goals/Objectives

The goal is to remove the gaps with x86 by collaborating together in the Arm server ecosystem, so that we can provide competitive and leading storage solutions with Arm servers.

Deliverables

a) Participate in the upstream communities of Ceph/Lustre/Rook/Mayastor/etc for ARM64 support, setup CI testing on Arm servers, and drive the official ARM64 releases;

b) Performance optimizations by leveraging key ARM64 architecture features (storage-related benchmark testing can be done for the profiling);

c) Drive community promotion by members/partners together for storage solutions on Arm servers to help customer adoptions;

Out of scope

Vendor hardware-specific optimizations should be handled by the members themselves.


Get Involved

Meetings & Calendar

This calendar is displayed using UTC timezone with no DST offsets.

Meeting Notes


Plan of Record

TODO

Health Checks

TODO

Backlog

The following items are on the project backlog but not currently planned. If you are interested in contributing to any of these items, please state your intention on the project's mailing list (found above

Key Summary T Assignee Status Resolution
Loading...
Refresh


Code

(List of project git repos)

Documentation

Page Owners:  Kevin Zhao

The Enhance Software-Defined-Storage on Arm Servers project is hosted inside the Linaro LDCG segment group. The project involves work within distributing storage frameworks that broadly empower the storage ecosystem on Arm64 architecture. The effort involves simple enablement to CI verification to optimized efforts to maximize performance.

Scope

There are quite a lot of storage frameworks in data center areas. The generalized software-defined storage including: distribute storage framework, accelerator libraries, and distribute databases.  In this project, our target is to enable and enrich the storage ecosystem, so that the generalized software-defined storage is definitely inside this scope. Enablement/CI/Function validation is the first phase of the storage project. On top of phase 1, phase 2 will be targeting to optimization the frameworks on Arm64 to boost the better performance comparison with X86. More accelerators like SPDK, PMDK, etc will be involved and leveraged to satisfy the needs. We will work with LDCG members to deliver more POC features and enable more storage project official support on Arm64.

Besides, a storage ecosystem landscape will be shown and maintained inside a website. All current storage project support/CI/optimization status will be collected and shown to open source upstream, beneficial to the Arm64 storage ecosystem. Currently, all the status have tracked at the WIP LINK Google sheet for storage Landscape.

Some of the key components have been identified on top of the TO-DO list to be implemented first. See section "Storage Framework" as below.

Storage Components

Storage Framework

  • Ceph
  • Lustre
  • Longhorn
  • Mayastor
  • Rook

Accelerator Libraries

  • Pmem/PMDK(persist memory programing)
  • SPDK
  • ISA-L

Recent & Notable PRs / RFC

Storage landscape: Ecosystem Landscape for Distribute Storage on Arm64
Rook: Add initial Arm64 CI: ci: add arm64 runner by leseb · Pull Request #7946 · rook/rook 

Ceph:common/crc32c_aarch64: fix crc32c unittest failed on aarch64

ToC

Page Tree


Linaro Ltd.