Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

VMWare에서 SmartOS 사용하기

지난번 Learning Dtrace 발표의 데모시연을 위해서 VMWare상에 SmartOS를 설치해서 사용했었다. SmartOS는 Joyent에서 만든 가상화를 위한 OS로 실제 Joyent의 클라우드 서비스에서 사용하고 있다. 국내에서 SmartOS를 사용할 일이 많아보이진 않겠지만 설치하면서 좀 고생을 했기 때문에 정리를 해본다. 자세한 내용은 SmartOS 유저가이드에 나와있다.


VMware에 SmartOS 이미지 설치
맥에서 가상머신은 별로 안쓰고 있기 때문에 차마 구입은 못하고 VMware Fusion 5의 트라이얼버전을 사용했다. SmartOS는 다운로드 페이지에서 VMWare용 이미지파일을 제공하고 있기 때문에 latest-vmwarevm.tar.bz2를 다운받아서 사용했다.

VMware의

다운받은 파일의 압축을 풀면 VMware용 이미지파일이 나오는데 Open으로 열면된다.

SmartOS의 시작화면

VMware용으로 만들어진 이미지이므로 바로 시작하면 위와같이 뜨는데 맨위의 Live 64-bit를 선택한다.

SmartOS의 설정화면

시작을 하면 최초실행이기 때문에 설정을 할거냐고 묻는데 그냥 Y를 입력한다.

SmartOS의 설정화면

IP 주소를 입력하라고 나오는데 그냥 dhcp를 입력한다.

SmartOS의 설정화면

디스크를 선택하라고 나오는데 자동으로 입력값을 알려주기 때문에 화면에 나온  값을 입력하면 된다.

SmartOS의 설정화면

이제 다음은 SmartOS root 계정의 암호를 설정하는 단계이다.

SmartOS의 설정화면

이제 설정한 내용이 다시 출력되고 수정할 꺼냐고 다시 물어본다.

SmartOS의 설정화면

마지막으로 모두 지울꺼냐고 무서운 메시지가 나오는데 쫄지말고 그냥 y를 입력하면 된다. 어차피 처음으로 설정하는거니까... 여기까지 완료하면 자동으로 VMware의 가상머신이 리부팅이 된다.

SmartOS가 시작된 화면

리부팅이 되면 Joyent의 로고와 빌드번호를 볼 수 있다. 앞에서 설정과정에서 root 계정을 설정했으므로 root 계정으로 로그인을 하면 된다.


SmartOS에 설치할 가상머신 이미지 설정
SmartOS는 앞에서 얘기했듯이 클라우드 컴퓨팅을 위한 OS이다. 그래서 여기서 부팅된 SmartOS는 클라우드컴퓨팅을 위한 호스트 OS라고 보면된다 아주 적은 용량만 가지고 있고 사실 이 위에서는 할 수 있는게 별로 없고 여기서 실제로 사용할 OS의 이미지를 설치하고 설치한 OS를 사용하는 방식을 취한다. 당연히 여러 OS를 설치할 수 있다.(SmartOS에서는 Zone이라고 부른다.)

가상머신 이미지 정보를 갱신하는 화면

설치할 OS의 이미지를 관리하는 명령어가 imgadm이다. 최초 설치시에는 이미지에 대한 정보가 없기 때문에 imgadm update로 이미지정보를 갱신해주어야 한다.

가상머진 목록

이미지정보를 갱신한 후 imgadm avail 명령어를 사용하면 사용할 수 있는 이미지의 목록을 볼 수 있다. 맨앞에 있는 것이 UUID이고 뒷부분에 OS의 내용을 알 수 있는 정보들이 나온다. 보다시피 우분투나 페도라OS도 있고 몽고디비나 node.js가 설정되어 있는 이미지도 준비되어 있는 것을 볼 수 있다.(Joyent는 node.js의 메인 스폰서사이므로...)

사용할 가상머신 임포트

이제 설치할 이미지를 imgadm import UUID 명령어로 임포트하면 해당 이미지가 설치가 된다. 다행히도 UUID는 탭으로 자동완성이 되기 때문에 일일이 다 입력할 필요는 없다.


SmartOS의 가상머신 설치
앞에서는 VMware상에서 작업을 했지만 SmartOS를 설치한 뒤에는 호스트PC(VMware가 설치된)의 터미널에서 SSH를 이용해서 접속할 수 있다. SmartOS의 IP는 ifconfig로 확인할 수 있다.

SmartOS에 SSH 접속
위와같이 SSH를 이용해서 root계정으로 로그인한 것을 볼 수 있다. VMWare상에서는 화면도 작고 사용하기가 불편하기 때문에 SSH로 접속해서 사용하는 것이 훨씬 편하다.

Zone 설정파일

이제 앞에서 임포트한 가상머신의 이미지를 설치하기 위해서 위와같은 이름의 zonedef라는 파일을 만든다.(파일명은 임의로 해도 된다.) zonedef는 존(가상머신)을 설치하는 설정파일이 된다. 여기서 dataset_uuid는 앞에서 임포트한 이미지의 UUID이다.

Zone 생성화면

존은 vmadm 명령어를 사용하고 vmadm create -f ZONE설정파일 명령어로 앞에서 임포트한 이미지로 존을 생성할 수 있다. 그리고 생성된 존은 vmadm list로 확인할 수 있고 위처럼 동작하고 있는 상태임을 확인할 수 있다.

Zone에 접속한 화면

이제 Zone이 생성되었으므로(zone은 vmadm 명령어로 머추거나 재시작할 수 있다.) zlogin UUID로 로그인해서 접속할 수 있다. 앞에서 SmartOS에  SSH로 접속한 것처럼 SmartOS의 Zone에도 SSH로 접속할 수 있다. 매번 비밀번호를 입력하는 것은 귀찮으므로 SSH 공개키를 복사해서 사용한다.

호스트 PC의 SSH 공개키 복사

일단 호스트PC의 SSH 공개키를 SCP를 이용해서 SmartOS에 복사를 한다.

Zone에 SSH 공개키 설정

그리고 다시 SmartOS에 접속해서 Zone에 로그인한 뒤에 scp root@IP:id_rsa_pub ~/.ssh/authorized_keys 로 SSH 공개키를 Zone에 복사해온다. 앞에서 호스트PC의 SSH 공개키를 SmartOS에 복사한 뒤 이걸 다시 Zone에서 복사해 온 것이다. 이제 호스트PC에서 SSH로 Zone에 바로 접속하면 비밀번호를 입력하지 않고도 바로 접속할 수 있다.(마찬가지로 IP는 ifconfig로 확인하면 된다.)

이제 SmartOS를 그냥 사용하면 된다. 참고로 내 설정에서는 이유를 모르게 Zone내에서 외부 인터넷 접속이 제대로 되지 않았는데 이문제를 해결하긴 했었지만 포스팅을 위해서 다시 테스트할때는 제대로 되지 않았다. 여러가지 설정을 시도해보면서 해결된것 같은데 다시 해보려니까 잘 모르겠다. ㅡㅡ;;
2012/12/11 04:08 2012/12/11 04:08