우분투에서 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.10.111 | Ceph 클러스터 | |
node2 | 192.168.10.112 | Ceph 클러스터 | |
node3 | 192.168.10.113 | Ceph 클러스터 | |
node4 | 192.168.10.114 | 클라이언트 |
1. Ceph 서버 설정(node1, node2, node3)
호스트 파일 편집
- 모든 Ceph 서버와 클라이언트가 서로 통신할 수 있도록 /etc/hosts 파일을 업데이트합니다.
sudo tee -a /etc/hosts <<EOF
# Ceph Storage Cluster
192.168.10.111 node1
192.168.10.112 node2
192.168.10.113 node3
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)
'리눅스' 카테고리의 다른 글
리눅스에서 SSH 액세스 권한 부여하기 (0) | 2024.09.11 |
---|---|
우분투에 ipmitool을 설치하고 사용하는 방법 (0) | 2024.09.06 |
우분투에서 SSH 키가 만료되거나 만료될 예정일 경우 SSH 키를 교체하는 방법 (0) | 2024.09.03 |
우분투에서 SSH 인증서를 사용한 SSH 인증을 구성하고 설정하는 방법 (0) | 2024.09.02 |
우분투에서 시스템을 업데이트하는 방법 (0) | 2024.08.30 |