Cloudstack 安裝記錄


一.條件要求

1.硬件支持虛擬化,並在BIOS中開啟(Inter-VT設為 Enable).

2.Centos 6.5 x86_64

3.環境中的每台主機均為靜態IP地址。

4.cloudstack安裝版本為4.4.1

二.本文章的硬件資源以及基本參數配置如下

1.服務器配置:12T硬盤、96G內存、e52620v2、4塊網卡,共6台機器。

2.此環境中4台kvm計算節點+主存儲(Gluster),1台管理節點+Mysql,一台NFS輔存儲。

3.首先主機名以及對應的ip詳情

  • kvm200  br0:192.168.30.200   br1:10.10.0.200  br2:10.11.0.200  br3:10.12.0.200
  • kvm201  br0:192.168.30.201   br1:10.10.0.201  br2:10.11.0.201  br3:10.12.0.201
  • kvm202  br0:192.168.30.202   br1:10.10.0.202  br2:10.11.0.202  br3:10.12.0.202
  • manage  br0:192.168.30.203   br1:10.10.0.203  br2:10.11.0.203  br3:10.12.0.203
  • kvm204  br0:192.168.30.204   br1:10.10.0.204  br2:10.11.0.204  br3:10.12.0.204 
  • nfs205    br0:192.168.30.205   br1:10.10.0.205  br2:10.11.0.205  br3:10.12.0.205

4.進行下一步之前,每台主機需要 yum upgrade !!!

三.主機名、網絡配置、SELinux

1.主機名:需要修改三處位置,分別是/etc/sysconfig/network、/etc/hosts、/etc/idmapd.conf

[root@kvm200 ~]# vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=kvm200.test.com

 

[root@kvm200 ~]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.0.200 kvm200.test.com
[root@kvm200 ~]# vi /etc/idmapd.conf 

[General]
#Verbosity = 0
# The following should be set to the local NFSv4 domain name
# The default is the host's DNS domain name.
Domain = test.com
[root@kvm200 ~]# hostname kvm200.test.com
kvm200.test.com
[root@kvm200 ~]# hostname --fqdn
kvm200.test.com

如果--fqdn能得到完整域名,即表示主機配置成功。

2.網卡橋接:進入 /etc/sysconfig/network-scripts 目錄中,先依次復制 系統網卡為對應的cloudbr0、1、2、3,如下

[root@kvm200 network-scripts]# cp ifcfg-eth0 ifcfg-cloudbr0
[root@kvm200 network-scripts]# cp ifcfg-eth1 ifcfg-cloudbr1
[root@kvm200 network-scripts]# cp ifcfg-eth2 ifcfg-cloudbr2
[root@kvm200 network-scripts]# cp ifcfg-eth3 ifcfg-cloudbr3

先修改ifcfg-eth*,

[root@kvm200 network-scripts]# vi ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE="cloudbr0"

[root@kvm200 network-scripts]# vi ifcfg-eth1
DEVICE="eth1"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE="cloudbr1"

[root@kvm200 network-scripts]# vi ifcfg-eth2
DEVICE="eth2"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE="cloudbr2"

[root@kvm200 network-scripts]# vi ifcfg-eth3
DEVICE="eth3"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE="cloudbr3"

再修改對應的橋接網卡ifcfg-cloudbr*

[root@kvm200 network-scripts]# vi ifcfg-cloudbr0
DEVICE="cloudbr0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Bridge"
IPADDR=192.168.30.200
NETMASK=255.255.255.0
GATEWAY=192.168.30.1
DNS1=114.114.114.114
DNS2=8.8.8.8

[root@kvm200 network-scripts]# vi ifcfg-cloudbr1
DEVICE=cloudbr1
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.0.200
NETMASK=255.255.0.0

[root@kvm200 network-scripts]# vi ifcfg-cloudbr2
DEVICE=cloudbr2
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.11.0.200
NETMASK=255.255.0.0

