Proxmox VE 9.2 深度教学|安装篇
本文是 Proxmox VE 9.2 深度教学系列的第一篇。系列共三篇:安装篇讲从裸机到首次登录的全部决策;配置篇讲存储、网络、第一台虚拟机与备份的开局配置;高级篇讲多节点集群与进阶功能。三篇用同一台 Dell R740 贯穿,后一篇在前一篇的结果上继续,建议按顺序阅读。
Proxmox VE(以下简称 PVE)的安装向导有配置项的共六屏,从头点到尾大约十分钟。
但这六屏里的配置项分量并不相同。绝大多数参数装完以后随时能在 Web 界面改回来,只有三处装完后不能改或改动代价极高:目标磁盘与文件系统、主机名(FQDN)、管理网卡的选择。安装时真正需要停下来想的就是这三处。
另外还有一个决策在向导开始之前就已经做完了,而且大多数教程不会提:盘以什么方式交给操作系统,是 RAID 卷还是直通盘。这一项决定了后面能不能用 ZFS。
本文以 Dell R740 为例,是因为它是市面上保有量最大的两路机架式服务器之一,但文中涉及的都是通用知识点:RAID 卡的 Non-RAID 直通与 HBA 模式对应其他品牌的 JBOD 或 IT 模式,iDRAC 对应 HPE 的 iLO、浪潮和华为的 BMC,网卡的 PCI 地址与面板编号对应关系也需要读者按自己的机型重新核对。
环境
- 服务器:Dell PowerEdge R740,BIOS 2.15.1,带外管理 iDRAC9
- RAID 控制器:PERC H330 Mini(嵌入式),芯片 LSI SAS3008
- 系统盘:Micron MTFDDAK480TDS(5x00 系列),SATA SSD,447.13 GiB,固件 D3DJ004
- 数据盘:SK hynix HFS1T9G32FEH-BA10A × 4,SATA SSD,1.92 TB,固件 DD01,本篇不使用,留给下篇
- 网卡:板载 2 × 1GbE(Broadcom BCM5720)+ 2 × 10GbE(BCM57416),另有两张 BCM57416 双口万兆扩展卡,合计 8 口
- 安装介质:proxmox-ve_9.2-1.iso
一、向导之前的两个前置决策
(一)盘怎么交给 ZFS:RAID 卷、Non-RAID 直通、HBA 模式
PVE 的存储后端里 ZFS 是最常用的一种,它有一个硬性前提:要直接看到物理盘。ZFS 的校验、自修复和错误定位都建立在”我写下去的块就是盘上的块,出问题能知道是哪块盘”这个假设上。PVE 创建 ZFS 池的界面上有一条固定显示的提示:”ZFS is not compatible with disks backed by a hardware RAID controller”。这行字不管选什么盘都在,它不是报错,而是提醒。
这条提示到底反对什么,很多人理解成”服务器有 RAID 卡就不能用 ZFS”,这不准确。把官方文档的原意和厂商的说法放在一起看:
OpenZFS 官方硬件指南反对的是 RAID 卷
OpenZFS 硬件指南的原则性表述是硬件 RAID 控制器不应与 ZFS 搭配使用,但它给出的全部理由都指向同一种用法:先用控制器把盘做成 RAID 卷(虚拟磁盘),再把卷交给 ZFS。具体理由包括:
- RAID 卷让 ZFS 无法在校验失败时做自修复,因为 ZFS 看到的是一块”盘”,不知道错在哪个物理盘上。
- RAID 1 卷不一定正确传递扇区大小,RAID 5/6 卷无法正确传递,导致读改写和写洞问题。
- 控制器写缓存是额外的故障点,电池失效或掉电超时会丢数据。
- 控制器在重建时遇到静默损坏,行为未定义,有 RAID 5/6 阵列在重建中整体丢失的案例。
- 控制器故障时可能要求同型号替换,ZFS 直管盘则不受控制器型号约束。
- 多个 RAID 卷中一个故障后,其余卷暴露给操作系统的标识符可能错位。
指南最后专门指出,用”单盘 RAID 0”冒充 HBA 也不推荐,因为它仍然是 RAID 卷,上面的问题照样存在。
Proxmox 自己的文档表述更窄:不要在带有自身缓存管理的硬件控制器上运行 ZFS,ZFS 需要直接与磁盘通信。
把这两条归结为两个条件:盘不能是 RAID 卷;I/O 路径上不能有控制器的写缓存。满足这两条,RAID 卡在不在机器里不是问题。
Dell 对 Non-RAID 和 HBA 模式的说法
PERC 9 代(H330、H730、H730P)有两种控制器模式。
RAID 模式下可以建 RAID 卷,也可以把单盘设为 Non-RAID 直通;
HBA 模式下所有盘直通,不能建卷。
Dell 社区工程师对两者的答复是:HBA 模式下的盘和 RAID 模式下的 Non-RAID 盘,操作系统获得的访问方式相同,硬件与操作系统之间传递的信息一样,区别只在存储如何呈现给操作系统以及是否由控制器提供冗余。这是 Dell 人员在官方社区的回复,不是用户手册条文,但与本例的实测一致,见下。
另外要知道 Non-RAID 和”单盘 RAID 0”不是一回事。
Non-RAID 盘上没有控制器写入的 RAID 元数据,操作系统看到的是盘自己报的型号、序列号和几何信息;
单盘 RAID 0 是一个真正的卷,有元数据,走通道 2。
OpenZFS 指南反对的是后者。
怎么判断自己的盘是哪种
iDRAC9 Web 界面:存储 → 概览 → 控制器,展开控制器行,看三处:
- 属性里的”控制器模式”(RAID 或 HBA);
- “缓存内存大小”;
- 物理磁盘页里每块盘的状态,显示为 Online(属于某个卷)、Ready(未分配)或 Non-RAID。



