vCenter服务 | vPostgres详解

vCenter服务 | vPostgres详解

本文为vCenter服务介绍的系列篇的其中之一,我们将一一解析VCSA全部服务,包括每个服务的全称,作用,和该服务的前置依赖服务。

这一篇我们来看看VCSA的数据库,vPostgres.

如果是vCenter起不来或者诊断VCSA启动问题,请移步到:

vCenter起不来怎么办?

注意:一般情况下,普通用户不应随意修改 vPostgres 的配置。通常手动调整数据库的工作是由 VMware 原厂工程师处理的。本文内容仅供学习和了解 vPostgres 之用。

vmware-vpostgres是什么

vmware-vpostgres或VMware Postgres是vCenter服务器使用的一个数据库服务,是VCSA最核心服务之一。vPostgres基于 PostgreSQL,vPostgres数据库存储了与 vSphere 环境相关的所有核心数据,包括虚拟机、主机、集群、资源池和存储的配置信息等等。


vPostgres的进化和历史

vPostgres 的使用是在 VMware vSphere 历史发展的过程中逐步引入的。直至到vSphere 6,VMware才将 VCSA 的默认数据库更换为 vPostgres。

vCenter Server Windows 版

在当年 vCenter可以运行在Windows的时候,用户是可以自行选择使用多个不同的数据库管理系统 (DBMS) 来存储 vCenter的数据的。装vCenter的时候,就可以让你选择不通的数据库,包括:

  • Microsoft SQL Server
  • Oracle Database
  • SQL Express

vCenter Server Appliance (VCSA)

随着 VCSA 的引入,VMware 开始转向使用内置的数据库管理系统。早期的 VCSA 版本中,默认使用的是 IBM DB2 数据库。

  • IBM DB2:在 VCSA 的早期版本(如 vSphere 5.x 系列),VMware 使用了 IBM DB2 作为内置的数据库。这是一个成熟的关系型数据库管理系统,适合处理大规模的数据管理需求。
  • VMware vPostgres:从 vSphere 6.0 开始,VMware 将 VCSA 的默认数据库更换为 vPostgres。这是一个经过优化的 PostgreSQL 数据库,专门为 vCenter Server 的工作负载进行调整。vPostgres 提供了更高的性能和更强的可扩展性,是 VCSA 现代版本的标准数据库。

VMware 选择从 DB2 迁移到 vPostgres 主要是基于以下几点考虑:

  1. 性能和优化:vPostgres 是开源数据库 PostgreSQL 的一个变种,VMware 对其进行了优化,使其更适合 vCenter Server 的需求,特别是在处理 vSphere 环境中的大规模数据时表现更优异。
  2. 简化部署和管理:vPostgres 是内置数据库,无需外部数据库服务器的配置,这简化了 VCSA 的部署和维护。
  3. 成本因素:PostgreSQL 是开源软件,不像 Oracle 和 SQL Server 那样需要昂贵的许可费用,这有助于降低整体拥有成本。

vPostgres的特性(与PostgreSQL相比较)

此段理解自VMware官方博客

https://blogs.vmware.com/vsphere/2016/03/getting-comfortable-with-vpostgres-and-the-vcenter-server-appliance-part-1.html

性能调优:相比标准的 PostgreSQL,VMware 针对一些关键参数(比如 shared_bufferscheckpoint_segmentswal_buffers)设置了更高的默认值,这样开箱即用的性能就更好,同时对磁盘空间和内存的需求也只是略微增加。

清理维护:PostgreSQL 数据库需要定期清理,来回收被更新或删除的数据占用的空间、更新数据统计信息,以及优化索引扫描速度。VMware 已经为 vCenter Server 设置了自动清理进程,并调整了参数,以适应特定需求。

