[가정 & 조건]

  • OpenNebula(이하 ONE) 4.0 버전 설치 과정 정리 목적. (by Source) (Pacage로 진행해도 무방)
  • 모든 테스트는 VMware Player상에서 Nested KVM기반으로 진행하였으나, Physical환경에서도 동일.
  • OS 플랫폼으로 Ubuntu 13.04 64bit 사용
  • ONE-Server와 KVM-01 서버 두개의 Machine 기반 시나리오.
  • 각각의 호스트네임은 "one-server" 및 "kvm-01"로 한다.
  • 각 Machine은 최신 패키지로 업그레이드 되어 있다. (apt-get dist-upgrade)
  • ONE 관리자 계정은 "oneadmin"으로 한다.
  • 편의상 모든 작업은 ubuntu 계정으로 진행.
  • Hypervisors Machine의 Network모듈은 "Open vSwitch"를 사용 한다.
  • Network IP는 로컬 사정상 Static로 하였음. 적절히 상황에 맞게 설정하면 된다.
  • 두 Machine 모두 NIC는 1개로 진행.


[ONE-Server]


1. HostName 확인/조정

(가정 & 조건 설정)

$ sudo vi /etc/hosts

127.0.0.1 one-server


$ sudo vi /etc/hostname

one-server


2. 패키지 업그레이드 (의존성 반영)

$ sudo apt-get -y dist-upgrade


3. ONE Source 다운로드 및 압축 해제

