ceph는 scalable하게 무정지로 디스크 용량을 추가,삭제가 가능하다고 한다.
실제로 그런지 테스트 해봤다.
테스트 환경
기존의 ceph는 AWS위에 2대 클러스터로 구성(ceph1 ceph2)
각각 30GB씩 osd추가한 상태
df -Th 결과
ceph-deploy osd list ceph1 and ceph2
기존에 추가한 디바이스가 있는것을 확인
osd 추가해주기
AWS콘솔에서 이하 볼륨을 생성해서 ceph1,ceph2인스턴스에 attach해줌
이하 커맨드 실행
df -Th결과
추가하자마자 바로 용량이 늘어남!
위 결과는 ceph cluster를 마운트한 어느 서버에서도 같은 결과를 확인할 수 있었다.
osd list
ID2의 /dev/xvdf가 생긴걸 확인
ceph2도 추가해보자
ID 3의 /dev/xvdf가 추가된걸 확인
df -Th결과
추가한만큼 바로 용량이 늘어남을 확인
ceph -w 를 통해서도 확인가능
추가한 osd를 삭제하는 방법
서두에 ceph에서는 자유롭게 디스크의 추가/삭제가 가능하다고 했는데
삭제를 해본결과 추가에 비해서 그렇게 자유롭지는 않다.
삭제 대상의ID,NAME확보
삭제할 대상의 id,name을 먼저 확인해준다.
ceph2의 /dev/xvdf 디바이스를 삭제한다고 하면
ID와 Name부분이다.
ID와Name은 primary키로 중복된 값은 존재하지 않는다.
삭제한osd가 있는 서버로 이동
여기서 부터는 ceph-deploy가 설치된 서버가 아닌 해당 디스크가 있는 서버로 이동해서 작업해야 한다.
해당osd 프로세스정지
클러스터상에서 해당 디스크를 제외
CRUSH map삭제
authentication key삭제
최종osd삭제 커맨드
까지 끝나면 삭제완료
ceph list다시 확인
ID,Name이None으로 바뀌어있는걸 확인
정리&느낀점
ceph는 master,standby 관계가 아니므로 서버별로 디스크 용량을 따로 추가가 가능
해보지 않았지만 각자 다른 용량을 추가해도 문제없을듯
볼륨 추가만해주면 ceph-deploy커맨드로 간단히 용량추가가 가능하다.
삭제는 조금 귀찮은 작업이 필요하다.
그외 기존의 볼륨을 추가하려면?
위에서는 새로운 볼륨을 추가해서 osd에 더해줬는데
기존의 볼륨 디스크 크기를 늘려주는 방법은 있을까?
찾아본 결과 디폴트로는 없는거 같고,ceph lvm을 도입하면 가능할듯하다.(미검증)
관련 도큐멘트
http://docs.ceph.com/docs/master/rados/deployment/ceph-deploy-osd/
http://docs.ceph.com/docs/master/rados/operations/add-or-rm-osds/#removing-osds-manual