cephadm으로 Ceph 클러스터 구성

Ceph와 OpenStack을 함께 연습할 수 있는 HCI Lab을 만들고 있습니다. 그 첫 단계로 그림과 같은 형태의 환경에 Ceph를 설치해보고자 합니다.

Intro to Ceph는 읽고 시작하기

Ceph 관련 문서들을 보다보면, Ceph만의 기술 용어들이 등장합니다. 시작하기 전에 Intro to Ceph 설명서는 보는게 좋습니다.

기본 용어는 제가 Glossary를 기계번역해 놓았습니다.

cephadm으로 설치

Ceph 클러스터를 구성하는 방법은 크게 보면

  1. cephadm을 이용하는 방법: https://docs.ceph.com/en/latest/install/
  2. ceph-ansible을 이용하는 방법: https://docs.ceph.com/projects/ceph-ansible/en/latest/
  3. 수동으로 설치하는 방법: https://docs.ceph.com/en/latest/install/index_manual/#install-manual
  4. 쿠버네티스 환경의 경우 Rook를 이용하는 방법: https://rook.io/

등이 있는 것 같습니다.

참고: 언급된 것 이외에도 Salt와 cephadm, Juju, Puppet 등을 이용한 방법등도 있습니다.

저는 그 중에 cephadm을 이용한 방법으로 구성해보고자 합니다.

cephadm과 ceph-ansible을 이용한 설치 방법 간의 차이점은 다음 설명서를 참고하세요.

HCI Lab 구조

연습용으로 만들어볼 HCI Lab의 구조는 위의 그림과 같습니다. 입문용이라 간단하게 구성해 봤습니다.

  • 컴퓨팅 자원은 8 vCPU, RAM 32GB로 시작해서 실 사용량에 따라 조정해나갈 생각입니다. Ceph 구성 끝난 후에는 OpenStack을 구성해서 HCI 형태로 구성할 것입니다.
  • 스토리지 디바이스는 1개로도 가능하나, 2개로 시작해 봤습니다.
  • Ceph를 배우는 과정에서는 네트워크 구조를 이해하는 것도 중요해 보입니다. 그래서 3개의 네트워크로 가시적으로 구분했습니다. Ceph용으로 사용하는 부분만 정리했습니다.
  • Linux 배포판은 Rocky Linux 9.4를 사용했습니다.

설치전 준비사항들 확인

우선 기본적인 네트워킹 요소들을 준비하고 확인합니다.

  • 연결 가능한 NTP 서버 주소
  • DNS에 호스트 이름 등록하고, 노드에서 조회 잘 되는지 확인

다음 URL에서 사전 요구사항들을 확인하고 구성합니다.

3개의 노드 준비

제 경우는 vSphere 환경에 가상머신으로 만들었습니다.

사양은 앞서 설명 처럼 구성했고, OS는 Rocky Linux 9.4의 minimal 을 선택해서 설치했습니다.

root 아이디로 접속 환경 설정

첫번째 노드에 root로 접속합니다. Ceph 구성 작업은 모든 노드에서 root 로 로그인해서 구성하게 됩니다. 각 호스트에 root 아이디를 이용해서 ssh 접속을 가능하도록 해줍니다.

vi /etc/ssh/sshd_config
PermitRootLogin yes

sshd_config 파일을 수정한 다음 적용되도록, sshd 를 재시작해줍니다.

systemctl reload sshd

클러스터 구성하는 모든 노드에서 해주어야 합니다.

설치할 버전 확인

다음 URL에서 Ceph의 릴리즈 정보를 확인하고 설치할 버전을 확인합니다.

현재 기준으로 새로 클러스터를 구성한다면 Reef 또는 Quincy 정도가 대상일겁니다. 좀 더 많이 굴러본 버전을 선호하면 Quincy, 새버전을 선호하면 Reef가 될 것 같습니다.
제 경우는 새로 배우는 입장이라 최신 버전인 Reef 18.2.4로 가고자 합니다.

cephadm 유틸리티 설치

앞에서 확인한 버전을 환경 변수 CEPH_RELEASE에 지정해 줍니다.

[root@OpenHCI-01 ~]# CEPH_RELEASE=18.2.4

cephadm 실행 파일을 다운로드 받습니다.

[root@OpenHCI-01 ~]# curl -sLO https://download.ceph.com/rpm-${CEPH_RELEASE}/el9/noarch/cephadm

