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 输出的日志消息。开启这个参数有助于减少故障排查的时间,不过需要注意,如果服务器负载过高,日志收集器可能会优先处理,导致其他进程被阻塞。正常情况下,这种情况不太可能发生,但建议保持该参数开启。

有VM问题需要协助?

免费试用VMware技术助理(已接Deepseek)!即时解答VM难题

→ 🤖VM技术助理

解析和诊断各类vCenter错误,ESXi日志,虚拟机vmware.log

→ 📕VMware日志分析器

图书推介 - 京东自营

24小时热门

还有更多VMware问题?

免费试下我们的VMware技术助理(已接Deepseek)!即时解答VM难题 → 🤖VM技术助理

试试 📕VMware日志分析器 免费诊断各类vCenter错误,ESXi日志,虚拟机vmware.log等等

########

扫码加入VM资源共享交流微信群(请备注加群

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

推荐更多

vCenter Server Appliance 6.7 部署在 firstboot 期间失败
运维必备

vCenter Server Appliance 6.7 部署在 firstboot 期间失败

vCenter Server Appliance 6.7 部署在 firstboot 期间失败。vCenter Server Appliance 6.7 部署在 firstboot 期间失败,提示更新管理器扩展注册失败?本文介绍根本原因和完整的解决方法。 本文针对该问题提供了深度剖析与实测解决方案。

一些VMware ESXi 虚拟机性能问题故障排除指南
运维必备

一些VMware ESXi 虚拟机性能问题故障排除指南

ESX/ESXi 虚拟机性能问题故障排除指南。ESX/ESXi 虚拟机性能不佳?本文提供完整的故障排除指南,包括 CPU、内存、存储和网络性能问题的诊断方法。 本文针对该问题提供了深度剖析与实测解决方案。

NSX 覆盖网络上的虚拟机无法 ping DNS 服务器和解析名称
运维必备

NSX 覆盖网络上的虚拟机无法 ping DNS 服务器和解析名称

NSX 覆盖网络上的虚拟机无法 ping DNS 服务器和解析名称。NSX 覆盖网络上的虚拟机无法 ping DNS 服务器和解析名称?本文介绍根本原因和完整的解决方法。 本文针对该问题提供了深度剖析与实测解决方案。

vLCM 无法解压缩更新文件的解决方法
运维必备

vLCM 无法解压缩更新文件的解决方法

vLCM 无法解压缩更新文件的解决方法。vLCM 导入更新文件时在 20% 失败,提示无法解压缩包?本文介绍根本原因和完整的解决方法。 本文针对该问题提供了深度剖析与实测解决方案。

//omg10.com/4/9119499