CentOS VirtualBox 磁盘性能优化指南
一 存储控制器与磁盘格式选择
- 存储控制器优先级:在有 NVMe 驱动支持的情况下,优先使用 NVMe 控制器(I/O 延迟更低、队列更深);否则选择 SATA 控制器。避免使用过时的 IDE。在 VirtualBox 7.x 中,NVMe 支持更完善,适合高并发与低延迟场景。
- 磁盘格式:默认使用 VDI;若需与他平台互通可选 VMDK。不建议频繁在 VDI/VMDK 间转换,转换本身会带来额外开销。
- 预分配与动态分配:追求稳态 IOPS 与可预期延迟时选 固定大小(Preallocated);重视宿主机空间利用率时选 动态分配(Dynamically allocated)。动态盘更省空间,但可能产生碎片;固定盘碎片少、吞吐更稳定。
- 宿主机介质:将虚拟机磁盘文件放在 SSD/NVMe 上,可显著缩短启动与数据库类负载的响应时间。
二 宿主机与 VirtualBox 侧的 I/O 策略
- 更新版本:保持 VirtualBox 与 Extension Pack 为最新稳定版(如 7.1.x 系列),可获得更好的 Linux 内核适配与存储栈优化。
- 主机 I/O 缓存:在虚拟机设置的 存储 → SATA/NVMe 控制器 中,启用 使用主机 I/O 缓存(Use Host I/O Cache)。对写回缓存场景可明显提升元数据与随机写性能;注意这会将部分写风险转移至宿主机缓存,断电可能导致数据丢失,生产环境请结合 UPS 与一致性需求谨慎启用。
- 避免快照链过长:快照会引入额外的间接层与合并开销,影响顺序与随机 I/O。定期 提交/删除无用快照,保持快照链短小。
三 CentOS 7/8/9 客机内的文件系统与 I/O 调优
- 安装增强工具:在客机中安装 VirtualBox Guest Additions,可获得更好的存储与图形栈集成(如更优的 I/O 路径与分辨率自适应),有助于减少额外开销。
- 文件系统挂载选项:对 ext4 使用 noatime,nodiratime,barrier=1(或默认启用 barrier 的挂载方式)以平衡性能与一致性;数据库等强一致负载建议保持 barrier 开启。示例:
- /etc/fstab 条目:
- /dev/mapper/VolGroup-lv_root / ext4 defaults,noatime,nodiratime 0 1
- I/O 调度器:
- SSD/NVMe:优先 none/mq-deadline(Linux 5.x+ 的 blk-mq 调度器),减少调度开销。
- 机械盘:使用 mq-deadline 或 cfq(视负载而定)。
- 查看/临时切换示例:
- cat /sys/block/sda/queue/scheduler
- echo mq-deadline > /sys/block/sda/queue/scheduler
- 透明大页(THP):数据库/高并发负载建议关闭或设置为 madvise,减少抖动:
- echo never > /sys/kernel/mm/transparent_hugepage/enabled
- echo never > /sys/kernel/mm/transparent_hugepage/defrag
- 维护与空间回收:定期清理 YUM/DNF 缓存、日志与临时文件,避免日志膨胀导致文件系统频繁扩展;对大文件删除后,结合下节步骤回收镜像空间。
四 扩容与空间回收的正确流程
- 扩容虚拟磁盘容量(宿主机执行,虚拟机需关机):
- VBoxManage modifyhd “/path/to/disk.vdi” --resize
- 示例:将磁盘扩至 50GB → --resize 51200
- 扩展客机分区与文件系统(示例为 ext4 + LVM):
- 识别新增空间:fdisk -l
- 在 LVM 场景下扩展物理卷/卷组/逻辑卷并调整文件系统:
- pvcreate /dev/sda3
- vgextend VolGroup /dev/sda3
- lvextend -l +100%FREE /dev/VolGroup/lv_root
- resize2fs /dev/VolGroup/lv_root
- 回收虚拟磁盘物理占用(先清理客机空闲空间,再压缩镜像):
- 客机内用零填充空闲空间(会临时占用空间,谨慎在接近满盘时执行):
- dd if=/dev/zero of=/free bs=1M status=progress || rm -f /free
- 关闭虚拟机,宿主机执行压缩:
- VBoxManage modifyhd “/path/to/disk.vdi” --compact
- 注意:若存在 快照,压缩仅对当前基础盘有效,需先合并/删除快照后再压缩,效果更佳。