다운로드 받은 cephadm 실행 파일에 실행 권한을 줍니다.

[root@OpenHCI-01 ~]# chmod +x ./cephadm

cephadm 명령으로 reef 릴리즈 저장소를 추가해 줍니다.

[root@OpenHCI-01 ~]# ./cephadm add-repo --release reef
Writing repo to /etc/yum.repos.d/ceph.repo...
Enabling EPEL...
Completed adding repo.
[root@OpenHCI-01 ~]# 

cephadm 실행 파일을 설치합니다.

[root@OpenHCI-01 ~]# ./cephadm install
Installing packages ['cephadm']...
[root@OpenHCI-01 ~]#

cephadm이 설치된 경로를 확인합니다.

[root@OpenHCI-01 ~]# which cephadm
/sbin/cephadm

Ceph Admin 노드에 Ceph Cluster Monitor 초기화

이제 Admin 노드(첫번째 노드)에 ceph-mon을 초기화해 주어야 합니다. 이 때 어떤 네트워크를 사용할지 결정해야 합니다. 자세한 내용은 다음 설명서를 참고하시면 됩니다.

설명서에 있는 것 처럼 Ceph Mon은 Public Network에 연결되어 있습니다. --mon-ip에 첫번째 노드의 Public Network 주소를 지정해서 실행하면 됩니다.
제 환경은 cluster 네트워크를 분리해서 사용할 것이라 –cluster-network 옵션도 지정했습니다.

[student@OpenHCI-01 ~]$ sudo -i
[root@OpenHCI-01 ~]# cephadm bootstrap --mon-ip 172.16.2.11 --cluster-network 172.16.3.0/24
Creating directory /etc/ceph for ceph.conf
Verifying podman|docker is present...
Verifying lvm2 is present...
Verifying time synchronization is in place...
Unit chronyd.service is enabled and running
Repeating the final host check...
podman (/bin/podman) version 4.9.4 is present
systemctl is present
lvcreate is present
Unit chronyd.service is enabled and running
Host looks OK
Cluster fsid: 17593d3e-4e4d-11ef-90ca-005056b09910
Verifying IP 172.16.2.11 port 3300 ...
Verifying IP 172.16.2.11 port 6789 ...
Mon IP `172.16.2.11` is in CIDR network `172.16.2.0/24`
Mon IP `172.16.2.11` is in CIDR network `172.16.2.0/24`
Pulling container image quay.io/ceph/ceph:v18...
Ceph version: ceph version 18.2.4 (e7ad5345525c7aa95470c26863873b581076945d) reef (stable)
Extracting ceph user uid/gid from container image...
Creating initial keys...
Creating initial monmap...
Creating mon...
Waiting for mon to start...
Waiting for mon...
mon is available
Assimilating anything we can from ceph.conf...
Generating new minimal ceph.conf...
Restarting the monitor...
Setting public_network to 172.16.2.0/24 in mon config section
Setting cluster_network to 172.16.3.0/24
Wrote config to /etc/ceph/ceph.conf
Wrote keyring to /etc/ceph/ceph.client.admin.keyring
Creating mgr...
Verifying port 0.0.0.0:9283 ...
Verifying port 0.0.0.0:8765 ...
Verifying port 0.0.0.0:8443 ...
Waiting for mgr to start...
Waiting for mgr...
mgr not available, waiting (1/15)...
mgr not available, waiting (2/15)...
mgr not available, waiting (3/15)...
mgr not available, waiting (4/15)...
mgr is available
Enabling cephadm module...
Waiting for the mgr to restart...
Waiting for mgr epoch 5...
mgr epoch 5 is available
Setting orchestrator backend to cephadm...
Generating ssh key...
Wrote public SSH key to /etc/ceph/ceph.pub
Adding key to root@localhost authorized_keys...
Adding host OpenHCI-01...
Deploying mon service with default placement...
Deploying mgr service with default placement...
Deploying crash service with default placement...
Deploying ceph-exporter service with default placement...
Deploying prometheus service with default placement...
Deploying grafana service with default placement...
Deploying node-exporter service with default placement...
Deploying alertmanager service with default placement...
Enabling the dashboard module...
Waiting for the mgr to restart...
Waiting for mgr epoch 9...
mgr epoch 9 is available
Generating a dashboard self-signed certificate...
Creating initial admin user...
Fetching dashboard port number...
Ceph Dashboard is now available at:

             URL: https://OpenHCI-01.098.co.kr:8443/
            User: admin
        Password: 378dvus5ub

