文档目录

云平台其他运维

配置运维

本章主要针对高级用户,提供一些场景下的配置运维指南。

普罗米修斯升级 (Prometheus)

ZStack Cloud支持Prometheus,用于数据监控相关功能。提供两个版本Prometheus的支持,根据ZStack Cloud支持程度不同,如下:
  • Prometheus-1.8.2:ZStack Cloud所有版本支持。
  • Prometheus-2.9.2:ZStack Cloud 3.5.0版本及以后版本支持,在系统稳定性、资源使用优化,以及功能性方面都有很大的提升。

版本升级机制

ZStack Cloud版本升级应该注意以下情况:
  • ZStack Cloud 3.5.0之前版本升级到ZStack Cloud 3.5.0及之后版本,默认继续使用Prometheus-1.8.2。
  • ZStack Cloud 3.5.0及之后版本,升级后Prometheus继承原来版本。
  • 初装ZStack Cloud 3.5.0及之后版本,默认使用Prometheus-2.9.2。

Prometheus版本切换

ZStack Cloud 3.5.0及之后版本同时支持两个版本的Prometheus,可通过如下方法进行版本切换:
  • 依次执行如下命令,将Prometheus-1.8.2切换为Prometheus-2.9.2:
    [root@localhost ~]# zstack-ctl configure Prometheus.versionMode=2.x
    [root@localhost ~]# zstack-ctl restart_node
    Note: ZStack Cloud 3.5.0之前版本升级到ZStack Cloud 3.5.0及之后版本,再启用Prometheus-2.9.2将导致旧的监控无法显示。若启用Prometheus-2.9.2的同时保证旧的监控数据依旧生效,请依次执行如下命令:
    [root@localhost ~]# zstack-ctl configure Prometheus.versionMode=2.x-compatible
    [root@localhost ~]# zstack-ctl restart_node
  • 依次执行如下命令,将Prometheus-2.9.2切换为Prometheus-1.8.2:
    [root@localhost ~]# zstack-ctl configure Prometheus.versionMode=1.8.2
    [root@localhost ~]# zstack-ctl restart_node
  • 依次执行如下命令,禁用Prometheus,禁用后监控数据不可用:
    [root@localhost ~]# zstack-ctl configure Prometheus.versionMode=none
    [root@localhost ~]# zstack-ctl restart_node

全局设置

Prometheus支持以下两个全局设置,请管理员在设置 > 全局设置 > 高级设置进行配置:
  • 监控数据保留周期:监控数据在本地保留的月数,最多保留12月,默认:6月。
  • 监控数据保留大小:对于Prometheus-2.9.2,通过设置监控数据保留大小实现对监控目录使用空间的限制,默认:50G。

zstack.properties核心配置文件

zstack.propertiesZStack Cloud的核心配置文件。它会存放在每一个管理节点中。

zstack.properties文件中会存放诸如数据库URL、用于数据库访问的用户名密码、消息总线的IP地址等信息。 每一个管理节点上的zstack.properties文件的内容基本上是一致的。它的路径可以通过zstack-ctl status来获得。

如果是默认安装的话,它会存放在/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties

zstack.properties参数说明

以下是zstack.properties文件内容的详细说明。
类别 参数 解释
数据库
  • 单管理节点:DB.url = jdbc:mysql://管理节点真实IP:3306
  • 双管理节点: DB.url = jdbc:mysql://VIP:3306
数据库URL、端口
DB.user = zstack 数据库用户名
DB.password = REoVaLs+sSFz5WKl8KVzjPQOt0gyL7MpkkIx6PjNB6urlpkp4U1rQsDkHGekirfG 数据库密码。默认zstack.password
Note: 为了保障账户安全,云平台已通过加密方式保存数据库密码。
Sftp镜像服务器 SftpBackupStorageFactory.agentPort = 7171 Sftp镜像服务器端口
消息总线 CloudBus.serverIp.0 = 10.0.5.87 CloudBus服务器IP地址
控制台 consoleProxyCertFile = /usr/local/zstack/zstack-ui/ui.keystore.pem 控制台证书
consoleProxyOverriddenIp = 172.20.11.50 控制台代理对外IP地址
consoleProxyPort = 4900 控制台代理端口
httpConsoleProxyPort = 4901 弹性裸金属控制台端口
ZWatch/SNS
  • 单管理节点:sns.systemTopic.endpoints.http.url = http://localhost:5000/zwatch
  • 双管理节点: sns.systemTopic.endpoints.http.url = http://VIP:5000/zwatch
  • 双管理节点: ticket.sns.topic.http.url = http://VIP:5000/webhook/ticket
