文档目录

云平台基本运维

本章主要针对ZStack Cloud基本操作异常给出处理办法。

安装部署

安装部署以及升级ZStack Cloud失败需检查的因素:
  1. 假定安装操作系统时选择了管理节点模式,但是安装系统后,没有安装ZStack Cloud
    原因:
    • 不满足最低硬件需求(4核CPU/8G内存)
    • 安装操作系统时,没有设置合适的IP地址,ZStack Cloud管理节点必须要求有可用IP。
    解决方案:
    • 此时需执行bash /opt/zstack-installer.bin -E 安装ZStack Cloud
    • 或执行bash /opt/zstack-installer.bin 安装ZStack Cloud社区版。
  2. 安装ZStack Cloud时出现如下错误信息。
    现象:
    Fail Reason: /usr/local/zstack is existing. Please delete it manually before installing a new ZStack

    原因:

    此时系统已经存在ZStack Cloud,不允许再次安装。

    解决方案:
    • 如果打算升级 直接使用-u参数升级即可。
    • 如果打算重新安装,则需执行rm -rf /usr/local/zstack; bash zstack-installer.bin -D进行重新安装。
  3. 安装部署失败,失败信息会打印到屏幕上。

    解决方案:

    可查看/tmp/zstack_installation.log,根据错误提示,尝试解决安装部署问题。

  4. 升级时遇到ZStack Cloud ISO版本不匹配,会提示类似以下错误信息。
    现象:
    mount: /dev/loop0 is write-protected, mounting read-only
    /root
    Current release h79c not matched the new ISO h84r,
    Use zstack-upgrade -r xxx.iso to update current repo,
    Use zstack-upgrade -a/--add_repo xxx.iso to add a new repo

    解决方案:

    此时需执行以下步骤:
    1. 在管理节点下载最新的ISO,例如在管理节点执行下载ISO:
      wget http://cdn.zstack.io/product_downloads/iso/ZStack-Cloud-x86_64-DVD-5.4.12-h84r.iso
    2. 执行以下命令进行升级,升级ISO里面的yum repo同步到本地,并且直接升级管理节点。
      zstack-upgrade ZStack-Cloud-x86_64-DVD-5.4.12-h84r.iso
  5. 升级ZStack Cloud过程中,因为二次开发或者调整过数据库而导致升级失败,希望恢复原本的ZStack Cloud

    前提:

    ZStack Cloud在进行升级时,默认会备份当前核心文件和数据库到对应目录:
    1. ZStack Cloud核心文件会备份在/usr/local/zstack/upgrade/目录下,以升级时的时间命名文件夹,假定为2017-11-09-15-41-52
    2. 数据库默认备份在/usr/local/zstack/db_backup/,以升级时的时间命名文件夹,假定为2017-11-09-15-42-43,备份文件为backup.sql
    恢复步骤:
    1. 先备份之前版本的ZStack Cloud核心文件,执行
      cp /usr/local/zstack/upgrade/2017-11-09-15-41-52 /root -r
    2. 先备份之前版本的数据库,执行
      cp /usr/local/zstack/db_backup/2017-11-09-15-42-43/backup.sql /root
    3. 再次备份数据库,执行
      zstack-ctl dump_mysql
    4. 删除当前ZStack Cloud环境,执行
      zstack-ctl stop
      rm -rf /usr/local/zstack
    5. 使用之前的安装包直接安装ZStack Cloud
      bash ZStack-Cloud-installer.bin -D
    6. 使用步骤1备份的ZStack Cloud核心文件恢复
      zstack-ctl stop
      mv /usr/local/zstack/apache-tomcat/webapps/zstack /usr/local/zstack/apache-tomcat/webapps/zstack-bk
      cp /root/2017-11-09-15-41-52/zstack /usr/local/zstack/apache-tomcat/webapps  -r
      chown zstack:zstack /usr/local/zstack/apache-tomcat/webapps/zstack -R
    7. 恢复步骤2备份的数据库
      cat /root/backup.sql |mysql -u root -pzstack.mysql.password zstack
    8. 启动ZStack Cloud管理节点服务,此时ZStack Cloud已成功恢复至原本升级失败前的版本
      zstack-ctl start
  6. 若采用all in one方式安装ZStack Cloud,初始化结束后,建议对物理机保留内存进行设置,设置方式如下:
    • 全局设置粒度:
      进入设置 > 平台设置 > 全局设置 > 基本设置,设置物理机保留内存,默认为1G。
      Note: 若集群(或物理机)已单独设置该选项,此全局设置将不对该集群(或物理机)生效。
    • 集群粒度:

      进入硬件设施 > 集群,选择某一集群,进入集群详情页,在高级设置子页面,设置物理机保留内存,默认为1G。

      Note: 若物理机已单独设置该选项,此集群高级设置将不对该物理机生效。
    • 物理机粒度:
      目前支持CLI方式对单台物理机设置保留内存:
      UpdateResourceConfig category=kvm name=reservedMemory resourceUuid=e2f4836723a2490095768fe611c540b1 value=10G
      # resourceUuid为物理机资源UUID, value为物理机保留内存