(from http://dev.opennebula.org/packages/)

$ whoami

ubuntu

$ pwd

/home/ubuntu


$ wget http://dev.opennebula.org/packages/opennebula-4.0.0/opennebula-4.0.0.tar.gz

$ tar zxvf opennebula-4.0.0.tar.gz

$ cd opennebula-4.0.0

$ ls

include install.sh LICENSE NOTICE README.md SConstruct share src


4. ONE운영에 필요한 Ubuntu 패키지 설치 (의존성)

(Reference: http://opennebula.org/documentation:rel4.2:build_deps => Debian/Ubuntu)

$ sudo apt-get install -y g++ libxmlrpc-c3-dev scons libsqlite3-dev libmysqlclient-dev libxml2-dev libssl-dev liblog4cpp5-dev ruby ruby-dev sqlite3


5. ONE 관리자 계정/그룹 생성 및 PW설정

(패스워드는 적절히 설정 한다.)

$ sudo groupadd --gid 1001 oneadmin

$ sudo useradd --uid 1001 -g oneadmin -s /bin/bash -d /var/lib/one oneadmin

$ sudo passwd oneadmin

$ sudo echo "oneadmin    ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers


6. ONE 빌딩 (by scons)

(mysql을 DB로 사용할 경우, "scons mysql=yes")

$ whoami

ubuntu

$ pwd

/home/ubuntu/opennebula-4.0.0.0


$ scons

(생략)


7. ONE 설치/확인

$ whoami

ubuntu

$ pwd

/home/ubuntu/opennebula-4.0.0.0


$ sudo ./install.sh -u oneadmin -g oneadmin


$ sudo mkdir -p /var/run/one /var/lock/one

$ sudo chown oneadmin:oneadmin /var/run/one /var/lock/one


$ cd /var/lib/one

$ ls

datastores remotes vms


8. ONE 운영에 필요한 rubygem을 통한 추가적인 패키지 의존성 해결

(apt-get에서 이미 설치된 것은 통과 처리)

$ cd /usr/share/one

$ ls

examples install_gems tgt websockify


$ sudo ./install_gems

(중략)

Press enter to continue... => [엔터]

(중략)

* sunstone

* quota

* cloud

* ozones_server

* auth_ldap

Press enter to continue... => [엔터]

(생략)


9. ONE 운영을 위한 SSH-Key 생성 및 SSH 설정

$ su - oneadmin

$ whoami

oneadmin

$ pwd

/var/lib/one


$ ssh-keygen -t rsa

=> [엔터]

=> [엔터]

=> [엔터]


$ echo "ConnectTimeout 5

Host *

StrictHostKeyChecking no" > .ssh/config


10. ONE 관리자 인증설정

(Password는 적절히 등록. 본 예제에서는 "passw0rd"로 함. 숫자 0)

$ whoami

oneadmin

$ pwd

/var/lib/one


$ mkdir .one

$ echo "oneadmin:passw0rd" > .one/one_auth

$ chmod 600 .one/one_auth


11. ONE 서비스 시작 및 상태 확인

(혹, Start 수행이 정상적이지 않다면, "one stop" 수행 후, 다시 "one start"를 시도 해본다.)

$ whoami

oneadmin


$ one start

$ oneuser list

  ID NAME            GROUP      AUTH           VMS            MEMORY         CPU

   0 oneadmin        oneadmin   core             -                 -           -

   1 serveradmin     oneadmin   server_c         -                 -           -


$ oneuser list -x

<USER_POOL>

  <USER>

    <ID>0</ID>

    <GID>0</GID>

    <GNAME>oneadmin</GNAME>

    <NAME>oneadmin</NAME>

    <PASSWORD>7c6a61c68ef8b9b6b061b28c348bc1ed7921cb53</PASSWORD>

    <AUTH_DRIVER>core</AUTH_DRIVER>

    <ENABLED>1</ENABLED>

    <TEMPLATE/>

    <DATASTORE_QUOTA/>

    <NETWORK_QUOTA/>

    <VM_QUOTA/>

    <IMAGE_QUOTA/>

  </USER>

  <USER>

    <ID>1</ID>

    <GID>0</GID>

    <GNAME>oneadmin</GNAME>

    <NAME>serveradmin</NAME>

    <PASSWORD>1e6686daf58dd9d12961183474a9f80a236c7bdf</PASSWORD>

    <AUTH_DRIVER>server_cipher</AUTH_DRIVER>

    <ENABLED>1</ENABLED>

    <TEMPLATE/>

    <DATASTORE_QUOTA/>

    <NETWORK_QUOTA/>

    <VM_QUOTA/>

    <IMAGE_QUOTA/>

  </USER>

  <DEFAULT_USER_QUOTAS>

    <DATASTORE_QUOTA/>

    <NETWORK_QUOTA/>

    <VM_QUOTA/>

    <IMAGE_QUOTA/>

  </DEFAULT_USER_QUOTAS>

</USER_POOL>


12. ONE sunstone-server 실행

$ whoami

oneadmin


$ sunstone-server start




[KVM-01]


1. HostName 확인/조정

(가정 & 조건 설정)

$ sudo vi /etc/hosts

127.0.0.1 kvm-01


$ sudo vi /etc/hostname

kvm-01


2. 패키지 업그레이드 (의존성 반영)

$ sudo apt-get dist-upgrade


3. VT기술 지원 확인 (CPU)

$ sudo egrep "vmx|svm" /proc/cpuinfo


4. KVM & Open vSwitch 패키지 설치

$ sudo apt-get -y install nfs-common openssh-server ruby qemu-kvm libvirt-bin pm-utils openvswitch-datapath-source openvswitch-common openvswitch-switch openvswitch-brcompat


5. Libvirt에 기본 NAT 네트워크를 비활성화 한다.

(상황에 따라 Network 연결이 끊길 수 있다. 만일에 대비해 Local 작업을 위한 Console을 준비 해둔다.)

$ sudo virsh net-destroy default

$ sudo virsh net-autostart --disable default


6. Hypervisor의 네트워크 설정 (파일 정보만 수정)

(주의) brcompat 는 OVS 1.10 이후부터 리눅스의 전통적인 bridge명령인 brctl과 호환되지 않는다.(removed)

$ sudo echo "auto lo

iface lo inet loopback


auto eth0

iface eth0 inet manual

up ifconfig  0.0.0.0 up

down ifconfig  down


auto br0

iface bro inet static

address 172.21.18.148

netmask 255.255.255.0

gateway 172.21.18.1

" > /etc/network/interfaces


$ sudo vi /etc/default/openvswitch-switch

#BRCOMPAT=no

=>

BRCOMPAT=yes


7. Open vSwitch에 Bridge/Port 설정 및 확인

$ sudo ovs-vsctl add-br br0

$ sudo ovs-vsctl add-port br0 eth0


$ sudo ovs-vsctl show

Bridge "br0"

Port "eth0"

Interface "eth0"

Port "br0"

Interface "br0"

type: internal

ovs_version: "1.9.0"


8. ONE 운영 계정 생성

$ sudo groupadd --gid 1001 oneadmin

$ sudo mkdir /var/lib/one

$ sudo useradd --uid 1001 -g oneadmin -s /bin/bash -d /var/lib/one oneadmin

$ sudo usermod -a -G kvm oneadmin

$ sudo usermod -a -G libvirtd oneadmin

$ sudo chown oneadmin:oneadmin /var/lib/one

$ sudo echo "oneadmin    ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers


* (Note)

Libvirt/QEMU 프로세스에 동적으로 적용되는 파일의 소유권(Ownership) 비활성화

# vi /etc/libvirt/qemu.conf

dynamic_ownership = 0






[참조 원문 블로그 주소]

http://opennebula.org

http://kloudology.com/2013/06/16/opennebula-4-0-home-lab-part-3-installing-kvm-and-open-vswitch-on-ubuntu-13-04/




















Posted by 사랑줍는거지
,