22
東東東東東東東 CloudStack™ Installation on Ubuntu 東東東 G02357004 2013/11/8

CloudStack Installation on Ubuntu

  • Upload
    -

  • View
    1.801

  • Download
    8

Embed Size (px)

Citation preview

Page 1: CloudStack Installation on Ubuntu

東海大學資工系

CloudStack™

Installation on Ubuntu

康志強 G023570042013/11/8

Page 2: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

一、前言.........................................................................................................................................2

二、架設架構.................................................................................................................................3

三、安裝環境.................................................................................................................................4

四、CloudStack Installation on Ubuntu 步驟....................................................................5

1. 配置安裝源.....................................................................................................................5

2. 安裝 Management Server........................................................................................7

3. 安裝配置 KVM 虛擬化 Host 主機..............................................................................15

五、本文的引用網址:..................................................................................................................20

1

Page 3: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

一、 前言

CloudStack 是一套用 Java 撰寫的軟體,專門用來管理雲端上虛擬機器,將運算資

源抽象化成一整個資源庫提供了公有、私有以及混和式的雲端平台服務(IAAS)。支援管

理大部分主流的 hypervisors,如 KVM、XenServer、VMware、Oracle VM、Xen 等。

CloudStack 具備了管理網路、儲存裝置和計算資源的能力,使用者可以運用

CloudStack 部屬、管理、設定雲端環境。

CloudStack 是個使用 GPL 授權的免費開放原始碼專案,前身是 Cloud.com,後來

被 Citrix 收購。2011 年 7 月,Citrix 收購 Cloud.com,將 CloudStack 100%開源並

交給 Apache 軟件基金會管理。

同時,CloudStack 已經有了許多商用客戶,包括 GoDaddy、英國電信、日本電報

電話公司、塔塔集團、韓國電信等。

因此,CloudStack 本身其實就是一個商業化過後的產品,然後在面對 OpenStack

等開源系統的巨大競爭壓力的情況下選擇了同樣的開源。

CloudStack 具有商業軟件所擁有的完善的用戶權限管理,可以讓用戶構建一個安全的多

租戶雲計算環境。同時兼容 Amazon AWS API 接口,可用來管理 AWS 的資源。

2

Page 4: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

二、架設架構

CloudStack 的安裝包含兩個部分:管理伺服器及雲端基礎架構,當您架設及管理

一個CloudStack 雲端時,您需要提供如主機、儲存裝置及IP 位址等資源給管理伺服器,

而管理伺服器幫您管理這些資源。

產品的最少安裝包含一個執行CloudStack 管理伺服器的機器及雲端基礎架構的機

器(這個例子是只包含一個執行超級監督者程式的主機),在最小的架構中,一個機器可以

同時執行管理伺服器及超級監督者主機(使用 KVM hypervisor ) 。

3

Page 5: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

一個management sever (ubuntu-12.04.3 + CloudStack-4.0 )一個 Hypervisor(XenServer 6.0.2)

4

Page 6: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

三、安裝環境

CPU Intel Core i3 M350 2.27GHz

RAM 4 GB * 2

HD 128 SSD

Network 100M/1000M bps Ethernet

OS Windows7_64-bit

VM Platform VMware® Workstation 10.0.0 build-1295980

VM Guest OS ubuntu-12.04.3-desktop-amd64

VMRAM 1.6 GB

VM HD 20 GB

5

Page 7: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

四、CloudStack Installation on Ubuntu 步驟1. 配置安裝源

(1) 設定安裝源

$ sudo gedit /etc/apt/sources.list

deb http://mirrors.sohu.com/ubuntu/ precise main restricted universe multiverse

deb http://mirrors.sohu.com/ubuntu/ precise-security main restricted universe multiverse

deb http://mirrors.sohu.com/ubuntu/ precise-updates main restricted universe multiverse

deb http://mirrors.sohu.com/ubuntu/ precise-proposed main restricted universe multiverse

deb http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu/ precise main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu/ precise-security main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu/ precise-updates main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu/ precise-proposed main restricted universe multiverse

deb-src http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse

或參考官網安裝 http://cloudstack.apache.org/downloads.html

(2)配置 CloudStack 官方源

$ sudo vi /etc/apt/sources.list.d/cloudstack.list

加入下面內容

deb http://cloudstack.apt-get.eu/ubuntu precise 4.0

6

Page 8: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

(3) 將 public key 加到 trusted keys