启动服务

ZStack Cloud相关的服务在管理节点重启后,会自动启动。

启动ZStack Cloud服务失败需检查的因素:
  1. 数据库应正常运行:

    可通过systemctl status/start/stop/restart mariadb进行状态/启动/停止/重启检查。

  2. 出现如下报错:
    现象:
    ERROR: failed to connect to the mysql server[hostname:10.0.0.18, port:3306, user:zstack, password:zstack.password]
    解决方案:
    • 需确保/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties里面关于数据库的IP、用户名、密码均正确,且可使用mysql命令正常访问。
    • 例如,可通过mysql -u zstack -pzstack.password -h 10.0.0.18直接访问。
  3. 出现如下报错:
    现象:
    8080 is occupied by some process. Please use netstat to find out and stop it

    解决方案:

    执行netstat -anp|grep 8080找到8080占用程序将其停止再启动ZStack Cloud

  4. 出现如下报错:
    现象:
    MN status: Unknown, the management node seems to become zombie as it stops responding APIs

    原因及解决方案:

    一般是因为内存不足导致的消息总线不能正确处理,需扩大内存,此时不建议再将管理节点作为计算节点添加到ZStack Cloud使用。

zstack-ctl命令

ZStack Cloud提供zstack-ctl对服务或者资源进行命令行控制。

常用的zstack-ctl命令:
  • 状态检查:zstack-ctl status
  • 服务控制:zstack-ctl stop/start/stop_ui/start_ui/start_node/stop_node/restart_node/
  • 日志收集:zstack-ctl configured_collect_log
  • 备份数据库:zstack-ctl dump_mysql
  • 恢复数据库: zstack-ctl restore_mysql -f back.gz --mysql-root-password password
  • 管理节点IP变更:zstack-ctl change_ip
  • 检查配置: zstack-ctl show_configuration
  • UI配置检查:zstack-ctl show_ui_configuration
  • 安装授权: zstack-ctl install_license -f license_key.txt
  • 重置admin账户密码:zstack-ctl reset_password
  • 修改数据库密码:zstack-ctl change_mysql_password --root-password zstack.mysql.password --user-name zstack --new-password password
Note:

关于zstack-ctl命令的详细使用介绍,请参考《CTL命令使用手册》。

zstack-cli命令

ZStack Cloud提供zstack-cli命令行交互界面对ZStack Cloud内部各资源进行控制。

  1. zstack-cli登录
    LogInByAccount accountName=admin password=password

    初始密码为password,如果有修改,则需按照正确的密码登录。

  2. zstack-cli支持的关键字包括
    • 资源关键字:
      zone cluster host vm primarystorage image L2 L3 backupstorage volume offering
    • 操作关键字:
      add reconnect start stop destroy delete create get set update attach detach
  3. 使用zstack-cli进行控制的技巧
    • 输入资源关键字和操作关键字。
    • 善用tab键。例如,输入集群的关键字cluster,点击两次tab键后,会列出cluster可支持的所有操作,如下:
      AttachL2NetworkToCluster
      AttachPrimaryStorageToCluster
      ChangeClusterState
      CreateCluster
      DeleteCluster
      DetachL2NetworkFromCluster
      DetachPrimaryStorageFromCluster
      GetCandidateZonesClustersHostsForCreatingVm
      GetVmStartingCandidateClustersHosts
      QueryCluster
      QueryVCenterCluster
      UpdateCluster

      此时假定打算再创建集群,根据上面列出的Cluster操作,那么输入CreateCluster后,再点击两次tab键,cli将列出CreateCluster参数。

  4. 使用zstack-cli创建云主机的方法
    CreateVmInstance name=ceph instanceOfferingUuid=$instanceofferUuid l3NetworkUuids=$L3Uuid imageUuid=$imageUuid
  5. 使用zstack-cli查询运行中的云主机
    QueryVmInstance state=“Running” name~=test limit=3 fields=uuid

    名字包含test,只显示3条记录,只显示其uuid。

Note:

关于zstack-cli命令的详细使用介绍,请参考《CLI命令使用手册》。

云主机异常

创建云主机流程及创建失败分析

创建云主机的基本流程:
  1. 根据选择的镜像关联此镜像所在镜像服务器,此处需确保选择的镜像所在的镜像服务器处于可用已连接状态;
  2. 根据选择的镜像服务器选择可用的集群,并基于对应的集群,基于计算规格,选择可用的物理主机,此处需确保有可用的物理主机处于可用已连接状态;
  3. 根据选择的镜像的虚拟大小来选择可用的主存储,来判断主存储容量是否充足,此处需确保主存储可用已连接状态,且容量充足;
  4. 根据选择的网络来配置相应的IP、MAC等,此处需确保网络正常,且IP地址池资源充足;
  5. 从镜像服务器下载镜像到主存储,创建根云盘;
  6. 给云主机分配IP;
  7. 在物理主机上启动云主机。