Enabling client.admin keyring and conf on hosts with "admin" label
Saving cluster configuration to /var/lib/ceph/17593d3e-4e4d-11ef-90ca-005056b09910/config directory
Enabling autotune for osd_memory_target
You can access the Ceph CLI as following in case of multi-cluster or non-default config:

        sudo /sbin/cephadm shell --fsid 17593d3e-4e4d-11ef-90ca-005056b09910 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring

Or, if you are only running a single cluster on this host:

        sudo /sbin/cephadm shell

Please consider enabling telemetry to help improve Ceph:

        ceph telemetry on

For more information see:

        https://docs.ceph.com/en/latest/mgr/telemetry/

Bootstrap complete.
[root@OpenHCI-01 ~]#

제 경우 2분 정도 걸린 것 같습니다.
( 시스템 환경 따라 차이는 있을 겁니다. 제 연습 장비가 워낙 구형이라서요. ^^ )

표시된 내용보면 여러가지 작업이 이루어졌고, 몇가지 기본적인 정보들 알려주고 있습니다. 표시된 웹페이지 정보로 접속해보니, 관리자 암호 변경하고 나서, 이렇게 생긴 화면이 나옵니다.
부트스트랩 과정에서 다음과 같은 작업이 이루어진다고 합니다.

  • 로컬 호스트에서 새 클러스터에 대한 모니터 및 관리자 데몬을 만듭니다.
  • Ceph 클러스터에 대한 새 SSH 키를 생성하여 루트 사용자의 /root/.ssh/authorized_keys 파일에 추가합니다.
  • 공개 키의 사본을 /etc/ceph/ceph.pub에 작성합니다.
  • 최소한의 구성 파일을 /etc/ceph/ceph.conf에 작성합니다. 이 파일은 새 클러스터와 통신하는 데 필요합니다.
  • client.admin 관리자(권한이 있는!) 비밀 키의 사본을 /etc/ceph/ceph.client.admin.keyring에 작성합니다.
  • 부트스트랩 호스트에 _admin 레이블을 추가합니다. 기본적으로 이 레이블이 있는 모든 호스트는 /etc/ceph/ceph.conf 및 /etc/ceph/ceph.client.admin.keyring의 사본을 얻게 됩니다.

podman ps 명령을 이용하면 다음과 같은 컨테이너 목록을 볼 수 있습니다. 설치환경 준비할 때 docker로 했으면 docker 명령 이용하면 됩니다.
( 특별한 이유는 없고, podman 사용기회가 종종 있다보니 podman을 쓴 것 뿐입니다 )

[root@OpenHCI-01 ~]# podman ps
CONTAINER ID  IMAGE                                                                                      COMMAND               CREATED         STATUS         PORTS       NAMES
de468e10d5a2  quay.io/ceph/ceph:v18                                                                      -n mon.OpenHCI-01...  11 minutes ago  Up 11 minutes              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-mon-OpenHCI-01
d17ca38c9a32  quay.io/ceph/ceph:v18                                                                      -n mgr.OpenHCI-01...  11 minutes ago  Up 11 minutes              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-mgr-OpenHCI-01-pfaufc
77ff3f2617f4  quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906  -n client.ceph-ex...  10 minutes ago  Up 10 minutes              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-ceph-exporter-OpenHCI-01
17b3d100460c  quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906  -n client.crash.O...  10 minutes ago  Up 10 minutes              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-crash-OpenHCI-01
b8a7c66d4212  quay.io/prometheus/node-exporter:v1.5.0                                                    --no-collector.ti...  10 minutes ago  Up 10 minutes              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-node-exporter-OpenHCI-01
f78abd1155b5  quay.io/prometheus/prometheus:v2.43.0                                                      --config.file=/et...  9 minutes ago   Up 9 minutes               ceph-17593d3e-4e4d-11ef-90ca-005056b09910-prometheus-OpenHCI-01
5840bee1ba84  quay.io/prometheus/alertmanager:v0.25.0                                                    --cluster.listen-...  9 minutes ago   Up 9 minutes               ceph-17593d3e-4e4d-11ef-90ca-005056b09910-alertmanager-OpenHCI-01
99370bb4c910  quay.io/ceph/ceph-grafana:9.4.7                                                            /bin/bash             9 minutes ago   Up 9 minutes               ceph-17593d3e-4e4d-11ef-90ca-005056b09910-grafana-OpenHCI-01

