카테고리 보관물: Storage

block cache 솔루션

* 캐시 종류
flashcache
dm-cache
bcache

* 각 캐시에 대한 설명 (wikipedia)
https://en.wikipedia.org/wiki/Bcache
https://en.wikipedia.org/wiki/Flashcache
https://en.wikipedia.org/wiki/Dm-cache

* 캐시별 장,단점
flashcache
– product by 페이스북
– 1개의 캐시디스크가 1개의 디스크만 적용 가능, SSD디스크를 파티셔닝함으로 꼼수를 부릴 수 있음

dm-cache
– product by cloudVPS
– 확장성이 있는 가상 머신 스토리지에 적합(?)
– writethorugh 캐시모드만 지원

bcache
– 1개의 캐시디스크가 여러개의 디스크 커버 가능
– writeback 모드 사용시, 데이터 유실이 발생하지 않게 하는 알고리즘이 존재함
– 커널을 새로 빌드해야 하는 단점

* ceph에서 flashcache를 이용하는 방법
https://www.sebastien-han.fr/blog/2012/11/15/make-your-rbd-fly-with-flashcache

 

추후 업데이트 예정

계속 읽기

openstack swift 설치

지난 번 saio(swift all in one)설치에 이은 2탄 -_-;

이번엔 swift 를 제대로 설치해보겠다 -_-;;;;;;;;;;;;;;;;

이번 포스팅의 모든 내용은 openstack.org에 있는 공식 문서 내용과 동일하므로 참고하시길…

 

서버 구성 

OS : CentOS7, 설치 버전 : liberty, 설치 패키지 : keystone, horizon, swift

서버 1 => keystone, horizon, swift-proxy, swift-*-server

서버 2,3 => swift-*-server

 

REPO 추가

1. 우선 liberty repository를 추가한다.

 

DB 설치

2. keystone 설치를 위해 DB를 설치한다.

 

3. 설치된 DB설정 파일을 작성

 

4. DB를 서비스로 등록한다.

 

5. mysql  패스워드 설정

 

queue 설치

6. rabbitmq를 설치한다.

 

7. rabbitmq 서비스 등록

 

8. rabbitmq 사용자 추가 및 퍼미션 설정

 

keystone 설치

9. DB에 keystone database를 생성하고, user 생성, 권한 설정

 

10. ADMIN_TOKEN으로 사용할 키값 생성

“a4f95ab47243b4b6b4b6” 과 같은 결과값이 출력되는데, 해당 결과 값을 메모한다.

 

11. memcached, keystone, httpd 설치

 

12. memcached 서비스 등록

 

13. keystone.conf 수정

ADMIN_TOKEN의 위치에 위에서 메모해 놓은 key값을 넣어주고, connection 정보를 수정해 준다.

 

14. 파일 수정이 완료되면 db_sync를 수행

 

15. httpd의 conf파일을 생성한다.

 

16. httpd서비스를 등록한다.

 

17. 임시 인증을 위해 admin token을 export해준다.

 

18. openstack client를 설치한다.

아래처럼 설치하면 모든 openstack project의 client가 전부 설치되는데… 이건 수정할 필요가 있을 듯..

 

19. keystone 서비스 추가 및 endpoint 추가

테스트 용도 이기 때문에 internal, public, admin 모두 같은 ip를 썼다 -_-…

신기한건… 이제 keystone 명령어가 없어진건가?

 

20. 프로젝트 / 사용자등을 생성해 준다.

 

21. token issue로  token을 잘 받아오는지 확인한다.

이때 기존에 등록했던 환경 변수는 unset 해준다.

아래같은 결과 창이 나오면 제대로 등록이 된거고, 뭔가 다른 화면이라면, 설정과정에서 뭔가를 빼먹은 거…

 

22. openrc 파일을 생성한다.

 

23. openrc파일에 등록된 내용으로 keystone이 제대로 동작하는지 확인한다.

 

horizon 설치

사실 swift를 사용할 때 꼭 horizon을 설치해야 하는 것은 아니다.

cyberduck과 같은 프로그램을 이용해서 파일을 직접 업로드,다운로드하게 할수 있다.

그렇지만 뭔가 웹페이지를 띄워보고 싶었던 나는 horizon을 설치하기로 해씀…ㅋㅋㅋ

24. 패키지를 설치한다.

 

25. local_settings파일을 수정한다.

아래와 같이 수정하면 될 듯.

 

26. 설정이 끝나면 httpd와 memcached를 재시작

 

27. 웹브라우저를 열고 접속이 되는지 확인한다.

http://xxx.xxx.xxx.xxx/dashboard

ID/password는 위에 과정 20에서  생성한 admin이나, demo계정을 이용하면 된다.

 

