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)
'리눅스' 카테고리의 다른 글
[draft] CentOS 7에서 www-data 계정을 생성하는 방법 (0) | 2024.09.10 |
---|---|
[draft] 우분투에 ipmitool을 설치하고 사용하는 방법 (0) | 2024.09.06 |
[draft] 우분투에서 NFS서버와 클라이언트를 설정하는 방법 (0) | 2024.09.03 |
[draft] MetalLB를 설치하고 설정하여 Kubernetes 클러스터에서 LoadBalancer 서비스를 테스트하는 방법 (1) | 2024.08.29 |
[draft] Kubernetes 구성 파일 설정 (0) | 2024.08.29 |