이들 컨테이너를 위한 systemd unit 파일 또한 생성됐습니다.

[root@OpenHCI-01 ~]# systemctl list-units 'ceph*'
  UNIT                                                                       LOAD   ACTIVE SUB     DESCRIPTION                    >
  ceph-17593d3e-4e4d-11ef-90ca-005056b09910@alertmanager.OpenHCI-01.service  loaded active running Ceph alertmanager.OpenHCI-01 fo>
  ceph-17593d3e-4e4d-11ef-90ca-005056b09910@ceph-exporter.OpenHCI-01.service loaded active running Ceph ceph-exporter.OpenHCI-01 f>
  ceph-17593d3e-4e4d-11ef-90ca-005056b09910@crash.OpenHCI-01.service         loaded active running Ceph crash.OpenHCI-01 for 17593>
  ceph-17593d3e-4e4d-11ef-90ca-005056b09910@grafana.OpenHCI-01.service       loaded active running Ceph grafana.OpenHCI-01 for 175>
  ceph-17593d3e-4e4d-11ef-90ca-005056b09910@mgr.OpenHCI-01.pfaufc.service    loaded active running Ceph mgr.OpenHCI-01.pfaufc for >
  ceph-17593d3e-4e4d-11ef-90ca-005056b09910@mon.OpenHCI-01.service           loaded active running Ceph mon.OpenHCI-01 for 17593d3>
  ceph-17593d3e-4e4d-11ef-90ca-005056b09910@node-exporter.OpenHCI-01.service loaded active running Ceph node-exporter.OpenHCI-01 f>
  ceph-17593d3e-4e4d-11ef-90ca-005056b09910@prometheus.OpenHCI-01.service    loaded active running Ceph prometheus.OpenHCI-01 for >
  ceph-17593d3e-4e4d-11ef-90ca-005056b09910.target                           loaded active active  Ceph cluster 17593d3e-4e4d-11ef>
  ceph.target                                                                loaded active active  All Ceph clusters and services

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
10 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
[root@OpenHCI-01 ~]#

Ceph CLI 명령

앞서 부트스트랩 과정에서 출력된 내용 중에 cephadm 명령이 있습니다. 이 명령을 이용하면 Ceph 컨테이너 CLI로 들어갑니다.
프롬프트 앞에 표시된 “ceph: “으로 현재 Ceph 컨테이너 안이라는 것을 알 수 있습니다.

[root@OpenHCI-01 ~]# sudo /sbin/cephadm shell --fsid 17593d3e-4e4d-11ef-90ca-005056b09910 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
Inferring config /var/lib/ceph/17593d3e-4e4d-11ef-90ca-005056b09910/mon.OpenHCI-01/config
Using ceph image with id '2bc0b0f4375d' and tag 'v18' created on 2024-07-23 22:19:35 +0000 UTC
quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906
[ceph: root@OpenHCI-01 /]#

여기서 ceph -s 명령을 이용하면 현재 Ceph 클러스터의 상태 정보를 얻을 수 있습니다. 지금은 OSD도 없고, 노드도 추가 안해서 깡통 상태입니다 ^^

[ceph: root@OpenHCI-01 /]# ceph -s
  cluster:
    id:     3450919e-4d8f-11ef-9cf8-005056b001bd
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3

  services:
    mon: 1 daemons, quorum OpenHCI-01 (age 3m)
    mgr: OpenHCI-01.xtdjar(active, since 78s)
    osd: 0 osds: 0 up, 0 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

[ceph: root@OpenHCI-01 /]#

Ctrl-D 키 또는 exit 명령으로 ceph CLI에서 빠져나옵니다.

[ceph: root@OpenHCI-01 /]#
exit
[root@OpenHCI-01 ~]# 

cephadm shell 명령을 이용하면 쉘 환경으로 들어가지 않고도 ceph CLI 명령을 사용할 수 있습니다. 예를 들어 cephadm shell -- ceph -s 와 같이 사용하면, ceph CLI 명령을 바로 실행시킬 수 있습니다.