装好系统以后在宿主机上判断更直接:
1 | lspci -k | grep -A3 -i raid |
by-path 里 SCSI 地址的第二段有含义:megaraid_sas 驱动把控制器创建的 RAID 卷放在通道 2,显示为 0:2:N:0;直通给操作系统的物理盘放在通道 0,显示为 0:0:N:0。通道 2 的设备就是 OpenZFS 指南反对的对象。
再看三项能否直读:
1 | lsblk -d -o NAME,VENDOR,MODEL,SIZE # MODEL 应为盘自报型号,不是控制器的卷名 |
本例的情况
- 控制器:PERC H330 Mini,iDRAC 显示控制器模式为 RAID,缓存内存大小 0 MB。H330 是 PERC 9 代入门型号,没有板载缓存,也没有电池或闪存保护。
- 五块盘:by-path 全部在通道 0,即全部为 Non-RAID 直通,控制器上没有任何 RAID 卷。
- 直读:
smartctl -i读到 Micron 和 SK hynix 的型号、序列号、固件版本;lsblk -D显示 DISC-GRAN 4K、DISC-MAX 128M,TRIM 命令透传到盘。
对照前面两个条件:盘不是 RAID 卷,路径上没有写缓存。
本例在 RAID 模式下以 Non-RAID 直通建 ZFS 池(建池过程见下篇,此处只引用验证结果),建池、S.M.A.R.T.、TRIM 均正常,对 ZFS 而言与 HBA 模式等价,不需要为此切换控制器模式。
三种做法怎么选
- 硬盘做成 RAID 卷再交给 ZFS:不可以。这是官方文档反对的用法,包括单盘 RAID 0。
- RAID 模式下逐盘设为 Non-RAID:可以。本例即此。注意两点,一是不要在同一控制器上再建 RAID 卷,避免卷与直通盘混用导致标识符错位;二是这样做的前提是控制器没有写缓存,或者写缓存对 Non-RAID 盘不生效。H330 无缓存,直接满足。
- 控制器整体切到 HBA 模式,或直接采购纯 HBA 卡(如 HBA330):可以,形态最简洁,新采购时优先。已有环境如果 Non-RAID 直通已经在跑,切换需要清除控制器配置并重启,收益不足以抵消变更风险,不建议专门为此切换。
(二)引导模式:UEFI 还是 Legacy
PVE 两种引导模式都支持,安装器不做推荐,但装完后切换需要手工修复引导项,所以装前定好。
建议 UEFI,理由只有两条可核实的:一是后续要开 Secure Boot 必须 UEFI;二是 R740 出厂默认 UEFI,保持默认少一处变更。ext4/xfs 系统盘在两种模式下都用 GRUB,对日常运维没有差别;ZFS 系统盘在 UEFI 下默认用 systemd-boot(开启 Secure Boot 时用 GRUB),Legacy 下用 GRUB。
装好后可以在宿主机上确认:
1 | ls /sys/firmware/efi # 目录存在即为 UEFI 引导 |
(三)挂载安装介质
两个决策做完,正式开始。借助 iDRAC 的 HTML5 虚拟控制台,把 proxmox-ve_9.2-1.iso 通过”虚拟介质 → 映射 CD/DVD”挂为虚拟光驱,服务器从该虚拟光驱引导,不需要物理 U 盘。开机时按 F11 进入一次性引导菜单,选择 Virtual CD。

