관련 포스팅 목록

Ceph, RADOS - pool list, create, delete - http://ngee.tistory.com/758

Ceph, RADOS - object list, put, and get - http://ngee.tistory.com/781

Librados Python - Pool List, Create, Delete -  http://ngee.tistory.com/759

Librados Python - Object Input, Output  - http://ngee.tistory.com/760


일단 참고 URL 부터 

architecture - http://docs.ceph.com/docs/master/architecture/

rados object storage utility - http://ceph.com/docs/master/man/8/rados/




한달도 지난 포스팅에서 Ceph, RADOS - pool list, create, delete에 대해서 테스트 해봤어요.

무려 한달이 지난 시점에서 RADOS 명령어를 통해 object를 put하고 get하는 것을 테스트해봅니다.


주로 Librados를 Python으로 사용하기 때문에 RADOS 명령어가 딱히 필요한 상황이 아니였는데요.

이번에 작업할 것이 생겨서 활용해보기 위해 테스트해보고 그것을 정리해두려고 합니다. 맨날 까먹으니깐요. 


이번 포스팅에 사용할 pool의 이름은 testpool입니다. 

아래에서 testpool을 계속 사용합니다. 




1. object list

  - 일단 명령어는 rados ls -p poolname 입니다. 저는 testpool을 사용하기 때문에 아래와 같이 입력하면 결과를 확인할 수 있습니다.


    command : rados ls -p testpool

   

    언제 올려뒀는지는 몰라도 실험하다가 2개의 object를 저장했나봐요.


2. object insert, put 

  - 이것도 명령어부터 알아보면 rados -p poolname put objectName insertFileName 입니다.

    조금 복잡해보이지만 하나씩 살펴보면 다음과 같습니다. 

    -p poolname는 rados 명령어를 통해 특정 pool에 작업을 수행하기 위해서 사용되는 옵션입니다. 

    put 은 오브젝트를 입력하겠다는 명령어이구요.

    put 뒤에 순서대로 objectName insertFileName을 작성하시면 됩니다.  여기서 objectName은 insertFileName과 동일할 필요는 없죠.

    pool에 저장될 오브젝트의 이름을 작성한다고 생각하면 되겠습니다. 즉 이 objectName으로 객체를 검색해서 가져올 수 있는거죠.

    insertFileName은 입력할 실제 파일이름입니다. 


    command : rados -p testpool put obj1 testFile   

   


3. object get

  - put과 거의 동일합니다. 아래와 같은 명령어, 옵션을 통해 pool에 저장되어 있는 object를 가져올 수 있죠.

    rados -p poolname get objectName outputFileName 

    put에서 get으로 변경되었구요. insertFileName이 아니라 outputFileName이 됩니다.


    예로 testpool에 저장되어 있는 obj1 객체를 output_object 라는 파일이름으로 저장하려면 다음과 같습니다.

    command : rados -p testpool get obj1 output_object

   


+ Recent posts