[root@kvm200 network-scripts]# vi ifcfg-cloudbr3
DEVICE=cloudbr3
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.12.0.200
NETMASK=255.255.0.0

 

3.關閉SELinux

[root@kvm200 network-scripts]# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled    #將此處設置為permissive或者disable都是可以的。
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted
[root@kvm200 network-scripts]# setenforce 0     #立即生效

 

其余5台同樣道理,按照主機對應詳情配置主機名、橋接網卡

記得重啟網卡喲,另外想要主機名立即生效的話,可以Ctrl + D 注銷即可。

 

四.NTP服務器

如果你的server可以連網,並且可以同步時間,這個步驟可以忽略。如果是本地的環境,那則需要有一台NTP服務器,用來同步主機間的時間。

此處將kvm200設置為NTP服務器

[root@kvm200 network-scripts]# vi /etc/ntp.conf
# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1

restrict 0.0.0.0 mask 0.0.0.0  nomodify notrap  noquery  
restrict 192.168.166.0 mask 255.255.255.0 nomodify

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

server 210.72.145.44 prefer
server  127.127.1.0
fudge   127.127.1.0 stratum 8

#圖中紅色部分的字體是新添加的。保存后重啟ntp服務

[root@kvm200 ~]# service ntpd restart
Shutting down ntpd:                                        [  OK  ]
Starting ntpd:                                             [  OK  ]

其余5台機器全為客戶端,以kvm201為例。修改配置文件並手動同步:

[root@kvm201 ~]# vi /etc/ntp.conf
......
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
192.168.30.200 iburst    #此處為ntp服務器的IP地址,要求能通信。如果不能通信則是服務器的iptables問題,后續我們將開放iptables端口。

[root@kvm201 ~]# service ntpd restart
Shutting down ntpd:                                        [  OK  ]
Starting ntpd:                                             [  OK  ]

[root@kvm201 ~]# ntpdate -u 192.168.30.200  #手動同步時間,或者等待系統自動同步也可,但等待時間可能較長,同步機制可谷歌NTP服務器介紹

NTP服務器搭建完成后。基本的環境配置已經完成。下面就是存儲服務器的安裝了(存儲分為主存儲和輔存儲,在此主存儲我們用Gluster群集、輔存儲用NFS)

五.IPtables防火牆設置以及修改掛載文件和創建掛載文件夾

1.修改每台防火牆設置為

[root@kvm200 ~]# iptables -I INPUT 1 -s 10.10.0.0/16 -j ACCEPT
[root@kvm200 ~]# iptables -I INPUT 1 -s 10.11.0.0/16 -j ACCEPT
[root@kvm200 ~]# iptables -I INPUT 1 -s 10.12.0.0/16 -j ACCEPT
[root@kvm200 ~]# iptables -I INPUT 1 -s 192.168.30.0/24 -j ACCEPT
[root@kvm200 ~]# service iptables save
[root@kvm200 ~]# service iptables restart

 

2.修改掛載文件:/etc/fstab  在此文件中最后添加兩行(此處建設時已規划好,在后續就使用此文件夾來掛載存儲系統)

[root@kvm200 ~]# vi /etc/fstab
10.12.0.204:/secondary  /icq1                   nfs            defaults        0 0
10.12.0.200:/Mian       /primary                glusterfs       defaults,_netdev       0 0

 

3.在每台機器上都創建相同的文件夾(供掛載使用,icq1是輔存儲掛載目錄、primary是gluster的掛載目錄,如第2步所示)

 
         
[root@kvm200 ~]# mkdir /icq1 /primary

 

六.存儲服務器