二、第一屏:安装器形态(安装后无此项)

引导菜单四个选项只决定安装器怎么跑,不影响装出来的系统。
- **Install Proxmox VE (Graphical)**:图形安装器,鼠标操作。本例用此项。
- **Install Proxmox VE (Terminal UI)**:文本安装器,字段与图形版完全相同,用于图形显示异常(如 iDRAC 控制台分辨率不兼容)的场景。
- **Install Proxmox VE (Terminal UI, Serial Console)**:文本安装器,输出到串口。适用于只有串口带外的场景,部分国产服务器的 BMC 只提供 SOL(Serial over LAN)时用得上。
- Advanced Options:调试模式、内存测试等。
另有一项值得知道:PVE 自 8.2 起支持自动安装。用 proxmox-auto-install-assistant prepare-iso 把一份 TOML 格式的应答文件(answer file)注入 ISO,引导菜单会多出 Automated Installation 项并在 10 秒后自动选中,磁盘和网卡可以按序列号、MAC 等条件过滤匹配。多节点集成项目需要标准化交付时,这是正路,本文不展开。
选择后进入 EULA 页,点 I agree 继续。
三、第二屏:目标磁盘与文件系统(不可逆决策一)

这一屏是三个不可逆决策里最重的一个。安装器会清除目标磁盘上所有分区和数据,装完以后文件系统类型和分区布局都不能再改。
(一)Target Harddisk
本例为 /dev/sda(447.13 GiB,Micron MTFDDAK480TDS)。
多盘环境下务必核对容量和型号,安装器列出的顺序不一定和机箱盘位顺序一致。
本例四块 1.92 TB 数据盘也在列表里,选错就是清掉数据盘。
(二)Filesystem
点 Options 打开。四个选项:
- ext4(默认):基于 LVM,成熟、开销最低,单盘场景的常规选择。本例用此项。
- xfs:同样基于 LVM,大文件顺序写性能略好,其余与 ext4 相当。
- zfs:支持 RAID、快照、数据校验,可以用两块盘做 mirror 系统盘获得冗余,代价是内存占用较高,且要求盘以直通方式交给系统(见第一节)。
- btrfs:技术预览状态,生产环境不建议。
(三)ext4/xfs 下的分区参数
- hdsize:安装器使用的磁盘总容量,默认整盘。如果要在系统盘上给其他用途留裸空间,在这里减。
- swapsize:交换分区大小,默认取内存大小,并限制在 4 GiB 到 8 GiB 之间。
- maxroot:root 逻辑卷(pve-root)的上限,官方文档写默认不超过 hdsize/4,本例实测约 96 GiB,低于 447.13/4 ≈ 111.8 GiB,说明安装器实际取值比 hdsize/4 更保守。
- maxvz:数据逻辑卷(pve/data,即 local-lvm)的上限,默认用掉剩余空间。
- minfree:卷组中保留的空闲空间,磁盘大于 128 GiB 时默认 16 GiB,用于 LVM 快照。
(四)装完以后这块盘长什么样
理解默认布局,比记住参数名更重要。ext4 方案装完后,/dev/sda 分成三个分区:
1 | sda1 1 MiB BIOS boot 分区,无文件系统,Legacy 引导时 GRUB 用 |
卷组 pve 里有三个顶层逻辑卷:
swap:交换空间。
root:ext4,挂载为 /,PVE 注册为名为 local 的目录类存储,默认存 ISO 镜像、容器模板、备份文件。
data:LVM-thin 精简池,由 data_tmeta 和 data_tdata 组成,注册为 local-lvm 的 LVM-thin 类存储
虚拟机磁盘在池里以 vm-
-disk- 精简卷的形式按需分配,lsblk 里能直接看到。
本例 root 逻辑卷约 96 GiB,扣掉 ext4 自身元数据后,Web 界面上 local 存储显示的总容量为 100.86 GB(可用 lvs pve 核对逻辑卷大小)。这个数字决定了你能往 local 里放多少 ISO 和备份。
这里有一个坑点
实际运行两个多月后,本例 local 的使用率到了 93.63%(100.86 GB 中已用 94.44 GB),原因是 ISO 镜像和备份都堆在里面。root 卷满了以后 apt 更新、备份任务、日志写入会连带失败。

