Ceph 기반 Proxmox 3노드 HCI 클러스터 구축: 자세한 가이드
하이퍼 컨버지드 인프라(HCI)는 컴퓨팅, 스토리지, 네트워킹을 단일 시스템으로 통합하여 관리 복잡성을 줄이고 비용을 절감하는 솔루션입니다. Proxmox VE와 Ceph을 조합하면 강력하고 유연한 오픈 소스 HCI 클러스터를 구축할 수 있습니다. 이 게시물에서는 Proxmox VE 3노드 클러스터에 Ceph을 통합하여 HCI 형태의 스토리지 솔루션을 구현하는 상세한 방안을 다룹니다.
1. 목표 및 전제 조건
1.1. 목표:
- Proxmox VE 3노드 클러스터 구축
- Proxmox VE 내장 Ceph을 활용하여 분산 스토리지 구성
- 높은 가용성과 성능을 갖춘 HCI 환경 구축
- 향후 확장성을 고려한 설계
1.2. 전제 조건:
- 하드웨어: 최소 3대의 물리 서버 (각 노드당 최소 사양 권장):
- CPU: 4코어 이상
- RAM: 16GB 이상 (Ceph 노드의 경우 32GB 이상 권장)
- 네트워크: 최소 2개의 1GbE 포트 (HA 및 Ceph Public, Ceph Cluster 통신 분리 권장)
- 중요: Ceph 성능을 위해 10GbE 이상의 네트워크 환경을 적극 권장합니다.
- 스토리지:
- 운영체제 및 Proxmox VE 설치용 SSD/NVMe (예: 250GB 이상)
- Ceph OSD용 스토리지는 최소 2개 이상의 동일한 종류의 디스크 (HDD 또는 SSD/NVMe)가 각 노드에 필요합니다. Ceph Journal/WAL/DB 분리를 위해 NVMe와 HDD 조합도 좋습니다. 동일한 성능과 용량의 디스크를 사용하는 것이 중요합니다.
- 네트워크 환경:
- 고정 IP 주소 할당 가능한 DHCP 또는 고정 IP 주소 설정 준비
- 인터넷 연결 (패키지 설치 및 업데이트용)
- 기본 지식: 리눅스 CLI 사용법, 네트워킹 개념, 가상화 기본 지식
2. 네트워크 설계
네트워크는 HCI 클러스터의 핵심이며, Ceph의 성능에 지대한 영향을 미칩니다. 최소 2개의 네트워크 인터페이스(NIC)를 사용하는 것을 권장하며, 가능하면 3개 이상을 활용하여 트래픽을 분리하는 것이 이상적입니다.
2.1. 네트워크 인터페이스 할당:
- vmbr0 (Management / Public Network):
- Proxmox VE 관리 UI 접근, SSH, 게스트 VM의 Public 네트워크 통신
- 클러스터 통신 (corosync)
- IP 대역: 192.168.10.0/24 (예시)
- NIC:
eth0(또는enp1s0등) - vmbr1 (Ceph Cluster Network):
- Ceph OSD 간의 데이터 복제 및 내부 통신
- 매우 중요: 이 네트워크는 트래픽이 많으므로 전용 NIC를 사용하고, 가능한 한 고속 (10GbE 이상) 네트워크를 사용하는 것이 Ceph 성능에 필수적입니다.
- IP 대역: 10.10.10.0/24 (예시)
- NIC:
eth1(또는enp2s0등)
2.2. IP 주소 할당 (예시):
| 노드 | Management IP (vmbr0) | Ceph Cluster IP (vmbr1) |
|---|---|---|
| Node1 | 192.168.10.11 | 10.10.10.11 |
| Node2 | 192.168.10.12 | 10.10.10.12 |
| Node3 | 192.168.10.13 | 10.10.10.13 |
2.3. /etc/hosts 설정:
각 노드에서 서로의 호스트 이름을 확인할 수 있도록 /etc/hosts 파일을 설정합니다. 모든 노드에서 아래 내용을 추가합니다.
# Node1
192.168.10.11 node1.example.com node1
10.10.10.11 node1-ceph.example.com node1-ceph
# Node2
192.168.10.12 node2.example.com node2
10.10.10.12 node2-ceph.example.com node2-ceph
# Node3
192.168.10.13 node3.example.com node3
10.10.10.13 node3-ceph.example.com node3-ceph
3. Proxmox VE 설치 및 클러스터 구성
3.1. Proxmox VE 설치:
각 물리 서버에 Proxmox VE ISO 이미지를 다운로드하여 부팅 가능한 USB를 만들고 설치합니다. 설치 과정은 다음과 같습니다.
- 언어 및 키보드 선택
- EULA 동의
- 대상 디스크 선택: 운영체제 설치용 SSD/NVMe를 선택합니다.
- 국가, 시간대, 비밀번호 설정
- 네트워크 설정:
- Hostname:
node1.example.com,node2.example.com,node3.example.com등으로 설정 - IP Address: 각 노드의 Management IP (
192.168.10.x) 설정 - Netmask: 255.255.255.0
- Gateway: 네트워크 게이트웨이 IP
- DNS Server: DNS 서버 IP (예: 8.8.8.8)
- 설치 완료 후 시스템을 재부팅합니다.
3.2. Proxmox VE 초기 설정:
각 노드에 SSH로 접속하여 기본적인 설정을 진행합니다.
- 업데이트:
apt update && apt full-upgrade -y - 기업 저장소 비활성화 (선택 사항 - 구독이 없는 경우):
/etc/apt/sources.list.d/pve-enterprise.list파일 주석 처리# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise - 무료 저장소 활성화 (선택 사항):
/etc/apt/sources.list파일에 추가 (예:bookworm-no-subscription)
이후echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" >> /etc/apt/sources.listapt update다시 실행. - 네트워크 인터페이스 추가 (Ceph Cluster Network):
각 노드에서 웹 UI (https://192.168.10.x:8006) 또는 CLI에서 Ceph Cluster Network를 위한vmbr1을 추가합니다.
- 웹 UI:
Datacenter->Node->System->Network->Create->Linux Bridge - Name:
vmbr1 - IPv4/CIDR:
10.10.10.x/24(각 노드에 맞게) - Bridge ports:
eth1(또는 해당 NIC 이름) Autostart체크- CLI:
/etc/network/interfaces파일 직접 수정 (웹 UI 권장)
수정 후# /etc/network/interfaces (예시) auto vmbr1 iface vmbr1 inet static address 10.10.10.11/24 # 각 노드에 맞게 수정 gateway 10.10.10.1 # 게이트웨이가 필요 없는 경우 삭제 가능 bridge-ports eth1 # 실제 NIC 이름 bridge-stp off bridge-fd 0systemctl restart networking또는reboot
3.3. Proxmox VE 클러스터 생성:
- Node1에서 클러스터 생성:
웹 UI 접속 (https://192.168.10.11:8006)Datacenter->Cluster->Create Cluster
- Cluster Name:
my-ceph-cluster(원하는 이름) Create클릭
- Join Information 확인:
클러스터 생성이 완료되면Join Information버튼을 클릭하여 정보를 복사합니다. - Node2 및 Node3 클러스터 가입:
Node2, Node3 웹 UI 접속 (https://192.168.10.12:8006, https://192.168.10.13:8006)Datacenter->Cluster->Join Cluster
- Node1에서 복사한 Join Information을 붙여넣기
- Password: Node1의
root비밀번호 입력 Join클릭
모든 노드가 클러스터에 성공적으로 가입되었는지 확인합니다. (웹 UI 좌측 메뉴에 Datacenter 아래에 3개 노드가 표시되어야 함)
4. Ceph 스토리지 구성
이제 Proxmox VE 클러스터에 Ceph을 배포합니다. Proxmox VE는 Ceph 배포를 위한 GUI와 CLI 도구를 제공하여 매우 쉽게 Ceph을 구축할 수 있습니다.
4.1. Ceph 패키지 설치:
클러스터 내 모든 노드에서 Ceph 패키지를 설치합니다. Proxmox VE 7.0 이후 버전부터는 Ceph Pacific이 기본으로 제공됩니다.
pveceph install --version pacific
4.2. Ceph Monitor (MON) 구성:
Ceph Monitor는 Ceph 클러스터의 상태를 관리하고, 쿼럼을 유지하는 중요한 구성 요소입니다. 3개의 노드 모두에 MON을 배포하여 고가용성을 확보합니다.
- Node1에서 MON 생성:
웹 UI 접속 (https://192.168.10.11:8006)Datacenter->ceph->Monitor->Create
- Node:
node1선택 Create클릭
- Node2 및 Node3에 MON 추가:
Monitor탭에서Add버튼 클릭 (또는 각 노드의ceph->Monitor탭에서Add클릭)
- Node:
node2선택 Create클릭- 동일하게
node3에 대해서도 반복합니다.
3개의 MON이 모두 Running 상태인지 확인합니다. ceph status 명령어를 통해서도 확인할 수 있습니다.
ceph status
4.3. Ceph Manager (MGR) 구성:
Ceph Manager는 Ceph 클러스터의 메트릭 수집, 웹 대시보드 제공 등 관리 기능을 담당합니다. 최소 2개의 MGR을 배포하여 고가용성을 확보합니다. Proxmox VE는 기본적으로 MON을 배포할 때 MGR도 함께 배포하지만, 수동으로 추가할 수도 있습니다.
Datacenter -> ceph -> Manager 탭에서 Add 버튼을 클릭하여 남은 노드에 MGR을 배포합니다. (예: node1, node2에 MGR 배포)
4.4. Ceph OSD (Object Storage Daemon) 구성:
OSD는 실제 데이터를 저장하는 Ceph의 핵심 구성 요소입니다. 각 노드의 사용 가능한 스토리지를 OSD로 구성합니다.
- 사용 가능한 디스크 확인:
각 노드에서fdisk -l또는lsblk명령어를 사용하여 Ceph OSD로 사용할 디스크를 확인합니다. 데이터가 있는 디스크를 선택하지 않도록 주의하세요! (예:/dev/sdb,/dev/sdc) - OSD 생성:
웹 UI에서Datacenter->ceph->OSD->Create: OSD
- Node:
node1선택 - OSD Device: Ceph OSD로 사용할 디스크를 선택합니다. (예:
/dev/sdb,/dev/sdc) - Journal/WAL/DB (선택 사항): NVMe 드라이브가 있는 경우 이를 Journal/WAL/DB 용도로 분리하여 성능을 향상시킬 수 있습니다. 없으면 OSD Device와 동일하게 선택하거나 비워둡니다.
Add OSD클릭
모든 노드 (node1, node2, node3)에 대해 위 과정을 반복하여 Ceph OSD를 생성합니다. 각 노드에 최소 2개 이상의 OSD를 구성하는 것이 좋습니다.
최소 OSD 구성 예시:
- Node1:
/dev/sdb,/dev/sdc(2 OSD) - Node2:
/dev/sdb,/dev/sdc(2 OSD) - Node3:
/dev/sdb,/dev/sdc(2 OSD) - 총 6개 OSD 구성
- OSD 상태 확인:
모든 OSD가up및in상태인지 확인합니다.ceph osd tree ceph status
4.5. Ceph Pool 생성:
Ceph Pool은 데이터를 저장하는 논리적인 단위입니다. Proxmox VE에서 VM 디스크는 RBD (RADOS Block Device) 이미지를 사용하므로 RBD Pool을 생성해야 합니다.
- RBD Pool 생성:
웹 UIDatacenter->ceph->Pools->Create
- Name:
rbd(기본 권장 이름) - Size (Replica Count): 3 (3노드 클러스터이므로 데이터를 3벌 복제하여 저장)
- Min. Size: 2 (최소 2개 OSD가 살아있어야 쓰기 작업 허용)
- PG Num: 128 (초기 권장 값. 클러스터 규모에 따라 조정 필요)
- PGP Num: 128 (PG Num과 동일하게 설정)
Create클릭
PG Num (Placement Group Number) 및 PGP Num (Placement Group for Placement) 정보:
- PG Num은 Ceph 클러스터의 성능과 안정성에 중요한 역할을 합니다. 클러스터 크기에 따라 적절한 값을 선택해야 합니다.
- 일반적으로
(OSD 수 * 100) / Replication Factor공식으로 시작하여 2의 거듭제곱에 가까운 값을 선택합니다. - 예: OSD 6개, Replication Factor 3 ->
(6 * 100) / 3 = 200. 2의 거듭제곱에 가까운 128 또는 256을 선택할 수 있습니다. 처음에는 128로 시작하여 점차 늘려가는 것이 좋습니다. - PG Num 변경은 성능에 영향을 미치므로 신중하게 결정해야 합니다.
4.6. Proxmox Storage 등록:
생성한 Ceph Pool을 Proxmox VE의 스토리지로 등록합니다.
- 웹 UI
Datacenter->Storage->Add->RBD
- ID:
ceph-rbd(원하는 이름) - Pool:
rbd(위에서 생성한 Pool 이름) - Monitors: 자동 채워짐
- Username:
client.admin Enable체크Content:Disk image,Container template체크Add클릭
이제 Datacenter -> Storage 목록에서 ceph-rbd 스토리지를 확인할 수 있으며, 가상 머신 생성 시 이 스토리지를 선택하여 디스크를 프로비저닝할 수 있습니다.
5. HCI 클러스터 테스트
5.1. 가상 머신 생성:
ceph-rbd 스토리지에 가상 머신을 생성하여 정상적으로 작동하는지 확인합니다.
Datacenter->Node->Create VM- OS: ISO 이미지 업로드 후 선택
- Hard Disk:
- Storage:
ceph-rbd선택 - Disk size: 원하는 크기 설정
- 나머지 설정은 필요에 따라 진행합니다.
5.2. HA (고가용성) 테스트:
클러스터의 고가용성 기능을 테스트합니다.
Datacenter->HA->Add- Resource: 위에서 생성한 VM 선택
Add클릭- HA 상태를
enabled로 변경합니다. - VM이 실행 중인 노드를 강제로 종료하거나 재부팅하여 VM이 다른 노드로 자동 마이그레이션되는지 확인합니다.
5.3. Ceph 장애 복구 테스트:
- OSD 장애: 한 노드의 OSD를 강제로 제거하거나, 해당 디스크를 오프라인 시켜 Ceph가 자동으로 데이터를 복구하는지 확인합니다.
ceph status명령어로 Rebalancing 과정을 모니터링할 수 있습니다. - 노드 장애: 한 노드를 완전히 종료한 후, VM이 다른 노드에서 실행되는지, Ceph 데이터가 정상적으로 접근 가능한지 확인합니다.
6. 추가 고려 사항 및 최적화
- 네트워크 분리: Ceph Public Network와 Ceph Cluster Network를 분리하고, Ceph Cluster Network는 전용 고속 네트워크 (10GbE 이상)를 사용하는 것이 Ceph 성능에 결정적인 영향을 미칩니다.
- Ceph Journal/WAL/DB: OSD용 디스크와 다른 빠른 디스크 (NVMe)를 사용하여 Ceph Journal/WAL/DB를 분리하면 쓰기 성능이 크게 향상됩니다.
- PG Num 최적화: 클러스터 규모가 커지면 PG Num을 적절하게 조정해야 합니다.
- Monitoring: Grafana, Prometheus 등을 사용하여 Ceph 및 Proxmox VE 클러스터의 상태를 지속적으로 모니터링하는 것이 중요합니다.
- Backup: 클러스터 환경에서도 VM 백업은 필수입니다. Proxmox VE의 내장 백업 기능을 활용하거나 외부 백업 솔루션을 사용합니다.
- SSD vs HDD: 성능이 중요한 워크로드에는 SSD 기반 OSD를 사용하고, 용량이 중요한 워크로드에는 HDD 기반 OSD를 사용합니다. 둘을 혼합하여 사용하는 것도 가능합니다.
- Scale-out: 필요에 따라 노드를 추가하고 OSD를 확장하여 스토리지 용량과 성능을 유연하게 늘릴 수 있습니다.
- HA 설정: VM의
Restart on boot설정과 Proxmox HA 그룹을 활용하여 서비스 연속성을 보장합니다.
7. 결론
Proxmox VE와 Ceph을 활용한 3노드 HCI 클러스터는 비용 효율적이면서도 강력한 가상화 및 분산 스토리지 솔루션을 제공합니다. 이 가이드라인을 따라가면 기본적인 HCI 환경을 성공적으로 구축할 수 있을 것입니다. 하지만 실제 운영 환경에서는 끊임없는 모니터링, 성능 최적화, 백업 전략 수립이 중요하며, Ceph과 Proxmox VE의 공식 문서를 통해 더 깊이 있는 지식을 습득하는 것을 권장합니다. 안정적인 HCI 환경 구축으로 여러분의 IT 인프라를 더욱 견고하게 만드시길 바랍니다!