이번 편에서는 지금까지 구축해놓은 2-3대의 Ceph 클러스터를 어떻게 활용할 수 있는지에 대해서 알아보도록 한다. 구축을 하기는 했는데, 과연 어떻게 자료를 저장을 할 수 있는지, 다른 서버에 어떻게 붙이고, 접속은 어떻게 하는지에 대해서 몇가지 소개를 하도록 한다. 역시 마찬가지지만 글쓴이가 해본 것들에 대해서만 소개를 해드리며, Hadoop과 오픈스택 노바 볼륨으로 붙이는 건 환경상 제외한다. 오픈스택에 통합시키는건 꼭 보여드리고 싶었는데, 매뉴얼을 작성하기 위해 devstack을 구축하고 예제를 위한 인스턴스를 생성하고… 상상만 해도 이건 온라인 매뉴얼이 아니라 책이 되어가는 느낌이다. 참고로 말씀드리면, 오픈스택에 노바 볼륨으로 통합시키는건 아주 쉽다. 인터넷에 비록 영어이긴 하지만 잘 정리해놓은 블로그들이 많다. 꼭 필요하신 분들은 그것을 참고하시고 성공적으로 잘 되면 글쓴이처럼 한 편의 매뉴얼 작성을 부탁드린다. 본 매뉴얼에 붙여나가다보면 정말 한 권의 책이 되지않을까 싶다.
앞으로 소개를 해드릴 내용은,
1. Mount 명령어를 이용한 Ceph FS 연결
2. RADOS Gateway를 이용한 Amazon S3 및 OpenStack Swift API 사용법
정도가 되겠다. 1번은 간단하지만 2번은 아주 간단하지만은 않다. 개인적으로 아직 풀리지 않는 의문도 좀 있다.
1. Mount 명령어를 이용한 Ceph 파일시스템 연결
Mount 명령어를 이용한 Ceph 파일시스템을 연결하는 방법이 가장 단순하고 간편하다. Ceph의 common 패키지가 필요하므로, 앞서 2번째 편에서 설명했던 패키지 소스를 추가하여 ceph 패키지를 설치한다. mount 명령어 사용법은 다음과 같다.
mount -t ceph Ceph_모니터노드_주소:6789:/ 마운트할_경로 -vv -o name=admin,secret=키링_패스워드
Ceph 모니터 노드의 주소란, /etc/ceph/ceph.conf에 [mon.a] 섹션에 지정된 노드의 주소를 의미한다. 본 매뉴얼에서는 Ceph 노드에서 모니터와 메타데이터 서버를 모두 담당하기로 했으니, ceph 노드의 IP 주소를 적으면 되겠다. 만약 모니터 노드가 2개 이상이시면 쉼표를 붙여서 추가시키면 된다.
얘) 10.211.55.24:6789,10.211.55.25:6789,10.211.55.26:6789:/
마운트할 경로는 알아서 정하시면 되겠다. 여기서는 /mnt로 한다.
키링 패스워드란, /etc/ceph/ceph.keyring에 적힌 패스워드를 의미한다. 따라서, 글쓴이의 명령어를 적으면 다음과 같이 된다.
$ mount -t ceph 10.211.55.24:6789:/ /mnt -vv -o name=admin,secret=AQCDHopRoE74CRAAtOcubIrEM9/6r+4n09cT1g==
성공적으로 연결됐을시 다음과 같은 메시지가 나오게 된다.
parsing options: rw,name=admin,secret=AQCDHopRoE74CRAAtOcubIrEM9\/6r+4n09cT1g==
mount 명령어와 df 명령어로 확인해보자.
$ mount
10.211.55.24:6789:/ on /mnt type ceph (name=admin,key=client.admin)
$ df -m
10.211.55.24:6789:/ 185453 16488 168965 9% /mnt
30 기가바이트짜리 하드디스크가 2개 달린 OSD노드가 총 3개이므로 30x6 = 180기가바이트. 맞게 표시된다. 테스트 머신을 하나 더 구성할 수 있거나 주변에 사용 가능한 리눅스 컴퓨터가 있다면 ceph-common 패키지를 설치하고 마운트를 또 해보자. 복수의 컴퓨터에서 마운트가 가능하다. 오브젝트 스토리지이므로 분명 파일의 입출력 속도는 빠를 것이다. 글쓴이도 아직 제대로된 테스트를 해보지 못해서 확실히는 모르겠다.
다음 편에서...