[root@OpenHCI-01 ~]# cephadm shell -- ceph -s
Inferring fsid 17593d3e-4e4d-11ef-90ca-005056b09910
Inferring config /var/lib/ceph/17593d3e-4e4d-11ef-90ca-005056b09910/mon.OpenHCI-01/config
Using ceph image with id '2bc0b0f4375d' and tag 'v18' created on 2024-07-23 22:19:35 +0000 UTC
quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906
  cluster:
    id:     17593d3e-4e4d-11ef-90ca-005056b09910
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3

  services:
    mon: 1 daemons, quorum OpenHCI-01 (age 38m)
    mgr: OpenHCI-01.pfaufc(active, since 36m)
    osd: 0 osds: 0 up, 0 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

[root@OpenHCI-01 ~]#

아래와 같이 ceph-common 패키지를 설치해서 ceph 명령을 바로 사용할 수도 있습니다.

[root@OpenHCI-01 ~]# cephadm add-repo --release reef
Writing repo to /etc/yum.repos.d/ceph.repo...
Enabling EPEL...
Completed adding repo.
[root@OpenHCI-01 ~]# cephadm install ceph-common
Installing packages ['ceph-common']...
[root@OpenHCI-01 ~]# ceph -s
  cluster:
    id:     17593d3e-4e4d-11ef-90ca-005056b09910
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3

  services:
    mon: 1 daemons, quorum OpenHCI-01 (age 39m)
    mgr: OpenHCI-01.pfaufc(active, since 37m)
    osd: 0 osds: 0 up, 0 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

[root@OpenHCI-01 ~]#

Ceph 노드에 SSH 키 복사

부트스트랩 과정에서 생성된 SSH 키를 다른 노드들에 복사해줍니다.
이 랩은 3노드 구성이라 OpenHCI-02와 OpenHCI-03에 복사했습니다.

[root@OpenHCI-01 ~]# sudo ssh-copy-id -f -i /etc/ceph/ceph.pub root@OpenHCI-02
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/etc/ceph/ceph.pub"
root@openhci-02's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@OpenHCI-02'"
and check to make sure that only the key(s) you wanted were added.

[root@OpenHCI-01 ~]# sudo ssh-copy-id -f -i /etc/ceph/ceph.pub root@OpenHCI-03
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/etc/ceph/ceph.pub"
root@openhci-03's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@OpenHCI-03'"
and check to make sure that only the key(s) you wanted were added.

[root@OpenHCI-01 ~]#

Ceph CLI 환경으로 들어가기

클러스터에 노드를 추가하는 작업을 하기 위해서 Ceph CLI 환경으로 들어갑니다.

[root@OpenHCI-01 ~]# sudo /sbin/cephadm shell --fsid 17593d3e-4e4d-11ef-90ca-005056b09910 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
Inferring config /var/lib/ceph/17593d3e-4e4d-11ef-90ca-005056b09910/mon.OpenHCI-01/config
Using ceph image with id '2bc0b0f4375d' and tag 'v18' created on 2024-07-23 22:19:35 +0000 UTC
quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906
[ceph: root@OpenHCI-01 /]#

Ceph 클러스터에 노드 추가

현재 구성되어 있는 노드 목록을 확인합니다. 첫번째 노드인 OpenHCI-01만 표시됩니다.
LABELS에 보면 첫번째 노드는 Admin 노드를 의미하는 _admin 레이블이 붙어 있는 것을 확인할 수 있습니다.

[ceph: root@OpenHCI-01 /]# ceph orch host ls
HOST        ADDR         LABELS  STATUS
OpenHCI-01  172.16.2.11  _admin
1 hosts in cluster
[ceph: root@OpenHCI-01 /]#

ceph orch host add 명령으로 2번째, 3번째 노드를 추가합니다. 제 경우 한노드 추가에 약 5초 정도 걸린 것 같습니다.

[ceph: root@OpenHCI-01 /]# ceph orch host add OpenHCI-02
Added host 'OpenHCI-02' with addr '172.16.1.12'
[ceph: root@OpenHCI-01 /]# ceph orch host add OpenHCI-03
Added host 'OpenHCI-03' with addr '172.16.1.13'
[ceph: root@OpenHCI-01 /]#

노드가 잘 추가되었는지 확인합니다.

[ceph: root@OpenHCI-01 /]# ceph orch host ls
HOST        ADDR         LABELS  STATUS
OpenHCI-01  172.16.2.11  _admin
OpenHCI-02  172.16.1.12
OpenHCI-03  172.16.1.13
3 hosts in cluster
[ceph: root@OpenHCI-01 /]#

