[Ceph] Ceph 설치하기
앞선 포스팅에서 분산 스토리지 플랫폼 Ceph에 대해 설명한 적이있다.
이번 포스팅에서는 Ceph의 설치에 대해 알아보고자 한다.
Ceph 설치 요구 사항
- 분산 스토리지를 위해 최소 3개의 노드가 필요
- 각 노드에 다음 패키지 설치 필요
- CentOS/Ubuntu 등 Linux 운영체제
- ceph-deploy 또는 cephadm (설치 도구)
- Python3 (필요 시 추가 설치)
Ceph 설치 과정
A. Cephadm 설치
Chepadm은 컨테이너 기반 배포를 지원하는 최신 설치 도구다.
1. Cephadm 설치
Ceph 패키지에 대한 GPG키를 가져오고, 이를 신뢰 가능한 키로 시스템에 등록한다.
curl --silent --remote-name https://download.ceph.com/keys/release.asc
gpg --no-default-keyring --keyring ./ceph-release.gpg --import release.asc
gpg --keyring ./ceph-release.gpg --export > /usr/share/keyring/ceph-release.gpg
2. Cephadm 다운로드 및 실행
cephadm은 Ceph 설치 및 관리를 위한 실행파일이다. Ceph의 특정 릴리스(quincy)를 사용하는 repository를 추가한다.
curl -o cephadm https://raw.githubsercontent.com/ceph/ceph/master/src/cephadm/cephadm
chmod +x cephadm
./cephadm add-repo --release quincy
./cephadm install
3. 관리 클러스터 생성
cephadm bootstrap \
--mon-ip <관리 노드 IP> \
--cluster-network <클러스터 네트워크>
B. 노드 추가
다른 스토리지 노드를 클러스터에 추가하려면 다음 명령어를 사용한다.
ceph orch host add <호스트이름> <호스트IP>
Ceph 사용 예시
🧱 블록스토리지 (RBD)
A. RBD 풀 생성
Ceph 클러스터는 데이터를 저장하기 위한 논리적인 단위로 풀(pool)을 사용한다.
아래 명령어에서 127은 풀의 CRUSH 매핑을 위한 Placement Group(PG) 수이다.
ceph osd pool create rbd_pool 128 128
ceph osd pool application enable rbd_pool rbd
B. RBD 디스크 생성 및 마운트
1. RBD 볼륨 생성
rbd create rbd_pool/my_disk --size 1024
2. RBD 디스크를 로컬에 연결
RBD 볼륨을 로컬 시스템의 `/dev/rbd0` 장치로 매핑하여, 로컬 디스크처럼 사용할 수 있게한다.
rbd map rbd_pool/my_disk
C. 파일시스템 생성 및 마운트
매핑된 RBD 디스트에 파일시스템(ext4)을 생성하고 경로에 마운트한다.
mkfs.ext4 /dev/rbd0
mount /dev/rbd0 /mnt/my_ceph_disk
해당 과정이 끝나면 일반적인 로컬 디스크처럼 데이터를 저장할 수 있다.
💾 파일스토리지 (CephFS)
A. CephFS 볼륨 생성
CephFS는 POSIX 호환 파일 시스템으로, 데이터를 OSD 풀에 저장하고, MDS가 메타데이터를 관리한다.
ceph fs volume create cephfs
B. 클라이언트에서 마운트
클라이언트가 CephFS를 사용하기위해 MON 서버와 통신해 파일 시스템을 마운트한다.
mount -t ceph <mon_ip>:6789:/ /mnt/cephfs \
-o name=<user>,secret=>secret_key>
📩 오브젝트 스토리지
A. RADOS Gateway 사용자 생성
Ceph의 오브젝트 스토리지는 S3 호환 API를 지원하며, Gateway 사용자 계정을 생성한다.
해당 계정은 S3 클라이언트를 통해 Ceph 데이터에 액세스 할 수 있다.
radosgw-admin user create \
--uid="testuser" \
--display-name="Test User" \
--email="test@example.com"
B. AWS CLI로 S3 버킷 생성 및 파일 업로드
1. S3 버킷 생성
Ceph의 RGW에 S3 방식으로 연결하여 버킷을 생성한다.
aws s3 -endpoint-url http://<Ceph Gateway URL>:<Port> mb s3://my-bucket
2. 파일 업로드
데이터를 S3 버킷에 업로드한다. 업로드된 파일은 Ceph 클러스터 내에서 복제 및 분산 저장된다.
aws s3 --endpoint-url http://<Ceph Gateway URL>:<Port> cp myfile.txt s3://my-bucket/
참고
'💡 etc > Infra' 카테고리의 다른 글
[Ceph] 분산 스토리지 플랫폼 : Ceph (0) | 2025.01.21 |
---|---|
[MinIO] MinIO (1) | 2024.11.27 |
[etc] STRIDE 위협 모델 (0) | 2024.10.22 |
[etc] VPN (Virtual Private Network) (0) | 2024.02.20 |
[etc] 가상환경과 컨테이너 비교 (0) | 2023.08.23 |