备份和恢复:预写日志(WAL – Write Ahead Log)使得备份可以在不中断数据库或 vCenter Server 应用的情况下进行。WAL 记录所有对数据库的更改,并可以在需要时重放,这样保证了数据的一致性。这意味着可以进行整个镜像级别的备份,不用担心数据损坏,也不需要手动备份 vCSA vPostgres 数据库。


vPostgres的配置文件和日志

vPostgres 的配置文件位于 /storage/db/vpostgres/ 目录中,主要的配置文件是 postgresql.conf,其中包含了日志位置、内存调优和自动清理等常见的数据库设置。打开 postgresql.conf 文件后,你会发现有许多配置项。

一般我们看与日志相关的配置,比如存放位置、命名规范、轮转等几个关键参数。

例如,日志目录设置为 log_directory = 'pg_log',而 pg_log 目录实际上是一个符号链接,指向 /var/log/vmware/vpostgres,而这个又链接到 /storage/log/vmware。默认情况下,日志会每天轮转一次,并使用 postgresql-%d.log 命名(%d 是当天日期)。

此外,还有一个名为 log_truncate_on_rotation 的配置项,如果启用的话,PostgreSQL 将覆盖相同名称的日志文件。由于在 vCenter Server Appliance 中启用了此设置,因此每月 4 日的日志文件名相同,并且内容会被清空。这样一来,每天都有一个新的日志文件。不过,需要注意的是,并非所有月份都有 31 天,所以可能会看到 postgresql-31.log 文件保留较长时间。

还有一个 logging_collector 参数,默认情况下 PostgreSQL 是关闭的,但在 vCenter Server Appliance 中我们将其开启,用于捕获通过 stderr 输出的日志消息。开启这个参数有助于减少故障排查的时间,不过需要注意,如果服务器负载过高,日志收集器可能会优先处理,导致其他进程被阻塞。正常情况下,这种情况不太可能发生,但建议保持该参数开启。

图书推介 - 京东自营

24小时热门

还有更多VMware问题?

免费试下我们的VMware问答小助理,即时解答VM难题 → 🤖VM技术助理

需要协助?或者只是想技术交流一下,直接联系我们!

推荐更多

如何配置VMware ESXi主机的时间和日期
未分类

如何配置VMware ESXi主机的时间和日期

本文详细介绍了如何通过VMware ESXi主机客户端配置时间和日期,包括手动设置时间与日期的步骤,以及使用NTP服务器同步时间的具体方法。此外,还提供了解决ESXi 7.0 NTP服务无法启动的替代方案和相关排查建议,帮助用户高效完成时间配置。

vSphere:如何创建数据中心并添加ESXi主机
VMware快速入门

vSphere:如何创建数据中心并添加ESXi主机

本文详细介绍了如何在 vSphere 中创建数据中心并添加 ESXi 主机的操作步骤。首先,讲解了准备工作,包括安装 ESXi 主机和 vCenter Server 的详细步骤。接着,通过 vSphere 客户端创建数据中心,并介绍了如何将 ESXi 主机添加到数据中心中,涵盖了从输入主机信息、设置证书验证,到分配许可证等各个环节。

E1000e和VMXNET3怎么选?VM虚拟网卡性能与兼容性全面解析
VMware快速入门

E1000e和VMXNET3怎么选?VM虚拟网卡性能与兼容性全面解析

本文深入探讨了 VMware 虚拟网卡 E1000e 和 VMXNET3 的性能差异与适用场景,帮助用户选择最适合自己需求的网卡类型。通过对兼容性、吞吐量、延迟等方面的分析,提供优化 VMware 虚拟化环境网络性能的实用建议。

如何在VMware Workstation和ESXi之间迁移虚拟机
VMware快速入门

如何在VMware Workstation和ESXi之间迁移虚拟机

如何在VMware Workstation和ESXi之间迁移虚拟机?本文详细介绍了使用VMware Workstation连接远程ESXi主机的方法,并涵盖了将虚拟机从ESXi迁移到Workstation或从Workstation上传到ESXi的具体步骤及常见问题的解决方案。