스토리지 디바이스에서 Ceph OSD 생성

노드들에 연결되어 있는 스토리지 디바이스 목록을 확인합니다. 노드 추가를 하고 바로 확인하면 목록에 안보일 수도 있습니다. 제 경우 약 1분 정도 지나고 다 올라온 것 같습니다.

[ceph: root@OpenHCI-01 /]# ceph orch device ls
HOST        PATH      TYPE  DEVICE ID   SIZE  AVAILABLE  REFRESHED  REJECT REASONS
OpenHCI-01  /dev/sda  ssd               200G  Yes        8m ago
OpenHCI-01  /dev/sdc  ssd               200G  Yes        8m ago
OpenHCI-02  /dev/sdb  ssd               200G  Yes        62s ago
OpenHCI-02  /dev/sdc  ssd               200G  Yes        62s ago
OpenHCI-03  /dev/sdb  ssd               200G  Yes        4s ago
OpenHCI-03  /dev/sdc  ssd               200G  Yes        4s ago

ceph orch apply osd 명령을 이용해서 모든 디바이스(–all-available-devices)를 raw 방식(–method)으로 OSD로 추가합니다.
--all-available-devices를 설정해 놓으면 이후에 스토리지 디바이스를 추가했을 때도 자동으로 추가 합니다.

[ceph: root@OpenHCI-01 /]# ceph orch apply osd --all-available-devices --method raw
Scheduled osd.all-available-devices update...

자동으로 추가되는 것을 방지하려면 --unmanaged를 선언해주면 됩니다.

[ceph: root@OpenHCI-01 /]# ceph orch apply osd --all-available-devices --unmanaged=true
Scheduled osd.all-available-devices update...
[ceph: root@OpenHCI-01 /]#

ceph -s 명령을 이용해서 클러스터 상태를 조회해보면 osd가 잘 추가됐는지 확인할 수 있습니다. osd가 up 상태가 되기 위해서는 시간이 조금 필요할 수 있으니, 조금 여유있게 기다리면 됩니다.
제 실습환경의 경우는 20여초 걸린 것 같습니다.

[ceph: root@OpenHCI-01 /]# ceph -s
  cluster:
    id:     17593d3e-4e4d-11ef-90ca-005056b09910
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum OpenHCI-01,OpenHCI-02,OpenHCI-03 (age 100s)
    mgr: OpenHCI-01.pfaufc(active, since 42m), standbys: OpenHCI-02.gyhmdu
    osd: 6 osds: 0 up, 6 in (since 4s)

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

[ceph: root@OpenHCI-01 /]# ceph -s
  cluster:
    id:     17593d3e-4e4d-11ef-90ca-005056b09910
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum OpenHCI-01,OpenHCI-02,OpenHCI-03 (age 2m)
    mgr: OpenHCI-01.pfaufc(active, since 43m), standbys: OpenHCI-02.gyhmdu
    osd: 6 osds: 6 up (since 8s), 6 in (since 31s)

  data:
    pools:   1 pools, 1 pgs
    objects: 2 objects, 449 KiB
    usage:   161 MiB used, 600 GiB / 600 GiB avail
    pgs:     1 active+clean

  io:
    client:   1.5 KiB/s rd, 44 KiB/s wr, 1 op/s rd, 2 op/s wr
    recovery: 75 KiB/s, 0 objects/s

[ceph: root@OpenHCI-01 /]#

OSD는 ceph osd tree 명령어로 확인해볼 수 있습니다.

[ceph: root@OpenHCI-01 /]# ceph osd tree
ID  CLASS  WEIGHT   TYPE NAME            STATUS  REWEIGHT  PRI-AFF
-1         0.58612  root default
-3         0.19537      host OpenHCI-01
 2    ssd  0.09769          osd.2            up   1.00000  1.00000
 3    ssd  0.09769          osd.3            up   1.00000  1.00000
-7         0.19537      host OpenHCI-02
 0    ssd  0.09769          osd.0            up   1.00000  1.00000
 5    ssd  0.09769          osd.5            up   1.00000  1.00000
-5         0.19537      host OpenHCI-03
 1    ssd  0.09769          osd.1            up   1.00000  1.00000
 4    ssd  0.09769          osd.4            up   1.00000  1.00000
[ceph: root@OpenHCI-01 /]#

각종 Ceph 서비스 프로세스들은 ceph orch ps 명령으로 확인해볼 수 있습니다.

