Ceph pool 생성, client 마운트, 볼륨 크기 조절, pool 삭제, 이름변경, 복제, image 삭제
1. 볼륨 스토리지 나누기
(ceph node 에서)
(root 계정으로 진행)
호스팅사에서 서비스 구성시 위와 같이 통파티션을 제공해 줄 수는 없으므로, 블록단위로 용량을 쪼개서
각 Client Server 들에게 제공할 필요가 있습니다.
블록을 생성하고 용량을 지정하는 방법은 아래와 같습니다.
(현재 생성된 pool 확인)
# ceph osd lspools
0 rbd,
(쉽게보기)
# ceph osd lspools |sed -e 's/,/\n/g'
# ceph osd pool create client01 128 128
(의미) ceph osd pool create {pool-name} {pg-num} {pgp-num}
기본 pg_num 을 정하는 기준은 아래를 권장합니다.
osd 가 5개 미만일 경우 pg_num 128,
5~10 개는 pg_num 512,
10~50 개는 pg_num 4096 이 적절 합니다.
50개 이상은 pgcalc 계산을 참조하여 설정하면 됩니다.
현재 테스트 문서에서는 osd 가 2개 이므로 pg_num 128 로 설정하여 진행합니다.
# ceph osd pool set-quota client01 max_bytes 4G // pool 용량 제한
# rbd create client01/vm_disk01 --size 4G --image-feature layering // volume 을 1개만 생성한다면 최대용량 설정
# ceph osd pool get-quota client01 // 용량 제한 확인
* 참고
-------------------------------------
풀 안에 볼륨 확인
# rbd list client01
볼륨 정보 보기
# rbd info client01/vm_disk01
-------------------------------------
아래 박스 안의 명령은 ceph-node 에서 해도 되고, ceph-client 에서 해도 됩니다.
ceph-client 에서 할 경우 ceph-node 에서 아래와 같은 명령이 선수행 되어야 합니다.
* ceph-node 에서 수행시
- 장점 : 관리자가 용량을 정해줄수 있음
- 단점 : client 에게 서비스 하기 위해 nfs, samba, iscsi 같은 데몬이 추가로 필요함
* ceph-client 에서 수행시
- 장점 : client 에서 직접 스토리지 용량 일정양을 mount 해서 이용이 가능함
- 단점 : client 가 용량 증설, 다른 client 의 pool 을 mount 할 수 있음
(ceph-node)
# su - cephuser
$ cd ceph
$ ssh-copy-id cephuser@ceph-client
$ ceph-deploy install ceph-client
$ ceph-deploy admin ceph-client
(ceph-client) 로컬 맵 생성 # rbd map client01/vm_disk01 // client 서버를 리부팅 했다면 이 명령을 수행해야 이용할 준비가 되고, 로컬 맵 확인 (맵 생성 후 확인가능) # rbd showmapped id pool image snap device 0 client01 vm_disk01 - /dev/rbd0 파일시스템 생성 및 마운트 # mkfs -t xfs -f /dev/rbd0 # mkdir /data # mount /dev/rbd0 /data // client 서버를 리부팅 했다면 map 수행후 mount 를 해야 합니다. 여기까지하면 df -h 명령으로 ceph node 에 4G 파티션이 디렉토리로 마운트된것이 확인됩니다. /dev/rbd0 4.0G 33M 4.0G 1% /data |
2. 볼륨 크기 조절
1) 증가
(기존 4G에서 8G로 늘리기) ★사용하던 데이타는 그대로 보존됩니다.
(ceph node 에서)
$ ceph osd pool set-quota client01 max_bytes 8G // 본 명령을 생략하면 늘어난 용량이 꽉찰 경우 '용량 제한' 메세지 없이 콘솔이 먹통 됩니다.
$ rbd resize client01/vm_disk01 --size 8G // 실제 사용가능한 용량을 늘려주는 부분
(ceph-client 에서)
# xfs_growfs /data
df -h 명령으로 증가된것 확인
/dev/rbd0 8G 34M 8G 1% /data
/etc/fstab 파일을 설정하여 부팅시 자동 마운트되게 합니다.
/dev/rbd0 /data xfs defaults,noatime,netdev 0 0
고객이 마운트하여 사용할수 있게 umount /data 다시 실행..
(이부분은 ceph node 에서 마운트 해놓는건지, umount 상태로 놔두는지 확인해봐야함)
2) 축소
볼륨 크기 축소 (기존 8G에서 4G로 축소) 시에, 반드시 --allow-shrink 옵션을 주어야 합니다.
# rbd resize client01/vm_disk01 --size 4G --allow-shrink
# xfs_growfs /data
5G 데이타 사용중 볼륨을 8G 에서 4G 로 줄일 경우, 데이타는 손실없이 존재하며 더 이상 쓰기가 되지 않습니다.
실 데이타 삭제시 최대 한도도 같이 4G 까지 줄어듭니다. (좀 더 확인 필요)
3. pool 삭제
pool 삭제시 그 안에 생성한 여러 volume들은 함께 삭제가 됩니다.
# ceph osd pool delete {pool-name} {pool-name} --yes-i-really-really-mean-it
이와 같이 실수로 삭제하는것을 방지하기 위하여 pool 이름을 두 번 씁니다.
또한 명령을 인지하고 있다는 옵션(문장)도 적어줘야 합니다.
[이미지만 삭제하려는 경우]
# rbd rm {pool-name}/{image-name}
스냅샷이 존재해서 삭제가 되지 않는 이미지는 아래처럼 스냅샷을 모두 제거 후 삭제시도를 합니다.
# rbd --pool {pool-name} snap purge {image-name}
4. pool 이름 변경
# ceph osd pool rename {current-pool-name} {new-pool-name}
5. pool 복제
# rados cppool {current-pool-name} {new-pool-name}
'리눅스 > Ceph' 카테고리의 다른 글
Ceph 가상 계정 생성후 pool 할당 해주기 (0) | 2016.08.02 |
---|---|
Ceph Document URL (0) | 2016.07.26 |
[Ceph 에러] rbd: sysfs write failed rbd: map failed: (6) No such device or address (0) | 2016.07.19 |
Ceph osd node 추가 및 제거 (0) | 2016.07.19 |
Ceph 10.2.0 설치 on Ubuntu (jewel 버전) (0) | 2016.07.19 |