C.配置文件Configuration Files
C.1.总览General
PVE 大多数配置文件都位于 共享集群文件系统 /etc/pve(详见 第 6 章)—— 修改后自动复制到所有节点。例外是节点级配置文件 , 例如备份默认值 /etc/vzdump.conf。
这些文件中的字段大多源自 PVE REST API 的 JSON Schema —— 与对应 API 端点同名同义。
C.1.1.属性命名约定(Casing)
历史上 , 较长的属性(含子属性)常用 snake_case 或写成不分隔的单词 —— 这与 PVE 主要由 Perl 实现有关(Perl 中以 kebab-case 访问属性需额外引号), 以及早期开发风格未严格统一。
新增属性更倾向 kebab-case, 计划为既有 snake_case 属性引入别名 , 长期内在 API、 CLI 与配置文件全面切换到 kebab-case, 同时在配置恢复 / 加载时保持向后兼容。
C.2.配置文件清单
| 路径 | 作用 | 详细说明 |
|---|---|---|
/etc/pve/datacenter.cfg | 集群级默认值 | 下文 C.3 |
/etc/pve/storage.cfg | 存储定义 | 第 7 章 |
/etc/pve/user.cfg | 用户、组、 ACL(密码 hash 在 /etc/pve/priv/shadow.cfg) | §14.1 |
/etc/pve/domains.cfg | 认证域配置 | §14.5 |
/etc/pve/notifications.cfg + /etc/pve/priv/notifications.cfg | 通知目标 / 匹配器(敏感项在 priv 下) | 第 17 章 |
/etc/pve/firewall/cluster.fw | 集群级防火墙 | §13.2.1 |
/etc/pve/nodes/<node>/host.fw | 主机级防火墙 | §13.2.2 |
/etc/pve/firewall/<VMID>.fw | VM / CT 防火墙 | §13.2.3 |
/etc/pve/sdn/firewall/<vnet>.fw | VNet 防火墙(仅 nftables 版) | §13.2.4 |
/etc/pve/sdn/*.cfg | SDN zones / vnets / subnets / controllers / IPAM / DNS / DHCP | 第 12 章 |
/etc/pve/ha/resources.cfg | HA 资源 | §15.6.1 |
/etc/pve/ha/groups.cfg | HA 节点组(已弃用 , 9.0 起改用规则) | §15.6.2 |
/etc/pve/ha/rules.cfg | HA 节点 / 资源亲和规则 | §15.6.3 |
/etc/pve/ha/fence.cfg | 硬件 fencing 设备配置 | §15.7 |
/etc/pve/qemu-server/<VMID>.conf | VM 配置 | §10.14 |
/etc/pve/lxc/<CTID>.conf | 容器配置 | §11.11 |
/etc/pve/jobs.cfg | 计划备份 / 复制作业 | §16.5 |
/etc/pve/corosync.conf | Corosync 集群通信 | 第 5 章 |
/etc/pve/replication.cfg | 存储复制作业 | 第 9 章 |
/etc/pve/local/pve-ssl.{pem,key} | PVE 自签证书与私钥 | 第 3 章 |
/etc/pve/local/pveproxy-ssl.{pem,key} | 外部 / ACME 证书覆盖 | §18.2.6 |
/etc/pve/priv/... | 仅 root 可读 :密码 hash、 LDAP bind 密码、通知 secret 等 | 多章引用 |
/etc/vzdump.conf(节点级) | 备份默认值 | §16.10 |
/etc/network/interfaces(节点级) | 网桥 / 接口(含 SDN 写入位) | 第 3 章 |
/etc/default/{pveproxy,pvedaemon,pve-ha-manager,suricata} | 各守护进程的环境变量 | 第 18 章 |
/etc/pve/notification-templates/default/ | 通知模板覆盖 | §17.8 |
C.3.数据中心配置(datacenter.cfg)Datacenter Configuration
/etc/pve/datacenter.cfg 含集群级默认 , 由所有节点共享。
C.3.1.文件格式
简单的冒号分隔 key/value 格式 , 每行:
OPTION: value
空行忽略 , # 开头视作注释。
C.3.2.选项
bwlimit: [clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]- 不同操作的 IO 带宽上限(KiB/s):
clone:克隆磁盘default:未单独设置时的默认migration:迁移客户机(含本地盘)move:移动磁盘restore:从备份恢复
consent-text: <string>- 登录前显示的同意 / 公告文本。
console: <applet | html5 | vv | xtermjs>- 默认控制台查看器:
applet:旧 Java 小程序(VNC, 已弃用 —— 实际映射到html5)vv:外部 virt-viewer 兼容应用(SPICE)html5:基于 HTML5 的 noVNCxtermjs:基于 HTML5 的 xterm.js 控制台
crs: [ha=<basic|static>] [,ha-rebalance-on-start=<1|0>]- 集群资源调度(CRS)设置:
ha(默认basic):HA 管理器选节点的算法。basic仅看服务数量;static把客户机配置中的静态 CPU / 内存也纳入考量。ha-rebalance-on-start(默认 0):启动停止状态的 HA 服务时 , 用 CRS 重选最合适节点。
description: <string>- 数据中心描述 —— GUI 数据中心备注面板显示 , 以注释形式存于配置文件。
email_from: <string>- 通知邮件的发件地址(默认
root@$hostname)。 fencing: <both | hardware | watchdog>(默认watchdog)- HA 集群 fencing 模式。
hardware模式需在/etc/pve/ha/fence.cfg配置 fence 设备;both同时使用两种。hardware与both均为 实验性 / 进行中(WIP)。 ha: shutdown_policy=<enum>- 集群级 HA 设置。子键:
shutdown_policy = <conditional | failover | freeze | migrate>(默认conditional)—— 节点关机 / 重启时的 HA 服务处理策略:freeze:始终冻结节点上的服务 —— 关机期间不被 HA 管理器恢复。failover:不冻结服务 , 节点不能很快恢复(< 1 分钟)时 , 服务被恢复到其他节点。conditional:按关机类型自动判断 —— 重启时冻结 , 关机(poweroff)则保持原状 , 约 2 分钟后被恢复。migrate:触发关机 / 重启时尝试迁走全部运行中服务 —— 节点上仍有运行中服务时 poweroff 不会继续。节点回来后 , 若期间未发生其他迁移 / 重定位 / 恢复 , 服务会迁回原节点。
http_proxy: http://...- 下载使用的外部 HTTP 代理 , 例如
http://username:password@host:port/。 keyboard: <布局>- VNC 服务器默认键盘布局。可选值 :
da/de/de-ch/en-gb/en-us/es/fi/fr/fr-be/fr-ca/fr-ch/hu/is/it/ja/lt/mk/nl/no/pl/pt/pt-br/sl/sv/tr。 language: <语言>- GUI 默认语言。可选值 :
ar/ca/da/de/en/es/eu/fa/fr/he/hr/it/ja/ka/kr/nb/nl/nn/pl/pt_BR/ru/sl/sv/tr/ukr/zh_CN/zh_TW。 mac_prefix: <string>(默认BC:24:11)- 自动生成虚拟客户机 MAC 地址的前缀。默认
BC:24:11是 IEEE 分配给 Proxmox Server Solutions GmbH 的「MA-L」OUI(组织唯一标识)。该前缀允许在本地网络(即不直接面向公网的环境 , 例如 LAN、 NAT / 伪装网络)中使用。多个集群(部分)共享客户机网络时 , 强烈建议 扩展默认前缀或自定义合法前缀以减少 MAC 冲突 —— 例如分别使用
BC:24:11:0、BC:24:11:1等。也可改用 VLAN 在网络层逻辑隔离。 对于面向公网的客户机 , 建议从 IEEE 注册自有 OUI, 或与你 / 你的托管商的网络管理员协调。 max_workers: <1 - N>- 每节点上诸如 stop all VMs 或 ha-manager 任务等动作可启动的最大 worker 数。
migration: [type=]<secure|insecure> [,network=<CIDR>]- 集群级迁移设置:
type(默认secure):默认使用 SSH 隧道加密迁移流量。在完全可信的私网中可设insecure以提速。network = <CIDR>:用于迁移的子网 CIDR —— 当复制作业未单独设置replication.network时也作其回退。
migration_unsecure: <boolean>- 已弃用 —— 改用
migration属性。原作用 :把迁移从默认的 SSH 隧道改为不加密。 next-id: [lower=<integer>] [,upper=<integer>]- VMID 自动选择的取值范围:
lower(默认 100):闭区间下界。upper(默认 1 000 000):开区间上界。
notify: ...- 集群级通知设置。子键:
package-updates = <auto | always | never>(默认auto)—— 已弃用, 改用数据中心通知设置。原义 :每日更新作业发出通知的频率 ——auto(有有效订阅的系统每日发)、always(每次有新更新都发)、never(从不发)。fencing/replication/target-fencing/target-package-updates/target-replication:均已弃用 —— 改用数据中心通知系统(见 第 17 章)。
registered-tags: <tag>[;<tag>...]- 列出的标签需要在
/上有Sys.Modify权限才能设置 / 删除。若同时也在user-tag-access里 , 同样需要Sys.Modify。 replication: [type=]<secure|insecure> [,network=<CIDR>]- 集群级复制设置:
type(默认secure):复制流量默认 SSH 隧道加密;可信私网可设insecure。network = <CIDR>:复制使用的子网。
tag-style: ...- 标签的视觉样式 , 子键:
case-sensitive = <boolean>(默认 0):更新时去重是否区分大小写。color-map = <tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]:手动颜色映射(分号分隔)。ordering = <alphabetical | config>(默认alphabetical):Web 界面与 API 更新中标签的排序。shape = <circle | dense | full | none>(默认circle):Web UI 树中的标签形状 ——full完整显示标签;circle仅画含背景色的圆;dense画一个小矩形(标签很多时合适);none不显示。
u2f: [appid=<APPID>] [,origin=<URL>]- U2F 双因素认证。子键:
appid = <APPID>:U2F AppId URL 覆盖 —— 默认与 origin 相同。origin = <URL>:U2F Origin 覆盖 —— 单节点 + 单 URL 部署常用。
user-tag-access: [user-allow=<enum>] [,user-allow-list=<tag>[;...]]- 用户对资源(如客户机)可设标签的特权选项 —— 在
/上有Sys.Modify的用户始终不受限。子键:user-allow = <none | list | existing | free>(默认free):none:不可使用任何标签。list:仅可使用user-allow-list中的标签。existing:同list, 同时该资源已有的标签也可继续使用。free:无限制。
user-allow-list = <tag>[;<tag>...]:当user-allow为list或existing时 , 用户可设 / 删的标签列表(分号分隔)。
webauthn: [allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]- WebAuthn 配置。子键:
allow-subdomains = <boolean>(默认 1):允许 origin 是子域 , 而非完全相同 URL。id = <DOMAINNAME>:Relying Party ID —— 必须是裸域名(不含协议、端口、路径)。 修改会让已有 WebAuthn 凭据失效。origin = <URL>:站点 origin —— 必须是https://URL(或http://localhost), 应与用户在浏览器中访问 Web UI 的地址一致。 修改可能让已有凭据失效。rp = <RELYING_PARTY>:Relying Party 名 —— 任意文本标识。 修改可能让已有凭据失效。
当前 PVE 版本最新的字段与默认值请用 pvesh usage cluster/options -v 查看 , 或参考 API Viewer 中 PUT /cluster/options。