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小时热门

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

推荐更多

vCenter服务 | vPostgres详解
VMware快速入门

vCenter服务 | vPostgres详解

详细介绍下VCSA的数据库服务vPostgres。vPostgres与PostgreSQL的区别。vPostgres的发展历史和迭代,vPostgres的配置文件路径和默认配置文件

vCenter服务 | vmware-vpxd详解
VMware快速入门

vCenter服务 | vmware-vpxd详解

vmware-vpxd详解,什么是vpxd,vmware-vpxd服务的作用,vpxd的依赖服务,vpxd起不来怎么办