본문 바로가기

리눅스

[draft] Ceph를 설치하는 방법

728x90

Ceph를 설치하는 방법

Ceph는 분산형 스토리지 시스템으로 고가용성(HA)을 제공하는 클러스터를 구성할 수 있습니다. 이 구성에서는 세 개의 Ceph 서버(node1, node2, node3)와 한 개의 Ceph 클라이언트(node4)를 설정합니다. Ceph 클러스터는 모니터(MON) 노드와 Object Storage Daemon(OSD) 노드를 사용하여 데이터를 분산 저장하고 높은 가용성과 내결함성을 제공합니다.

 

  • Object Storage Daemons(OSDs) : 데이터 저장을 위해 OSD 노드가 필요합니다. 일반적으로 최소 3개의 OSD 노드를 권장합니다. Ceph는 기본적으로 3중 복제를 사용하므로 3개의 OSD 노드가 필요합니다.
  • Manager(MGR) : Ceph Manager 데몬은 클러스터 모니터링 및 관리 작업을 수행합니다. 1개 이상의 MGR 노드가 필요하며 보통 2개를 설정하여 하나는 액티브(active) 다른 하나는 스탠바이(standby)로 설정합니다.
  • Metadata Server(MDS) : CephFS를 사용하는 경우 MDS 노드가 필요합니다. MDS는 Ceph의 파일 시스템 메타데이터를 관리합니다.

테스트 환경

호스트 이름 아이피 주소 역할 비고
node1 192.168.0.111    
node2 192.168.0.112    
node3 192.168.0.113    
node4 192.168.0.114    

1. Ceph 서버 설정(node1, node2, node3)

호스트 파일 편집

모든 Ceph 서버와 클라이언트가 서로 통신할 수 있도록 /etc/hosts 파일을 업데이트합니다.

sudo tee -a /etc/hosts <<EOF

# Ceph Storage Cluster
192.168.0.111 node1
192.168.0.112 node2
192.168.0.113 node3
192.168.0.114 node4
EOF

필수 패키지 설치

모든 Ceph 서버에서 필요한 패키지를 설치합니다.

sudo apt-get update
sudo apt-get install -y ceph-deploy ntp

Ceph 클러스터 초기화(node1에서 실행)

클러스터 디렉토리 생성 및 초기화

클러스터 디렉토리를 만들고, 초기 모니터와 관리 키링을 생성합니다.

mkdir ~/ceph-cluster
cd ~/ceph-cluster
ceph-deploy new node1 node2 node3

Ceph 패키지 설치

클러스터의 모든 노드에 Ceph 패키지를 설치합니다.

ceph-deploy install node1 node2 node3

초기 모니터(MON) 및 관리자(Admin) 키 생성

ceph-deploy mon create-initial

OSD 준비 및 활성화

각 Ceph 서버에 OSD를 준비하고 활성화합니다. OSD로 사용할 디스크를 지정합니다. 예를 들어, 각 서버에서 /dev/sdb 디스크를 사용한다고 가정합니다.

ceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3

Ceph MDS 설정 (Ceph 파일 시스템을 사용할 경우)

CephFS(Ceph 파일 시스템)를 사용할 경우 메타데이터 서버(MDS)를 설정합니다.

ceph-deploy mds create node1 node2 node3

Ceph 관리 파일 복사

관리 작업을 위해 ceph.conf와 관리자 키링 파일을 모든 클라이언트에 복사합니다.

ceph-deploy admin node1 node2 node3 node4
sudo chmod +r /etc/ceph/ceph.client.admin.keyring

Ceph 클라이언트 설정(node4)

Ceph 클라이언트 패키지 설치

클라이언트에 Ceph 관련 패키지를 설치합니다.

sudo apt-get update
sudo apt-get install -y ceph-common

Ceph 파일 시스템 마운트

CephFS를 마운트하려면 클러스터에서 파일 시스템을 생성해야 합니다. 이 작업은 서버에서 수행합니다 (node1에서 실행).

ceph fs volume create cephfs

클라이언트에서 Ceph 파일 시스템을 마운트할 디렉토리를 생성하고, 마운트 명령을 실행합니다.

sudo mkdir -p /mnt/cephfs
sudo mount -t ceph node1:6789:/ /mnt/cephfs -o name=admin,secretfile=/etc/ceph/ceph.client.admin.keyring

마운트 확인

Ceph 파일 시스템이 제대로 마운트되었는지 확인합니다.

df -Th /mnt/cephfs

자동 마운트 설정 (옵션)

시스템 재부팅 시 자동으로 마운트되도록 /etc/fstab에 추가합니다.

sudo vim /etc/fstab
echo "node1:6789:/ /mnt/cephfs ceph name=admin,secretfile=/etc/ceph/ceph.client.admin.keyring,_netdev 0 0" | sudo tee -a /etc/fstab

Ceph 클러스터 관리 및 테스트

클러스터 상태 확인 : Ceph 클러스터의 상태를 확인하려면 다음 명령을 사용합니다.

ceph -s

데이터 복제 및 분산 확인 : Ceph는 기본적으로 3중 복제를 사용하여 데이터를 보호합니다. 이는 각 OSD 노드에 동일한 데이터를 저장하여 하나의 노드가 실패하더라도 데이터가 손실되지 않음을 의미합니다.

 

이제 node1, node2, node3에 Ceph 클러스터가 구성되었으며, node4에서 Ceph 파일 시스템을 클라이언트로 마운트할 수 있습니다. 이 설정은 고가용성과 내결함성을 제공하므로, 클러스터 내의 일부 노드에 장애가 발생하더라도 데이터 접근이 가능하게 유지됩니다.

 

Ceph Storage HA Cluster Architecture

 

참고URL

- Ceph Documentation : Get started with Ceph

- Ceph Documentation : Installation (ceph-deploy)

 

728x90