개인적으로 공유용도로 쓴 글이라, 반말투임을 고려해주시길 바랍니다.
===========
SmartOS(Hypervisor) + FiFO (Web UI) 실구축후 테스트 소감
.
1.
이거 권할만 하다. 정말 좋고 쓸만하며, 안정적이다. 너무 편하다. Joyent에 원츄 백표 날린다.
.
2.
소규모로 하는 곳에서는 이걸 선택하면 (현재에서는) 더이상 다른 솔루션을 쳐다볼 이유 따윈 없다고 봐도 된다. 간편하고 깔끔하고 좋다.
가장 익스트림한 케이스로는 베어메탈에서 사용 가능한 솔루션 세팅까지 40분 가량이면 된다는 것이다. 러닝 커브? 그거 뭐임??? 이거 그냥 킹왕짱 솔루션이라고 해도 된다..... (다른 클라우드 솔루션/플랫폼들에 비해서) 쉬워도 너무 쉽다. 아 물론 ESXi 를 설치 하고 여기에 vCenter 용 이미지(vCSA?)를 올리면 되긴 하지. 근데 이건 유료인데다, 덩치도 겁나 크고... 음...
.
3.
개발 환경이 너무 잘 만들어져 있다. 특히 게스트의 운영체제 이미지 까지 완벽한 토탈솔루션은 이게 거의 유일 하다. 정말 내가 원하는 것을 따로 설치하는 삽질을 할 필요가 없이 그냥 이미지를 임포트(그것도 버튼을 눌러서) 생성은 그냥 버튼을 눌러서 하면 된다. 이건 뭐.
그리고 정말 깨는 특징은 상당부분이 제로컨피그 라는 점이다. 그냥 제로컨피그다. 알아서 해준다. 단 이 경우는 설정 할수 있는 여지가 적다는 부분은 분명히 존재 하는데, 그래도 네트워크는 대충 VLAN까지는 된다. 사실 상용급 솔루션을 도입하려고 하지 않는 이상 이정도면 솔직히 충분하다..
.
----------
단점.
- 당연히 단점도 알아봐야겠는데..
.
4.
딱 대상은 리눅스만 쓰는(?) 소규모 프라이빗 클라우드가 적당 하다. 그이상은 좀 곤란한게 아직은 완벽하게 안정적인 솔루션까지는 아니라는 점이다. 그리고 몇가지 건드려 줄 부분들이 꽤 애매하다. 아예 손이 안가는 시스템은 아니라는 것. 그리고 업그레이드는 가이드가 나와 있고 따라가면 되는데(오픈스택 보다는 훨씬 쉽다. 당연히...) vcenter 같은 느낌은 아니다. 뭐 그래도 이정도면 사실 더 건드릴 것도 없는 수준. 사실 날리고 다시 설치해도 부담이 별로 안되는 느낌이다.
.
5.
해보다 보면, 스토리지를 여러개 붙여서 따로 쓴다던가, 하는 짓거리가 불가능 하다. 예를 들면 SSD 영역을 주 영역으로 쓰고 data 부분을 어태치 디스크로 쓴다던가 하는건 kvm 기반의 vm에서는 되는데 (그것도 복잡한 옵션으로... 콘솔에서) 솔라리스 기반의 zone 쪽에서는 안된다. 음... 그냥 쫌 글타. 여하튼 은근 ZFS가 편한데, 불판하고, 러닝 커브가 좀 길다. 뭐랄까 svn 쓰다가 git 처음 쓴 느낌이랄까. 이거 o미.. 하는 기분임. 거기다 이게 hypervisor 롤이랑 엮이면 그냥 난감하기 그지 없다. 근데 은근 편한데 또 노답인 경우가.. 음.. 그냥 여기까지만 해봐.. 라면 너무 편하다.
.
6.
라이브 마이그레이션 같은건 안된다. 콜드 마이그레이션은 가이드가 있긴 한데 걍 디스크를 덤핑해서 특정디스크에 덤핑하는 방식이다. 뭐 그래도 이게 어디냐...
.
7.
성능은 그냥 저냥 하다. 음.. 더 정확히는 솔라리스에 ZFS까지 올라간 시스템에 DTrace 가 붙어 있는 놈에 KVM을 올린거라 아주 가볍진 않은데, 또 이게 은근히 성능이 잘 나오는 편이다. 딱히 성능이 문제되진 않았다. 그외에 편리성이 너무 커서 이게 상쇄되는 수준. 너무 준수하다. 잘되는건 너무 익스트림하게 잘되는데, 안되는건 그냥 포기해야 하는 수준이다. 근데 너무 매력적이라 뭐라고 할수가 없다.
.
8.
운영체제 지원이 좀 한정적이다. 물론 윈도를 설치 할수 있겠지. 지난한 과정을 거치면. KVM기반인데 안될리가 있겠어? 하지만 너무 귀찮다. 그냥 윈도는 vmware 가 김왕장이고 hyper-v가 체고시다. 근데 이게 PaaS 의 느낌으로 들어가면 쓸수 있는 서비스들이 정말 짱짱하다. 하둡(좀 오래되긴 했네)이나 멤캐쉬디나 레디스나, 뭐 그냥 적당히 받아서 돌리면 된다. 물론 버전은 좀 올디한데 뭐 그게 어때서 그냥 쓰는거지. 리눅스도 생각보다 이미지가 꽤 잘만들어져있다. 정말 깔끔하다. 역시 Joyent 존잘님들이다....
.
---------
잡담
- 뭐 이런저런...
.
9.
하이퍼바이저는 은근히 시스템을 덜탄다. 즉, 아무것이나 가져다 조립한 서버라도 잘 동작한다는 뜻. 리얼텍 칩셋같은 이더넷 장비도 알아서 척척 붙는 수준이니 딱히 뭐. 거기다 HDD를 자체 레이드 하고(ZFS)여기에 SSD를 붙여서 캐쉬 돌리면 엥간한 수준 이상으로 쓸수 있다. 아주 좋다. 버뜨..... ZFS특유의 디스크 문제 대응이 조금 난망한 부분은 좀 존재 하고, 이게 FiFO (Web UI)랑 엮이기 시작하면 Glance 같은 이미지 스토리지와 매칭에 좀 골때리는 케이스가 분명 생기는데, 이게 또 하드웨어를 갖다 바르면 되는데, 이게 또 그러기엔 좀 아까운 시스템이라는 딜레마가 좀 있다. 음... 뭐 그래도 적당히 빠르고 쓸만하다. 아 이건 단점이긴 한데 단점은 아니고 장점인데 또 딥하게 보면 단점인 뭐 그런 느낌..
.
10.
DTrace같은건 되긴 하는데, 또 뭐... 그렇게 쓸게 있나 싶기도. 이건 비유를 하자면 게스트 머신에 Xposed Framework(Android)나 MobileSubstrate(iOS/Android) 를 깔아둔 느낌이다. (이게 아마 제일 적절한 비유가 아닐까 싶다) 그래서 실시간 콜스택추적이나, 퍼포먼스 분석 같은 괴상한짓에, 함수 후킹 같은 것이라던가, 뭐 여튼 벼라별 짓거리가 다 된다. 근데 뭐 또 이게 러닝 커브가 있고..
.
-----------
그래서 설치 방법
- 일단..
.
11.
https://smartos.org/ 여기에서 SmartOS USB버전을 받는다. 그리고 남는 USB에 덤핑(대충 0.5GB면 충분하다) 이게 OS와 실제 데이터 영역이 분리되어 있다. 비슷한건 CoreOS? 근데 이건 하드에 쓰긴 하잖아. 버뜨 SmartOS는 아예 그런 단계가 없다.
여튼 다 설치 하고 나서 시스템에 들어가서
이거 따라 설치 해준다. 딱히 설정 같은건 안해줘도 됨. 이게 뭐냐면 노바 컴퓨트 같은 놈임. 근데 딱히 설치 외에 설정은 필요가 없음 (....!!!??) 물론 업그레이드도 열라 쉬움 (....)
.
12.
웹 UI를 설치 하는건
여기를 따라 한다. 일단 이것을 쭉 따라하면 (leofs 부분 제외) 일단 Web UI가 뜬다. 대충 램은 2-3기가 정도 주자. 너무 작으면 은근 잘 죽는듯. 근데 VM은 안만들어 질것인데, 이게 최근 버전에서는 스토리지를 외부 S3호환 스토리지로 쓰도록 강제로 바뀌었기 때문인데, 이를 위해서 leofs 를 써야 한다. 근데 다행히 이것도 가상으로 설치 가능한데,
여기를 참조해서 딱 세가지만 해주면 된다.
.
첫번째로 DNS 설정 (근데 SmartOS는 재부팅하면 /etc/hosts 가 날아가니 DNS서버에 레코드 넣어 주는게 편하다. leo.asdf.com 으로 설정 하면 fifo.leo.asdf.com / fifo-images.leo.asdf.com / fifo-snapshots.leo.asdf.com 이 모두 동일하게 가야 한다. 즉, *.leo.asdf.com 을 다 같이 넣어주면 된다. 이거 중요하다. 안되면 VM안만들어짐 ㅋ 당연히 접근이 안되니까.
.
두번째로 이미지를 받아야 하는데 leofs 이미지는
imgadm sources -a http://datasets.at/imgadm sources -d https://images.joyent.comimgadm updateimgadm import ccd69a86-ae83-11e4-813b-371265fbe00e
요 명령어로 해주면 된다. 보면 알겠지만 써드파티(커뮤니티)쪽이다. 뭐 어쩔수 없지만 요건 편의상. 그리고 leofs도 램은 꼭 2-3기가 이상으로 주라. 안그러면 내부 프로세스가 죽어버리고 또 답이 안나온다.. (....) 그리고 zlogin이건 뭐건 아무것도 손대지 말고 단순히 해당 머신을 올리기만 하라. 절대 건드리지 마라.
세번째로 fifo 설치 페이지에 맨 마지막의 leofs 연동 스크립트 돌리면 된다. 그럼 끝.
이게 풀세트 설치에 대충 40분이면 끝난다. (DNS같은거 제외하고) 어렵나?
다시 스크립트로 정리하자면.
# FIFO 머신 만들기 - SmartOS에서# - 이미지 임포팅imgadm import d34c301e-10c3-11e4-9b79-5f67ca448df0# - VM 생성vmadm create << EOF{"autoboot": true,"brand": "joyent","image_uuid": "d34c301e-10c3-11e4-9b79-5f67ca448df0","max_physical_memory": 2048,"cpu_cap": 100,"alias": "fifo","hostname": "fifo.4wish.net","quota": "20","resolvers": ["8.8.8.8","8.8.4.4"],"nics": [{"interface": "net0","nic_tag": "admin","ip": "10.11.0.15","gateway": "10.11.0.1","netmask": "255.255.0.0"}]}EOF# UUID로 zlogin (콘솔로 로그인)# 이렇게 나오는 UUID로 zloginzlogin [[UUID]]# - 필요 모듈 설치VERSION=relcp /opt/local/etc/pkgin/repositories.conf /opt/local/etc/pkgin/repositories.conf.originalecho "http://release.project-fifo.net/pkg/${VERSION}/" >> /opt/local/etc/pkgin/repositories.confpkgin -fy uppkgin install nginx fifo-snarl fifo-sniffle fifo-howl fifo-wiggle fifo-jingles fifo-watchdog# - 설정 엎어치기cp /opt/local/fifo-jingles/config/nginx.conf /opt/local/etc/nginx/nginx.conf# - 모듈들 자동 실행 설정svcadm enable epmdsvcadm enable snarlsvcadm enable snifflesvcadm enable howlsvcadm enable wigglesvcadm enable watchdogsvcadm enable nginxsvcs epmd snarl sniffle howl wiggle nginx watchdog# - 초기 운영자 ID 생성fifoadm users add default adminfifoadm users grant default admin ...fifoadm users passwd default admin password-to-use
# leofs 설정# - 이미지 받기imgadm sources -a http://datasets.at/imgadm sources -d https://images.joyent.comimgadm updateimgadm import ccd69a86-ae83-11e4-813b-371265fbe00e# - LeoFS VM 생성 (SmartOS에서)vmadm create << EOF{"autoboot": true,"brand": "joyent","image_uuid": "ccd69a86-ae83-11e4-813b-371265fbe00e","max_physical_memory": 4096,"cpu_cap": 100,"alias": "leofs","hostname": "leofs.4wish.net","quota": "80","resolvers": ["8.8.8.8","8.8.4.4"],"nics": [{"interface": "net0","nic_tag": "admin","ip": "10.11.0.16","gateway": "10.11.0.1","netmask": "255.255.0.0"}]}EOF# - FIFO에 leofs 등록하기# - leofs가 아닌, FIFO 머신에 zlogin 후에.. (leofs 뜨길 좀 기둘리라...)sniffle-admin init-leofs leofs.4wish.net# - sniffle 만 재시작svcadmin restart sniffle
# 각 SmartOS를 FIFO에 등록하도록 Chunter 설치# - SmartOS에서VERSION=relcd /optgunzip chunter-latest.gzsh chunter-latest# - 서비스 등록 (재시작후 자동 시작)svcadm enable epmd chuntersvcs chunter
# 다음 해줄 작업은, fifo 머신에 80포트로 웹브라우저 로그인 해서
# 패키지 생성 -> 오픈스택의 플레이버
# 이미지 받기
# 네트워크 서브넷 등록
# 버그 하나는 너무 동시에 여러개 생성 할라 치면 오류 남. (락킹이슈 있음)
opensolaris°è¿ÀÇ OSµéÀÌ ±×·¡µµ ´Ü´ÜÇÑ ´À³¦À» ¸¹ÀÌ ÁÖÁÒ..
Àúµµ Áö±Ý OmniOS±â¹ÝÀ¸·Î zfs½ºÅ丮Áö ±¸¼º Áß ÀÔ´Ï´Ù.