创建失败需检查的问题:
  1. 镜像服务器失联,检查镜像服务器可用并确保连接;
  2. 主存储未挂载集群,导致找不到可用的物理主机,主存储需挂载集群;
  3. 集群内没有可用的物理主机满足计算规格的定义,需确保物理主机可用,且资源满足;
  4. 主存储容量不足以提供镜像需要的虚拟容量,需确保主存储容量充足;
  5. 集群未挂载相应的网络,需确保集群已挂载对应的网络;
  6. IP地址池资源不足,需确保IP范围充足;
  7. 从主存储下载镜像到镜像服务器,确保链路正常;
  8. 确保物理主机的分布式DHCP服务、dnsmasq服务正常,以正常方式提供DHCP服务IP分配服务;
  9. 确保物理主机的Libvirtd服务正常,以正常提供虚拟化服务。

云主机相关异常处理

异常信息 异常原因及解决办法
“code”:”HOST.1005”,”description”:”Failed to start vm on hypervisor”, “details”:”failed to start …., Libvirt error: internal error no supported architecture for os type ‘hvm’”或"details": "failed to start vm on kvm host, because unable to start vm, libvirt error: invalid argument: could not find capabilities for domaintype=kvm "
  • 原因:

    需要物理主机支持并打开了硬件虚拟化(如vmx或者svm)的支持。出现该错误的原因通常是因为BIOS中没有打开CPU虚拟化。

  • 解决方案:

    重启系统,并进入BIOS打开CPU相关虚拟化支持。

“details”: "cannot find either 'vmx' or 'svm' in /proc/cpuinfo, please make sure you have enabled virtualization in your BIOS setting"
  • 原因:

    需要物理主机支持并打开了硬件虚拟化(如vmx或者svm)的支持。出现该错误的原因是用户添加的物理主机的CPU不支持硬件虚拟化功能。

    通常是由于用户添加的物理主机是一个“云主机”导致的,需要打开对应“云主机”的嵌套虚拟化功能。

  • 解决方案:

    具体的打开办法,请联系“云主机”提供方。

"details": "the local primary storage has no hosts with enough disk capacity[xxx bytes] required by the vm[uuid:xxx]"
  • 原因:

    当前系统中(或者任何单独一台物理主机)没有足够的主存储容量(磁盘空间)。

    ZStack Cloud

    在分配云主机和云盘时使用的是thin clone模式,也就是云主机使用多少,才分配多少。但是在创建云主机的时候,会按照云主机最大申请的使用空间来扣除系统主存储的容量,以防最后云主机使用的空间超过系统可用空间。

    此外,如果主存储为本地存储,由于云主机的磁盘不能够跨物理主机存储,所以如果每台物理主机的剩余空间都不足创建一台新的云主机,也会遇到此错误。

  • 解决方案:

    删除一些不需要使用的云主机、云盘,或者调整云主机使用的镜像大小。

    在理解主存储超分的原理和使用方法的前提下,也可以增大主存储超分比例以获得更多超分空间。

"details": "unable to allocate hosts; due to pagination is enabled, there might be several allocation failures happened before; the error list is [{no host having cpu[x HZ], memory [xxx bytes] found}]"
  • 原因:

    当前系统中(或者任何单独一台物理主机)没有足够的CPU或内存。

  • 解决方案:

    删除一些不需要使用的云主机,或者调整云主机使用计算规格的大小。在理解内存超分的原理和使用方法的前提下,也可以增大存储超分比例以获得更多超分容量。

"details": "failed to start vm[uuid:xxx name:xxx] on kvm host[uuid:xxx, ip:x.x.x.x], because unable to start vm[uuid:xxx, name:xxx], libvirt error: internal error: early end of file from monitor: possible problem: Cannot set up guest memory 'pc.ram': Cannot allocate memory" set up guest memory 'pc.ram':Cannot allocate memory"
  • 原因:

    当前系统中实际可用物理内存不足以分配给需要创建的云主机。当这个错误出现时,就算提高内存超分比例,也没有办法创建更大容量的内存。

  • 解决方案:

    减小云主机的计算规格,增加物理主机的内存,或者增加物理主机的swap分区(会降低系统性能)。

"failed to migrate vm[uuid:xxx] from kvm host[uuid:xxx, ip:xxx] to dest host[ip:xxx], unable to migrate vm[uuid:xxx] to qemu+tcp://xxx/system, Unsafe migration: Migration may lead to data corruption if disks use cache != none"
  • 原因:

    当前的基础设置中,将云主机的磁盘缓存模式设置为其他模式,例如,writethrough或writeback,系统认为带缓存模式的迁移是不安全的。

  • 解决方案:

    需要将此基础设置的缓存模式修改为None模式才可迁移。

"description": "Failed to start vm on hypervisor",libvirt error: Unable to create tap device vnic15.0: Device or resource busy
  • 原因:

    此计算节点可能被重复添加,里面已经有使用了vnic15.0的云主机在运行,导致设备出现冲突。

  • 解决方案:

    建议添加物理主机时,需保持一个干净的环境,或清理掉其上已经运行的云主机。

