date: 2021-02-28title: cloudstack增加kvm计算节点 #标题
tags: cloudstack #标签
categories: cloudstack # 分类

这篇博文将在 cloudstack + kvm部署实践 的基础上新增一个kvm计算节点。

环境准备

cloudstack + kvm部署实践 博文的正常运行环境,以及一个新的计算节点:IP为192.168.6,4g4c,CPU支持虚拟化,如下:

cloudstack增加kvm计算节点 - 图1

修改主机名

  1. # 根据实际情况设置主机名
  2. $ hostnamectl set-hostname kvm2
  3. # 主机名更改后,执行下面命令生效
  4. $ bash
  5. source /etc/profile

关闭防火墙及selinux

在生产环境中,建议防火墙放行内网网段即可。selinux设置为permissive模式。

  1. # 关防火墙
  2. $ systemctl stop firewalld && systemctl disable firewalld
  3. # 关selinux
  4. setenforce 0
  5. sed -i 's#^SELINUX=.*#SELINUX=permissive#g' /etc/selinux/config
  6. sed -i 's#^SELINUX=.*#SELINUX=permissive#g' /etc/sysconfig/selinux

配置时间同步

  1. # 同步management时间
  2. $ mv /etc/chrony.conf{,.bak}
  3. cat > /etc/chrony.conf << EOF
  4. server 192.168.20.2 iburst
  5. driftfile /var/lib/chrony/drift
  6. makestep 1.0 3
  7. rtcsync
  8. logdir /var/log/chrony
  9. EOF
  10. # 重启chronyd
  11. systemctl enable chronyd && systemctl restart chronyd

配置yum源

这一步主要是将默认的国外yum源配置为国内阿里的yum,如果你有自己内网的yum源服务器,请跳过此步骤。

  1. # 更换为阿里云源
  2. $ mkdir /etc/yum.repos.d/bak
  3. mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
  4. wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  5. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  6. cat > /etc/yum.repos.d/cloudstack.repo << 'EOF'
  7. [cloudstack]
  8. name=cloudstack
  9. baseurl=http://download.cloudstack.org/centos/$releasever/4.15/
  10. enabled=1
  11. gpgcheck=0
  12. EOF

节点确保可查看到共享目录:

  1. $ showmount -e 192.168.20.4
  2. Export list for 192.168.20.4:
  3. /export/primary *
  4. /export/secondary *

配置cloudstack-agent

修改网络配置

主要是生成一个网桥设备,以便VM都可以连接到此网桥。

  1. # 备份源网卡配置文件
  2. $ cp /etc/sysconfig/network-scripts/ifcfg-ens33{,_$(date +%F_%H).bak}
  3. # 修改网卡配置文件
  4. cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
  5. TYPE=Ethernet
  6. DEVICE=ens33
  7. ONBOOT=yes
  8. BRIDGE=cloudbr0
  9. EOF
  10. cat > /etc/sysconfig/network-scripts/ifcfg-cloudbr0 << EOF
  11. DEVICE=cloudbr0
  12. TYPE=Bridge
  13. ONBOOT=yes
  14. BOOTPROTO=static
  15. IPADDR=192.168.20.6
  16. GATEWAY=192.168.20.1
  17. DNS1=223.5.5.5
  18. EOF
  19. # 修改完成后,务必检查是否修改正确,网卡名称、IP地址与你的实际环境是否一致
  20. # 确认无误后,重启网络服务
  21. $ systemctl restart network

安装cloudstack-agent

  1. # 下载rpm包(如果下载较慢,请使用windows下的多线程工具,如NDM等先下载到本地,再上传至服务器)
  2. $ wget http://download.cloudstack.org/centos/7/4.14/cloudstack-common-4.14.0.0-1.el7.x86_64.rpm
  3. $ wget http://download.cloudstack.org/centos/7/4.14/cloudstack-agent-4.14.0.0-1.el7.x86_64.rpm
  4. # 安装cloustack-agent
  5. $ yum -y install cloudstack-agent-4.14.0.0-1.el7.x86_64.rpm \
  6. cloudstack-common-4.14.0.0-1.el7.x86_64.rpm

确认加载kvm模块

  1. $ lsmod | grep kvm # 输出如下,则表示已加载
  2. kvm_intel 183621 0
  3. kvm 586948 1 kvm_intel
  4. irqbypass 13503 1 kvm

修改libvirt默认配置

  1. # 修改vnc默认监听地址
  2. $ sed -i 's/^#vnc_listen =.*/vnc_listen = "0.0.0.0"/g' /etc/libvirt/qemu.conf
  3. # 指定cloudstack-management地址
  4. $ MGR_IP=192.168.20.2 # 将其替换为你的实际manager地址。
  5. $ sed -i "s/host=.*/host=${MGR_IP}/g" /etc/cloudstack/agent/agent.properties
  6. # 重启libvirt
  7. $ systemctl restart libvirtd

启动cloudstack-agent并加入开机自启

  1. $ systemctl start cloudstack-agent && systemctl enable cloudstack-agent

management添加计算节点

登录到管理节点控制台,进行如下操作:

1、添加主机

cloudstack增加kvm计算节点 - 图2

2、稍等片刻,刷新页面,即可看到添加成功:

cloudstack增加kvm计算节点 - 图3

验证可用性

我们这里的虚机主存储是放在nfs共享存储上的,所以其支持虚机热迁移,那么现在就开始将虚机迁移到新加入的计算节点。

1、查看虚机当前所在主机节点:

cloudstack增加kvm计算节点 - 图4

2、持续ping虚机

找台可以和虚机通信的节点,持续ping虚机IP,以便观察在迁移过程中是否会中断网络通信(我这里就在本地电脑上了):

cloudstack增加kvm计算节点 - 图5

如上所述,虚机IP为192.168.30.99,那么就ping这个地址(命令:ping -t 192.168.30.99):

cloudstack增加kvm计算节点 - 图6

3、开始迁移:

cloudstack增加kvm计算节点 - 图7

4、选择迁移的目标主机:

cloudstack增加kvm计算节点 - 图8

5、查看ping结果:

在迁移过程中,可能会有一两个包耗时较久,或者请求超时,取决于你的网络环境,如下:

cloudstack增加kvm计算节点 - 图9

6、查看是否迁移成功:

cloudstack增加kvm计算节点 - 图10

至此,验证完成。