Apache CloudStack is an open source Infrastructure-as-a-Service platform that manages and orchestrates pools of storage, network, and computer resources to build a public or private IaaS compute cloud.
Cloud Infrastructure Overview:
Zones: Typically, a zone is equivalent to a single datacenter. A zone consists of one or more pods and secondary storage.
Pods: A pod is usually a rack, or row of racks that includes a layer-2 switch and one or more clusters.
Clusters: A cluster consists of one or more homogenous hosts and primary storage.
Host: A single compute node within a cluster; often a hypervisor.
Primary Storage: A storage resource typically provided to a single cluster for the actual running of instance disk images. (Zone-wide primary storage is an option, though not typically used.)
Secondary Storage: A zone-wide resource which stores disk templates, ISO images, and snapshots.
At least one computer which supports and has enabled hardware virtualization.
An CentOS 7.5 x86_64 install ISO, on bootable media
A /24 network with the gateway being at xxx.xxx.xxx.1, no DHCP should be on this network and none of the computers running CloudStack will have a dynamic address. Again this is done for the sake of simplicity.
vi /var/log/cloudstack/management/management-server.log
就会发现这样一条错误
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) at org.apache.cloudstack.ServerDaemon.start(ServerDaemon.java:200) at org.apache.cloudstack.ServerDaemon.main(ServerDaemon.java:101) Caused by: java.lang.IllegalArgumentException: Can not set long field com.cloud.upgrade.dao.VersionVO.id to java.math.BigInteger at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) at sun.reflect.UnsafeLongFieldAccessorImpl.set(UnsafeLongFieldAccessorImpl.java:102) ... 65 more
这里导致503问题真正原因是
Looks like the new version (8.0.x) is stricter with conversions from Long to BigIntfor example. Auto Increment fields in the database are of type BigInt, but in code we are using Long.
We have two different parts of KVM to configure, libvirt, and QEMU.
QEMU配置
KVM configuration is relatively simple at only a single item. We need to edit the QEMU VNC configuration. This is done by editing /etc/libvirt/qemu.conf and ensuring the following line is present and uncommented.
vnc_listen=0.0.0.0
Libvirt配置
Libvirt is a dependency of cloud-agent and should already be installed.
In order to have live migration working libvirt has to listen for unsecured TCP connections. We also need to turn off libvirts attempt to use Multicast DNS advertising. Both of these settings are in /etc/libvirt/libvirtd.conf
[root@master ~]# cloudstack-setup-management
Traceback (most recent call last):
File "/usr/bin/cloudstack-setup-management", line 24, in
from cloudutils.serviceConfigServer import cloudManagementConfig
File "/usr/lib64/python2.7/site-packages/cloudutils/serviceConfigServer.py", line 17, in
from db import Database
File "/usr/lib64/python2.7/site-packages/cloudutils/db.py", line 20, in
import mysql.connector
File "/usr/lib64/python2.7/site-packages/mysql/connector/__init__.py", line 41, in
import dns.resolver
ImportError: No module named dns.resolver
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project cloud-framework-managed-context: Compilation failure
[ERROR] javac: invalid target release: 11
[ERROR] Usage: javac
[ERROR] use -help for a list of possible options
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
DEBUG:root:execute:hostname -f
DEBUG:root:execute:selinuxenabled
DEBUG:root:execute:setenforce 0
DEBUG:root:cloudbr0 is not a network device, is it down?
DEBUG:root:execute:route -n|awk '/^0.0.0.0/ {print $2,$8}'
DEBUG:root:execute:ifconfig ens33
DEBUG:root:[Errno 2] No such file or directory
File "/usr/lib64/python2.7/site-packages/cloudutils/serviceConfig.py", line 38, in configration
result = self.config()
File "/usr/lib64/python2.7/site-packages/cloudutils/serviceConfig.py", line 309, in config
super(networkConfigRedhat, self).cfgNetwork()
File "/usr/lib64/python2.7/site-packages/cloudutils/serviceConfig.py", line 108, in cfgNetwork
device = self.netcfg.getDefaultNetwork()
File "/usr/lib64/python2.7/site-packages/cloudutils/networkConfig.py", line 53, in getDefaultNetwork
pdi = networkConfig.getDevInfo(dev)
File "/usr/lib64/python2.7/site-packages/cloudutils/networkConfig.py", line 157, in getDevInfo
elif networkConfig.isBridge(dev) or networkConfig.isOvsBridge(dev):
This article is from an interview with Zuhaib Siddique, a production engineer at HipChat, makers of group chat and IM for teams.
HipChat started in an unusual space, one you might not