CloudStack介绍

介绍见: CloudStack介绍

CloudStack安装

先决条件

  1. 至少两台(cloudstack-managementcloudstack-agent)支持并启用了硬件虚拟化的计算机。
  2. 一个CentOS的7.5 x86_64的ISO安装文件
  3. 网关位于xxx.xxx.xxx.1的A / 24网络,该网络上不应该有DHCP,运行CloudStack的计算机都不会有动态地址。同样,这是为了简单起见。

环境准备

一套基本的CloudStack环境,包括一台CloudStack管理端(cloudstack-management),一个mysql数据库,若干台支持KVM虚拟化的计算节点(cloudstack-agent)以及一台用来做为二级存储的nfs服务器:

在实际生产中,mysql数据库和管理端都可能配备多台作为高可用,计算节点一般也是配置较高的物理服务器,但在实验环境,我们可以采用最小化安装模式,把mysql,nfs和管理端安装在同一台虚拟机上,使用一台支持KVM虚拟化的虚拟机用来作为计算节点

我们的环境

本文使用两台虚拟机来搭建我们的环境,nfs,mysql和管理端都装在同一台虚拟机上,cloudstack-agent安装在一台开启了虚拟化支持的虚拟机上,部署架构如下:

定义

  • 两台服务器的IP是:
    • CloudStack管理端(cloudstack-management):172.18.193.1
    • KVM虚拟化的计算节点(cloudstack-agent):172.18.193.2

CloudStack管理端

升级yum

1
yum -y upgrade

主机名

CloudStack要求正确设置主机名。如果您在安装中使用了默认选项,那么您的主机名当前设置为localhost.localdomain。为了测试这个,我们将运行:

1
hostname --fqdn

此时它可能会返回:

1
localhost

要纠正这种情况 - 我们将通过编辑/etc/hosts文件来设置主机名,以便它遵循与此示例类似的格式:

1
2
3
4
5
6
7
8
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.18.193.1 mng.cloud.priv
172.18.193.1 mng
172.18.193.2 cloud1.cloud.priv
172.18.193.2 cld
172.18.0.1 gw
61.139.2.69 dns

修改完该文件后,重新启动网络:

1
systemctl restart network

现在使用hostname -fqdn命令重新检查并确保它返回FQDN响应

设置SELinux

目前,要使CloudStack正常工作,SELinux必须设置为允许。我们希望为将来的引导配置它,并在当前运行的系统中对其进行修改。

要在运行的系统中将SELinux配置为允许,我们需要运行以下命令:

1
setenforce 0

为了确保它保持在该状态,我们需要配置文件/etc/selinux/config以反映许可状态,如下例所示:

1
2
3
4
5
6
7
8
9
10
# 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 - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

NTP安装

NTP配置是保持云服务器中所有时钟同步的必要条件。但是,默认情况下不安装NTP。所以我们将在此阶段安装和配置NTP。安装完成如下:

1
yum -y install ntp

实际的默认配置适用于我们的目的,因此我们只需要启用它并将其设置为在启动时启动,如下所示:

1
2
systemctl enable ntpd
systemctl start ntpd

配置CloudStack包存储库

我们需要将机器配置为使用CloudStack软件包存储库。

要添加CloudStack存储库,请创建/etc/yum.repos.d/cloudstack.repo并插入以下信息。

