之前记录过一次,但是是安装在一个节点之上,这次将管理节点和计算节点分离。重新记录一次安装过程,方便后续使用。
准备两台VMware Workstations虚拟机进行基本设置
CentOS7 系统 最小化安装 安装后 最好执行一下升级
yum -y upgrade
一个是manager节点 管理节点
一个是agent节点 计算节点
manager节点设置
内存2G 处理器数量1 核心数量2 开启虚拟化 新增20G硬盘
重点是勾选虚拟化 Intel VT-x/EP 或 AMD-V/RVI(V) 开启虚拟化
agent 节点设置
内存4G 处理器数量1 核心数量2 开启虚拟化 新增20G硬盘
agent作为计算节点,内存要分配的多一点,虚拟机运行在计算节点之上。同manager 一定要勾选虚拟化。
基本设置
一、 设置 主机名
manager 节点主机名 manager.feng.cloud
agent 节点主机名 agent.feng.cloud
manager 节点
vi /etc/hostname
设置主机名 需重启系统后 才能生效
manager.feng.cloud
或者当前主机名修改立即生效
hostnamectl set-hostname manager.feng.cloud
但是重启后失效,两者可以结合使用
agent 节点
vi /etc/hostname
设置agent节点主机名
agent.feng.cloud
二、设置IP。
设置静态IP
manager 节点 192.168.199.91
agent 节点 192.168.199.92
manager节点
不同的系统 可能不是ens33
vi /etc/sysconfig/network-scripts/ifcfg-ens33
原有设置不要删除,改变或新增如下内容
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.199.91
NETMASK=255.255.255.0
GATEWAY=192.168.199.1
重启network使IP设置生效。
systemctl restart network
manager节点
不同的系统 可能不是ens33
vi /etc/sysconfig/network-scripts/ifcfg-ens33
原有设置不要删除,改变或新增如下内容
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.199.91
NETMASK=255.255.255.0
GATEWAY=192.168.199.1
重启network使IP设置生效。
systemctl restart network
agent节点
区别只是 IPADDR 设置变为 192.168.199.92
vi /etc/sysconfig/network-scripts/ifcfg-ens33
原有设置不要删除,改变或新增如下内容
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.199.92
NETMASK=255.255.255.0
GATEWAY=192.168.199.1
重启network使IP设置生效。
systemctl restart network
两个节点有可能因为修改主机IP导致默认dns失效,修改dns服务器
dns服务器负责域名解析,将如 www.baidu.com 网址解析成IP。
vi /etc/resolv.conf
文件内容设置大致如下 8.8.8.8 8.8.4.4 是两个公共dns服务器,也可以设置成私人的dns服务器
# Generated by NetworkManager
search feng.cloud
nameserver 8.8.8.8
nameserver 8.8.4.4
三、设置host 和 IP映射
两个节点设置一致。
编辑 /etc/hosts 文件
vi /etc/hosts
新增
192.168.199.91 manager.feng.cloud
192.168.199.92 agent.feng.cloud
测试 映射是否成功
ping manager.feng.cloud
ping agent.feng.cloud
四、关闭防火墙,设置selinux为permissive模式
manager节点和agent节点都需执行
由于是测试安装 所以 关闭防火墙比较方便。具体安装可以开启防火墙然后设置开放相应端口即可。
关闭防火墙并设置开机不启动
systemctl disable firewalld
systemctl stop firewalld
设置selinux为permissive模式。
vi /etc/selinux/config
设置
SELINUX=permissive
重启系统后生效
希望当前立即生效,但是重启后会失效 指令
setenforce permissive
查看 当前selinux
getenforce
五、时区设置。这个不是必要的。
如果安装时未选择时区,默认时区应该是 EDT(北美东部夏令时时间),尽管执行cloudstack安装使用也无太大影响,但是与本机时间差异较大,看上去有点别扭。于是设置时区 Asia/Shanghai 或者 Asia/Hong_Kong Asia/Taipei 都差不多
如果设置时区,两个节点要设置一致
timedatectl set-timezone Asia/Shanghai
设置完成查看
timedatectl
基本软件安装
基本上 manager和agent节点都要安装,如有不同会指出。
一、epel 安装 启用
EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.
cloudstack软件很多依赖包都要通过epel安装,因此一定要安装epel
yum -y install epel*
重建本地仓库缓存
yum clean all && yum makecache
一般安装完成 epel 就启用了,但有些时候总是会有突发情况发生,epel 安装成功却无法启用。这时需要执行
如果安装成功,且启用了 不要执行这句话
yum install -y yum-utils && yum-config-manager --enable epel
顺便安装一个 vim 使用同vi,不过编辑文件时看上去好看点。
yum -y install vim
二、时间同步模块
CentOS7 应该是准备实验chronyd替代ntpd,两个节点都要安装一个时间同步软件,然后启动。
安装chrony
yum -y install chrony
默认的时间同步服务器是国外的服务器, 一般是可以使用的
如果希望改成国内的。如 阿里云的时间同步服务器,修改 文件
vim /etc/chrony.conf
将
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 ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
重启chronyd
systemctl restart chronyd
三、nfs服务
测试安装,主存储和二级存储都使用 nfs 协议。将主存储放在agent计算节点,二级存储放在manager管理节点。
软件安装、设置,两节点一致
yum -y install nfs-utils
编辑配置文件,目的主要是 固定 nfs 服务使用的端口,如果不指明,可能会使用随机端口。可能占用cloudstack所需,因此固定端口
vim /etc/sysconfig/nfs
指定端口
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
启动服务并设置开机启动
systemctl enable rpcbind
systemctl start rpcbind
systemctl enable nfs
systemctl start nfs
两个节点可以分别查看一下 对方的 共享文件,当前,目前还未设置,为空
showmount -e agent.feng.cloud
showmount -e manager.feng.cloud
manager节点设置二级存储使用的nfs共享目录
查看 新增硬盘
fdisk -l
新增硬盘为 /dev/sdb
格式化硬盘,建立文件系统 格式 ext4
mkfs.xfs /dev/sdb
创建挂载点
mkdir -p /export/secondary
硬盘挂载写入 /etc/fstab 开机挂载
echo "/dev/sdb /export/secondary xfs defaults 0 0" >> /etc/fstab
快速挂载 /etc/fstab 中内容
mount -a
查看 文件挂载
df -h
设置共享目录
vim /etc/exports
添加
/export/secondary *(rw,async,no_root_squash,no_subtree_check)
重新导入共享目录配置
exportfs -a
agent 节点查看 manager 的共享目录
showmount -e manager.feng.cloud
agent节点设置主存储使用的nfs共享目录
格式化硬盘,建立文件系统 格式 ext4
mkfs.xfs /dev/sdb
创建挂载点
mkdir -p /export/primary
硬盘挂载写入 /etc/fstab 开机挂载
echo "/dev/sdb /export/primary xfs defaults 0 0" >> /etc/fstab
快速挂载 /etc/fstab 中内容
mount -a
设置共享目录
vim /etc/exports
添加
/export/primary *(rw,async,no_root_squash,no_subtree_check)
重新导入共享目录配置
exportfs -a
manager 节点查看 agent的共享目录
showmount -e agent.feng.cloud
四、安装mysql服务
mysql服务通常和管理节点安装在一起。
mariadb 可看做mysql的分支,CentOS7无法直接安装mysql,可以使用mariadb代替。
在manager节点执行
yum -y install mariadb-server mariadb
编辑 mariadb 配置文件
vim /etc/my.cnf
在mysqld 模块下加入
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
bind-address = 0.0.0.0
max_connections 值为表示管理服务器 * 350
bind-address = 0.0.0.0并不是必须要加的,只是如果cloudstack管理和数据服务不再同一个节点上市,数据库服务要设置允许远程连接。
启动mariadb 并设置为开机启动
systemctl enable mariadb
systemctl start mariadb
执行数据库初始化安全操作。
mysql_secure_installation
设置密码,删除无用数据库等,大多是选择默认即可,一般在屏蔽远程连接时选n。
数据库初始化完成 应该也设置了root密码。
可以设置 赋予 root 远程登录权限。
mysql -uroot -p123456 -e "GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '123456' WITH GRANT OPTION";
五、设置 cloudstack安装源4.13
manager和agent节点都要设置
vi /etc/yum.repos.d/cloudstack.repo
设置 baseurl 4.13
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/centos7/4.13/
enabled=1
gpgcheck=0
安装cloudstack软件,基本设置
设置好安装源可以直接安装。
manager节点安装
yum -y install cloudstack-management
agent 节点安装
yum -y install cloudstack-agent
但是 根据网络等影响,安装应该挺慢的。可以将软件包下载到本地安装。
http://cloudstack.apt-get.eu/centos7/4.13/
下载如下三个到本地安装即可。
http://cloudstack.apt-get.eu/centos7/4.13/cloudstack-management-4.13.1.0-1.el7.x86_64.rpm
http://cloudstack.apt-get.eu/centos7/4.13/cloudstack-agent-4.13.1.0-1.el7.x86_64.rpm
http://cloudstack.apt-get.eu/centos7/4.13/cloudstack-common-4.13.1.0-1.el7.x86_64.rpm
manager 节点安装cloudstack-management
将软件包下载到本地安装
yum -y install cloudstack-common-4.13.1.0-1.el7.x86_64.rpm cloudstack-management-4.13.1.0-1.el7.x86_64.rpm
初始化数据库,这一步在数据库中创建cloudstack使用的库表,并创建初始数据。 会在mysql中新创建一个 cloud 用户
cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:123456
启动management
cloudstack-setup-management
会进行防火墙 网络等配置。启动 cloudstack-management
这时已经可以通过 manager的IP访问到UI界面了。
http://manager:8080/client/
初始化,账号密码是 admin password
选择 我以前使用过
可以看到什么都是空的。。。因为还未创建资源域
安装系统模板到二级存储
这一步一定要记得,根据希望通过哪种软件管理虚拟机,将对应的软件模板安装进二级存储。可以安装多个不同模板
cloudstack4.13.1 对应的cloudstack软件 安装 4.11.3 的模板
http://cloudstack.apt-get.eu/systemvm/4.11/
1、网络方式安装,问题还是网速较慢。安装过程可能断开服务器连接重新安装
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /export/secondary \
-u http://cloudstack.apt-get.eu/systemvm/4.11/systemvmtemplate-4.11.3-kvm.qcow2.bz2 \
-h kvm -F
2、下载到本地安装
示例安装KVM模板
http://cloudstack.apt-get.eu/systemvm/4.11/systemvmtemplate-4.11.3-kvm.qcow2.bz2
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /export/secondary \
-f /root/systemvmtemplate-4.11.3-kvm.qcow2.bz2 \
-h kvm –F
cloudstack运行过程中日志文件写在管理节点日志,可以查看日志判断运行过程错误。
tail -f /var/log/cloudstack/management/management-server.log
agent 节点安装cloudstack-agent
安装net-tools 工具,设置网络桥接
在安装cloudstack之前,要先设置桥接。因为计算节点运行的虚拟机通过网桥同计算节点通信,除了使用linux自带的桥接设置外,还可用一种软件switch可设置桥接,示例使用基础设置。
yum -y install net-tools bridge-utils
编辑网卡桥接文件 cloudbr
vim /etc/sysconfig/network-scripts/ifcfg-cloudbr0
内容如下,根据自己实际IP修改
TYPE=Bridge
BOOTPROTO=none
DEVICE=cloudbr0
ONBOOT=yes
IPV6INIT=no
IPV6_AUTOCONF=no
DELAY=5
IPADDR=192.168.199.92
NETMASK=255.255.255.0
GATEWAY=192.168.199.1
STP=yes
设置网卡文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
添加如下内容。将原IP 网关 子网掩码设置删除
HOTPLUG=no
BRIDGE=cloudbr0
HOTPLUG=no
表示不支持热插拔;举例来说,在Windows XP、Windows 7等系统中对U盘、网卡之类的硬件是支持热插拔的; 这就意味着,你不能在不断电的情况下直接插拔网卡,否则可能出现错误。
这样ifcfg-ens33文件看上去像这个样子
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="0ffad9c6-4d9b-4813-b9f7-e67aad7383fa"
DEVICE="ens33"
ONBOOT="yes"
HOTPLUG=no
BRIDGE=cloudbr0
重新启动网络服务
systemctl restart network
查看 网桥 和路由
brctl show
route -n
安装cloudstack-agent 进行基本设置
本地安装
yum -y install cloudstack-common-4.13.1.0-1.el7.x86_64.rpm cloudstack-agent-4.13.1.0-1.el7.x86_64.rpm
cloudstack管理虚拟机,底层的虚拟机创建等还是通过kvm qemu等实现,libvirtd提供接口 访问虚拟机等。因此安装完成要修改相应配置。
CloudStack通过libverd来管理所有的kvm
有两部分需要进行配置, libvirt和QEMU
1) 编辑QEMU VNC配置文件/etc/libvirt/qemu.conf
vim /etc/libvirt/qemu.conf
去掉注释
vnc_listen="0.0.0.0"
2)CloudStack使用libvirt管理虚拟机
配置/etc/libvirt/libvirtd.conf文件
vim /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0
配置/etc/sysconfig/libvirtd文件
vim /etc/sysconfig/libvirtd
LIBVIRTD_ARGS="--listen"
3)重启libvirtd 并设置为开机自启
systemctl restart libvirtd
systemctl enable libvirtd
访问WEBUI,创建资源域
http://192.168.199.91:8080/client/
初始账号 admin
初始密码 password
选择以前使用过 cloudstack
修改全局设置
设置host 修改为管理节点IP
host 192.168.199.91
设置 超配倍数 可分配资源= 实际资源 * 超配倍数。
包括 CPU 内存 主存储容量等。 一般不设置内存超配,CPU超配大概3~4倍。
这里都修改成了 2倍。 大家根据实际情况设置。
cpu.overprovisioning.factor CPU超配倍数
mem.overprovisioning.factor 内存超配倍数
设置secstorage 设置允许从该网段下载ISO或模板
设置为允许从各个网段下载ISO或模板资源
secstorage.allowed.internal.sites 0.0.0.0/0
设置完成需重启 cloudsatck-management
systemctl restart cloudstack-management
创建资源域
再次访问 WEB UI界面,点击基础架构创建资源域
选择基本网络大致内容填写如下,根据个人设置填写。
- 资源域
名称
Zone1 可随意
DNS
8.8.8.8
8.8.4.4
8.8.8.8
8.8.8.8
虚拟机管理程序
KVM
其它
默认
- 提供点 预留的系统IP范围不用太多,使用cloudstack系统VM使用的。
提供点名称:
Pod1 可随意
预留的系统网关:
192.168.199.1
预留的系统网络掩码:
255.255.255.0
起始预留系统 IP:
192.168.199.20
结束预留系统 IP
192.168.199.39
- 来宾流量 根据欲创建虚拟机数量的大小,可以将来宾流量范围设置的大一些
来宾网关:
192.168.199.1
来宾网络掩码:
255.255.255.0
来宾起始 IP:
192.168.199.40
来宾结束 IP:
192.168.199.79
- 集群名称 Cluster1 可随意
- 主机 计算节点的用户名密码 最好是使用root用户,非root需要进行其他设置,看官方文档。
主机名称:
192.168.199.92
用户名:
root
密码:
••••••
- 主存储 用来存放 模板 镜像 和快照等文件。就是在计算节点上设置的nfs共享文件
名称:
Primary1
协议:
192.168.199.92
路径:
/export/primary
- 二级存储 存放虚拟实例的数据等。管理节点的女粉丝共享目录,里面存放了KVM系统模板
提供程序 nfs
名称 可不填写
服务器:
192.168.199.91
路径:
/export/secondary
准备完毕
启动资源域
等待创建完成,启动资源域。
添加ISO镜像,创建虚拟机,生成模板
资源域创建完毕,系统VM也成功启动,测试创建一个虚拟机
创建一个nginx 服务器当作镜像下载站
随便在哪一个节点安装一个nginx 服务,用来当做ISO镜像下载站
如 agent
安装 nginx 软件
yum -y install nginx
编辑 nginx 配置文件
vim /etc/nginx/nginx.conf
在access_log /var/log/nginx/access.log main; 一行后加上
autoindex on;# 显示目录
autoindex_exact_size on;# 显示文件大小
autoindex_localtime on;# 显示文件时间
清空 /usr/share/nginx/html 目录
cd /usr/share/nginx/html
rm -rf *
将准备好的ISO镜像 放进去,测试放的是 CentOS7Minimal 的系统镜像
cd /usr/share/nginx/html
ls
重启nginx 服务,设置为开机启动
systemctl enable nginx
systemctl start nginx
网页访问可以看到ISO 系统镜像
cloudstack添加 ISO镜像
nginx 作为 ISO镜像 下载服务器搭建完成,还需将ISO 添加进CloudStack的ISO镜像中
点击模板 选择视图 ISO
注册 ISO
URL 就是刚才nginx 服务器中 ISO镜像的 URL 说明和名称随意。操作系统选择 CentOS7 勾选 可提取
等待安装完成
完成后状态如下。
ISO视图多了一个CentOS7
根据ISO镜像创建虚拟机并使外部可访问
ISO 添加完毕可以用来 创建虚拟机了。
点击实例 查看,目前为空。
点击 添加实例
然后一直下一步皆可。计算方案和磁盘方案可以选择 Medium
等待启动完成。
然后 + 查看控制台。。。开始安装CentOS7。这个安装过程就和正常安装CentOS一致。
中间出现问题 可以 重新启动
再次查看控制台重装系统,直到安装完成提示 REBOOT重启,这时候,不要直接reboot。。。如果直接点击reboot重启,那么会再次安装一遍CentOS7
先回到实例查看界面 选择取消 附加 ISO 然后重新启动 实例
重新启动完成后。即可看到正常的系统安装完成
设置网络 安全组
安全组 类似于防火墙。其中 入口规则 表示外部网络可以访问 虚拟实例的哪些端口
可以选择在入口 添加一些 必须端口,相当于 开放防火墙端口
如 TCP 22 ICMP 8 0 TCP 3389 等
根据虚拟机创建模板
如希望创建模板先将主机停掉 等待状态变为stoped
然后查看卷
点击快速查看 + 就可以发现创建 模板的选项了
等待一段时间还没发现模板创建完成,可以重新访问UI。可能创建模板过程卡住了,应该已经创建完成了。
已就绪状态为Yes 模板添加完成