Permission denied: '/opt/zstack/nfsprimarystorage/prim-cd8075752a0b4c669afa79acfc433ca5/dataVolumes'
  • 原因:

    创建云主机或数据盘时,NFS主存储的目录没有读写的权限。

  • 解决方案:

    需在NFS服务器端开启读写权限。

internal error: unable to execute QEMU agent command 'guest-set-user-password': failed to set password: The user name could not be found.
  • 原因:

    修改云主机密码时,指定的用户名不存在。

  • 解决方案:

    需要指定已存在的用户名。

internal error: unable to execute QEMU agent command 'guest-set-user-password': The command guest-set-user-password has not been found
  • 原因:

    修改云主机密码时,在云主机内部没有安装qemu-ga或者代理程序版本过低。

  • 解决方案:
    可执行qemu-ga -V检查版本。
    • 在CentOS7.2里版本要求2.3.0
    • 在Windows Server 2012 R2里版本要求0.12.1
    • Ubuntu 14.04里版本要求2.5(默认2.0,需手动升级)
"libvirt error: error from service: ListActivatableNames: Connection is closed"或"libvirt error: Activation of org.freedesktop.machine1 timed out"
  • 原因:

    这类错误通常是由系统DBUS进程死掉或者DBUS运行异常引起的。

  • 解决方案:
    • 方法1:重启ZStack Cloud物理主机,DBUS会自动恢复。
    • 方法2:在物理主机上使用如下命令:
      1. service systemd-machined restart
      2. service libvirtd restart
      3. 完成后用UI或者CLI重连出问题的物理主机。
{ "error": { "code": "HOST.1009", "description": "Failed to migrate vm on hypervisor", "details": "failed to migrate vm[uuid:90bb61f55e774f5f89c9e1ea46db7661] from kvm host[uuid:e5105c61114a4efe8bcc025f744226bd, ip:10.0.247.244] to dest host[ip:10.0.197.238], unable to migrate vm[uuid:90bb61f55e774f5f89c9e1ea46db7661] to qemu+tcp://10.0.197.238/system, internal error: Attempt to migrate guest to the same host localhost.domain.com" }, "createdTime": 1488170137857, "type": { "_name": "key.event.API.API_EVENT" }, "id": "e6bcd7c33ad9446b919e11cd647fc8dc" }
  • 原因:

    这是因为两台物理主机hostname相同,KVM在线迁移目前依靠hostname进行确认不同的物理主机,如果hostname相同,则会被认定为相同的物理主机。

  • 解决方案:

    请确保物理主机hostname不能相同。可以通过hostnamectl set-hostname your_new_hostname来设定。

