Ceph Reef All In One Deployment

Photo by NASA on Unsplash

Ceph Reef All In One Deployment

In this article I will show you how to deploy Ceph all-in-one deployment using Cephadm. What all-in-one means is that all Ceph components will be deployed on a single node, this is suitable for local testing. I use Cephadm to perform automatic deployment and will deploy the Ceph components in containers and systemd.

So, let's get started…

Environment

Hostnameat-ceph-aio
Operating SystemUbuntu 22.04 (Jammy)
vCPU8
Memory12 GB
Disk 140 GB
Disk 220 GB
Disk 320 GB
DIsk 420 GB
Internal Network10.10.11.0/24
Internal IP Address10.10.11.21

Ceph Deployment

  1. Update package
apt-get update
  1. Install requirement packages
apt-get install python3 docker.io chrony lvm2
  1. Install cephadm
curl --silent --remote-name --location https://download.ceph.com/rpm-18.2.4/el9/noarch/cephadm
chmod +x cephadm
./cephadm add-repo --release reef
./cephadm install
  1. Bootstrap cluster
cephadm bootstrap --mon-ip 10.10.11.21 --single-host-defaults --initial-dashboard-user admin --initial-dashboard-password admin
  1. Install ceph-common
cephadm install ceph-common
  1. Add available storage to cluster
ceph orch device ls
ceph orch apply osd --all-available-devices

Operational Test

  1. Ceph verification
ceph -s
ceph osd tree
ceph orch ps

  1. Operational test
# pools
ceph osd pool create pool-test 128
ceph osd lspools
rbd pool init pool-test

# object
echo "GG BANG" > gg.txt
rados put object-gg gg.txt --pool=pool-test
rm gg.txt
rados ls --pool=pool-test
rados get object-gg gg.txt --pool=pool-test

# verify
cat gg.txt

References