$ wget -O - http://cloudstack.apt-get.eu/release.asc|sudo apt-key add -

(4)更新 local apt cache

$ sudo apt-get update

DEB package repository 設定完成

7

Page 9: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

2. 安裝 Management Server

(1)安裝 NTP 來同步雲端伺服器的時間

$ sudo apt-get install openntpd

(2)安裝 CloudStack Management Server

$ sudo apt-get install cloud-client

(3) 將用戶 cloud 加入到 sudo 用戶組

CloudStack 默認以 cloud 用戶啟動,但默認會通過 sudo 以 root 身份管理相關

文件與目錄。(上一步安裝時已經做完)

8

Page 10: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

(4) 配置 sudo 用戶組免密碼切換

$ sudo vi /etc/sudoers

修改:%sudo ALL=(ALL:ALL) NOPASSWD:ALL

(5)初始化 root 用戶密碼: cloudstack

CloudStack 默認需要 root 權限遠程 SSH 連接到 Agent

$ sudo -i

$ passwd

(6)下載 vhd-util

此步驟為安裝超級監督者主機的 XenServer 安裝

$ sudo wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util

(7)複製 vhd-util (for Ubuntu)

9

Page 11: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

$ sudo mv vhd-util /usr/lib/cloud/common/scripts/vm/hypervisor/xenserver/

(8)安裝資料庫伺服器 (mysql)

CloudStack 管理伺服器使用 MySQL 資料庫伺服器來儲存資料,當您安裝管理

伺服器到一個節點,您可以在本地直接安裝 MySQL 伺服器,對於安裝多管理伺

服器節點,我們假設 MySQL 資料庫也在不同節點執行 CloudStack 已經測試過

MySQL 5.1 及 5.5,這些版本皆包含在 RHEL/CentOS 及 Ubuntu 中。

$ sudo apt-get install mysql-server

在彈出的界面中輸入密碼: cloudstack

10

Page 12: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

修改 MySQL 配置文件參數

$ sudo vi /etc/mysql/my.cnf

在[mysqld]模塊中加入以下參數

innodb_rollback_on_timeout=1

innodb_lock_wait_timeout=600

max_connections=350

log-bin=mysql-bin

binlog-format = 'ROW'

重啟 MySQL

$ sudo service mysql restart

初始化資料庫 cloud

11

Page 13: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

$ sudo cloud-setup-databases cloud:cloudstack@localhost --deploy-as=root:cloudstack -e file -m cloudstack -k cloudstack

說明: cloud-setup-databases cloud:<資料庫中 cloud 這個使用者的密碼>

@localhost --deploy-as=root:<Ubuntu 中 root 的密碼>

步驟(5)有設定 Ubuntu root 的密碼。

步驟(8)有設定 MySQL root 的密碼。

(9) 安裝 NFS

CloudStack 需要一個地方來存放 Primary 和 Secondary Storage,官方推薦

使用 NFS共享。

$ sudo apt-get install nfs-common nfs-kernel-server

創建目錄

$ sudo mkdir -p /export/primary

$ sudo mkdir -p /export/secondary

編輯NFS 配置文件

$ sudo vi /etc/exports

添加如下信息

/export *(rw,async,no_root_squash,no_subtree_check)

(,,之間不能有空白)

12

Page 14: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

刷新配置

$ sudo exportfs -a

掛載測試NFS共享

$ sudo mkdir /mnt/primary

$ sudo mount -t nfs 192.168.132.134:/export/primary /mnt/primary

$ sudo mkdir /mnt/secondary

$ sudo mount -t nfs 192.168.132.134:/export/secondary /mnt/secondary

執行 df -h查看

13

Page 15: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

掛載成功,然後輸入

$ sudo vi /etc/fstab

加入

192.168.132.134:/export/primary /mnt/primary nfs rw,tcp,intr 0 1

192.168.132.134:/export/secondary /mnt/secondary nfs rw,tcp,intr 0

1

14

Page 16: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

(10) 安裝 kvm模板

sudo /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

等待…很久。

安裝成功後顯示:

Successfully installed system VM template to

/mnt/secondary/template/tmpl/ 1 / 3 /

15

Page 17: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

3. 安裝配置 KVM 虛擬化 Host 主機

(1)安裝配置 agent

$ sudo apt-get install cloud-agent

(2) 安裝配置 libvirt

為了具備 live migration 的能力, libvirt必須傾聽不安全的 TCP 連線,我們也