swift proxy 설치

서버1에만 proxy-server를 설치한다.

28. 그 전에 swift 계정을 만들어 주고 서비스,엔드포인트를 등록해준다

keystone과 마찬가지로 endpoint는 ip하나만 했다.

 

29. proxy 패키지를 설치한다.

 

30. 기본 설정 파일을 다운로드 한다.

 

31. 위에서 다운로드 받은 proxy-server.conf파일을 수정한다.

 

account, container, object-server 설치

32.  사용할 디스크가 4개라고 가정할때 아래와 같이 작업한다.

32-1. 디스크 파티셔닝

32-2. 파일시스템 포맷 및 fstab수정

 

33. 필요한 디렉토리를 생성해주고, 해당 디렉토리의 소유자를 swift로 변경해 준다.

 

34. swift 는 replication을 rsync를 이용하여 진행하게 되는데 이 때문에 rsync가 필요하다. rsync는 이미 설치되어 있다는 가정하에, rsyncd.conf파일을 변경한다.

원래는 address에 서버 ip를 넣도록 되어 있으나, 0.0.0.0으로 해도 상관은 없다.

오히려 이편이 작업하기 편하다.

 

35. rsync 서비스 등록

 

이제 본격적으로 패키지를 설치해준다.

아래 작업부터는 서버1,2,3 모두 해줘야 한다.

36. account, container, object 설치

 

37. 설정 파일 다운로드 (서버 1에서 다운로드 받아서 수정한 뒤에 서버2,3으로 복사해주면 작업이 편리함)

 

38. *-server.conf 파일 수정

위에서 다운로드 받은 파일을 수정해 준다. bind_ip에는 서버의 ip를 넣어주라고 매뉴얼에는 작성되어 있으나, 그럴려면 모든 서버에서 작업을 해야하고 열라 귀찮으므로 걍 0.0.0.0으로 때려 박음…

 

swift ring생성

위와 같이 작업이 완료되었으면 이제 링을 생성한다.

39. ring을 만들어 준다. ring을 만들때는 계산기를 참고한다.

 

40. 만들어진 ring에 디스크를 추가한다.

aaa~, bbb~, ccc~는 서버1,2,3의 ip를 넣어준다.

 

41. ring rebalance실행

rebalance를 하기전까진 추가된 디스크를 사용할 수 없는 듯하다.

 

42. key값을 생성한다. 이후에 swift.conf파일에 추가할 내용이므로 메모를 해둬야 한다.

두 개가 필요하므로 두번해준다.

 

43. swift.conf를 다운로드 하고 수정한다.

위에서 메모한 값을 넣어 준다.

 

44. /etc/swift의 소유권을 변경한다.

 

45. 서비스 실행

프록시 서버와 memcached는 서버1에서만 실행한다.

account 서비스 실행

container 서비스 실행

object 서비스 실행

 

끝…

이제 swift 가 제대로 동작하는지 horizon이나 cyberduck과 같은 프로그램을 통해 확인한다.

cyberduck 사용법 : 여기를 클릭

접속 방법 : 아래 그림을 참고

qqq

다음 포스팅은 아무래도 ssbench가 될 듯?

SWIFT All-In-One 설치 방법

saio를 설치해보려고 겁나 애먹고 있었던 찰나! 이런 친절한 사람이 있었다!

와우! 링크 : https://github.com/infortrend-openstack/SAIO

1. 먼저 git clone 실행

2. 해당 디렉토리로 이동하면 partition.sh과 install.sh이 존재한다.

2. 이후 partition.sh 를 먼저 실행하고

 참고로 storage 용도로 사용되는 디스크는 sdb한개 뿐이고 용량도 100G로 정해져 있으니 참고하시길…

만약 스토리지 디스크를 추가를 하고 싶다면 스크립트를 수정하면 되는데…

그럴려면 스크립트 내용을 많이 변경해야 할 듯 하다… 

 

3. install.sh를 실행하면 된다.

 

4. 구축이 완료되면 자동으로 테스트를 마구 돌아가고… 완료된다…

 

놀랍게도!! 완전 성의가 없었지만 포스팅이 끝났다.

게다가 엄청 성의 없게도 cyberduck을 이용해서 파일을 업/다운로드한다거나.

친절하게 대시보드가 있지도 않다… swiftclient만 이용할 수 있는 듯….

말그대로 “이렇게 생겼으니, 구경이나 한번 해보시게나!” 이런 모양새…..

아하하하하하하하하하하~~~

나중에 rdo repository를 이용해 swift all-in-one 모드로 설치하는 방법을 포스팅해야지..

정리하기가 넘 귀찮아서 1주일째 보류중임..