Ceph 가상 계정 생성후 pool 할당 해주기
(ceph node 에서)
# su - cephuser
$ cd ~/ceph
$ ceph-authtool ceph.client.sysdocu.keyring --create-keyring --name client.sysdocu --gen-key --set-uid 458 --cap mon 'allow profile simple-rados-client' --cap osd 'allow rwx pool=sysdocu-pool'
// ceph.client.sysdocu.keyring : 계정 정보를 출력한 파일 (아래 명령으로 서버에 인식 시킨 후, 삭제해도 됨)
// sysdocu : 사용자명
// --set-uid 458 형식의 옵션으로 사용자 번호를 매기면, 추후 계정 생성 순서를 알 수 있게 됩니다. (생략 가능)
// [참고] 사용중인 계정 정보 (사용자명, key, 권한) 출력 : $ ceph auth list
$ ceph auth import --in-file ceph.client.sysdocu.keyring
// 생성된 사용자와 키 파일을 서버에 인식시키는 절차입니다. 명령 이후에 파일을 삭제해도 됩니다.
$ ceph auth get client.sysdocu
// 시스템에 잘 들어갔는지 정보 출력해 봅니다.
$ ceph osd pool create sysdocu-pool 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 sysdocu-pool max_bytes 100M
// 참고 : 용량 1G 를 줄 경우 $((1024 * 1024 * 1024)) 이렇게 계산식으로 정확하게 입력이 가능합니다.
$ rados put --pool sysdocu-pool GROUP /etc/group
// 왜 있는지 모름... 테스트 할때는 없어도 됐음. 추후 삭제 예정..
생성된 사용자 keyring 파일과 ceph 설정 파일을 client 서버로 복사합니다.
// 잠깐!
아래 두 개의 파일을 client 에게 전송시 client 가 rbd pool 및 image 를 생성하거나 용량을 늘려 사용이 가능하므로
client 에게 마운트 권한만 부여하려면 아래 두 줄을 생략하도록 합니다. (아래 계속 설명)
$ scp ceph.client.sysdocu.keyring root@ceph-client:/etc/ceph/
$ scp ceph.conf root@ceph-client:/etc/ceph/
pool 내에 image 생성하기
$ rbd --pool sysdocu-pool create --size 100M vda --image-feature layering
$ rbd --pool sysdocu-pool info vda
(ceph-client 에서)
# cd /etc/ceph/
# rbd --name client.sysdocu --keyring ceph.client.sysdocu.keyring --pool sysdocu-pool map vda
// 보안상 두 개의 파일을 가져오지 않았다면, 아래 '참고' 부분 맨 마지막 명령줄을 사용하면 됩니다.
// 사용자 계정 및 key 확인 명령 : (ceph node 에서) $
ceph auth list
# mkfs -t xfs -f /dev/rbd0
# mkdir /data
# mount /dev/rbd0 /data
# df -h
* 참고
실 서비스에서는 client 가 admin keyring 파일이나 다른 client keyring 파일을 가지고 있으면, (id 와 key를 안다면)
rbd 명령을 통해 pool 을 생성한다던지, pool 사이즈를 마음대로 늘릴 수 있게 됩니다.
이를 방지하려면 ceph node 에서 ceph-client 에 전송했던 keyring 파일은 삭제를 하고, rbd 명령으로 마운트할때 아래와 같이 옵션으로 key 를 사용하도록 합니다. 그리고 명령줄은 쉘스크립트로 만들어 암호화(바이러니) 시키면 됩니다.
예) rbd --name client.sysdocu --key CRXJ3UxEBAAFxLI1hMRop6AVLa3wr6ruQ== --pool sysdocu-pool info vda
또한 client 서버에 ceph.conf 까지 보관하지 않으려면 아래 옵션을 추가 하면 됩니다.
예) rbd --mon_host 192.168.10.2 --name client.sysdocu --key CRXJ3UxEBAAFxLI1hMRop6AVLa3wr6ruQ== --pool sysdocu-pool info vda
여기에 한가지 팁을 붙이자면, mapping 할때 화면에 conf 파일 및 keyring 파일이 없다는 로그가 출력되므로, 아래와 같은 옵션을 주어 출력이 되지 않도록 할 수 있습니다.
예) rbd --mon_host 192.168.10.2 --conf /dev/null --keyring /dev/null --name client.sysdocu --key CRXJ3UxEBAAFxLI1hMRop6AVLa3wr6ruQ== --pool sysdocu-pool info vda
[원문] http://dachary.org/?p=2930
[수정] sysdocu
'리눅스 > Ceph' 카테고리의 다른 글
Ceph 백업 (스냅샷 생성, 확인, 복구, 삭제) (0) | 2016.08.08 |
---|---|
CephFS 통파티션 생성과 마운트, client 별 디렉토리 생성과 마운트 (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 pool 생성, client 마운트, 볼륨 크기 조절, pool 삭제, 이름변경, 복제, image 삭제 (0) | 2016.07.19 |