必須關閉 libvirt 的多重DNS廣播,這些設定均在 /etc/libvirt/libvirtd.conf 檔

案中。

$ sudo vi /etc/libvirt/libvirtd.conf

修改以下配置

listen_tls = 0

listen_tcp = 1

tcp_port = " 16509 "

auth_tcp = " none "

mdns_adv = 0

然後使用如下命令查看配置

$ cat /etc/libvirt/libvirtd.conf | grep -v '#' | grep -v "^$"

得到的內容如下

16

Page 18: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

然後輸入

$ sudo vi /etc/init/libvirt-bin.conf

修改以下參數

env libvirtd_opts= " -d -l "

還有

$ sudo vi /etc/libvirt/qemu.conf

修改以下參數

vnc_listen = " 0.0.0.0 "

重啟服務

$ sudo service libvirt-bin restart

(3) 設定 Security Policies

CloudStack 可以被安全機制阻擋,像是 AppArmor(Ubuntu)及

SELinux(RHEL 及 CentOS),停用安全機制以便Agent 可以正常運作。

設定 Apparmor (Ubuntu)

檢查您的機器是否有 AppArmor,沒有的話請跳過,對於Ubuntu

AppArmor 是預設啟動的,您可以用以下來驗證:

$ dpkg --list 'apparmor'

17

Page 19: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

為 libvirt停用 AppArmor profiles

$ 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

(4) 設定防火牆

超級監督者需要能與其他監督者通信,以及管理伺服器必須能接觸超級監督者請

開啟 TCP 通訊埠 :

1. 22 (SSH)

2. 1798

3. 16509 (libvirt)

4. 5900 - 6100 (VNC consoles)

5. 49152 - 49216 (libvirt live migration)

Ubuntu 預設防火牆為 UFW (Uncomplicated FireWall),執行以下指令來開

啟通訊埠

sudo ufw allow proto tcp from any to any port 22

sudo ufw allow proto tcp from any to any port 80

sudo ufw allow proto tcp from any to any port 1798

sudo ufw allow proto tcp from any to any port 16509

sudo ufw allow proto tcp from any to any port 5900 : 6100

18

Page 20: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

sudo ufw allow proto tcp from any to any port 49152 : 49216

(5)啟動用戶界面

$ sudo /etc/init.d/tomcat6 stop

$ sudo update-rc.d -f tomcat6 remove

(6) 啟動 cloud-management

$ cd ~

$ sudo /etc/init.d/cloud-management restart

通過下面的命令可以看到 8080 為 listen狀態。

$ netstat -an | grep 8080

(7)輸入 http://{IP}:8080/client/ 就可以看到 CloudStack 的登錄界面了。

19

Page 21: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

輸入預設帳號密碼 admin/password

使用 admin 和 password登陸提示用戶名密碼錯誤,查看 log file

/var/log/cloud/management/management-server.log

經過檢查原來是 ssh 沒有安裝,輸入

$ sudo apt-get install openssh-server

安裝完成後,再重新啟動 tomcat

$ sudo /etc/init.d/cloud-management restart

重啟後如果還不能登入,check log 錯誤訊息為

ERROR [cloud.servlet.CloudStartupServlet] (main:null) Exception startingmanagement servercom.cloud.utils.exception.CloudRuntimeException: Failed to inject generated public key intosystemvm iso sudo: no tty present and no askpass program specifiedSorry, try again.sudo: notty present and no askpass program specifiedSorry, try again.sudo: no tty present and no askpassprogram specifiedSorry, try again.sudo: 3 incorrect password attemptsmkdir…

再執行下面指令

20

Page 22: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

$ cloud-setup-management

應該就可以成功登入了

五、本文的引用網址:

1. http://www.cnblogs.com/skyme/p/3135458.html

2. http://jimmy1p4204.pixnet.net/blog/post/47762506

3. http://heylinux.com/archives/2093.html

4. http://mail-archives.apache.org/mod_mbox/cloudstack-users-cn/201305.mbox/ %3C1591592029.139555.1367490890710.JavaMail.root@zmbx1.sysu.edu.cn%3E

21

Page 23: CloudStack Installation on Ubuntu

CloudStack Installation on Ubuntu

5. http://cloudstack.apache.org/docs/zh-TW/Apache_CloudStack/4.1.0/html-single/ Developers_Guide/index.html#deployment-architecture-overview

6. cloudstack4.0.1 安装遇到的问题和解决方法

http://www.cloudstack-china.org/2013/10/2063.html

22