Ceph pool 생성, client 마운트, 볼륨 크기 조절, pool 삭제, 이름변경, 복제, image 삭제

리눅스/Ceph|2016. 7. 19. 11:53
반응형

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}



반응형

댓글()