ZWatch通知的系统接收端
http http.keepAlive = true 设置是否开启http的keepAlive,默认为true
Prometheus Prometheus.versionMode = 2.x 设置普罗米修斯版本或禁用该功能
ZStack Cloud YUM Ansible.var.zstack_repo = "zstack-mn,qemu-kvm-ev-mn,mlnx-ofed-mn" ZStack Cloud使用的YUM源名称
管理节点服务
  • 单/双管理节点:management.server.ip = 管理节点真实IP
  • 双管理节点:management.server.vip = VIP
管理节点服务器IP地址
chrony chrony.serverIp.0 = 10.0.5.87 chrony服务器IP地址

注意事项

  • 历史版本(3.2.0之前)可以在zstack.properties配置API的默认超时时间,例如:
    ApiTimeout.org.zstack.header.image.APIAddImageMsg = timeout::3h
    3.2.0兼容这种方式。当升级到3.2.0及后续版本时,在创建对应API的全局配置时,使用zstack.properties中配置的API timeout值作为该API全局配置的默认值。
    Note: 升级到3.2.0后,通过zstack.properties配置API timeout的方式已不再需要,所有API的超时可通过全局配置设置。
  • ZStack Cloud 3.3.0开始,支持设置AD/LDAP、邮箱服务器的接连超时时间,设置方法如下:
    进入/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties,在zstack.properties配置文件中设置如下参数:
    • Ldap.addServer.connectTimeout = XX
      # 设置AD/LDAP连接超时时间
    • SNS.addEmailPlatform.connectTimeout = XX
      # 设置邮箱服务器连接超时时间
    • SNS.addEmailPlatform.readTimeout = XX
      # 设置邮箱服务器读取数据超时时间
    Note:
    • 系统默认上述三个参数的超时时间均为5000(单位默认为ms);
    • 若需修改超时时间,可通过zstack-ctl configure命令进行修改,例如:
      [root@localhost ~]# zstack-ctl configure Ldap.addServer.connectTimeout = 10000
      [root@localhost ~]# zstack-ctl configure SNS.addEmailPlatform.connectTimeout = 10000
      [root@localhost ~]# zstack-ctl configure SNS.addEmailPlatform.readTimeout = 10000

      设置完成后使用zstack-ctl restart_node命令重启管理节点生效。

  • ZStack Cloud 3.3.0开始,支持设置ivshmem设备(虚拟PCI设备,实现云主机与物理机之间内存共享)的内存名称,设置方法如下:
    进入/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties,在zstack.properties配置文件中设置如下参数:
    Kvm.ivshmem.dev.prefix = nu_fsec-$prefix$VMUUID
    # 设置共享内存名称
  • ZStack Cloud 3.7.1开始,支持设置双管理节点高可用场景下监控服务zstack-hamon端口,设置方法如下:
    进入/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties,在zstack.properties配置文件中设置如下参数:
    Prometheus.zsha2ExporterPort = 18081
    # 设置双管理节点高可用场景下监控服务zstack-hamon端口
    # 默认端口18081为prometheus的exporter
  • ZStack Cloud 3.9.0开始,支持在镜像服务器为本地存储时设置主存储优先级,设置方法如下:
    进入/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties,在zstack.properties配置文件中设置如下参数:
    imagestore.backupstorage.primary.storage.priority = [\{\"PS\":\"Ceph\"\, \"priority\":\"10\"}\, \{\"PS\":\"LocalStorage\"\, \"priority\":\"1\"}]
    # 配置云主机使用本地主存储
  • ZStack Cloud 3.10.0开始,支持设置日志语言,方法如下:
    进入/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties,在zstack.properties配置文件中设置如下参数:
    locale = en
  • ZStack Cloud 4.3.0开始,支持虚拟网络发送ARP消息检测物理网卡是否故障,方法如下:
    进入/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties,在zstack.properties配置文件中设置如下参数:
    SendGracefulARP = true
    #启用物理网卡故障检测功能
    Note:
    • 云平台默认关闭物理网卡故障检测功能。
    • 开启该功能后,系统将基于默认时间间隔持续检测物理聚合网卡状态,若出现主备切换,云平台会立即发送云主机的GARP请求,从而解决网络单点故障时外部无法与云主机通信的问题。
    • 双管理节点环境下,需要在每台管理节点上使用zstack-ctl configure进行配置。
    • 配置后需运行zstack-ctl restart_node重启管理节点生效。

zstack.ui.properties核心配置文件

zstack.ui.propertiesZStack Cloud UI的核心配置文件。它会存放在每一个管理节点中。

zstack.ui.properties文件中会存放诸如UI数据库URL、用于UI数据库访问的用户名密码、UI服务器端口等信息。 每一个管理节点上的zstack.ui.properties文件的内容基本上是一致的。

如果是默认安装的话,它会存放在/usr/local/zstack/zstack-ui/zstack.ui.properties

以下是zstack.ui.properties文件内容的详细说明。
类别 参数 解释
管理节点
  • 单管理节点:mn_host = 127.0.0.1
  • 双管理节点: mn_host = 管理节点真实IP
管理节点IP
  • 单管理节点默认为127.0.0.1
  • 双管理节点默认为管理节点真实IP
mn_port = 8080 管理节点端口,默认8080
Webhook主机
  • 单管理节点:webhook_host = 127.0.0.1
  • 双管理节点: webhook_host = VIP
Webhook主机IP
  • 单管理节点默认为127.0.0.1
  • 双管理节点默认为 VIP
webhook_port = 5001 Webhook主机端口,默认5001
UI服务器 server_port = 5000 UI服务器端口,默认5000
UI日志 log =/usr/local/zstack/zstack-ui/logs UI日志文件夹,默认/usr/local/zstack/zstack-ui/logs
UI HTTPS enable_ssl = false 启用/关闭HTTPS登录UI
ssl_keyalias = zstackui UI证书别名,默认zstackui
ssl_keystore = /usr/local/zstack/zstack-ui/ui.keystore.p12 UI证书路径,默认/usr/local/zstack/zstack-ui/ui.keystore.p12
ssl_keystore_type = PKCS12 UI证书类型,默认PKCS12
ssl_keystore_password = password UI证书私钥密码,默认password
server.ssl.enabled-protocols = TLSv1.2 UI是否启用HTTPS,默认为TLSv1.2
数据库 db_url = jdbc:mysql://10.0.5.87:3306 UI数据库URL,默认jdbc:mysql://10.0.46.243:3306
db_username = zstack_ui UI数据库用户名,默认zstack_ui
db_password = REoVaLs+sSFz5WKl8KVzjJjvYZhURJunQ2IkXgJ4eRqIcECuRcQYNYltwyro45rL UI数据库加密的密码,默认zstack.ui.password
UI服务进程 catalina_opts = -Xmx4096m UI服务进程最大可用内存,默认4096M

云平台硬件资源密码变更

对于ZStack Cloud云平台的硬件资源,如物理主机、Ceph主存储、镜像服务器等,在这些节点的操作系统内如果密码发生变化,需在ZStack Cloud云平台界面更改相应硬件资源的密码,以确保云平台使用正确的密码连接相应的硬件资源。否则会导致资源失联不可用,重连也会提示ssh连接错误。

更改密码的方法:在ZStack Cloud云平台界面,点击相应节点展开其详情页,点击相应节点IP旁边的编辑按钮进行更改,IP地址更改后,需重连生效。

管理节点更改物理环境

ZStack Cloud的授权与用户的物理主机的环境一一匹配。如果用户更新了管理节点物理主机硬件配置,可能会导致ZStack Cloud的授权失效,而启动失败。此时请联系官方技术支持获取帮助。

数据库备份与恢复

为保护数据安全,防止数据丢失,支持主动定期进行数据库备份。

  • 可使用zstack-ctl dump_mysql命令对数据库进行备份。
  • 可使用zstack-ctl restore_mysql -f back.gz --mysql-root-password password命令对数据库进行恢复。
  • 默认使用crontab命令进行控制。
    • 可使用crontab -l命令查看管理节点相关的自动定时备份任务。
    • 可使用crontab -e命令在界面里修改备份策略,默认为每天的凌晨和中午12:30进行备份,并且最多保留最新的14次备份。
  • 默认的数据库备份文件存放路径:/var/lib/zstack/mysql-backup/
  • 建议用户使用异地备份策略来提高安全性。只要数据库文件存在,即使ZStack Cloud的相关服务器挂掉,均可使用数据库文件进行恢复。
  • 需注意,进行数据库备份的时候,可能会影响管理节点操作的流畅性。

本地存储空间扩容

前提条件

在使用ZStack Cloud产品过程中, 如果本地存储空间容量不足,可通过以下方式进行存储空间扩容。

背景信息

以下为系统主存储空间/cloud_ps扩容的样例。

操作步骤

  1. 设置待扩容的物理机进入维护模式;
  2. 插入新的大容量磁盘至物理机,并进行分区格式化,假定设备名称为/dev/sdc
  3. 创建新目录/new_volume,并执行以下命令挂载此磁盘:
    mount /dev/sdc1 /new_volume
  4. 执行以下命令,拷贝原始的磁盘文件至新磁盘:
    rsync -a /cloud_ps /new_volume/
  5. 执行以下命令,将挂载目录/cloud_ps/new_volume均卸载:
    umount /cloud_ps
    umount /new_volume
  6. 执行以下命令,将新的大容量磁盘挂载到原本的主存储目录:
    mount /dev/sdc1 /cloud_ps
  7. 修改/etc/rc.d/rc.local,添加以下内容:
    mount /dev/sdc1 /cloud_ps
  8. 针对/etc/rc.d/rc.local,赋予可执行权限:
    chmod +x /etc/rc.d/rc.local
  9. 在云平台界面启用物理机,并重连物理机,启动其上的云主机,检查磁盘扩容后,数据依然可用。
  10. 正常恢复后,原本的磁盘及其内部数据可不再留存,用于其他用途。

云主机根云盘扩容

ZStack Cloud支持云主机在运行或者停止状态下进行根云盘扩容。

云主机根云盘扩容

可通过以下三种方式进行云主机根云盘扩容:
  1. 云主机管理界面,选择某一运行中/已停止的云主机,点击更多操作 > 系统扩容,可按需进行根云盘扩容,更改容量即时生效。
  2. 选择某一运行中/已停止的云主机,进入云主机详情页的配置信息页面,选择需要扩容的根云盘,点击云盘右侧的操作 > 云盘扩容,可按需进行根云盘扩容,更改容量即时生效。
  3. 选择某一运行中/已停止的云主机,进入云主机详情页的配置信息页面,点击需要扩容的根云盘,进入根云盘详情页,按需修改根云盘容量,更改容量即时生效。
Note:
  • 新容量必须大于当前容量,且增量不得小于4MB。
  • 新容量必须为4MB的倍数,例如:填写新容量为37MB,实际扩容到40MB。

上述步骤仅实现将云主机的根云盘容量扩大,需在云主机的操作系统里对硬盘进行分区扩容,才可使得云主机识别。

云主机操作系统硬盘分区扩容

针对不同类型、不同分区、不同文件系统的云主机,扩容方式均不相同。
Note:
  • 进行根云盘扩容前,默认对当前系统进行了快照备份,以增强数据安全性。
  • 扩容存在风险。安全的扩容方式是对扩容的新容量,规划新的分区。
  • 扩容只能增加容量,不能减少容量。
  • 扩容增加的容量可以合并到最后一个分区,将其连续使用。
    • 如果最后一个分区是系统备份分区(Windows),则只能对新增容量规划新的分区方式使用。
    • 如果最后一个分区是swap分区,则swap分区可以删除,将新增容量扩容至swap分区前一分区后,再重建swap分区。

以下分三种不同的应用场景来介绍:

  1. 使用GParted开源工具针对ext4+swap分区扩容ext4根分区实例。
    Note:
    • 此方式需借助Live CD方式对当前分区进行重新规划。
    • 调整分区时需谨慎操作,以防止数据丢失。

    假定云主机采用了ext4根分区+swap分区,其中ext4根分区35G,swap分区5G,总容量40G,将系统从40G扩容至50G后,打算将新增容量扩容至ext4根分区。

    操作步骤如下:
    1. 添加GParted ISO,下载路径可参考GPared官网https://gparted.org/download.php,建议下载amd64的iso表示支持64位系统。
    2. 添加ISO后,设置启动顺序为cdrom harddisk,表示下次启动,以cdrom优先。
    3. 使用GParted Live CD引导系统,打开云主机控制台,GParted引导后,按照引导一直执行Enter键直至进入图形界面。
    4. 在GParted界面,右击删除原本的swap分区,扩展ext4将其从35G扩展至46G,针对unallocated的4G分区,新建swap分区。
    5. 关闭云主机,卸载ISO,启动云主机。
    6. 打开云主机控制台,执行df -h,可见云主机根分区容量已扩展至46G。
      [root@10-58-21-213 ~]# df -h
      Filesystem Size Used Avail Use% Mounted on
      /dev/vda1 46G 1.2G 42G 3% /
    7. 开启swap分区并修改/etc/fstab磁盘分区表。
      [root@10-58-21-213 ~]# fdisk -l|grep vda
      Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
      /dev/vda1 * 2048 96468991 48233472 83 Linux
      /dev/vda2 96468992 104857599 4194304 82 Linux swap / Solaris
      
      [root@10-58-21-213 ~]# mkswap /dev/vda2
      mkswap: /dev/vda2: warning: wiping old swap signature.
      Setting up swapspace version 1, size = 4194300 KiB
      no label, UUID=ed99f72b-aafb-43ad-be8f-fcd09794beb0
      #可知此swap分区的UUID为ed99f72b-aafb-43ad-be8f-fcd09794beb0
      
      [root@10-58-21-213 ~]# swapon /dev/vda2
      #开启swap分区
      
      [root@10-58-21-213 ~]# free -m
       total used free shared buff/cache available
      Mem: 911 106 671 6 133 657
      Swap: 4095 0 4095
      
      [root@10-58-21-213 ~]# sed -i '/swap/d' /etc/fstab
      echo "UUID=ed99f72b-aafb-43ad-be8f-fcd09794beb0 swap swap defaults 0 0"
      #将swap的设置写入磁盘分区表,以便开机自启。
    8. 关机重启后,此云主机根云盘ext4分区成功扩容,swap分区也保留4G使用。
  2. 使用LVM分区工具针对xfs+swap分区扩容LVM分区实例。
    Note: 此方式适用于LVM分区动态扩容,无须借助其他工具。

    假定云主机采用了LVM分区,并格式化为boot分区、xfs根分区和swap分区。其中xfs根分区94G,swap分区6G,总容量100G,将系统从100G扩容至120G后,打算将新增容量扩容至xfs根分区。

    操作步骤如下:
    1. 查看当前分区和LVM逻辑分区,其中boot分区为500M,使用了/dev/vda1,LVM分区为94G,使用了/dev/vda2,路径为/dev/vg/root,swap分区为6G,路径为/dev/vg/swap
      [root@10-0-44-221 ~]# df -h
      Filesystem Size Used Avail Use% Mounted on
      /dev/mapper/vg-root 94G 6.5G 88G 7% /
      /dev/vda1 477M 104M 344M 24% /boot
      #boot分区为500M,使用了/dev/vda1
      #LVM分区为94G,使用了/dev/vda2,路径为/dev/vg/root
      #swap分区为6G,路径为/dev/vg/swap
      
      [root@10-0-44-221 ~]# fdisk -l |grep vda
      Disk /dev/vda: 128.8 GB, 128849018880 bytes, 251658240 sectors
      /dev/vda1 * 2048 1026047 512000 83 Linux
      /dev/vda2 1026048 209715199 104344576 8e Linux LVM
      
      [root@10-0-44-221 ~]# pvdisplay |egrep "Name|Size"
       PV Name /dev/vda2
       VG Name vg
       PV Size 99.51 GiB / not usable 3.00 MiB
       PE Size 4.00 MiB
      #物理卷使用/dev/vda2
      
      [root@10-0-44-221 ~]# vgdisplay |egrep "Name|Size"
       VG Name vg
       VG Size 99.51 GiB
       PE Size 4.00 MiB
       alloc PE / Size 25463 / 99.46 GiB
       Free PE / Size 11 / 44.00 MiB
      #卷组信息,卷组名称为vg,会针对此卷组扩容
      
      [root@10-0-44-221 ~]# lvdisplay |egrep "Name|Size"
       LV Name root
       VG Name vg
       LV Size 93.59 GiB
       LV Name swap
       VG Name vg
       LV Size 5.88 GiB
      #逻辑卷信息
    2. 扩容后,执行fdisk /dev/vda对新增容量分区,使用n建立新分区,使用t将其分区为LVM格式,使用w使修改生效,使用partprobe使其立刻生效。
      [root@10-0-44-221 ~]# fdisk /dev/vda
      Welcome to fdisk (util-linux 2.23.2).
      Changes will remain in memory only, until you decide to write them.
      Be careful before using the write command.
      Command (m for help): p
      Disk /dev/vda: 128.8 GB, 128849018880 bytes, 251658240 sectors
      Units = sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk label type: dos
      Disk identifier: 0x0008168e
       Device Boot Start End Blocks Id System
      /dev/vda1 * 2048 1026047 512000 83 Linux
      /dev/vda2 1026048 209715199 104344576 8e Linux LVM
      Command (m for help): n
      Partition type:
       p primary (2 primary, 0 extended, 2 free)
       e extended
      Select (default p):
      Using default response p
      Partition number (3,4, default 3):
      First sector (209715200-251658239, default 209715200):
      Using default value 209715200
      Last sector, +sectors or +size{K,M,G} (209715200-251658239, default 251658239):
      Using default value 251658239
      Partition 3 of type Linux and of size 20 GiB is set
      Command (m for help): t
      Partition number (1-3, default 3):
      Hex code (type L to list all codes): 8e
      Changed type of partition 'Linux' to 'Linux LVM'
      Command (m for help): p
      Disk /dev/vda: 128.8 GB, 128849018880 bytes, 251658240 sectors
      Units = sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk label type: dos
      Disk identifier: 0x0008168e
       Device Boot Start End Blocks Id System
      /dev/vda1 * 2048 1026047 512000 83 Linux
      /dev/vda2 1026048 209715199 104344576 8e Linux LVM
      /dev/vda3 209715200 251658239 20971520 83 Linux LVM
      Command (m for help): w
      The partition table has been altered!
      Calling ioctl() to re-read partition table.
      WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
      The kernel still uses the old table. The new table will be used at
      the next reboot or after you run partprobe(8) or kpartx(8)
      Syncing disks.
      
      [root@10-0-44-221 ~]# partprobe
    3. 针对新格式化的分区,创建物理卷。
      [root@10-0-44-221 ~]# pvcreate /dev/vda3
       Physical volume "/dev/vda3" successfully created
      #创建物理卷
    4. 针对卷组,进行扩展。
      [root@10-0-44-221 ~]# vgextend vg /dev/vda3
       Volume group "vg" successfully extended
      #卷组名称为vg,将新分区扩展至卷组vg
    5. 关闭swap,删除原本的swap逻辑卷。
      [root@10-0-44-221 ~]# swapoff -a
      [root@10-0-44-221 ~]# lvremove /dev/vg/swap
      Do you really want to remove active logical volume swap? [y/n]: yes
       Logical volume "swap" successfully removed
    6. 将逻辑卷/dev/vg/root扩容20G。
      [root@10-0-44-221 ~]# lvextend -L +20G /dev/vg/root
       Size of logical volume vg/root changed from 93.59 GiB (23959 extents) to 113.59 GiB (29079 extents).
       Logical volume root successfully resized.
      #对/dev/vg/root 扩容20G
      
      [root@10-0-44-221 ~]# lvdisplay
       --- Logical volume ---
       LV Path /dev/vg/root
       LV Name root
       VG Name vg
       LV UUID UkyCVW-gd5E-Z4Q2-bVHv-T84e-c3GH-ZMiUdF
       LV Write Access read/write
       LV Creation host, time localhost, 2017-07-26 13:18:40 +0800
       LV Status available
       # open 1
       LV Size 113.59 GiB
       Current LE 29079
       Segments 2
       allocation inherit
       Read ahead sectors auto
       - currently set to 8192
       Block device 253:0
    7. 执行xfs_growfs进行xfs文件系统扩容,使其生效,并检查新分区。
      [root@10-0-44-221 ~]# xfs_growfs /dev/vg/root
      meta-data=/dev/mapper/vg-root isize=256 agcount=4, agsize=6133504 blks
       = sectsz=512 attr=2, projid32bit=1
       = crc=0 finobt=0
      data = bsize=4096 blocks=24534016, imaxpct=25
       = sunit=0 swidth=0 blks
      naming =version 2 bsize=4096 ascii-ci=0 ftype=0
      log =internal bsize=4096 blocks=11979, version=2
       = sectsz=512 sunit=0 blks, lazy-count=1
      realtime =none extsz=4096 blocks=0, rtextents=0
      data blocks changed from 24534016 to 29776896
      
      [root@10-0-44-221 ~]# df -h|grep vg-root
      Filesystem Size Used Avail Use% Mounted on
      /dev/mapper/vg-root 114G 6.5G 108G 6% /
      #新分区扩容已生效
    8. 从逻辑卷组划分新容量给swap分区,并启动swap分区,写入磁盘配置。
      [root@10-0-44-221 ~]# lvcreate -L 4G -n swap vg
       Logical volume "swap" created.
      #从卷组vg创建4G分区命名为swap
      
      [root@10-0-44-221 ~]# mkswap /dev/vg/swap
      Setting up swapspace version 1, size = 4194300 KiB
      no label, UUID=bfc8a843-c758-4665-adfe-e32752ceda44
      #创建swap分区,可知此swap分区的UUID为bfc8a843-c758-4665-adfe-e32752ceda44
      
      [root@10-0-44-221 ~]# swapon /dev/mapper/vg-swap
      #开启swap分区
      
      [root@10-58-21-213 ~]# sed -i '/swap/d' /etc/fstab
      echo "UUID=bfc8a843-c758-4665-adfe-e32752ceda44 swap swap defaults 0 0"
      #将swap的设置写入磁盘分区表,以便开机自启。
    9. 关机重启后,此云主机LVM分区的xfs系统成功扩容,swap分区也保留了4G使用。
  3. Windows分区扩容实例
    Windows分区可以在磁盘管理界面直接进行磁盘扩容。
    Note: Windows在线扩容后需重新扫描磁盘。

Shared Block共享云盘升级

如需对Shared Block共享云盘升级,请根据以下步骤进行操作:
  1. 执行以下命令,查询需要被更新的已被卸载的Shared Block共享云盘,并确定这些云盘需要进行格式转换:
    [root@localhost ~]# zstack-ctl fix_sharedvolume --operation convert_volume --admin-password password
  2. 执行以下命令,将查询到的需要转换格式的Shared Block共享云盘,由qcow2格式转换为raw格式:
    [root@localhost ~]# zstack-ctl fix_sharedvolume --operation convert_volume --admin-password password --dryrun False
  3. 执行以下命令,查询可以被删除的原qcow2格式的Shared Block共享云盘:
    [root@localhost ~]# zstack-ctl fix_sharedvolume --operation delete_qcow2_volume --admin-password password
  4. 确保格式转换后数据完整性,然后执行以下命令,删除原qcow2格式的Shared Block共享云盘:
    [root@localhost ~]# zstack-ctl fix_sharedvolume --operation delete_qcow2_volume --admin-password password --dryrun False
  5. 执行以下命令,将Shared Block共享云盘中的快照创建成镜像文件,留作备份:
    [root@localhost ~]# zstack-ctl fix_sharedvolume --operation commit_snapshot_to_image --admin-password password --backup-storage-uuid  XXXXX  --dryrun False
  6. 执行以下命令,删除原qcow2格式的快照:
    [root@localhost ~]# zstack-ctl fix_sharedvolume --operation delete_shared_volume_snapshots --admin-password password --dryrun False

Ceph企业版变更时间

针对不同版本Ceph企业版,变更时间操作方法不同,若需要对Ceph企业版变更时间,请联系官方技术支持进行操作,推荐方法如下:
  • Ceph企业版3.1.9及以上版本,请按照以下步骤进行操作:
    Note: Ceph企业版变更时间前需要进行以下准备工作:
    • 确保Ceph状态为ok,UI服务器状态均为健康。
    • 规划好时间服务器角色分配,避免二次变更。
    1. 在所有客户端节点,使用如下命令查看Ceph集群内时间同步情况,确保时间同步:
      [root@ Ceph ~]# chronyc sources -v   #输出为*表示时间同步正常
    2. 手动变更时间服务节点时间,然后执行如下命令重启时间服务进程:
      Note: 此时不要将此节点client端指向自己。
      [root@ Ceph ~]# service chronyd restart
    3. 待时间服务节点时间正常后,在Ceph集群其他节点依次执行如下命令,重启服务器的chronyd服务,并检查结果:
      [root@ Ceph-1 ~]# service chronyd restart
      [root@ Ceph-1 ~]# chronyc sources -v   #输出为*表示时间同步
    4. 在每台Ceph集群的节点上执行如下命令,重启xmsd服务:
      [root@ Ceph-1 ~]# systemctl restart xmsd
    5. 执行以下命令,将更改后的当前时间写入服务器硬件时间:
      [root@ Ceph ~]# hwclock -w
    6. 确保时间变更成功后,在管理节点的配置文件(/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties)中指定时间节点IP:chrony.serverIp.0 = XXX(XXX为时间服务节点IP),然后执行命令service chronyd restart重启管理节点时间服务。
    Note: 时间变更操作完成后,可参考以下方法进行检查:
    • 使用ceph -s命令,确认Ceph状态是否为ok
    • 使用chronyc sources -v命令,确认时间是否同步(输出为*)。
    • 确认修改后时间是否达到预期,确认存储UI下每台服务器状态为健康,确认存储池状态为健康。
  • Ceph企业版3.1.9以下版本,请按照以下步骤进行操作:
    1. 停止所有业务云主机(含管理节点云主机);
    2. 调整时间同步;
    3. 执行命令systemctl restart xmsd重启各节点的xmsd服务;
    4. 确保时间变更成功后,在管理节点的配置文件(/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties)中指定时间节点IP:chrony.serverIp.0 = XXX(XXX为时间服务节点IP);
    5. 执行命令service chronyd restart重启管理节点时间服务。

集群时间源变更

ZStack Cloud采用chrony时间同步服务确保整个集群节点时间一致性。集群内物理机默认根据云平台管理节点zstack.properties配置文件中指定的时间源进行时间同步。

集群时间源变更操作步骤

假定集群环境信息如下:
节点 IP 备注
物理机1 192.168.100.1 集群内时间源A
物理机2 192.168.100.2 集群内时间源B
物理机3 192.168.100.3 时间源待变更物理机3
物理机4 192.168.100.4 时间源待变更物理机4
若集群需变更时间源,请参考以下步骤进行操作:
  1. 进入管理节点配置文件/usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/zstack.properties,修改/增加以下参数, 指定时间源服务器IP:
    [root@localhost ~]# cd /usr/local/zstack/apache-tomcat/webapps/zstack/WEB-INF/classes/
    [root@localhost ~]# vim zstack.properties
    ...
    chrony.serverIp.0 = 192.168.100.1
    chrony.serverIp.1 = 192.168.100.2
    ... 
    Note:
    • zstack.properties配置文件只配置一个内部时间源,建议按照以上命令配置两个内部时间源服务器。
    • 若为双管理节点架构,需同时进入两个管理节点的zstack.properties配置文件进行配置。
  2. 分别进入两个时间源服务器/etc/chrony.conf配置文件,增加如下内容,将时间源服务器与公网时间源服务器进行时间同步:
    [root@localhost ~]# cd /etc/
    [root@localhost ~]# vim chrony.conf
    ...
    server ntp.aliyun.com iburst
    server 0.helix.pool.ntp.org
    local stratum 10
    allow 0.0.0.0/0
    ... 
    Note:
    • ntp.aliyun.comntp.aliyun.com分别为公网时间源服务器,也可使用其他公网时间源服务器。
    • 建议集群内的时间源服务器与公网或企业内部时间源服务器同步。
  3. 分别进入两个时间源服务器执行以下命令,重启chrony时间同步服务:
    [root@localhost ~]# systemctl restart chronyd
  4. 分别进入两个时间源服务器执行以下命令,确认时间是否同步:
    [root@localhost ~]# chronyc sources -v  //输出为*表示时间同步正常
  5. 分别进入两个时间源服务器执行以下命令,将更改后的当前时间写入服务器硬件时间:
    #集群内时间源服务器与外部时间源服务器完成时间同步
    [root@localhost ~]# hwclock -w
  6. ZStack Cloud管理节点分别执行以下命令,重启管理节点服务,使新配置内容生效:
    • 单管理节点:
      [root@localhost ~]# zstack-ctl stop  &&  zstack-ctl start
    • 双管理节点:
      [root@localhost ~]# zsha2 stop-node  &&  zsha2 start-node
    • Note: 管理节点服务重启完成后,所有物理机的时间源会自动修改为zstack.properties配置文件中指定的时间源,并重启物理机的chrony时间同步服务。同时会自动重连所有硬件资源,请在云平台确认所有硬件设施连接状态均恢复为已连接。
  7. 随机选择一台物理机执行以下命令,确认时间是否同步:
    #输出为*表示时间同步正常
    [root@localhost ~]# chronyc sources -v
    Note: 若该台物理机时间同步成功,则可确认所有物理机时间同步成功。
  8. (可选)在各台物理机上分别执行以下命令,将更改后的当前时间写入物理机硬件时间:
    [root@localhost ~]# hwclock -w
    Note: 用户可根据自身业务情况选择执行该命令。若选择不执行该命令,需确保以上操作均准确无误。

注意事项

修改物理机时间,默认Windows云主机时间会随物理机时间变更,可能影响上层业务。若不希望云主机时间随物理机时间修改而变更,可任选以下方法:
  • 可关闭云主机时间同步策略。
    Note: 关闭云主机同步策略,重启后生效。
  • 在云主机系统内单独指定时间源。
    Note: Windows系统默认的时间同步间隔为7天,通过修改系统注册表,修改Windows系统自动同步间隔,提高同步次数保证时钟的精度。
运维手册 | 5.5.30 | ZStack Cloud · ZCF | ZStack 资源中心