Host服务启动失败或有warning如何处理

禁用 dhcp 服务

如果你看到了这样的提示:dhcp: dhcp client is enabled before host agent start, please disable it.

说明你的机器之前启用过dhcp client.

如何禁用 dhcp client:

# 一般 centos7 的 dhcp client 都是由 NetworkManager 启动的
$ systemctl disable NetworkManager --now

# 我们会检查 /var/run/dhclient-<nic>.pid 下是否有dhclient的pid文件来决定是否要输出 warning
# 所以同时你需要清除 /var/run 下的 dhclient-<nic>.pid 文件, nic 需要替换成自己的网卡名,如 eth0
$ rm -f /var/run/dhclient-<nic>.pid

内核模块不匹配

使用我们的平台的 host 服务需要用我们的内核,如果你看到了这样的提示:

openvswitch: kernel module openvswitch paramters version not found, is kernel version correct ??

或者 uname -r 输出结果中字段不包含 yn. 正确的:3.10.0-514.26.2.el7.yn20180608.x86_64

说明你的机器使用的不是我们的内核,需要安装我们的内核然后重启,安装内核步骤如下。

环境

  • 操作系统: CentOS 7.x

  • 硬件要求:

    • Virtualization: CPU 要支持虚拟化,用于虚拟机 KVM 加速
    • 打开 iommu,VT-d: 用于 GPU 透传(不用GPU可以不开)
  • 网络:

    • 当前可用的网段: 虚拟机可以直接使用和计算节点所在的扁平网段,需要预先划分保留对应端给云平台虚拟机使用,防止被其它设备占用,最后 IP 冲突
  • 虚拟机和服务使用的存储路径都在 /opt 目录下,所以理想环境下建议单独给 /opt 目录设置挂载点

    • 比如把 /dev/sdb1 单独分区做 ext4 然后通过 /etc/fstab 挂载到 /opt 目录
  • 备注:

    • 如果是以测试为目的,可以拿一台虚拟机部署计算节点的服务,但可能无法使用 KVM 加速和 GPU 透传

使用 ocboot 添加对应节点

以下操作在控制节点进行,在控制节点使用 ocboot add-node 命令把对应计算节点添加进来。

假设要给控制节点 10.168.26.216 添加计算节点 10.168.222.140 首先需要 ssh root 免密码登录对应的计算节点以及控制节点自身。

# 将控制节点自己设置成免密登录
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.168.26.216

# 尝试免密登录控制节点是否成功
$ ssh root@10.168.26.216 "hostname"

# 将生成的 ~/.ssh/id_rsa.pub 公钥拷贝到待部署的计算机器
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.168.222.140

# 尝试免密登录待部署机器,应该不需要输入登录密码即可拿到部署机器的 hostname
$ ssh root@10.168.222.140 "hostname"
# 本地安装 ansible
$ yum install -y python3-pip
$ python3 -m pip install --upgrade pip setuptools wheel
$ python3 -m pip install --upgrade ansible paramiko

# 下载 ocboot 工具到本地
$ git clone -b release/3.10 https://github.com/yunionio/ocboot && cd ./ocboot

# 使用 ocboot 添加节点
$ ./ocboot.py add-node 10.168.26.216 10.168.222.140

该命令会使用 ansible-playbook 把对应的计算节点加入进来。

启用计算节点(宿主机)

等计算节点添加完成后,需要启用刚才上报的计算节点,只有启用的宿主机才能运行虚拟机。

# 使用 climc 查看注册的 host 列表
$ climc host-list
+--------------------------------------+-------------------------+-------------------+----------------+----------------------------+---------+---------+-------------+----------+-----------+------------+---------------+--------------+------------+-------------------------+--------------+
|                  ID                  |          Name           |    Access_mac     |   Access_ip    |        Manager_URI         | Status  | enabled | host_status | mem_size | cpu_count | node_count |      sn       | storage_type | host_type  |         version         | storage_size |
+--------------------------------------+-------------------------+-------------------+----------------+----------------------------+---------+---------+-------------+----------+-----------+------------+---------------+--------------+------------+-------------------------+--------------+
| 3830870e-a499-459d-89df-bb6979b5e1ff | lzx-allinone-standalone | 00:22:39:4c:6c:e9 | 10.168.222.140 | http://10.168.222.140:8885 | running | false   | online      | 8192     | 4         | 1          | Not Specified | rotate       | hypervisor | master(7ab047419092301) | 50141        |
+--------------------------------------+-------------------------+-------------------+----------------+----------------------------+---------+---------+-------------+----------+-----------+------------+---------------+--------------+------------+-------------------------+--------------+
***  Total: 0 Pages: 0 Limit: 20 Offset: 0 Page: 1  ***

# 启动 host
$ climc host-enable lzx-allinone-standalone