1
2
3
4
5
[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/7/4.11/
enabled=1
gpgcheck=0

NFS 安装

我们的配置将使用NFS进行主存储和二级存储。我们将继续为此目的设置两个NFS共享。我们首先安装nfs-utils。

1
yum -y install nfs-utils

我们现在需要配置NFS以提供两个不同的共享。这在/etc/exports文件中相对容易处理。您应该确保它具有以下内容:

1
2
/data/primary *(rw,async,no_root_squash,no_subtree_check)
/data/secondary *(rw,async,no_root_squash,no_subtree_check)

您将注意到我们在系统上指定了两个目录(尚未存在)。我们将继续使用以下命令创建这些目录并在其上适当地设置权限:

1
2
mkdir -p /data/primary
mkdir /data/secondary

CentOS 7.x版本默认使用NFSv4。NFSv4要求域设置在所有客户端上匹配。在我们的示例中,域是cloud.priv,因此请确保取消注释/etc/idmapd.conf中的域设置并设置如下:

1
Domain = cloud.priv

现在,您需要在/etc/sysconfig/nfs文件的底部添加配置值(或者仅取消注释并设置它们)

1
2
3
4
5
6
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020

现在我们需要禁用防火墙,这样它就不会阻止连接

1
2
systemctl stop firewalld
systemctl disable firewalld

我们现在需要配置nfs服务以在启动时启动,并通过执行以下命令实际在主机上启动它:

1
2
3
4
systemctl enable rpcbind
systemctl enable nfs
systemctl start rpcbind
systemctl start nfs

重新启动nfs

1
systemctl restart nfs

测试nfs服务端是否能访问

在 agent端执行showmount -e 172.18.193.1

管理服务器安装

数据库安装和配置

我们将首先安装MySQL并配置一些选项,以确保它与CloudStack一起运行良好。

首先,由于CentOS 7不再提供MySQL二进制文件,我们需要添加一个存储库:

1
2
3
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum -y update

通过运行以下命令进行安装:

1
2
3
yum -y install mysql-server

# and(最新版cloudstack可能不需要改成以下操作)

现在安装了MySQL,我们需要对/etc/my.cnf进行一些配置更改。具体来说,我们需要在[mysqld]部分添加以下选项:

1
2
3
4
5
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'

现在MySQL已正确配置,我们可以启动它并将其配置为在启动时启动,如下所示:

1
2
systemctl enable mysqld
systemctl start mysqld
MySQL连接器安装

使用官方MySQL软件包存储库安装Python MySQL连接器。/etc/yum.repos.d/mysql.repo使用以下内容创建文件:

1
2
3
4
5
[mysql-connectors-community]
name=MySQL Community connectors
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/$releasever/$basearch/
enabled=1
gpgcheck=1

从MySQL导入GPG公钥:

1
rpm --import http://repo.mysql.com/RPM-GPG-KEY-mysql

安装mysql-connector

1
2
3
4
5
6
yum install mysql-connector-python

# or(最新版cloudstack可能不需要改成以下操作)
下载:https://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-2.1.8-1.el7.x86_64.rpm 安装:

rpm -Uvh mysql-connector-python-2.1.8-1.el7.x86_64.rpm --nodeps --force
安装管理服务器

我们现在要安装管理服务器。我们通过执行以下命令来做到这一点:

1
yum -y install cloudstack-management

yum -y install cloudstack-management命令不好使的时候,操作如下:

1
2
3
4
5
6
7
8
9
10
wget http://download.cloudstack.org/centos/7/4.11/cloudstack-management-4.11.2.0-1.el7.centos.x86_64.rpm
wget http://download.cloudstack.org/centos/7/4.11/cloudstack-common-4.11.2.0-1.el7.centos.x86_64.rpm

yum localinstall cloudstack-management-4.11.2.0-1.el7.centos.x86_64.rpm cloudstack-common-4.11.2.0-1.el7.centos.x86_64.rpm

# and(最新版cloudstack可能不需要进行以下操作)
去 http://www.rpmfind.net/linux/rpm2html/search.php?query=mysql-connector-java 下载:
mysql-connector-java-5.1.25-3.el7.noarch.rpm 安装:

rpm -Uvh mysql-connector-java-5.1.25-3.el7.noarch.rpm --nodeps --force

安装了应用程序本身后,我们现在可以设置数据库,我们将使用以下命令和选项执行此操作:

1
cloudstack-setup-databases cloud:password@localhost --deploy-as=root

完成此过程后,您应该看到“CloudStack has successfully initialized the database.”之类的消息。

既然已经创建了数据库,我们可以通过发出以下命令来设置管理服务器的最后一步:

1
cloudstack-setup-management
系统模板设置

CloudStack使用许多系统VM来提供访问虚拟机控制台,提供各种网络服务以及管理存储的各个方面的功能。当我们引导您的云时,此步骤将获取准备部署的系统映像。

现在我们需要下载系统VM模板并将其部署到我们刚刚挂载的共享。管理服务器包括用于正确操纵系统VMs映像的脚本。

1
2
3
4
5
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /data/secondary -u http://download.cloudstack.org/systemvm/4.11/systemvmtemplate-4.11.2-kvm.qcow2.bz2 -h kvm -F

# or

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /data/secondary -f /root/systemvmtemplate-4.11.2-kvm.qcow2.bz2 -h kvm -F

这就结束了我们的管理服务器的安装

CloudStack计算节点

升级yum

1
yum -y upgrade

配置网络

要将其配置为在您的环境中工作。由于我们指定在此环境中不存在DHCP服务器,因此我们将手动配置您的网络接口。

在继续之前,请确保安装了“brctl”并且可用:

1
yum install bridge-utils -y

通过控制台连接,您应该以root用户身份登录。我们将首先创建Cloudstack将用于网络的桥梁。创建并打开vi /etc/sysconfig/network-scripts/ifcfg-cloudbr1并添加以下设置:

IP寻址 - 在本文档中,我们假设您将拥有一个用于CloudStack实施的/24网络。这可以是任何RFC 1918网络。

1
2
3
4
5
6
7
8
9
10
11
12
DEVICE=cloudbr1
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=none
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
IPADDR=172.18.193.2
PREFIX=16
GATEWAY=172.18.0.1
DNS1=61.139.2.69
STP=yes

保存配置并退出。

打开vi /etc/sysconfig/network-scripts/ifcfg-em1配置文件并按如下所示进行配置:

接口名称仅用作示例。将em1替换为您的默认以太网接口名称。

1
2
3
4
5
DEVICE=em1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
BRIDGE=cloudbr1

现在我们已经正确设置了配置文件,我们需要运行一些命令来启动网络:

1
2
systemctl enable network
systemctl restart network

请注意,如果您通过SSH连接,则会暂时(约5秒,具体取决于硬件)断开连接。如果断开连接,则配置中存在错误。

主机名

CloudStack要求正确设置主机名。如果您在安装中使用了默认选项,那么您的主机名当前设置为localhost.localdomain。为了测试这个,我们将运行:

1
hostname --fqdn

此时它可能会返回:

1
localhost

要纠正这种情况 - 我们将通过编辑vi /etc/hosts文件来设置主机名,以便它遵循与此示例类似的格式:

1
2
3
4
5
6
7
8
9
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.18.193.1 mng.cloud.priv
172.18.193.1 mng
172.18.193.2 cloud1.cloud.priv
172.18.193.2 cld1
...#(这里按以上格式添加新增计算节点)
172.18.0.1 gw
61.139.2.69 dns

修改完该文件后,重新启动网络:

1
systemctl restart network

现在使用hostname -fqdn命令重新检查并确保它返回FQDN响应(如下:)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
hostname: invalid option -- 'q'
Usage: hostname [-b] {hostname|-F file} set host name (from file)
hostname [-a|-A|-d|-f|-i|-I|-s|-y] display formatted name
hostname display host name

{yp,nis,}domainname {nisdomain|-F file} set NIS domain name (from file)
{yp,nis,}domainname display NIS domain name

dnsdomainname display dns domain name

hostname -V|--version|-h|--help print info and exit

Program name:
{yp,nis,}domainname=hostname -y
dnsdomainname=hostname -d

Program options:
-a, --alias alias names
-A, --all-fqdns all long host names (FQDNs)
-b, --boot set default hostname if none available
-d, --domain DNS domain name
-f, --fqdn, --long long host name (FQDN)
-F, --file read host name or NIS domain name from given file
-i, --ip-address addresses for the host name
-I, --all-ip-addresses all addresses for the host
-s, --short short host name
-y, --yp, --nis NIS/YP domain name

Description:
This command can get or set the host name or the NIS domain name. You can
also get the DNS domain or the FQDN (fully qualified domain name).
Unless you are using bind or NIS for host lookups you can change the
FQDN (Fully Qualified Domain Name) and the DNS domain name (which is
part of the FQDN) in the /etc/hosts file.

设置SELinux

目前,要使CloudStack正常工作,SELinux必须设置为允许。我们希望为将来的引导配置它,并在当前运行的系统中对其进行修改。

要在运行的系统中将SELinux配置为允许,我们需要运行以下命令:

1
setenforce 0

为了确保它保持在该状态,我们需要配置文件vi /etc/selinux/config以反映许可状态,如下例所示:

1
2
3
4
5
6
7
8
9
10
# 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 - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

NTP安装

NTP配置是保持云服务器中所有时钟同步的必要条件。但是,默认情况下不安装NTP。所以我们将在此阶段安装和配置NTP。安装完成如下:

1
yum -y install ntp

实际的默认配置适用于我们的目的,因此我们只需要启用它并将其设置为在启动时启动,如下所示:

1
2
systemctl enable ntpd
systemctl start ntpd

配置CloudStack包存储库(可不做该操作)

要添加CloudStack存储库,请创建vi /etc/yum.repos.d/cloudstack.repo并插入以下信息.

1
2
3
4
5
[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/7/4.11/
enabled=1
gpgcheck=0

KVM设置和安装

KVM是我们将要使用的虚拟机管理程序 - 您可以使用相同的步骤将其他KVM节点添加到您的CloudStack环境中。

安装节点服务器
1
yum -y install cloudstack-agent

yum -y install cloudstack-agent命令不好使的时候,操作如下:

1
2
3
4
5
6
# 下载
wget http://download.cloudstack.org/centos/7/4.11/cloudstack-agent-4.11.2.0-1.el7.centos.x86_64.rpm
wget http://download.cloudstack.org/centos/7/4.11/cloudstack-common-4.11.2.0-1.el7.centos.x86_64.rpm

# 安装
yum -y localinstall cloudstack-agent-4.11.2.0-1.el7.centos.x86_64.rpm cloudstack-common-4.11.2.0-1.el7.centos.x86_64.rpm

我们有两个不同的KVM部分需要配置,libvirtQEMU

QEMU配置

KVM配置只在一个项目上相对简单。我们需要编辑QEMU VNC配置。这是通过编辑vi /etc/libvirt/qemu.conf并确保以下行存在并取消注释来完成的。

1
vnc_listen=0.0.0.0
Libvirt配置

CloudStack使用libvirt来管理虚拟机。因此,正确配置libvirt至关重要。Libvirt是云代理的依赖,应该已经安装。

  1. 为了实现实时迁移,libvirt必须监听不安全的TCP连接。我们还需要关闭libvirts尝试使用多播DNS广告。这两个设置都在vi /etc/libvirt/libvirtd.conf

    设置以下参数:

    1
    2
    3
    4
    5
    listen_tls = 0
    listen_tcp = 1
    tcp_port = "16509"
    auth_tcp = "none"
    mdns_adv = 0
  2. 在libvirtd.conf中打开“listen_tcp”是不够的,我们还要更改参数,我们还需要修改vi /etc/sysconfig/libvirtd

    取消注释以下行:

    1
    LIBVIRTD_ARGS=-l
  3. 重启libvirt

    1
    systemctl restart libvirtd
设置agent主机的vi /etc/cloudstack/agent/agent.properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#Storage
#Mon Aug 05 08:53:35 EDT 2019
guest.network.device=cloudbr3 #关键点
workers=5
private.network.device=cloudbr3 #关键点
port=8250
resource=com.cloud.hypervisor.kvm.resource.LibvirtComputingResource
pod=1
zone=1
hypervisor.type=kvm
guid=1338039a-7a8b-3e28-ad3b-0f327b0c853a
public.network.device=cloudbr3 #关键点
cluster=1
local.storage.uuid=094838a5-45f8-4395-87e2-f935acee06ba
keystore.passphrase=qGPHZ4p2CBHq6WQ6
domr.scripts.dir=scripts/network/domr/kvm
LibvirtComputingResource.id=5
host=172.18.193.1 #关键点

或者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#Storage
#Mon Aug 05 08:53:37 EDT 2019
workers=5
private.network.device=cloudbr2 #关键点
port=8250
resource=com.cloud.hypervisor.kvm.resource.LibvirtComputingResource
pod=1
zone=1
hypervisor.type=kvm
guid=ae201417-3dbc-324b-bd5e-69aebfdb6f05
cluster=1
public.network.device=cloudbr2 #关键点
local.storage.uuid=e45c631a-fb3d-4fb0-b9f6-f68a83dd1693
domr.scripts.dir=scripts/network/domr/kvm
keystore.passphrase=k93EXpDZMnXvjRMZ
host=172.18.193.1 #关键点
LibvirtComputingResource.id=4

/etc/cloudstack/agent/agent.properties中的内容可以手动在agent上面执行添加主机的命令。具体添加主机的命令可以在management的日志中获得:

1
2
3
4
5
6
7
cat /var/log/cloudstack/management/management-server.log | grep cloudstack-setup-agent

# 输出(如果没有输出,就在也页面上添加下主机后再执行以上命令)
2014-03-13 09:56:17,758 DEBUG [utils.ssh.SSHCmdHelper] (catalina-exec-11:null) Executing cmd: cloudstack-setup-agent -m 192.168.153.28 -z 2 -p 2 -c 2 -g 0d21492f-9565-329d-9a26-0c85f6d39d12 -a --pubNic=cloud0 --prvNic=cloud0 --guestNic=cloud0
2014-03-13 09:56:52,775 DEBUG [utils.ssh.SSHCmdHelper] (catalina-exec-11:null) cloudstack-setup-agent -m 192.168.153.28 -z 2 -p 2 -c 2 -g 0d21492f-9565-329d-9a26-0c85f6d39d12 -a --pubNic=cloud0 --prvNic=cloud0 --guestNic=cloud0 output:CloudStack Agent setup is done!
2014-03-13 11:12:22,455 DEBUG [utils.ssh.SSHCmdHelper] (catalina-exec-12:null) Executing cmd: cloudstack-setup-agent -m 192.168.153.28 -z 3 -p 3 -c 3 -g 0d21492f-9565-329d-9a26-0c85f6d39d12 -a --pubNic=cloud0 --prvNic=cloud0 --guestNic=cloud0
2014-03-13 11:12:57,267 DEBUG [utils.ssh.SSHCmdHelper] (catalina-exec-12:null) cloudstack-setup-agent -m 192.168.153.28 -z 3 -p 3 -c 3 -g 0d21492f-9565-329d-9a26-0c85f6d39d12 -a --pubNic=cloud0 --prvNic=cloud0 --guestNic=cloud0 output:CloudStack Agent setup is done!

比如我上面的例子,得到如下命令,并在agent上面执行:

1
2
3
4
5
6
7
8
9
10
[root@kvm01 ~]# cloudstack-setup-agent  -m 172.18.193.1 -z 1 -p 1 -c 1 -g 4b68fece-7efd-3f85-9450-e875eaa6fb29 -a -s  --pubNic=cloudbr0 --prvNic=cloudbr0 --guestNic=cloudbr0 --hypervisor=kvm
Starting to configure your system:
Configure SElinux ... [OK]
Configure Network ... [OK]
Configure Libvirt ... [OK]
Configure Firewall ... [OK]
Configure Nfs ... [OK]
Configure cloudAgent ... [OK]
CloudStack Agent setup is done!
[root@kvm01 ~]#
KVM配置完成
  • 为了完整起见,您应该检查KVM在您的计算机上是否正常运行:

    1
    2
    3
    4
    5
    6
    lsmod | grep kvm

    # 输出
    kvm_intel 183705 47
    kvm 615914 1 kvm_intel
    irqbypass 13503 37 kvm

这就结束了我们对KVM的安装和配置,现在我们将使用CloudStack UI来实际配置我们的云。

CloudStack系统配置

访问地址:

1
2
http://<management-server-ip-address>:8080/client
# 即:http://172.18.193.1:8080/client

如果管理服务器是全新的安装,那么会出现一个安装向导。在稍后的访问中,你将看到一个登录界面,,你需要通过用户名和密码登入来查看你的仪表盘。

1
2
3
用户名 -> 你账号的用户ID。默认用户名是admin。
密码 -> 用户ID对应的密码。默认用户名的密码是password。
域 -> 如果你是root用户,此处留空即可。

CloudStack用户界面帮助云基础设施的用户查看和使用他们的云资源,包括虚拟机、模板和ISO、数据卷和快照、宾客网络,以及IP 地址。如果用户是一个或多个CloudStack项目的成员或管理员,用户界面能提供一个面向项目的视图。

选择”我以前是用过CloudStack,跳过此指南”按钮

选择“资源域”

选择“添加资源域”

选择“基本”网络,点击”下一步”

1
2
3
4
5
6
7
# 配置内容如下:
名称:Zone1
IPV4 DNS1:61.139.2.69
内部 DNS1:
虚拟机选择“KVM”
网络方案默认
# 这些内容包括下面的填写仅为参考值。可根据实际情况进行修改

点击”下一步”

1
2
# 配置内容如下:
物理网络名称:默认 #也可键入cloudstack-management实际网络名称

点击”下一步”

1
2
3
4
5
6
# 配置内容如下:
提供名称:Pod1
预留的系统网关:172.18.0.1
预留的系统网络掩码:255.255.0.0
起始预留系统IP:172.18.193.3
结束预留系统IP:172.18.193.254

点击”下一步”

1
2
3
4
5
# 配置内容如下:
来宾网关:172.18.0.1
来宾网络掩码:255.255.0.0
来宾起始IP:172.18.194.1
来宾结束IP:172.18.194.254

点击”下一步”

1
2
3
# 配置内容如下:
虚拟机管理程序:KVM
集群名称:Cluster

点击”下一步”

1
2
3
4
5
# 配置内容如下:
主机名称:172.18.193.2 #cloudstack-agent计算节点地址
用户名:root #cloudstack-agent计算节点用户名
密码:password #cloudstack-agent计算节点密码
主机标签:可不填

点击”下一步”

1
2
3
4
5
6
7
# 配置内容如下:
名称:primary #不是固定的,自己根据需要进行区分即可
范围:选择群集
协议:选择nfs
服务器:172.18.193.1
路径:/data/primary #根据安装时的配置填写
存储路径:可不填

点击”下一步”

1
2
3
4
5
# 配置内容如下:
提供程序:选择NFS
名称:secondary #不是固定的,自己根据需要进行区分即可
服务器:172.18.193.1
路径:/data/secondary #根据安装时的配置填写

点击”下一步”

点击“启动资源域”

成功后,先不启动资源域,我们可以先看下基础架构

此时系统VM为0

资源启动成功后,系统VM会出现2台

系统VM是不同于主机上创建的普通虚拟机的,他们是CloudStack云平台自带的用于完成自身的一些任务的虚拟机

  • Secondary Storage VM:简称为SSVM,用于管理二级存储的相关操作,如模板跟镜像文件的上传与下载,快照,volumes的存放,第一次创建虚拟机时从二级存储拷贝模板到一级存储并且自动创建快照,每一个资源域可以有多个SSVM,当SSVM被删除或停止,它会自动被重建并启动。
  • Console Proxy VM:用于在web 界面上展示控制台。

通过查看控制台访问里面的虚拟机

CloudStack 虚拟机实例

虚拟机实例

默认的模板并没有被下载

修改全局设置secstorage.allowed.internal.sites设置 ,二级存储ISO镜像和模板可以下载,IP网段

重启服务systemctl restart cloudstack-management

搭建http服务器-nginx

目的:注册ISO时需要填镜像的url,实时下载镜像,外网或者网速不是很好下载会很慢甚至下载失败,故搭建自己的http服务器以便在内网下载镜像,这样速度会快很多。

注 :在cloudstack-management管理服务器节点搭建nginx

操作教程见:搭建http服务器-nginx

制作模板

注册ISO

接下来按步骤走,就可以创建出第一个虚拟机了。