正确的处理不是在这一屏把 maxroot 调大,而是装完以后给 ISO 和备份另配存储(ZFS 数据集或 NFS),让 local 只承担系统。这一点下篇展开,这里先记住:local 不是拿来放大文件的。
(五)单盘系统盘的取舍
本例系统盘是一块直通的 SATA SSD,没有任何硬件冗余。这块盘一坏,PVE 宿主机就停,上面的虚拟机磁盘在 local-lvm 里的部分一并丢失(数据盘 ZFS 池上的不受影响)。
替代方案是用两块盘、文件系统选 zfs、RAID 级别选 RAID1(mirror)做系统盘,单盘故障不停机。代价是多占一个盘位、多一块盘的采购,以及 ZFS ARC 的内存占用(安装器会写入上限,默认为物理内存的 10%,最高 16 GiB)。
生产交付建议 mirror;实验环境或者宿主机层面另有备份恢复手段时,单盘可以接受。
四、第三、四屏:地区时区、管理员密码与邮箱(可逆参数)

- Country:本例 China,只用于缩小时区候选范围。
- Time zone:本例 Asia/Shanghai。影响日志时间戳、cron 执行时间和证书有效期判断。多节点组集群时,各节点时间必须同步(NTP),时区建议统一,否则证书校验和跨节点日志对齐会出问题。
- Keyboard Layout:本例 U.S. English,只影响本地控制台输入。
以上三项装完后可通过 Web 界面或 timedatectl 修改。

- Password / Confirm:root 账户密码,同时用于 Web 界面(root@pam)和 SSH 登录。等保三级对口令有长度、复杂度、定期更换和登录失败处理的要求,这里设的密码只是起点,后续还要配 Web 界面的双因素认证和 SSH 的策略,本文不展开。
- Email:接收系统重要告警的邮箱,包括备份失败、ZFS 存储异常、HA 切换、证书到期等。注意:填了邮箱不等于能收到邮件,PVE 默认用本机 postfix 直接投递,在内网环境里多半发不出去,需要在装完后配置邮件中继(relayhost)或使用 PVE 的通知系统对接其他渠道。
两项装完后均可在 Web 界面修改。
五、第五屏:管理网络配置(不可逆决策二、三)