all mons failed to execute http call[/ceph/primarystorageolume/clone
  • 解决方案:

    重连主备存储。

failed to start vm[uuid:4ef5a9e4ae6441c7b046c384c3ae6f7f name:stack_local] on kvm host[uuid:d0d9800a09c34da4891e0cc624a0d349, ip:192.168.1.166], because Traceback (most recent call last): File "/var/lib/zstack/virtualenv/kvm/lib/python2.7/site-packages/kvmagent/plugins/vm_plugin.py", line 2721, in start_vm self._start_vm(cmd) File "/var/lib/zstack/virtualenv/kvm/lib/python2.7/site-packages/kvmagent/plugins/vm_plugin.py", line 2664, in _start_vm 'unable to start vm[uuid:%s, name:%s], libvirt error: %s' % (cmd.vmInstanceUuid, cmd.vmName, str(e))) KvmError: unable to start vm[uuid:4ef5a9e4ae6441c7b046c384c3ae6f7f, name:stack_local], libvirt error: internal error: early end of file from monitor, possible problem: qemu-kvm: /root/rpmbuild/BUILD/qemu-2.6.0/target-i386/kvm.c:1736: kvm_put_msrs: Assertion `ret == n' failed.
  • 原因:

    这是因为管理平台把host-passthrough开启而导致。

  • 解决方案:

    关闭此选项即可。

”code”:”SYS.1006”,description:An operation failed, details:failed to check physical network interfaces on lvm
  • 原因:

    检查物理机网卡失败。

  • 解决方案:

    此物理机对应集群已挂载此二层网络,添加物理机时,请确保物理机上存在该网卡。

description": "A message or a operation timeout","details": "[Async Http Timeout] url: http://10.10.10.253:7272/init, timeout after 300000[MILLISECONDS], command: {\"uuid\":\"78183b0a46094e30bc8a6128b30ee8cb\",\"restartDnsmasqAfterNumberOfSIGUSER1\":0}"
  • 原因:

    很可能是管理节点的IP地址无法访问出去。

    一般出现这个情况是多网卡的服务器在安装管理服务时指定了第一个默认路由的网卡地址。

  • 解决方案:

    打开/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties

    修改management.server.ip = xxx.xxx.xxx.xxx这个IP地址 ,修改为可以访问出去的IP地址。

failed:Error in connection establishment: net::ERR_CONNECTION_REFUSED
  • 原因:

    未设置控制台代理

  • 解决方案:

    登录UI,在平台管理 > 控制台代理页面,设置控制台代理地址

Could not access KVM kernel module: No such file or directory failed to initialize KVM: No such file or directory.
  • 原因:

    这个虚拟机不支持虚拟化技术。

  • 解决方案:

    需要先开启嵌套虚拟化。

日志分析

相关日志记录地址:

类型 日志路径 日志所在服务器
管理节点日志 /usr/local/zstack/apache-tomcat/logs/management-server.log 管理节点
管理节点UI日志 /usr/local/zstack/apache-tomcat/logs/zstack-ui.log 管理节点
控制台代理日志 /var/log/zstack/zstack-console-proxy.log 管理节点
管理节点部署日志 /var/log/zstack/deploy.log 管理节点
shell命令日志 /var/log/zstack/zstack.log 物理主机
zstack kvmagent日志 /var/log/zstack/zstack-kvmagent.log 物理主机
VM对应的libvirt日志 /var/log/libvirt/qemu/vm_uuid.log 物理主机
系统基本日志 /var/log/messages 管理节点/物理主机等
镜像仓库日志 /var/log/zstack/zstack-store/zstore.log 镜像仓库
Ceph 主存储日志 /var/log/zstack/ceph-primarystorage.log Ceph Mon节点
Ceph 备份存储日志 /var/log/zstack/ceph-backupstorage.log Ceph Mon节点
VPC路由器的日志 /home/vyos/zvr/zvr.log VPC路由器
扁平网络的配置及日志 /var/lib/zstack/dnsmasq/ 物理主机
日常运维出现错误时,进行错误分析的一般步骤如下:
  1. 根据UI界面提示的错误信息进行简单分析。
    • 例如,创建云主机失败时提示的信息是no host found, 那么此时可能的原因就是选择的镜像所在的镜像服务器,可选的集群加上选择的网络进行筛选后,没有可用的物理主机。

      此时需要检查集群内是否有可用的物理主机,是否挂载相应的网络,集群是否挂载了相应的主存储。

  2. 分析管理节点/usr/local/zstack/apache-tomcat/logs/management-server.log关于UI界面提示的错误信息。
    • 查询提示错误的信息,根据上下文进行分析,分析发生异常时的工作流。
    • 也可根据执行的操作API进行查询分析,例如创建云主机调用的API是APICreateVmInstance,在管理节点搜索这个API,往下逐步分析错误原因。
  3. 再根据错误的具体信息,查看相关代理日志的错误信息。
    • 例如,在物理主机的/var/log/zstack/zstack-kvmagent.log查看对云主机进行生命周期控制时的代理错误日志。

端口占用

ZStack Cloud端口占用列表如下:

端口号 进程名 所属节点角色 说明
22 sshd 管理节点、计算节点、主存储管控节点、备份存储管控节点 SSH服务默认端口
25 master / 邮件服务器
53 dnsmasq 计算节点 DHCP服务
67 dnsmasq 裸金属网关节点 弹性裸金属网关节点DHCP服务
80 nginx 管理节点 多可用区统一登录服务
123 ntpd 所有节点 NTP/Chrony时间同步服务
3306 mysqld 管理节点 MySQL进程
4100~4200 usbredirserve 计算节点 USB重定向服务
4200 baremetal2-agent 裸金属实例节点 弹性裸金属Linux控制台接口
4369 epmd 计算节点 erlang port mapper daemon
4747 morph 管理节点 多可用区用户数据同步
4900 consoleproxy 管理节点 控制台代理
4901 console-proxy 裸金属网关节点 弹性裸金属网关节点VNC HTTP模式代理
5000 /bin/java 管理节点 ZStack CloudUI服务(HTTP方式)
5345 lttng-sessiond 管理节点、计算节点 内核跟踪框架
5443 /bin/java 管理节点 ZStack Cloud UI服务(HTTPS方式)
5900~59XX qemu-kvm 计算节点 KVM控制台服务
6080 websockify 裸金属部署节点 部署服务器代理服务
7069 python 计算节点 监控数据采集
7070 kvmagent 计算节点 KVM Agent代理服务
7090 baremetal2-agent 裸金属实例节点 弹性裸金属代理服务
7123 /bin/java 管理节点 物理机连接状态快速探测
7171 sftpbackupstorage 镜像存储节点 Sftp备份存储代理服务
7272 zstack-vyos agent vyos VPC路由器代理服务
7274 zsn-agent 计算节点 网络功能辅助代理服务
7276 zsblk-agent 计算节点 SharedBlock存储辅助代理服务
7758 python 管理节点 控制台代理服务
7761 python Ceph存储节点 Ceph镜像服务器
7762 python Ceph存储节点 Ceph主存储
7770 python 裸金属部署节点 部署服务器
7771 nginx 裸金属部署节点 部署服务器代理服务
7772 nginx 裸金属部署节点 部署服务器代理服务
7773 nginx 裸金属部署节点 部署服务器代理服务
7800,7805 Java 管理节点 全局搜索管理节点同步
8000 zstore ImageStore节点 镜像仓库zstore进程占用
8001 zstore ImageStore节点 镜像仓库zstore进程占用
8002 ztore ImageStore节点 CDP服务
8005 /bin/java 管理节点 ZStack Cloud管理服务
8080 /bin/java 管理节点 ZStack Cloud管理服务
8090 nginx 管理节点 ZStack Cloud管理服务(管理节点裸金属控制台代理)
9089 prometheus 计算节点 Prometheus只读监控进程
9090 prometheus 计算节点 Prometheus主监控进程
9091 pushgateway 管理节点 监控数据缓存(管理节点)
9092 pushgateway 计算节点 监控数据缓存(计算节点)
9093 pushgateway 裸金属部署服务器 监控数据缓存(裸金属部署服务器)
9100 node_exporter 管理节点、计算节点、存储节点 监控数据采集
9103 collectd_expo 管理节点、计算节点、存储节点 监控数据采集
9104 collectd ImageStore节点 镜像仓库zstore节点监控进程
9112 zssvc_exporter.service 所有节点 组件服务监控进程。在应用市场部署ZStack组件服务监控后将占用此端口
9256 process_exporter.service 所有节点 组件服务监控进程。在应用市场部署ZStack组件服务监控后将占用此端口
10000-10500 zstore→qemu-nbd ImageStore节点 镜像仓库zstore导出NBD给备份和CDP
12000-15000 nginx 裸金属网关节点 第三方插件Nginx代理监听
16509 libvirtd 计算节点 libvirtd服务
18081 zstack-hamon 管理节点 双管理节点高可用监控服务
20000~30000 mini storage drbd service Mini物理机 Mini Storage数据同步用,从20000开始每一个副本占用一个端口
32768~61000 kernel dynamic 所有节点 系统自动随机分配,由 net.ipv4.ip_local_port_range 控制,可参考 https://en.wikipedia.org/wiki/Ephemeral_port

网络脚本

ZStack Cloud定制版ISO提供了以下网络脚本方便配置网络:
  1. zs-show-network用于显示网络状态,无须额外参数,显示网络连接及链路聚合状态。
    [root@localhost ~]# zs-show-network
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: vmnic0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether fa:84:ba:34:92:00 brd ff:ff:ff:ff:ff:ff
        inet 172.20.54.194/16 brd 172.20.255.255 scope global vmnic0
           valid_lft forever preferred_lft forever
        inet6 fe80::f884:baff:fe34:9200/64 scope link
           valid_lft forever preferred_lft forever
    
    ----------------------------------------------------------------
    | Bond Name  | SLAVE         | BONDING_OPTS                    |
    ----------------------------------------------------------------
  2. zs-network-setting用于配置物理网卡网络命令。用法有两种:
    1. 方法一:
      # 参数-i,意为对接口(interface)配置网络地址
      
      zs-network-setting -i [interface] [ipaddress] [netmask] [gateway]
                                           接口        地址          掩码         网关
      
      # 例子1:zs-network-setting -i eth0 192.168.1.10 255.255.255.0 192.168.1.1
      # 例子2:zs-network-setting -i eth0.10 192.168.1.10 255.255.255.0 192.168.1.1
      
    2. 方法二:
      # 参数-b,意为基于接口(interface)创建网桥(bridge)并配置网络地址
      
      zs-network-setting -b [interface] [ipaddress] [netmask] [gateway]
                                            接口        地址          掩码         网关
      
      # 例子1:zs-network-setting -b eth0 192.168.1.10 255.255.255.0 192.168.1.1
      # 例子2:zs-network-setting -b eth0.10 192.168.1.10 255.255.255.0 192.168.1.1
  3. zs-change-nic用于修改网卡名命令,修改网卡名后,脚本会将配置到/etc/udev/rules.d/70-persistent-net.rules,物理主机重启后命名仍保持新的命名。
    # 参数-c,意为修改(change)物理网口名字
    
    zs-change-nic -c [old-nic-name] [new-nic-name]
                                当前网卡名      新的网卡名
    
    # 例子:zs-change-nic -c eth0 em01
  4. zs-vlan用于配置VLAN接口。有两种用法:
    1. 方法一:创建VLAN
      # 参数-c,意为创建(create)VLAN接口
      
      zs-vlan -c [nic-name] [vlan]
                     指定网卡   VLAN号
      
      # 例子:zs-vlan -c zsnic0 10
    2. 方法二:删除VLAN
      # 参数-d,意为删除(delete)VLAN接口
      
      zs-vlan -d [nic-name] [vlan]
                      指定网卡   VLAN号
      
      # 例子1:zs-vlan -d zsnic0 10
      # 例子2:zs-change-nic -c eth0 em01
    Note:
    • 创建VLAN接口后,将会在/etc/sysconfig/network-scripts/创建对应的网络配置文件,物理主机重启后VLAN接口仍生效。删除VLAN接口后,对应网络配置将会删除。
    • 创建VLAN接口后,若基于此端口与其他设备通信,需要参照网络设备厂商的VLAN配置手册,以允许该VLAN接口流量传输。
    • 以下提供常见网络设备VLAN设定参考:
  5. zs-bond-lacp用于创建删除Bonding链路聚合命令。有两种用法:
    1. 方法一:创建Bonding 链路聚合
      # 参数-c,意为创建(create)链路聚合接口
      
      zs-bond-lacp -c [bond-name]
                                聚合接口
      
      # 例子:zs-bond-lacp -c bond0
    2. 方法二:删除链路聚合
      参数-d,意为删除(delete)链路聚合接口
      
      zs-bond-lacp -d [bond-name]
                                聚合接口
      
      # 例子:zs-bond-lacp -d bond0
    Note:

    本命令创建的接口是基于IEEE 802.3ad动态链路聚合协议(LACP),该接口需要管理员设定物理主机接入层网络交换机的端口组(Port-Group)。

  6. zs-nic-to-bond用于配置链路聚合命令。
    1. # 参数-a,意为加载(attach)物理接口到聚合接口
      
      zs-nic-to-bond -a [bond-name] [nic-name]
                                   聚合接口       物理接口
      
      # 例子:zs-nic-to-bond -a bond0 em1
    2. # 参数-d,意为从聚合接口卸载(detach)物理接口
      
      zs-nic-to-bond -d [bond-name] [nic-name]
                                   聚合接口      物理接口
      
      # 例子:zs-nic-to-bond -d bond0 em1
    Note:
    该命令执行后,会反馈执行接口,并显示聚合接口与物理接口的关系,例如:
      ------------------------------------------------------------------------------
      | Bond Name | SLAVE(s) | BONDING_OPTS |
      ------------------------------------------------------------------------------
      | bond0 | enp1s0f1 | miimon=100 mode=4 xmit_hash_policy=layer2+3 |
      |       | enp1s0f0 |                                             |
      ------------------------------------------------------------------------------
    • 其中,bond0是聚合接口,enp1s0f0和enp1s0f1是物理接口,显示其绑定关系。
    • 此外,enp1s0f0和enp1s0f1对应的接入网络设备的物理端口组成端口组(Port-Group),管理员需依照网络设备型号配置端口组。
    • 以下提供常见网络设备端口组设定参考:

删除资源

删除操作属于ZStack Cloud云平台中的高危操作,直接影响数据面,操作不慎可能造成数据丢失等严重损失,本章节主要针对高危删除操作进行总结。

操作 注意事项
删除区域 删除区域将同时删除其下所有子资源,例如:集群、物理机、网络、主存储、vCenter等,请谨慎操作。
删除集群
  • 删除集群将同时删除其下所有物理机;
  • 若集群中已加载本地存储,删除集群将同时删除相关物理机上的全部云主机和云盘,请谨慎操作。
删除物理机
  • 删除物理机会停止物理机上所有云主机;
  • 若集群中已加载本地存储,删除集群将同时删除相关物理机上的全部云主机和云盘,请谨慎操作。
  • 若物理机已被指定为迁移服务器,删除物理机将同时删除相应的迁移服务器,且自动取消该迁移服务器上正在执行的迁移任务,请谨慎操作。
删除主存储 删除主存储将会删除其上所有资源,例如:云主机、云盘、快照等,请谨慎操作。
删除镜像服务器 删除镜像服务器将删除此服务器上所有镜像,请谨慎操作。
删除VXLAN Pool 删除VXLAN Pool将同时删除此Pool下所有VxlanNetwork及其相关三层网络。
删除二层网络 删除二层网络会删除其下三层网络及相关的路由器,并卸载相应云主机的网卡。
删除公有网络 删除公有网络会卸载正在使用此网络的云主机网卡,并删除相应的路由器、网络服务和路由器规格,请谨慎操作。
删除系统网络 删除系统网络将同时删除相关的路由器。
删除私有网络 删除私有网络会卸载正在使用此网络的云主机网卡。
删除vCenter

删除 vCenter 会删除与 vCenter 相关的资源,请谨慎操作。

删除部署服务器 删除部署服务器将导致部署中的裸金属主机彻底删除,已部署的裸金属主机无法打开控制台,请谨慎操作。
删除VPC路由器 删除VPC路由器,会导致相关的云主机网络服务不可用,需重启云主机才可恢复网络服务,请谨慎操作。
删除路由器镜像 删除路由器镜像可能导致无法创建路由器,请谨慎操作。
删除路由器规格 删除路由器规格可能导致无法创建路由器,请谨慎操作。
删除云主机
  • 删除云主机后,云主机相关资源立刻被删除;
  • 删除云主机后,云主机的启用状态会被标记为已删除,并移至已删除页面,系统默认24小时后彻底删除该云主机;
  • 如果选择彻底删除后,云主机相关资源会被彻底删除,不可逆转,请谨慎操作;
  • 删除云主机时勾选已加载云盘,会删除此云主机已加载的所有普通云盘,不会删除共享云盘。
删除云盘快照
  • 本地存储、NFS、SMP和Shared Block存储上创建的快照有树状结构,删除树根快照,删除快照将同时删除其子分支上的快照,请谨慎操作;
  • Ceph存储下创建的快照是独立的,删除某一快照,不影响其他快照;

  • Shared Block主存储上创建的共享云盘,不支持创建快照。

删除光驱 删除光驱会将该光驱内已有ISO卸载。
删除弹性伸缩组 删除伸缩组,将一并删除组内全部云主机,请谨慎操作。
删除安全组 删除安全组,将自动删除所有的安全组规则和相关安全组服务。
删除虚拟IP 删除虚拟IP会删除其相关的网络服务。
删除弹性IP 删除弹性IP,将自动删除其提供的弹性IP服务。如需同时删除相应的虚拟IP,请勾选删除虚拟IP。
删除端口转发 删除端口转发规则,将自动删除其提供的端口转发服务。相应的虚拟IP以及其上绑定的其它服务不受影响。
删除负载均衡器 删除负载均衡器,将自动删除所有的监听器和相关负载均衡服务。相应的虚拟IP以及其上绑定的其它服务不受影响。
删除监听器 删除监听器,将自动删除其提供的负载均衡服务。
删除IPsec隧道 删除IPsec隧道,将自动删除其提供的IPsec隧道服务。相应的虚拟IP以及其上绑定的其它服务不受影响。
删除报警器 删除报警器的同时将移除报警器上所有资源并不再报警,请谨慎操作。
删除定时器 删除定时器后,该定时器上的定时任务将被卸载,定时任务可重新加载到其它运行的定时器上。
删除资源栈 删除资源栈默认会彻底删除栈内编排创建的所有资源,包括云主机或云盘,请谨慎操作。
删除计费设置
  • 删除历史计费设置,不影响相应账单计费;
  • 删除当前使用的计费设置,相应账单会立即生成一次(计费时间段为:最近一次账单生成时刻 - 删除操作生效时刻),且不再继续计费。
删除AccessKey 删除AccessKey后,通过该AccessKey授权的API访问权限失效,无法打开控制台,请谨慎操作。
删除账户 删除策略是直接删除时,账户下的云主机和云盘将彻底删除; 若为延迟删除,账户下的云主机和云盘状态为已删除状态,资源所有者变更为admin。
删除租户管理中的用户 删除用户会导致其所在的工单流程不可用,请谨慎操作。

卸载资源

卸载操作属于ZStack Cloud云平台高危操作,本章节主要对高危卸载操作进行总结。

操作 注意事项
从主存储卸载集群 将集群从主存储卸载有以下影响,请谨慎操作:
  • 该主存储上的所有云主机和VPC路由器将关机;
  • 该主存储上的所有云盘不能正常使用。
从集群卸载二层网络 从集群卸载二层网络后,相应云主机的网卡将被卸载,请谨慎操作。
从集群卸载主存储 将主存储从集群卸载有以下影响,请谨慎操作:
  • 该主存储上的所有云主机和VPC路由器将关机;
  • 该主存储上的所有云盘不能正常使用。
卸载裸金属集群 卸载裸金属集群将导致部署中的裸金属主机彻底删除,已部署的裸金属主机无法打开控制台,请谨慎操作。
从VXLAN Pool卸载集群 从VXLAN Pool卸载集群后,相应云主机的网卡将被卸载,请谨慎操作。
从二层网络卸载集群 从二层网络卸载集群后,相应云主机的网卡将被卸载,请谨慎操作。
从VPC网络卸载VPC路由器 请确保无云主机使用此VPC网络,再从VPC网络卸载VPC路由器。
卸载云盘
  • 将之前添加的云盘从云主机卸载,支持运行和停止状态的云主机卸载云盘。
  • 从运行中的云主机卸载云盘可能影响业务连续性,请谨慎操作。
云主机卸载网卡
  • 云主机支持动态卸载网卡(卸载网络);
  • 卸载网卡会解绑相关的网络服务,请谨慎操作。
卸载ISO
  • 将已添加的ISO镜像从云主机中卸载,支持运行和停止状态的云主机卸载ISO,支持批量卸载;
  • 从运行中的云主机卸载ISO可能影响业务连续性,请谨慎操作。
卸载块设备 卸载云主机上已加载的块设备,支持运行和停止状态的云主机卸载块设备。
卸载物理GPU
  • 云主机卸载物理机GPU设备,支持热插拔;
  • 对运行中的云主机卸载物理GPU,可能导致云主机蓝屏以及暂停,建议关机后再卸载物理GPU。
卸载vGPU设备 将vGPU设备从云主机卸载。注意:执行加载、卸载vGPU操作前,请确保云主机状态为已停止。
卸载USB设备 云主机卸载USB设备,支持运行和停止状态的云主机卸载USB设备。
运维手册 | 5.4.12 | ZStack Cloud · ZCF | ZStack 资源中心