Ceph 15.2 (Octopus): Running the object storage daemon (OSD) on a Raspberry Pi 4 (bluestore)

Introduction

This is a continuation of the radosgw post I made earlier in the year. The deal here is I created the cluster with x86 nodes for OSDs and I would like to be able to add a pi4 in the mix.

Disclaimer

I am only sharing what worked for me. I am assuming you know what you are doing and that you have backups.

What you will need

  • Raspberry Pi 4 (I have the 4GB variant)
  • An existing cluster
  • Have your ceph.conf config set up at /etc/ceph like you did for the other nodes

Preparation

Detailed steps are in the previous article. Please refer to that. For summary, it boils down to the ff. steps:

  1. Update the firmware and kernel on the Pi
  2. Use the 64-bit kernel
  3. Installing Docker

Running the OSD container

I use bluestore in this example. I activated the actual disk (lvm prepare) on another computer and then plugged it into the pi. I have prepared a disk before using a docker image on the pi, but that proved to be more frustrating than just using a normal PC or even VM.

$ docker run -d --net=host --restart=always --privileged=true --pid=host -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph/ -v /dev/:/dev/ -v /run/udev/:/run/udev/ -e OSD_DEVICE=/dev/disk/by-id/ata-TOSHIBA_XXXXXXX_XXXXX -e OSD_TYPE=disk -e OSD_BLUESTORE=1 -e OSD_ID=0 ceph/daemon:v5.0.8-stable-5.0-octopus-centos-8-aarch64 osd_ceph_volume_activate

Verify

The docker ps command should show the OSD running. If it stopped and failed, try docker ps -a

$ docker ps
CONTAINER ID     IMAGE                                                     COMMAND                  CREATED       STATUS ...
<CONTAINER ID>   ceph/daemon:v5.0.11-stable-5.0-octopus-centos-8-aarch64   "/opt/ceph-container…"   6 days ago    Up 6 days 

Trouble? Try checking the logs

$ docker logs -f <CONTAINER ID>
Formerly on github pages
Built with Hugo
Theme Stack designed by Jimmy