1、cloudstack介绍
一个开源具有高可用性及扩展性的云计算平台,Cloudstack是一个开源的云操作系统;
cloudstack支持管理大部分主流的hypervisors,如:VMware,KVM,Citrix XenServer,Xen Cloud Platform(XCP),Oracle VM服务器和Microsoft Hyper-V。
2、结构介绍
注释:
#区域Zone
zone对应于现实中的一个数据中心,它是CloudStack中最大的一个单元
(一个zone包含多个pod,一个pod可以包含多个cluster,一个cluster包含多个host)
#提供点pods
一个提供点通常代表一个机架;机柜里的主机在同一个子网,每个区域中
必须包含一个或多个提供点,提供点中包含主机和主存储服务器;Cloudstack
的内部管理通信配置一个预留的IP地址范围。预留的IP地址范围对云中的
每一个区域来说必须是唯一的。
#集群Clusters
Clusters是多个主机组成的一个集群。
同一个cluster中的主机有相同的硬件,相同的Hypervisor和共用同样的存储。
同一个cluster中的虚拟机,可以实现无中断服务地从一个主机迁移到另一个主机上
集群由一个或多个宿主机和一个或多个主要存储服务器构成;
集群的大小取决于下层虚拟机软件,大多数情况下基本无建议。
#主机hosts
host就是运行的虚拟机(VM)主机。
宿主机就是一个独立的计算机,宿主机在CloudStack部署中属于最小的组织单元
#存储
CloudStack中存在两种存储:
Primary storage:一级存储与cluster关联,它为该cluster中的主机内全部虚拟机提供
磁盘卷。一个cluster至少有一个一级存储,且在部署时位置要临近主机以提高性能。
Secondary storage:二级存储与zone关联,它存储模板文件、ISO镜像和磁盘卷快照。
3、实验
系统版本 主机名 IP地址 磁盘 Centos7.5 master01 10.10.10.80 /dev/sda 系统盘 /dev/sdb 数据盘(50G) Centos7.5 agent01 10.10.10.81 /dev/sda 系统盘 /dev/sdb 数据盘(50G)
3.1、基础环境设置(全部节点)
修改主机名‘、添加hosts解析、关闭SElinux
#下载epl源
yum -y install epel-release
#关闭selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #临时关闭 setenforce 0 getenforce
#同步时区
timedatectl set-timezone Asia/Shanghai
timedatectl set-local-rtc 1
yum -y install ntpdate
ntpdate time.windows.com
crontab -e
*/5 * * * * /usr/sbin/ntpdate time.windows.com 2>&1 >> /dev/null
systemctl enable ntpd
3.2、下载软件包(master节点)
#第一种方式(yum安装) [root@master01 yum.repos.d]# pwd /etc/yum.repos.d [root@master01 yum.repos.d]# cat cloudstack.repo [cloudstack] name=cloudstack baseurl=http://cloudstack.apt-get.eu/centos7/4.11/ enabled=1 gpgcheck=0 [root@master01 yum.repos.d]# yum list|grep cloudstack cloudstack-agent.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-baremetal-agent.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-cli.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-common.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-integration-tests.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-management.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-marvin.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-mysql-ha.x86_64 4.11.1.0-1.el7.centos cloudstack cloudstack-usage.x86_64 4.11.1.0-1.el7.centos cloudstack [root@master01 yum.repos.d]# #第二种方式(先下载好) #http://download.cloudstack.org/centos/7/4.11/ wget http://download.cloudstack.org/centos/7/4.11/cloudstack-usage-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-management-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-common-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-cli-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-agent-4.11.1.0-1.el7.centos.x86_64.rpm wget http://download.cloudstack.org/centos/7/4.11/cloudstack-baremetal-agent-4.11.1.0-1.el7.centos.x86_64.rpm #http://download.cloudstack.org/systemvm/4.11/ wget http://download.cloudstack.org/systemvm/4.11/systemvmtemplate-4.11.1-kvm.qcow2.bz2
3.3、安装nfs(master节点)
配置的环境使用NFS作为主存储和辅助存储,需要配置两个NFS共享目录
[root@master01 src]# yum -y install nfs-utils [root@master01 src]# cat /etc/exports /export/secondary *(rw,async,no_root_squash,no_subtree_check) /export/primary *(rw,async,no_root_squash,no_subtree_check) [root@master01 src]# mkdir -p /export/secondary [root@master01 src]# mkdir -p /export/primary #格式化dev/sdb作为挂载磁盘 mkfs.ext4 /dev/sdb [root@master01 ~]# mount /dev/sdb /export/secondary/ #加入/etc/fsta文件中加入 /dev/sdb /export/secondary xfs defaults 0 0 ***客户端创建一个/export/primary*** mkdir -p /export/primary mkfs.ext4 /dev/sdb [root@agent01 ~]# mount /dev/sdb /export/primary/ #cloudstack官方文档 http://docs.cloudstack.apache.org/en/4.11.1.0/quickinstallationguide/qig.html#nfs [root@master01 ~]# vim /etc/sysconfig/nfs LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 RQUOTAD_PORT=875 STATD_PORT=662 STATD_OUTGOING_PORT=2020 #此处防火墙端口的添加不再操作!生产中💊开启防火墙放行相应端口 #启动nfs服务 systemctl restart nfs systemctl rpcbind start systemctl enable rpcbind systemctl enable nfs
3.4、客户端挂载nfs共享磁盘
yum -y install nfs-utils [root@agent01 ~]# showmount -e 10.10.10.80 Export list for 10.10.10.80: /export/primary * /export/secondary * 注释:可以进行挂载测试,测试完成可以挂载后续删除,后续软件会自动挂载
4、管理服务器安装
接下来进行Cloudstack管理节点和相关工具的安装
4.1、安装管理端
#如果配置好了源
[root@master01 src]# yum -y install cloudstack-management cloudstack-common
#如果下载了好包
yum -y install cloudstack-management-4.11.1.0-1.el7.centos.x86_64.rpm cloudstack-common-4.11.1.0-1.el7.centos.x86_64.rpm
#验证
[root@master01 ~]# rpm -qa|grep cloudstack
cloudstack-common-4.11.1.0-1.el7.centos.x86_64
cloudstack-management-4.11.1.0-1.el7.centos.x86_64
4.2、安装mysql-server
[root@master01 ~]# yum -y install mariadb-server mysql安装完成后,需更改其配置文件/etc/my.cnf 在[mysqld]下添加下列参数: innodb_rollback_on_timeout=1 innodb_lock_wait_timeout=600 max_connections=350 log-bin=mysql-bin binlog-format= 'ROW' #启动mysql服务 systemctl start mariadb.service systemctl enable mariadb.service #修改初始密码 [root@master01 ~]# mysqladmin -u root password '123456' 或(如果之前有密码需要更新) mysqladmin -u root -p password '12345' #远程连接权限 mysql -uroot -p12345 -e "GRANT ALL PRIVILEGES ON *.* TO ROOT@'%' IDENTIFIED BY '12345'";
4.3、系统初始化
在程序执行完毕后,需初始化数据库,通过如下命令和选项完成:
[root@master01 ~]# cloudstack-setup-databases cloud:12345@localhost --deploy-as=root:12345
#启动cloudstack服务 [root@master01 ~]# cloudstack-setup-management Starting to configure CloudStack Management Server: Configure Firewall ... [OK] Configure CloudStack Management Server ...[OK] CloudStack Management Server setup is Done!

