실제 환경에서 cloudstack 구성하기 – 오류를 중심으로.

얼마전에, 서버 한대에 cloudstack 4.0을 설치한 적이 있었다. kvm 서버와 management서버, NFS서버등등을 하나의 서버에 때려 넣고 설치하고 작동 확인을 해 본 것이다.(http://blog.boxcorea.com/wp/archives/732) 이번에는 실제 세 대의 서버에 cloudstack을 설치 하고 사용해 보았다. 구성 환경: OS: Ubuntu12.10 Linux Box1: ip:59.29.142.85 fox1 Linux Box2: 59.29.142.86 fox2 Linux Box3: 59.29.142.87 fox3 Box 1을 매니지먼트 서버와, NFS 서버로 사용하며, 나머지 Box2,3을 KVM 서버로 사용할 것이다. 여기서는 실제 커맨드 중심으로 기술한다. deb 패키지는 이전에 만들어 놓았던 것을 사용했으며, repository등록과 같은 것은 생략한다. 1. Management Server(Box1) 클라우드 스택을 다운로드 받아서 매니저 서버를 설치한다. 여기서는 지난번에 만들어 놓았던 패키지를 사용했다.

# apt-get install cloud-client

mysql 서버를 설치하고, cloudstack이 사용할 데이타베이스를 만들어준다. 데이타베이스, 사용자, password 모두 cloud로 설정했다.

# apt-get install mysql-server # cloud-setup-databases cloud:cloud@localhost --deploy-as=root:rootpasswd

nfs 서버를 설치하고, /export를 share하도록 설정한다.

# apt-get install nfs-kernel-server #vi /etc/export /export *(rw,async,no_root_squash)

cloud-setup-management 커맨드를 실행하여 설치 마무리.

# cloud-setup-management

시스템 VM을 위한 템플릿을 등록한다.

# /usr/lib/cloud/common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F

2. KVM 호스트 설정 Box1, Box2 모두 KVM 호스트로 만들것이며 두 서버 모두 동일한 작업을 수행하면 된다.

# apt-get install cloud-agent

/etc/libvirt/libvirtd.conf에 아래와 같이 내용 수정.

listen_tls = 0
listen_tcp = 1
tcp_port = “16509”
mdns_adv = 0
auth_tcp = “none”

apparmor이 설치되어 있는지 확인하고, 설치되어 있다면, 아래와 같은 작업을 수행한다.

# ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable
# ln -s /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper /etc/apparmor.d/disable/
# apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
# apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper

네트워크 인터페이스를 브릿지로 만든다.  bridge-utils 이 설치되어 있지 않다면 설치해 준다.
firewall에서 아래 포트를 허용하도록 한다.

# ufw allow proto tcp from any to any port 22
# ufw allow proto tcp from any to any port 1798
# ufw allow proto tcp from any to any port 16509
# ufw allow proto tcp from any to any port 5900:6100
# ufw allow proto tcp from any to any port 49152:49216

3. Cloudstack에 Host를 등록한다.

4. 기타사항.

* template등록이 안된다. 등록은 정상적으로 진행이되나, 상태에 아무것도 표시되지 않는 상황발생

WARN  [storage.download.DownloadMonitorImpl] (catalina-exec-11:null) There is no secondary storage VM for secondary storage host nfs://59.29.142.85/export/secondary

-> template관련 문제는 주로 Secondary storage 이상일경우 발생한다.

-> secondary 스토리지를 이름으로 주었을경우 아이피주소로 바꾸어본다.

-> 그외, cloudstack 버젼이 안맞는경우(내경우 manager서버는 4.0.1, agent는 4.0.0 )발생. 버전을 맞추어주면 해결됨.

* Management Server와 Storage Server가 서로 다른 기계일 경우, 시스템 템플릿을 설치할때, 매니지먼트서버에 nfs 마운트를 하고 진행하여야 하며, 동일한 기계일 경우는 마운트 하지 않는다. 아래경우, 첫번째가 스토리지서버를 따로 사용할

 # moumt -t nfs fox1:/export/secondary /mnt/secondary

# /usr/lib/cloud/common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F

템플릿이 설치되면 반드시 secondary storage 영역을 umount하고, 마운트 포인트를 지워야한다.

#umount /mnt/secondary

# rm -rf /mnt/secondary

매니지먼트서버와 스토리지 서버가 동일한 경우, 그냥 아래 커맨드로 템플릿 설치하면 된다.

# /usr/lib/cloud/common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F

* 시스템 VM 에 접속하기

# ssh -i /root/.ssh/id_rsa.cloud -p 3922 root@169.254.3.30

여기서, 169.254.3.30은 시스템 VM정보에서, “Link Local IP Address” 이다. secondary storage 오류가 있을때는 위 커맨드로 접속이 안된다.

* 호스트 추가가 안될때(Unable to add the host)

/var/log/cloud/agent/setup.log 에 아래와 같은 부분이 있는지 확인.

DEBUG:root:execute:kvm-ok
DEBUG:root:Failed to execute:INFO: /dev/kvm does not exist
HINT: sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions
INFO: KVM (vmx) is disabled by your BIOS
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
and then hard poweroff/poweron your system
KVM acceleration can NOT be used

말 그대로 BIOS에서 virtual technology를 사용가능하도록 설정한 후 부팅하고, 호스트 추가하면 된다.

답글 남기기

Your email address will not be published.