• 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

    每个人都应是守望者,守望我们的心智,我们的理想,以防它在生活中不知不觉地坠落、被操控和被自己遗忘。。。
  • 相关阅读:
    HDOJ 1556 线段树
    POJ 3977 折半枚举
    2017ACM省赛选拔赛题解
    关于四舍五入和截断
    POJ 3422 最小费用最大流
    Codeforces Round #407 (Div. 2) D. Weird journey 思维+欧拉
    POJ 3155 最大密度子图
    无向图最小割 stoer_wagner算法
    最大权闭合子图
    L2-001. 紧急救援 Dijkstra
  • 原文地址:https://www.cnblogs.com/hanyifeng/p/4739923.html
Copyright © 2020-2023  润新知