1.主存儲

  • 搭建Gluster服務器之前,我們先配置Gluster源,之后去下載安裝包。
    [root@kvm200 ~]# cd /etc/yum.repos.d/
    [root@kvm200 yum.repos.d]# wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/EPEL.repo/glusterfs-epel.repo
    [root@kvm200 yum.repos.d]# cd ~
    [root@kvm200 ~]# wget http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
    [root@kvm200 ~]# rpm -ivh epel-release-latest-6.noarch.rpm
    [root@kvm200 ~]# yum -y install glusterfs-server

    安裝完成之后,下面安裝其它4台客戶端:(注意:其它三台也需要先安裝下面的才可以繼續進行去。主要安裝:glusterfs glusterfs-server glusterfs-fuse三個軟件包

    [root@kvm201 ~]# cd /etc/yum.repos.d/
    
    [root@kvm201 yum.repos.d]# wget -P http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/EPEL.repo/glusterfs-epel.repo
    
    [root@kvm201 yum.repos.d]# cd ~
    
    
    [root@kvm201 ~]# wget ftp://ftp.muug.mb.ca/mirror/centos/6.7/extras/x86_64/Packages/epel-release-6-8.noarch.rpm
    
    [root@kvm201 ~]# rpm -ivh epel-release-6-8.noarch.rpm
    
    [root@kvm201 ~]# yum install glusterfs glusterfs-fuse glusterfs-server

    上面的步驟做完后,我們回到kvm200機器上,將它們(200、201、202、203)加入gluster節點,並創建存儲卷:

  • [root@kvm200 ~]# gluster peer probe 10.12.0.201
    [root@kvm200 ~]# gluster peer probe 10.12.0.202
    [root@kvm200 ~]# gluster peer probe 10.12.0.203
    [root@kvm200 ~]# gluster peer probe 10.12.0.204
    [root@kvm200 ~]# gluster volume create Mian stripe 2 10.12.0.200:/storage 10.12.0.201:/storage 10.12.0.202:/storage 10.12.0.203:/storage force
    [root@kvm200 ~]# gluster volume start Mian

    (如果加節點時報錯,可能跟防火牆有關,請檢查各個主機的防火牆設置。)
    查看狀態:

    [root@kvm200 ~]# gluster volume status
    Status of volume: Mian
    Gluster process                             TCP Port  RDMA Port  Online  Pid
    ------------------------------------------------------------------------------
    Brick 10.12.0.200:/storage                  49152     0          Y       3512 
    Brick 10.12.0.201:/storage                  49152     0          Y       3417 
    Brick 10.12.0.202:/storage                  49152     0          Y       3460 
    Brick 10.12.0.203:/storage                  49152     0          Y       3428 
     
    Task Status of Volume Mian
    ------------------------------------------------------------------------------
    There are no active volume tasks
    
    [root@kvm200 ~]# gluster peer status
    Number of Peers: 4
    
    Hostname: 10.12.0.204
    Uuid: 23194295-4168-46d5-a0b3-8f06766c58b4
    State: Peer in Cluster (Connected)
    
    Hostname: 10.12.0.202
    Uuid: de10fd85-7b85-4f28-970b-339977a0bcf6
    State: Peer in Cluster (Connected)
    
    Hostname: 10.12.0.201
    Uuid: 0cd18fe2-62dd-457a-9365-a7c2c1c5c4b2
    State: Peer in Cluster (Connected)
    
    Hostname: 10.12.0.203
    Uuid: d160b7c3-89de-4169-b04d-bb18712d75c5
    State: Peer in Cluster (Connected)

     

2.輔存儲(NFS)

 輔存儲安裝在kvm204上面,進入到204的系統內:(安裝nfs,創建secondary共享目錄,並修改NFS配置文件)
  

[root@kvm204 ~]# yum install nfs-utils
[root@kvm204 ~]# mkdir /secondary
[root@kvm204 ~]# vi /etc/exports
/secondary *(rw,async,no_root_squash,no_subtree_check)

[root@kvm204 ~]# vi /etc/sysconfig/nfs  
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020

  重啟服務:

  

[root@kvm204 ~]# service rpcbind restart
Stopping rpcbind:                                          [  OK  ]
Starting rpcbind:                                          [  OK  ]

[root@kvm204 ~]# service nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down RPC idmapd:                                  [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]

 

3.客戶端掛載文件系統

  以上步驟如果沒有出錯的話,現在就是客戶端掛載了,掛載完成之后我們就可以進行最重要的一步,既安裝cloudstack。以下掛載命令需在每台機器上執行:

[root@kvm200 ~]# mount -a
[root@kvm200 ~]# mount
/dev/mapper/vg1-lv1_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
10.12.0.200:/Mian on /primary type fuse.glusterfs (rw,default_permissions,allow_other,max_read=131072)
10.12.0.204:/secondary on /icq1 type nfs (rw,vers=4,addr=10.12.0.204,clientaddr=10.12.0.200)
nfsd on /proc/fs/nfsd type nfsd (rw)

 

七.安裝cloudstack

1.進入到192.168.30.203上面。安裝cloudstack-management + mysql

  • 先安裝mysql 
[root@management ~]# yum -y install mysql-server

  修改mysql配置文件(紅色部分為添加的配置文件)

[root@management ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'  

  修改完成后,重啟mysql

[root@management ~]# service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
  • 接着安裝management

  首先,本環境下載的全是rpm包(在root目錄下),為了統一固定版本。所以后續操作都是本地安裝,除了少量的依賴包會從網絡上下載,如果你去下載cloudstack-repo源,放在/etc/yum.repos.d/文件夾下,也可以安裝特定的版本。

[root@management ~]# yum localinstall cloudstack-cli-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-management-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-awsapi-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-common-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-usage-4.4.1-NONOSS_3.el6.x86_64.rpm

  安裝程序執行完成后,需初始化數據庫,通過如下命令和選項完成:(此處注意,如果你的mysql有密碼,下面命令的最后處需這樣寫'--deploy-as=root:密碼',否則插入數據庫會失敗。)

[root@management ~]# cloudstack-setup-databases cloud:password@localhost --deploy-as=root

  數據庫創建后,最后一步是配置管理服務器,執行如下命令:

[root@management ~]# cloudstack-setup-management
  • 現在來上傳系統虛擬機模板(創建系統VM時必須的,注意:此模板需要和自己的cloudstack版本相對應,不可隨意)
    以下文字引自官方:
    CloudStack通過一系列系統虛擬機提供功能,如訪問虛擬機控制台,如提供各類網絡服務,以及管理輔助存儲的中的各類資源。該步驟會獲取系統虛擬機模板,用於雲平台引導后系統虛擬機的部署。
    然后需要下載系統虛擬機模板,並把這些模板部署於剛才創建的輔助存儲中;管理服務器包含一個腳本可以正確的操作這些系統虛擬機模板:
    [root@management ~]# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /icq1 -f /root/systemvm64template-4.4.1-7-kvm.qcow2.bz2 -h kvm -F

    里面有些參數需要說明一下:-m 是掛載的輔存儲目錄位置,-f 是系統虛擬機模板的路徑(此處我已放到root目錄下),-h 是表示我們的虛擬化管理類型是kvm,-F 我也不知道這個參數

  • 管理節點至此我們安裝完畢。下面進行計算節點的安裝。

2.安裝cloudstack-agent  計算節點

  • 先安裝1台kvm(192.168.30.200)已經下載好rpm包,直接yum安裝
    [root@kvm200 ~]# yum localinstall cloudstack-agent-4.4.1-NONOSS_3.el6.x86_64.rpm cloudstack-common-4.4.1-NONOSS_3.el6.x86_64.rpm -y
  • 安裝完成,我們進行配置KVM(修改3處:/etc/libvirt/qemu.conf、/etc/libvirt/libvirtd.conf、/etc/libvirt/libvirtd.conf)
    為了實現動態遷移,libvirt需要監聽使用非加密的TCP連接。還需要關閉libvirts嘗試使用組播DNS進行廣播。這些都是在 /etc/libvirt/libvirtd.conf文件中進行配置。
    16509端口是libvirtd監聽端口。
    [root@kvm200 ~]# vi /etc/libvirt/qemu.conf 
    vnc_listen="0.0.0.0"
    
    [root@kvm200 ~]# vi /etc/libvirt/libvirtd.conf
    listen_tls = 0
    listen_tcp = 1
    tcp_port = "16059"
    auth_tcp = "none"
    mdns_adv = 0
    
    [root@kvm200 ~]# /etc/sysconfig/libvirtd
    LIBVIRTD_ARGS="--listen"
    題外話:當管理節點添加此主機時,這個tcp_port = "16059"會自動變成16509,還有 LIBVIRTD_ARGS="-1",這些都是cloudstack改變的。無須再手動改它!!

  • 上面kvm的參數修改完畢后,我們把libvirtd重啟一下
    [root@kvm200 ~]# service libvirtd restart

  至此,我們的所有在系統內要安裝的軟件以及修改配置文件工作已經完成,現在就可以登陸cloudstack的web界面進行配置區域、添加主機等操作了。

 

八.Web界面的操作及安裝

1.先登錄界面:瀏覽器訪問 http:10.10.0.203:8080/client后,先點擊”我已熟悉安裝”,別用向導安裝,因為我們的區域類型是高級!

2.進去之后,點擊全局設置,修改三個參數(secstorage.allowed.internal.sites、management.network.cidr、host),值在下面

sites:10.10.0.0/16 

host:10.10.0.203 (這個是管理節點的ip)

cidr:10.10.0.0/16 (這個是管理主機以及存儲的網段。)

將上面3個全局參數修改完畢后,需要重啟cloudstack-management使修改生效

[root@management ~]# /etc/init.d/cloudstack-management restart

此時重啟需要等待一分鍾左右,再次訪問web站點,進行下一步的操作。

3.配置區域(點擊基礎架構-->區域‘查看全部'-->添加區域-->高級--Next)

  • 名稱:Zone1
  • 公共DNS1:114.114.114.114
  • 內部DNS1:  8.8.8.8
  • 虛擬機管理程序:KVM
  • NExt

2.配置物理網絡

  • 管理和公用:cloudbr1
  • 來賓:cloudbr2
  • 存儲:cloudbr3

注意:以上填寫的是單獨流量的走向。管理和公用共用一個網絡br1(10.10.0.0/16),來賓單獨一個網絡br2(10.11.0.0/16),存儲單獨一個網絡br3(10.12.0.0./16).

3.公共通信

  • 網關:10.14.0.1
  • 掩碼:255.255.0.0
  • 起始IP:10.14.0.200
  • 截至IP:10.14.200.200

4.提供點

  • 名稱:P
  • 網關:10.10.0.1
  • 掩碼:255.255.0.0
  • 起始IP10.10.0.230
  • 截至IP:10.10.200.200

5.來賓通信

  • VLAN:2-4

6.存儲通信

  • 網關:10.12.0.1
  • 掩碼:255.255.0.0
  • 起始IP:10.12.0.230
  • 截至IP:10.12.200.200

7.群集

  • 群集名稱:C

8.主機

  • 主機名稱:10.10.0.200
  • 用戶名:root
  • 密碼:***

9.主存儲

  • 名稱:Pri
  • 協議:SharedMountPoint
  • 路徑:/primary

10.輔存儲

  • 提供程序:NFS
  • 服務器:10.12.0.204
  • 路徑:/secondary
  • Next 啟動

11.啟動區域

  提示:區域已准備就緒,可隨時啟動;請繼續執行下一步驟。點擊Launch zone 。至此cloudstack搭建完成。如果出現無法添加主機或者網絡或者存儲時,請去看日志!請去看日志!請去看日志! 

  重要的事情說三遍哈。

 

鑒於官方文檔簡單明了(坑你沒得說)辛苦碼字3小時作此文章,可能有遺漏之處,還請提出,如果轉載,還請注明源地址!

參考:http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/4.5/choosing_deployment_architecture.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM