일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 샤샤자
- bonding
- cephadm
- nmcli
- yum
- rbd mapping
- DELL N Switch
- centos 7
- VMWare
- 갤럭시
- eql
- OpenStack
- cephadm 배포
- centos8
- GDisk
- WebConsole
- Local Repository
- parted
- centos7
- selinux
- CRS #레드비
- Windows NTP
- cockpit
- packstack
- 레펜타
- ceph 테스트 환경
- firewalld
- 갤럭시 피시본
- 17.2.8
- Today
- Total
딜미의 잡다한 IT 이야기...
2025년 Ceph 구성 및 HA 테스트 과정 기록 #2 Ceph 구성 후 RBD 생성 및 클라이언트 연동 본문
Ceph에서는 다음과 같은 객체(Object), 블록(Block), 파일(File) 등 다양한 형태의 데이터를 제공하고 있다.
오늘은 그 중 RBD 생성 및 연동 방법에 대해 기록을 남긴다.
1. RBD를 위한 Pool생성
Pool 이름을 testrbd로 지정하여 아래의 명령어로 생성
ceph osd pool create [Pool Name] 128 <= 여기서 128은 적절한 PG Number를 의미
예시)
ceph osd pool create testrbd 128
2. RBD 생성
Pool 생성 후 원하는 크기의 RBD 이미지 생성 앞서 구성된 내용으로 물리적 용량 300GB OSD로 선언되어 있슴
여기서는 10GB 크기의 RBD를 생성하며 이미지명 지정이 필요하여 testblock로 명명하여 생성합니다.
예시)
cephadm shell를 사전에 실행하여 컨테이너 내부에서 아래와 같이 명령어를 실행
root@ceph-node1:~# cephadm shell
Inferring fsid bb0ab296-0473-11f0-bcfa-6ba4b7f85658 Inferring config /var/lib/ceph/bb0ab296-0473-11f0-bcfa-6ba4b7f85658/mon.ceph-node1/config Using ceph image with id '259b35566514' and tag 'v17' created on 2024-11-26 00:45:38+0000UTC
quay.io/ceph/ceph@sha256:a0f373aaaf5a5ca5c4379c09da24c771b8266a09dc9e2181f90eacf423d7326f
내부 컨테이너 진입 후 아래의 명령어로 RBD 이미지 생성
root@ceph-node1:/# rbd create testblock --pool rbd --size 10240
--size의 단위는 MB입니다.
출력화면 예시)
root@ceph-node1:~# ceph osd pool create testrbd 128
Inferring fsid bb0ab296-0473-11f0-bcfa-6ba4b7f85658
Inferring config /var/lib/ceph/bb0ab296-0473-11f0-bcfa-6ba4b7f85658/mon.ceph-node1/config
Using ceph image with id '259b35566514' and tag 'v17' created on 2024-11-26 00:45:38 +0000 UTC
quay.io/ceph/ceph@sha256:a0f373aaaf5a5ca5c4379c09da24c771b8266a09dc9e2181f90eacf423d7326f
pool 'testrbd' created
root@ceph-node1:~# cephadm shell
Inferring fsid bb0ab296-0473-11f0-bcfa-6ba4b7f85658
Inferring config /var/lib/ceph/bb0ab296-0473-11f0-bcfa-6ba4b7f85658/mon.ceph-node1/config
Using ceph image with id '259b35566514' and tag 'v17' created on 2024-11-26 00:45:38 +0000 UTC
quay.io/ceph/ceph@sha256:a0f373aaaf5a5ca5c4379c09da24c771b8266a09dc9e2181f90eacf423d7326f
root@ceph-node1:/# rbd create testblock --pool testrbd --size 10240
root@ceph-node1:/# ceph -s
cluster:
id: bb0ab296-0473-11f0-bcfa-6ba4b7f85658
health: HEALTH_WARN
1 pool(s) do not have an application enabled
services:
mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3 (age 8d)
mgr: ceph-node2.azucaz(active, since 11d), standbys: ceph-node3.lwspwv, ceph-node1.gcboqu
mds: 1/1 daemons up, 4 standby
osd: 6 osds: 6 up (since 11d), 6 in (since 2w)
data:
volumes: 1/1 healthy
pools: 5 pools, 409 pgs
objects: 7.04k objects, 20 GiB
usage: 63 GiB used, 237 GiB / 300 GiB avail
pgs: 0.244% pgs not active
408 active+clean
1 peering
io:
client: 767 B/s rd, 767 B/s wr, 0 op/s rd, 0 op/s wr
root@ceph-node1:/#
위 명령어로 RBD 이미지를 생성하게 되면 "1 pool(s) do not have an application enabled" 경고 메세지가 발생되는 것이 확인됨
생성된 Pool에 RBD 애플리케이션이 활성화 되어있지 않아서 발생되는 메세지 아래의 명령어 실행하여 해당 메세지를 클리어
예시)
ceph osd pool application enable [Pool Name] rbd
ceph osd pool application enable testrbd rbd
출력예시)
root@ceph-node1:/# ceph osd pool application enable testrbd rbd
enabled application 'rbd' on pool 'testrbd'
root@ceph-node1:/# ceph -s
cluster:
id: bb0ab296-0473-11f0-bcfa-6ba4b7f85658
health: HEALTH_OK
services:
mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3 (age 8d)
mgr: ceph-node2.azucaz(active, since 11d), standbys: ceph-node3.lwspwv, ceph-node1.gcboqu
mds: 1/1 daemons up, 4 standby
osd: 6 osds: 6 up (since 11d), 6 in (since 2w)
data:
volumes: 1/1 healthy
pools: 5 pools, 379 pgs
objects: 7.04k objects, 20 GiB
usage: 63 GiB used, 237 GiB / 300 GiB avail
pgs: 379 active+clean
root@ceph-node1:/#
3. RBD 디바이스 클라이언트에 연결(맵핑)
사전 확인사항
- ceph.conf 파일:
클라이언트는 클러스터의 모니터 주소가 포함된 ceph.conf 파일과 적절한 인증 정보(예: keyring)를 가지고 있어야 합니다. - 네트워크 접근성:
클라이언트가 Ceph 클러스터의 클라이언트 네트워크(예: 모니터 포트 6789 등)에 접근할 수 있으면 됩니다. 만약 클러스터와 클라이언트가 서로 다른 네트워크에 있다면, 방화벽이나 라우팅 정책으로 인해 통신이 차단되지 않는지 확인해야 합니다. - 필요 패키지:
클라이언트 시스템에는 ceph-common 등 Ceph 클라이언트 도구가 설치되어 있어야 합니다.
클라이언트에 ceph-common 설치
예시)
sudo apt install ceph-common
cephadm 구성 시 생성된 ceph cluster IP 정보를 /etc/hosts에 등록(scp로 ceph 구성 및 key파일 복사시 사용)
user@s3-client:~$ sudo cat /etc/hosts
[sudo] password for user:
127.0.0.1 localhost
127.0.1.1 s3-client
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.10.10.1 ceph-node1
10.10.10.2 ceph-node2
10.10.10.3 ceph-node3
scp 명령어 사용하여 ceph.conf 및 ceph.client.admin.keyring 파일 클라이언트에 복사
아래는 복사된 예시) 복사 경로는 /etc/ceph 경
user@s3-client:/etc/ceph$ sudo cat ceph.conf
# minimal ceph.conf for bb0ab296-0473-11f0-bcfa-6ba4b7f85658
[global]
fsid = bb0ab296-0473-11f0-bcfa-6ba4b7f85658
mon_host = [v2:192.168.1.115:3300/0,v1:192.168.1.115:6789/0] [v2:192.168.1.116:3300/0,v1:192.168.1.116:6789/0] [v2:192.168.1.117:3300/0,v1:192.168.1.117:6789/0]
user@s3-client:/etc/ceph$ sudo cat ceph.client.admin.keyring
[client.admin]
key = AQCVPNpnI4amBhAAA5TWu+kNhTmi5qCfOXnb4w==
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
user@s3-client:/etc/ceph$
사전에 생성된 정보 Pool Name, RBD Name(testrbd, testblock)를 사용하여 맵핑
예시)
user@s3-client:~$ sudo rbd map testblock --pool testrbd --cluster ceph
/dev/rbd0
4. 파일시스템 생성 및 마운트
맵핑된 RBD 디바이스에 원하는 파일시스템 생성 후 마운트 진행
여기서는 xfs로 포맷하여 파일시스템 생성
예시)
sudo mkfs.xfs /dev/rbd0
마운트 포인트 생성 및 마운트
data명으로 포인트 생성하여 포맷된 파일 시스템 마운트
예시)
sudo mkdir -p /data
sudo mount /dev/rbd0 /data
클라이언트 부팅 시 자동 마운트가 필요하다면 /etc/fstab에 해당 방목 추가
RBD 디바이스 연결끊기가 필요하면 아래의 명령어 실행
예시)
sudo umount /data
sudo rbd unmap /dev/rbd0
오늘은 여기까지 다음은 클라이언트에 S3 연동을 진행하겠습니다.
'Storage > 구성자료' 카테고리의 다른 글
2025년 Ceph 구성 및 HA 테스트 과정 기록 #1 Cephadm 배포(Ubuntu 22.04) (0) | 2025.04.08 |
---|---|
Centos7에 NextCloud16 설치 하기 (0) | 2019.08.29 |
DELL PS EQL 패스워드 리셋 방법 (0) | 2017.03.29 |