快速部署一朵 Apache CloudStack 云 (一)
部署前的准备工作
Apache CloudStack快速部署指南
我们究竟在构建什么?
构建IAAS云是一件很复杂的事项,根据相关定义,构建IAAS云的可选项有很多。这些纷繁复杂的概念通常给人们带来困惑------即便是哪些有着吩咐使用经验的云管理员新接触构建云平台时也是如此。本手册的目标在于为你提供一份以最小的困难搭建并运行一个Apache CloudStack云的指导说明。
【敬告:】
【本指导手册仅用于构建一个概念验证性的Apache CloudStack云,和云相关的网路设定都是既定的、不建议使用此指导手册搭建一个业务生产环境。如果你没有实体服务器可用,也可以借助Oracle VirtualBox之类的虚拟化工具搭建Apache CloudStack云。你需要在VirtualBox实例中启用扩展功能"Nested VT-x/AMD-V"。假定你创建的VirtualBox实例安装了RHEL系列的操作系统、并分配到了40GB的虚拟磁盘。你需要为这个VirtualBox实例分配1张网卡、并将之桥接到你的笔记本电脑的可使用网卡上,也可以给这个VirtualBox实例上的网卡设定为"半虚拟化"类型以提升VirtualBox实例的网路性能。还需确保VirtualBox实例上的这个网卡被配置成了"混杂模式",一遍它能承载从Apache CloudStack云内系统级虚拟机到对应网关的网路流量。用于搭建Apache CloudStack云的VirtualBox实例应满足至少6GB的RAM和3核心的CPU。】
本手册要实现的目标:
使用基于CentOS-7.9的KVM虚拟机、NFS存储、使用VLAN的二层隔离网络、同一规格的Apache CloudStack宿主机(此处表现为KVM虚拟机实例)构建一个Apache CloudStack。
KVM是一种为Linux-Kernel而生的虚拟化技术,可以支持在硬件虚拟化扩展型处理器之上的本地虚拟化。
前置准备条件:
- 至少一台支持并启用了硬件虚拟化的笔记本电脑。
- CentOS-7.9可启动安装映像。
- 网关为xxx.xxx.xxx.1的24位掩码的CIDR网络(不要启用DHCP服务,为简便起见,所有的Apache CloudStack宿主机都不使用动态IP地址)。
部署Apache CloudStack的预执行环境准备:
正式部署Apache CloudStack前,你需要准备一个预安装环境。
关于宿主机的操作系统
使用CentOS-7.9可启动映像给宿主机安装OS,使用默认的联网设定安装需要的软件包。(在正式部署Apache CloudStack阶段需要按需修改网络设定)。宿主机OS安装完毕后,配置SSH连接,去报你可以通过SSH客户端访问宿主机。
关于宿主机OS的网络
先给宿主机安装网络工具包"bridge-utils"和"net-tools"。通过SSH连接到宿主机OS、并切换到 root 用户及其环境变量,创建Apache CloudStack所需的网桥cloudbr0,编辑网桥cloudbr0的配置文件/etc/sysconfig/network-scripts/ifcfg-cloudbr0:
【在整个指导手册中,我们假定你搭建Apache CloudStack使用了172.16.10.0/24这个CIDR地址块。如果你的Apache CloudStack宿主机是VirtualBox实例,为实现正常的网络包转发功能,VirtualBox实例上的网卡应当处于桥接状态,VirtualBox实例可能使用192.168.1.0/24 这个CIDR地址块。】
编辑配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,配置宿主机的网卡eth0的网络连接信息:
【注意:如果宿主机上的网卡eth0在此前已被配置,请确保这份配置在/etc/sysconfig/network-scripts/ifcfg-cloudbr0和/etc/sysconfig/network-scripts/ifcfg-eth0之间没有复现,否则会导致宿主机的网络启动失败。本文档中给出的配置示例中,网卡eth0上的原始IP信息会被转移到网桥cloudbr0上、同时把网卡eth0添加到网桥cloudbr0上。】
至此,宿主机的网络配置已经设定完毕,我们需要启动设定好的网络:
关于宿主机的hostname:
Apache Cloudstack的宿主机需要设定恰当的主机名,默认情况下的主机名是"localhost"。我们可以通过编辑解析文件"/etc/hosts"后重启网络服务完成主机名的修改:
关于安全强化Linux的设定
建议把SELinux关闭,可以执行如下命令:
关于宿主机集群内的始终同步
本手册中使用的时钟工具为NTP,也可以酌情使用诸如chrony之类的时钟同步工具。默认的NTP设定就可以满足我们的使用要求了,我们仅需启动它、并把它设定为开机自动启动即可。
关于Apache CloudStack组件的包安装仓库
Apache CloudStack官方是只提供源代码产品的,因此们并没有官方的二进制安装包可用。因此我们使用了一个合区维护的yum软件仓库、并计划安装Apache CloudStack version 4.19.1.1 。
编辑软件仓库配置文件 /etc/yum.repos.d/cloudstack.repo 并填写一下内容:
关于主存储和辅助存储(均使用NFS实现)
我们要把NFS配置起来供组存储和辅助存储同时使用,现在宿主机上安装NFS的工具包nfs-utils和rpcbind。
接下来编辑NFS-server的配置文件"/etc/exports",以把NFS-server上的磁盘划分给主存储和辅助存储使用:
现在来到NFS-server上创建主存储和辅助存储的挂载路径;
在CentOS-7.9中默认安装的是NFSv4,这个版本的NFS要求NFS-server端的域名可以匹配到所有的NFS-Client端,因此需要在NFS-server端和NFS-Client端的配置文件 /etc/idmapd.conf 中做如下设定(详情可参阅RedHat技术文档https://access.redhat.com/solutions/2791811)、并重启rpcidmapd:
确认宿主机OS上的firewalld处于关闭状态后,启动NFS的server端;
关于宿主机OS上的防火墙设定
为简便行事,建议把CentOS-7.9上的firewalld关闭。当然,也可以把防火墙配置为只放行Apache CloudStack相关组件运行所需端口。