这一屏有六个字段,其中 Hostname 和 Management Interface 两项装完后改动代价极高:前者要迁移节点目录、重新生成证书,后者改动过程中远程会失联。
(一)Hostname (FQDN):不可逆决策二
必须填完整域名,包含主机名和域名两部分,本例 pve1.cjcc.com。
为什么难改:这个值同时是三样东西。
第一,节点名,PVE 集群文件系统里的节点目录就是 /etc/pve/nodes/pve1/,所有虚拟机配置都在下面;
第二,自签名证书的主题;
第三,加入集群后的成员名,corosync 配置里写的就是它。装完以后改主机名需要手工迁移节点目录、重新生成证书,官方文档也不建议在有虚拟机的节点上做。
建议在装机前就定好命名规范。一个可用的做法是”角色 + 序号 + 内网域名”,比如 pve1.cjcc.com、pve2.cjcc.com,域名部分用内网可解析的域,方便后续做 DNS 和证书。
(二)Management Interface:不可逆决策三
选哪块物理网卡承担管理流量。装完后它会成为默认网桥 vmbr0 的桥接端口,Web 界面和 SSH 都从这里进。
这一项本身在 /etc/network/interfaces 里能改,但改的过程中管理口一断,远程就失联,只能去机房或者上 iDRAC 控制台。所以实际操作中它和不可逆没有区别,装之前就要定好。
选择原则:
- 用一块板载千兆口做管理,万兆口全部留给后面的业务聚合链路(bond)。管理流量不需要万兆,把万兆口混进管理网桥反而浪费。
- 安装时只配管理口,不要在安装器里碰其他网卡。注:bond 和 VLAN 网桥装完在 Web 界面配,这样出错还能退回来。
本例选 nic1,即 MAC bc:97:e1:b2:25:29、驱动 tg3 的那块千兆口。
PVE 的网卡名和 Dell 的网卡编号不是一回事
安装器列出的网卡名是 nic0 到 nic7,这是 PVE 9 在勾选”Pin network interface names”后生成的固定名称。本例观察到编号顺序与 PCI 地址升序一致,但它和服务器面板上印的 NIC1、NIC2 没有对应关系。
这个”Pin network interface names”选项解决的是”网卡名随硬件/内核变化而漂移、导致 bridge 失效断网”的问题;代价是换网卡时要多维护一个 MAC 到名字的映射
本例八个口的实际对应如下:
| PVE 名称 | PCI 地址 | 位置 | 速率 | 用途 |
|---|---|---|---|---|
| nic0 | 01:00.0 | rNDC 板载 | 1G | 空闲 |
| nic1 | 01:00.1 | rNDC 板载 | 1G | 管理,vmbr0 |
| nic2 | 17:00.0 | rNDC 板载 | 10G | 空闲 |
| nic3 | 17:00.1 | rNDC 板载 | 10G | 空闲 |
| nic4 | 65:00.0 | SLOT 1 扩展卡 | 10G | 业务 bond0(下篇) |
| nic5 | 65:00.1 | SLOT 1 扩展卡 | 10G | 空闲 |
| nic6 | b3:00.0 | SLOT 2 扩展卡 | 10G | 业务 bond0(下篇) |
| nic7 | b3:00.1 | SLOT 2 扩展卡 | 10G | 空闲 |
面板上写的 NIC1 在 PVE 里是 nic2,PVE 的 nic1 是面板上的 NIC4。接线前把这张表对好,可以少跑一趟机房。表中 PCI 地址来自 lspci,可以用下面的命令自己生成:
1 | for n in /sys/class/net/nic*; do |
(三)其余四项(可逆)
- **IP Address (CIDR)**:管理口静态地址,本例
192.168.100.168/24。 - Gateway:本例
192.168.100.254。 - DNS Server:本例
192.168.100.254。 - Pin network interface names:建议勾选。勾选后网卡名写入 systemd 的
.link文件固定下来,内核升级或 PCIe 设备增减导致的enpXsY命名漂移就不会影响到已有配置。不勾的后果是某次升级后管理口改名、vmbr0找不到桥接端口、远程失联。
以上四项装完后可通过 Web 界面或 /etc/network/interfaces 修改。
六、第六屏:Summary 确认

把前面所有配置列成一张表供最后核对。点 Install 后安装器开始分区写盘,中途不可撤销。
核对重点就两行:Filesystem(本例 ext4)和 **Disk(s)**(本例 /dev/sda)。这两项装完不能改,其余各项(时区、邮箱、IP、DNS、网关)都能改,Hostname 能改但代价高。
“Automatically reboot after successful installation” 勾上,装完自动重启。重启前记得在 iDRAC 里断开虚拟介质,否则可能再次从光驱引导。
七、装完以后:首次登录与安装后验收