4.4、系统模板设置
CloudStack通过一系列系统虚拟机提供功能,如访问虚拟机控制台,如提供各类网络服务以及管理辅助存储中的各类资源。该步骤会获取系统虚拟机模板,用于云平台引导后系统虚拟的部署。
然后需要下载系统虚拟机模板并把这些模板部署于刚才创建的辅助存储中,管理服务器包含一个脚本可以正确的操作这些系统虚拟机模板:
[root@master01 ~]# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary/ -f /usr/local/src/systemvmtemplate-4.11.1-kvm.qcow2.bz2 -h kvm -F
4.5、登录管理页面
要访问CloudStack的Web界面,只需将浏览器指向 http://172.16.10.2:8080/client,默认用户名为“admin”,默认密码为“password”
5、安装agent节点及配置
5.1、agent安装
安装kvm代理仅仅需要一条简单的命令,但之后我们需要进行一些配置。
[root@agent01 ~]# yum -y install cloudstack-common cloudstack-agent
5.2、修改配置
KVM的配置相对简单,仅需配置一项,编辑QEMW VNC配置文件/etc/libvirt/qemu.conf并取消如下一行的注释;同时注释#security_driver = "selinux"。
vnc_listen = "0.0.0.0" #这个需要打开 #security_driver = "selinux" #这个默认就是关闭的,不需要管
5.3、配置Libvirt
CloudStack使用libirt管理虚拟机;因此正确的配置libvirt至关重要。libvirt属于cloudstack-agent的依赖组件,需要提前安装好。
为了实现动态迁移,libvirt需要监听使用非加密的TCP连接,还需要关闭libvirts尝试使用组播DNS进行广播。这些都在 /etc/libvirt/libvirtd.conf文件中进行配置。
设置如下参数:(不是必须的)
listen_tls = 0 listen_tcp = 1 tcp_port = "16509" auth_tcp = "none" mdns_adv = 0
[root@agent01 ~]# modprobe kvm [root@agent01 ~]# lsmod|grep kvm kvm 578518 0 irqbypass 13503 1 kvm
重启libvirt服务
systemctl restart libvirtd
6、系统配置
10章未看