[ceph: root@OpenHCI-01 /]# ceph orch ps
NAME                      HOST        PORTS             STATUS          REFRESHED   AGE  MEM USE  MEM LIM  VERSION  IMAGE ID      CONTAINER ID
alertmanager.OpenHCI-01   OpenHCI-01  *:9093,9094       running (71m)      6m ago  113m    24.0M        -  0.25.0   c8568f914cd2  c02e343d25f5
ceph-exporter.OpenHCI-01  OpenHCI-01                    running (113m)     6m ago  113m    10.1M        -  18.2.4   2bc0b0f4375d  77ff3f2617f4
ceph-exporter.OpenHCI-02  OpenHCI-02                    running (72m)      5m ago   72m    9873k        -  18.2.4   2bc0b0f4375d  0447555317cd
ceph-exporter.OpenHCI-03  OpenHCI-03                    running (71m)      5m ago   71m    9935k        -  18.2.4   2bc0b0f4375d  49bed6319371
crash.OpenHCI-01          OpenHCI-01                    running (113m)     6m ago  113m    6903k        -  18.2.4   2bc0b0f4375d  17b3d100460c
crash.OpenHCI-02          OpenHCI-02                    running (72m)      5m ago   72m    6907k        -  18.2.4   2bc0b0f4375d  5b147a9deb13
crash.OpenHCI-03          OpenHCI-03                    running (71m)      5m ago   71m    6903k        -  18.2.4   2bc0b0f4375d  03adc261023a
grafana.OpenHCI-01        OpenHCI-01  *:3000            running (112m)     6m ago  112m    87.5M        -  9.4.7    954c08fa6188  99370bb4c910
mgr.OpenHCI-01.pfaufc     OpenHCI-01  *:9283,8765,8443  running (114m)     6m ago  114m     501M        -  18.2.4   2bc0b0f4375d  d17ca38c9a32
mgr.OpenHCI-02.gyhmdu     OpenHCI-02  *:8443,9283,8765  running (72m)      5m ago   72m     447M        -  18.2.4   2bc0b0f4375d  ab13c7737bc4
mon.OpenHCI-01            OpenHCI-01                    running (114m)     6m ago  114m    72.3M    2048M  18.2.4   2bc0b0f4375d  de468e10d5a2
mon.OpenHCI-02            OpenHCI-02                    running (72m)      5m ago   72m    55.6M    2048M  18.2.4   2bc0b0f4375d  6107c014049e
mon.OpenHCI-03            OpenHCI-03                    running (71m)      5m ago   71m    54.2M    2048M  18.2.4   2bc0b0f4375d  289eb72e4ff8
node-exporter.OpenHCI-01  OpenHCI-01  *:9100            running (113m)     6m ago  113m    16.2M        -  1.5.0    0da6a335fe13  b8a7c66d4212
node-exporter.OpenHCI-02  OpenHCI-02  *:9100            running (72m)      5m ago   72m    16.2M        -  1.5.0    0da6a335fe13  9644e9b77ded
node-exporter.OpenHCI-03  OpenHCI-03  *:9100            running (71m)      5m ago   71m    16.0M        -  1.5.0    0da6a335fe13  bea001d1c734
osd.0                     OpenHCI-02                    running (69m)      5m ago   69m    51.2M    7495M  18.2.4   2bc0b0f4375d  5e5e767fbd95
osd.1                     OpenHCI-03                    running (69m)      5m ago   69m    50.3M    9543M  18.2.4   2bc0b0f4375d  c0584124eb29
osd.2                     OpenHCI-01                    running (69m)      6m ago   69m    51.7M    5959M  18.2.4   2bc0b0f4375d  1959ec2d22f0
osd.3                     OpenHCI-01                    running (69m)      6m ago   69m    49.6M    5959M  18.2.4   2bc0b0f4375d  48155bb826ce
osd.4                     OpenHCI-03                    running (69m)      5m ago   69m    50.7M    9543M  18.2.4   2bc0b0f4375d  68b7b2016d45
osd.5                     OpenHCI-02                    running (69m)      5m ago   69m    47.0M    7495M  18.2.4   2bc0b0f4375d  61177100fc73
prometheus.OpenHCI-01     OpenHCI-01  *:9095            running (71m)      6m ago  112m    76.8M        -  2.43.0   a07b618ecd1d  e0f321f131cf
[ceph: root@OpenHCI-01 /]#