重启后浏览器访问 https://<管理IP>:8006。自签名证书会触发浏览器”不安全”提示,属正常现象。
- 用户名:root
- 密码:第四屏设置的 root 密码
- **领域 (Realm)**:Linux PAM standard authentication,即用宿主机的 Linux 账户认证。另一项 Proxmox VE authentication server 用于 PVE 自身管理的用户,后续建普通管理员账户时会用到。
- 语言:可选中文(简体)。
登录后弹出”无有效订阅”提示,关闭即可,不影响使用。
(一)验收清单
装完不要急着建虚拟机,先在 Shell 里跑四条命令确认状态,输出可以直接进项目交付文档:
1 | pveversion -v | head -3 # 版本,应为 pve-manager 9.2.x,内核 6.x |
预期:pvesm status 显示 local(dir)和 local-lvm(lvmthin)两行,状态 active;ip -br addr 里 vmbr0 带 192.168.100.168/24,nic1 无 IP。
(二)软件源
PVE 9 基于 Debian 13(trixie),APT 软件源改用 deb822 格式的 .sources 文件,安装后默认启用的是需要订阅的企业源:
1 | /etc/apt/sources.list.d/pve-enterprise.sources |
没有订阅时 apt update 会对这两个源报 401,属预期现象。要切换到免费的 no-subscription 源,做两件事:
第一,停用企业源,在 pve-enterprise.sources 和 ceph.sources 文件条目内各加一行 Enabled: no。
第二,新建 /etc/apt/sources.list.d/proxmox.sources:
1 | Types: deb |
然后 apt update。
两个源的差别:企业源的包经过额外测试后发布,适合生产;no-subscription 源的包更新更早,官方定位为测试和非生产使用。集成项目交付时按合同决定是否采购订阅。
(三)去除登录后的”无有效订阅”弹窗
没有订阅的节点,每次登录 Web 界面都会弹出”No valid subscription”(无有效订阅)提示。该提示由前端 js 文件生成,可按下面步骤去除。
先备份原文件,再编辑:
1 | cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js{,.$(date +%Y%m%d).bak} |
在文件中搜索关键词 res.data.status,定位到如图所示的那一行,按图修改后保存退出。

如果修改后没有生效,可以重启 pveproxy 服务:
1 | systemctl restart pveproxy.service |
修改 js 文件后,如果浏览器仍然弹出”无有效订阅”提示,大概率是浏览器缓存所致,关闭浏览器重新打开,或清除缓存后再访问即可。
八、安装决策速查表
| 向导屏 | 配置项 | 安装后能否修改 | 本例值 | 建议与依据 |
|---|---|---|---|---|
| 向导前 | 盘的呈现方式 | 改动需清控制器配置 | RAID 模式,逐盘 Non-RAID 直通 | 不做 RAID 卷交给 ZFS;Non-RAID 直通与 HBA 模式等价;无缓存卡无需切换 |
| 向导前 | 引导模式 | 需手工修复引导项 | UEFI | UEFI;Secure Boot 需 UEFI,R740 出厂默认 UEFI |
| 第一屏 | 安装器形态 | 不适用 | Graphical | 图形显示异常用 Terminal UI,纯串口用 Serial Console |
| 第二屏 | 目标磁盘 | 不能 | /dev/sda | 多盘环境核对型号与容量 |
| 第二屏 | 文件系统 | 不能 | ext4 | 单盘选 ext4;需冗余则双盘 zfs mirror |
| 第二屏 | 分区参数 | 需手工调 LVM,不建议 | 默认 | 不要为了多放 ISO 调大 maxroot,ISO 和备份另配存储 |
| 第三屏 | 时区 / 键盘 | 能 | Asia/Shanghai, U.S. English | 集群各节点时间同步,时区统一 |
| 第四屏 | root 密码 | 能 | 已设置 | 等保口令要求是起点,后续配双因素 |
| 第四屏 | 告警邮箱 | 能 | 已设置 | 需另配邮件中继才能真正收到 |
| 第五屏 | Hostname (FQDN) | 代价极高 | pve1.cjcc.com | 装前定命名规范,含内网可解析域名 |
| 第五屏 | 管理网卡 | 改动会失联 | nic1(1G) | 千兆板载口做管理,万兆留给 bond |
| 第五屏 | 固定网卡命名 | 能 | 勾选 | 防止升级后网卡改名导致失联 |
| 第五屏 | IP / 网关 / DNS | 能 | 192.168.100.168/24 等 | 按规划填写 |
| 登录后 | 软件源 | 能 | 企业源(默认) | PVE 9 用 .sources 文件,老教程改 .list 文件的做法不适用 |
| 登录后 | 订阅弹窗 | 能 | 已去除 | 改前端 js,proxmox-widget-toolkit 升级后需重做 |
下篇预告
装完的 PVE 只有一个管理网桥、一个系统盘、两个本地存储,还不能承载业务。下篇讲开局配置里的五个决策:bond 模式怎么选并与华为交换机侧 Eth-Trunk 对应、VLAN 感知网桥的取舍、四块 1.92 TB SSD 做 ZFS 该选哪种 RAID 级别(含一次 RAIDZ3 建池失败的复盘)、local 满了以后怎么办、虚拟机几个默认参数背后的取舍。