Proxmox VE 6.0管理指南——7. Proxmox群集文件系统(pmxcfs)

7. Proxmox群集文件系统(pmxcfs

Proxmox群集文件系统(“ pmxcfs”)是一个数据库驱动的文件系统,用于存储配置文件,这些文件使用corosync实时复制到所有群集节点。我们使用它来存储所有与PVE相关的配置文件。

尽管文件系统将所有数据存储在磁盘上的持久性数据库中,但是数据的副本位于RAM中。这对最大大小(目前为30MB)施加了限制。这仍然足以存储数千个虚拟机的配置。

该系统具有以下优点:

  • 将所有配置实时无缝复制到所有节点
  • 提供强大的一致性检查,以避免重复的VM ID
  • 节点失去仲裁时为只读
  • 自动将Corosync群集配置更新到所有节点
  • 包括分布式锁定机制

7.1POSIX兼容性

该文件系统基于FUSE,因此行为类似于POSIX。但是根本没有实现某些功能,因为我们不需要它们:

  • 您可以只生成普通文件和目录,但不能生成符号链接,…
  • 您不能重命名非空目录(因为这样可以更轻松地确保VMID是唯一的)。
  • 您无法更改文件权限(权限基于路径)
  • O_EXCL创建的不是原子的(就像旧的NFS)
  • O_TRUNC创建的不是原子的(FUSE限制)

7.2。文件访问权限

所有文件和目录均由root用户拥有,并具有组 www-data。只有root拥有写权限,而组www-data可以读取大多数文件。以下路径下的文件:

/ etc / pve / priv /

/ etc / pve / nodes / $ {NAME} / priv /

只能通过root访问。

7.3。技术

我们使用Corosync集群引擎进行集群通信,并使用SQlite进行数据库文件通信。文件系统是使用FUSE在用户空间中实现的 

7.4。文件系统布局

文件系统安装在:

/ etc / pve

7.4.1。档案

corosync.conf

Corosync群集配置文件(在Proxmox VE 4.x之前,此文件称为cluster.conf)

storage.cfg

Proxmox VE存储配置

数据中心

Proxmox VE数据中心范围内的配置(键盘布局,代理等)

user.cfg

Proxmox VE访问控制配置(用户/组/…)

domains.cfg

Proxmox VE认证域

status.cfg

Proxmox VE外部指标服务器配置

authkey.pub

票务系统使用的公钥

pve-root-ca.pem

群集CA的公共证书

priv / shadow.cfg

影子密码文件

私人/ authkey.key

票务系统使用的私钥

priv / pve-root-ca.key

群集CA的私钥

节点//pve-ssl.pem

Web服务器的公共SSL证书(由群集CA签名)

节点//pve-ssl.key

pve-ssl.pem专用SSL密钥

节点//pveproxy-ssl.pem

Web服务器的公共SSL证书(链)(pve-ssl.pem可选替代)

节点//pveproxy-ssl.key

pveproxy-ssl.pem专用SSL密钥(可选)

节点//qemu-server/.conf

KVM VM的VM配置数据

节点/ <名称> / lxc / .conf

LXC容器的VM配置数据

防火墙/群集.fw

防火墙配置已应用于所有节点

防火墙/.fw

单个节点的防火墙配置

防火墙/.fw

VM和容器的防火墙配置

7.4.2。符号链接

本地

节点/

qemu服务器

节点/ / qemu-server /

x

节点/ / lxc /

7.4.3。用于调试的特殊状态文件(JSON

。版

文件版本(检测文件修改)

。成员

有关集群成员的信息

.vmlist

所有虚拟机列表

.clusterlog

群集日志(最近50个条目)

.rrd

RRD数据(最新条目)

7.4.4。启用/禁用调试

您可以使用以下命令启用详细的系统日志消息:

回声“ 1”> /etc/pve/.debug

并使用以下命令禁用详细的系统日志消息:

回声“ 0”> /etc/pve/.debug

7.5。复苏

如果您的Proxmox VE主机存在重大问题(例如硬件问题),则仅复制pmxcfs数据库文件/var/lib/pve-cluster/config.db并将其移至新的Proxmox VE主机可能会有所帮助 。在新主机(没有任何运行)上,您需要停止 pve-cluster服务并替换config.db文件(需要权限 0600)。其次,根据丢失的Proxmox VE主机改编/ etc / hostname/ etc / hosts,然后重新启动并检查。(并且不要忘记您的VM / CT数据)

7.5.1。删除集群配置

建议的方法是从群集中删除节点后重新安装该节点。这样可以确保销毁所有秘密群集/ ssh密钥和所有共享的配置数据。

在某些情况下,您可能希望将节点放回本地模式而不进行重新安装,这在不重新安装的单独节点中进行了描述。

7.5.2。从发生故障的节点中恢复/移动来宾

对于节点/ / qemu-server /VM)和 节点/ / lxc /(容器)中的来宾配置文件,Proxmox VE将包含的节点视为各自来宾的所有者。此概念允许使用本地锁代替昂贵的群集范围锁,以防止并发来宾配置发生更改。

结果,如果客户机的拥有节点发生故障(例如,由于断电,防护事件等),则无法进行常规迁移(即使所有磁盘都位于共享存储上),因为这样的本地无法获得(死)拥有节点上的锁定。对于HA管理的来宾来说,这不是问题,因为Proxmox VE的高可用性堆栈包括必要的(群集范围内)锁定和看门狗功能,以确保从受防护节点正确,自动地恢复来宾。

如果非HA管理的来宾仅具有共享磁盘(并且未配置仅在故障节点上可用的其他本​​地资源),则可以通过简单地从/ etc故障节点目录中移动来宾配置文件来进行手动恢复。/ pve /到活动节点的目录(这将更改来宾的逻辑所有者或位置)。

例如,具有ID回收VM 100从死节点1到另一个节点节点2登录的群集的任何成员节点上根时作品与所执行的以下命令:

mv /etc/pve/nodes/node1/qemu-server/100.conf / etc / pve / nodes / node2 /

 

像这样手动恢复guest虚拟机之前,请绝对确保发生故障的源节点已真正关闭电源。否则,mv命令会违反Proxmox VE的锁定原则,这可能会带来意想不到的后果。

 

 

这样,使用本地磁盘(或仅在死节点上可用的其他本​​地资源)的来宾无法恢复。等待失败的节点重新加入群集,或者从备份中还原此类来宾。

 

你可能感兴趣的:(Proxmox VE 6.0管理指南——7. Proxmox群集文件系统(pmxcfs))