2번째 노드에가서 podman ps 명령어로 컨테이너를 조회해 봤습니다.

[root@OpenHCI-02 ~]# podman ps
CONTAINER ID  IMAGE                                                                                      COMMAND               CREATED      STATUS      PORTS       NAMES
0447555317cd  quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906  -n client.ceph-ex...  2 hours ago  Up 2 hours              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-ceph-exporter-OpenHCI-02
5b147a9deb13  quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906  -n client.crash.O...  2 hours ago  Up 2 hours              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-crash-OpenHCI-02
9644e9b77ded  quay.io/prometheus/node-exporter:v1.5.0                                                    --no-collector.ti...  2 hours ago  Up 2 hours              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-node-exporter-OpenHCI-02
ab13c7737bc4  quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906  -n mgr.OpenHCI-02...  2 hours ago  Up 2 hours              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-mgr-OpenHCI-02-gyhmdu
6107c014049e  quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906  -n mon.OpenHCI-02...  2 hours ago  Up 2 hours              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-mon-OpenHCI-02
61177100fc73  quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906  -n osd.5 -f --set...  2 hours ago  Up 2 hours              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-osd-5
5e5e767fbd95  quay.io/ceph/ceph@sha256:6ac7f923aa1d23b43248ce0ddec7e1388855ee3d00813b52c3172b0b23b37906  -n osd.0 -f --set...  2 hours ago  Up 2 hours              ceph-17593d3e-4e4d-11ef-90ca-005056b09910-osd-0
[root@OpenHCI-02 ~]#

웹 UI와 최초 접속

처음 클러스터를 생성하는 부트스트랩 과정에서 아래와 같이 웹 UI에 접속하기 위한 정보를 알려줍니다.

  • URL : 접속 주소
  • User : 관리자 id
  • Password: 최초 접속시에만 사용하는 임시 암호
             URL: https://OpenHCI-01.098.co.kr:8443/
            User: admin
        Password: 378dvus5ub

웹 UI는 Ceph Manager(ceph-mgr)가 제공합니다. ceph -s로 상태 정보를 봤을 때 mgr에 표시되는 부분이 ceph-mgr 구성 정보입니다. 제 경우 3 노드로 구성을 해서, 첫번째와 두번째 노드에 mgr이 구성되어 있는 것을 볼 수 있습니다.
Ceph Manager는 1개가 서비스를 제공하는 active 상태, 나머지는 동작 중이던 메니저가 장애 났을 경우에만 동작하는 standbys 상태로 동작합니다. 필요하다면 매니저의 standby 노드를 추가할 수도 있습니다.

    mgr: OpenHCI-01.pfaufc(active, since 42m), standbys: OpenHCI-02.gyhmdu

웹 브라우저를 열고 접속하면 사설인증서가 설치된 상태이기 때문에, 보안 경고가 표시됩니다. “고급” 단추를 누릅니다.

“안전하지 않음” 링크를 누릅니다.

Ceph Dashboard 로그인 화면이 표시됩니다. Username에 admin, 암호에 부트스트랩 과정에서 만들어진 임시 암호를 입력하고, “Login in” 단추를 누릅니다.

참고: Username은 영어로, 암호는 한글로 표시됩니다. 한글화가 덜 되었나 봅니다. documentation은 3개나 표시됩니다. 링크는 각각 다릅니다.

암호 설정 화면이 나옵니다. Old password에 임시 암호를 다시 입력하고, New password와 Confirm new password에 새로 지정할 암호를 입력합니다. 암호가 일치하면 “Change Password” 활성화됩니다. “Change Password”를 누릅니다.

다시 처음 접속했을 때 화면으로 돌아옵니다. Username에 admin, 암호에 앞에서 새로 지정한 암호를 입력하고, “Login in” 단추를 누릅니다.

(뭔가 좀 썰렁하지만) 드디어 Ceph Dashboard 페이지가 열렸습니다.
화면에 제일 위에 Telemetry 모듈 관련된 내용이 표시되어 있습니다. 실습 환경은 굳이 안해도 된다 생각합니다. “X” 를 클릭해서 닫아줍니다. 필요하면 나중에 활성화 시킬 수 있습니다.
한글로 “현황판”이라 써진 메뉴를 누릅니다.

오~ 이제 뭔가 좀 있어 보이는 대시보드(현황판) 페이지가 표시됩니다.

참고 자료

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like