OpenStack Class2014.07.09 14:42

안녕하세요~!! 


오랜만에 또 글을 쓰는것 같습니다. 장마철이 다가왔습니다. 태풍 너구리가 오고 있다는 기상 뉴스를 봤는데 창밖의 바람이 심상치가 않습니다. 모두들 장마에 조심하시길 바래요~~~ 


그럼, 이제 오픈스택 이야기를 좀 해 볼까요? 

오늘은 지난 시간에 이어 Swift에 대해 정리를 한번 해 볼까 합니다.

제가 오픈스택을 처음 접했을 때 했던 업무가 바로 Swift 설치였습니다. 그때 설치가 잘 안되서 우분투를 몇번을 지웠다가 깔았는지 아직도 기억이 생생합니다~!! 




Logical Architecture로 알아보는 Swift


Nova때와 마찬가지로 논리 아키텍처 중 Swift만 크게 따로 확대를 시켜 보도록 하겠습니다. 그러면 아래와 같은 특징이 있다는 것을 알수가 있습니다.


- 오픈스택 Swift는 swift-proxy, account, container, object로 구성됩니다. 

- Swift-proxy는 account, container, object를 관리합니다. 

- Account, Container는 DB로 데이터가 관리되며, Object는 저장공간에 직접 저장되는 방식으로 설계 되어 있습니다. 

- Swift-proxy는 OpenStack의 Object API를 제공합니다.

- 사용자는 API를 통하여 데이터를 저장하거나 다운로드 받을 수 있습니다. 




Swift는 무엇으로 구성되나!


아래 그림은 오픈스택 Swift를 처음 접했을때 아~~ 스위프트는 이렇게 생긴거구나! 하고 그렸었던 그림입니다. 

Swift 크게 아래와 같이 4개의 기능으로 이루어집니다.


Proxy 서버는 여러개의 Storage 노드를 관리하며 사용자 인증을 담당합니다. 근래에는 Keystone을 주로 이용하며, Proxy 서버에 함께 설치가 되기도 합니다. Storage 노드에는 아래 보이는 Account, Container, Object 서버가 실행되며 실제 메타데이터(정보를 저장하는) 파일이나 Object에 해당하는 데이터 파일이 저장됩니다.


- Authentication : 사용자 인증을 담당하는 기능으로 Swauth가 있습니다. 그런데 근래에는 Keystone을 주로 이용합니다.

- Account : 사용자 계정을 관리합니다.

- Container : 저장 공간의 단위입니다.

- Object : 실 데이터입니다.



Ring에 대하여


Swift 역시 Nova와 마찬가지로 여러대의 스토리지 노드를 가지고 있습니다. 그리고, 이 스토리지 노드 중 하나가 손상이 되더라도 데이터를 잃지 않도록 데이터 복제 프로세스가 함께 실행이 됩니다. 그리고, 여러대의 스토리지 노드들은 자신이 관리하고 있는 데이터를 서로 공유하기 위해 Ring이라는 이름의 파일로 어떤 노드가 스토리지 노드인지를 인지합니다. 


그래서 Ring 파일에는 스토리지 디바이스 정보들이 존재를 하는데 그 정보에 대한 내용이 바로 아래 그림과 같습니다. Ring 파일은 Proxy 노드에서 생성하여 모든 스토리지 노드가 동일하게 가지고 있습니다.





Swift와 Keystone의 관계


예전에는 Swift의 인증을 swauth라는 프로그램을 설치하여 인증을 할 수 있도록 하였으나, 근래에는 Keystone을 이용하여 인증을 합니다. Keystone에는 테넌트, 사용자, 롤이 존재합니다. 그리고, Swift와는 아래와 같이 연동이 됩니다. 


아래 그림을 보면 

- 관리자는 사용자와 컨테이너를 생성, 삭제할 수 있으며, 오브젝트도 업로드, 다운로드, 삭제가 가능합니다. 

- 일반 사용자일 경우에는 사용자를 생성할 수 없으며, 컨테이너도 생성할 수 없습니다. 

- 관리자가 미리 생성하여 권한을 준 컨테이너에서만 오브젝트 목록을 확인할 수 있고 업로드 다운로드가 가능합니다.

- 그리고 특정 사용자에게 Admin 권한을 주기 위해서는 ResellerAdmin 롤을 주면 해당 사용자는 관리자가 할 수 있는 기능들을 모두 할 수 있습니다.



Swift가 더 궁금하다면~~


Swift가 더 궁금하시다면 아래 사이트들을 방문해보세요~~~ 저보다 더 친절하고 저보다 더 최신정보를 여러분들에게 제공해 드릴꺼예요~!!  


o 소스코드 다운로드https://github.com/openstack/swift

o 문서 : http://docs.openstack.org

o 개발자 문서http://swift.openstack.org

o 런치패드 : https://launchpad.net/swift

o 위키 사이트 https://wiki.openstack.org/wiki/Swift



지금까지 Swift를 하면서 얻은 결과물들을 모두 다 정리를 해 보았습니다. 사실 Swift를 지금 표현한 것만으로는 많이 부족합니다. 알아야 할 것도 많이 있고, 운영을 하면서 배워 나가야 하는 것도 많이 있습니다. 하지만, 적어도 여기에 정리되어 있는 것만큼은 먼저 알고, 오픈스택 Swift를 시작하셨으면 좋겠습니다. 


그럼, 다음시간에는 이미지 서비스인 Glance에 대해 정리해 보도록 하겠습니다. 이번에도 역시 많이들 좋아요~~~ 클릭해 주시고 댓글도 많이 많이 달아주세요~~~ ^^

Posted by 나리 짱!!! naleejang