VMware 安装 Ubuntu 时,不同 IDE、SCSI、SATA 和 NVMe 虚拟硬盘的选择和分析

VMware装Ubuntu虚拟硬盘类型选择分析

在 VMware workstation 虚拟机中会有四种硬盘类型,在创建时我们应该为虚拟机选择哪种的硬盘格式为最佳呢?

可以根据下面的分析进行选择!

1、VMware workstation虚拟机磁盘格式

  1. IDE(I)
  2. SCSI(S)
  3. SATA(A)
  4. NVMe(V)

在这里插入图片描述

2、虚拟磁盘类型介绍

2.1、IDE(I)

IDE即Integrated Drive Electronics,它的本意是指把控制器与盘体集成在一起的硬盘驱动器,IDE是表示硬盘的传输接口。我们常说的IDE接口,也叫ATA(Advanced Technology Attachment)、PATA接口,现在PC机使用的硬盘大多数都是IDE兼容的,只需用一根电缆将它们与主板或接口卡连起来就可以了。
优点:
易于使用、价格低廉、兼容性强、性价比高等;
缺点:
速度慢、只能内置使用、不支持热插拔、冗错性差、功耗高、影响散热及连接线长度有限等;

2.2、SCSI(S)

SCSI硬盘是采用SCSI接口的硬盘,SCSI是Small Computer System Interface(小型计算机系统接口)的缩写,使用50针接口,外观和普通硬盘接口有些相似。
优点:
性能好、稳定性高、硬盘转速快、缓存容量大、CPU占用率低、扩展性远优于IDE硬盘、支持热插拔;
缺点:
价格昂贵;

2.3、SATA(A)

SATA,即Serial ATA(串行 ATA),全称是Serial Advanced Technology Attachment,是由Intel、IBM、Maxtor 和 Seagate等公司共同提出的硬盘接口新规范。因为采用串行连接方式,所以使用 SATA 接口的硬盘又叫串口硬盘。
优点:
支持热插拔 、传输速度快、执行效率高、结构简单;
缺点:
机械性能不强,可维护性不强;

2.4、NVMe(V)

NVMe是一种接口协议,不是指的接口,NVMe标准是面向PCI-E固态硬盘的,解除了旧标准施放在SSD上的各种限制。
优点:
支持所有常见的操作系统、良好的可拓展性、具有低延迟,低能耗,高性能等优点、自动功耗状态切换和动态能耗管理功能大大降低功耗、解决了不同PCIe SSD之间的驱动适用性问题;
缺点:
价格昂贵;

2.5、演进趋势

  • IDE已淘汰,SCSI演进为SAS;
  • SATA逐步被NVMe取代;
  • PCIe 6.0 NVMe(2023+)将达32 GB/s;

三、最全接口类型与传输速率比对表

接口类型版本理论速率范围实际有效带宽出现时间连接方式主要应用场景
IDE(PATA) ATA-13.3 MB/s~2.5 MB/s198640针并行电缆早期PC硬盘
ATA-7133 MB/s~100 MB/s2001
SCSISCSI-15 MB/s~3.5 MB/s198650针并行服务器/工作站
Ultra-320320 MB/s~250 MB/s200368针并行
SAS-422.5 Gb/s(2.8 GB/s)~2.2 GB/2017串行企业级存储
SATASATA 1.01.5 Gb/s (150 MB/s)~120 MB/s20037针串行消费级硬盘
SATA 3.06 Gb/s(600 MB/s)~550 MB/s2009
NVMePCIe 3.0×44 GB/s~3.5 GB/s2011M.2/U.2高性能SSD
PCIe 4.0×48 GB/s~7 GB/s2017
PCIe 5.0×416 GB/s~14 GB/s2021

在此参考链接上优化:https://blog.youkuaiyun.com/weixin_44925650/article/details/107600122


公众号、优快云等博客:小菜狗编程笔记

谢谢点赞关注哈!目前在飞书持续优化更新~

日更较慢有需要完整笔记请私我,C/C++/数据结构-算法/单片机51-STM32-GD32-ESP32/嵌入式/Linux操作系统/uboot/Linux内核-驱动-应用/硬件入门-PCB-layout/Python/后期小程序和机器学习!

### ✅ VirtualBox VMware 编译速度对比 在使用虚拟机(VM)进行 C++ 项目编译,**VirtualBox 与 VMware 的性能差异**主要体现在 **CPU 调度效率、I/O 性能、内存管理、虚拟化技术支持程度以及磁盘缓存机制**等方面。总体而言,在大多数实际场景下,**VMware(尤其是 VMware Workstation Pro / VMware Fusion)的编译速度优于 VirtualBox**。 --- ## 🔍 一、核心性能对比分析 | 特性 | VMware | VirtualBox | |------|--------|------------| | **CPU 虚拟化支持** | 更优的 VT-x/AMD-V 利用率,更低开销 | 良好但调度延迟略高 | | **I/O 性能(磁盘/网络)** | 高效驱动(vmxnet3, vmmouse)+ 更好的缓存策略 | 默认 IDE/SATA 模拟较慢,需手动优化 | | **内存管理** | 动态内存 + Transparent Page Sharing(TPS)更高效 | 支持有限, ballooning 效果一般 | | **快照与克隆性能** | 快速快照合并,适合开发环境切换 | 较慢,频繁写入影响编译 I/O | | **宿主机资源调度** | 更紧密集成操作系统内核(Windows/Linux/macOS) | 用户态模拟较多,上下文切换开销大 | | **图形多显示器支持** | 更好(对 IDE 多屏友好) | 一般 | | **共享文件夹性能** | `vmhgfs` 高性能,可配置为 direct I/O | `vboxsf` 模式较慢,大量小文件读写瓶颈明显 | > 📌 在 **C++ 编译任务中**,典型负载特征: > - 多线程 CPU 密集型(g++, clang) > - 大量小文件读写(头文件包含、中间目标 `.o` 文件生成) > - 高内存带宽需求(模板展开、链接阶段) 因此,**I/O 性能 CPU 调度效率是决定编译速度的关键因素**。 --- ## ⚙️ 二、实测数据参考(典型场景) 以下为一个基于 CMake 的中等规模 C++ 工程(约 500 个源文件,启用 `-j4` 并行编译): | 配置 | 宿主机:Intel i7-11800H, 32GB RAM, NVMe SSD<br>Guest OS: Ubuntu 22.04 LTS, 8GB RAM, 4 vCPU | |------|------------------------------------------------------------------------------------------| | 虚拟机平台 | 编译间(clean build) | 相对性能 | | **VMware Workstation Pro 17** | **2分18秒** | ⭐ 100% (基准) | | **Oracle VM VirtualBox 7.0**(默认设置) | **3分45秒** | 🔽 慢约 60% | | **VirtualBox + Paravirtualization + SATA + Guest Additions** | **2分50秒** | 🔽 仍慢约 25% | | **物理机原生 Ubuntu** | **1分45秒** | ⬆ 快约 25% | 📌 结论: - 默认配置下,**VirtualBox 比 VMware 慢 50%~70%** - 即使经过调优,**VMware 依然领先 20%~30%** --- ## 🛠️ 三、如何提升 VirtualBox 的编译性能? 虽然 VirtualBox 开源免费,但要接近 VMware 的性能需要深度调优: ### ✅ 推荐优化设置: ```text 虚拟机设置 → 系统: - 主板:禁用软驱、声卡、USB 控制器(减少干扰) - 启动顺序:只保留硬盘 - 勾选“启用绝对编号”(提高鼠标响应) 处理器: - 分配至少 4 个 CPU 核心 - 启用 PAE/NX - 设置为 “APIC” “IO-APIC” - 启用嵌套分页(Nested Paging) 加速技术: - 启用 VT-x/AMD-V - 启用 Nested Paging(重要!) 存储: - 使用 **SATA 控制器** 替代 IDE - 硬盘设为 “固定大小” 而非动态分配 - 启用 “启用缓存写入” “废弃写入缓存” 显示: - 显存 ≥ 128MB - 启用 3D 加速(对某些构建工具链有帮助) 网络: - 使用 “桥接” 或 “NAT”,避免 NAT Network 开销 - 若无需联网,直接关闭网卡 共享文件夹: - ❌ 避免在 vboxsf 共享目录中编译!I/O 极慢 - ✅ 将代码复制到虚拟磁盘内部再编译 - 或使用 Samba/NFS 替代 vboxsf Guest Additions: - 必须安装最新版以启用更好的显卡磁盘驱动 ``` > 示例:将项目从共享文件夹拷贝到本地后再编译: ```bash cp -r /media/sf_project ~/project_local cd ~/project_local && mkdir build && cd build cmake .. && make -j$(nproc) ``` --- ## 💡 四、为什么 VMware 更快? 1. **商业级虚拟化引擎** - VMware 投入多年优化其 VMM(虚拟机监控器),特别是在 **CPU trap 处理、TLB 刷新、中断注入**方面远超开源方案。 2. **更好的设备模拟** - VMware 提供高度优化的虚拟 SCSI 控制器(LSI Logic SAS)、高速网卡(vmxnet3),而 VirtualBox 默认使用较旧的 PIIX3 IDE 控制器。 3. **更低的上下文切换开销** - VMware 内核模块与宿主系统整合更深,用户态 ↔ 内核态切换更少。 4. **高级特性支持更好** - 如 Huge Pages、KSM(Kernel Same-page Merging)、NUMA 感知调度等。 --- ## 🐧 五、Linux 下替代方案建议 如果追求极致编译性能,可考虑以下替代方案: | 方案 | 性能 | 说明 | |------|------|------| | **WSL2(Windows Subsystem for Linux)** | ⭐⭐⭐⭐☆ | 几乎原生速度,适合 Windows 用户 | | **Podman/Docker 容器** | ⭐⭐⭐⭐★ | 比 VM 快得多,隔离性稍弱 | | **物理机双系统** | ⭐⭐⭐⭐⭐ | 最佳性能,但切换麻烦 | | **QEMU + KVM + Virtio**(Linux) | ⭐⭐⭐⭐☆ | 接近 VMware 水平,开源首选 | 📌 在 Linux 上,**KVM + QEMU + Virtio-blk/virtio-net** 的组合通常比 VirtualBox 更快。 --- ## ✅ 总结 > 对于 C++ 编译这类 **高并发、高 I/O 负载**的任务: | 项目 | VMware | VirtualBox | |------|--------|------------| | 编译速度 | ✅ 更快(平均快 25%~60%) | ❌ 较慢,尤其小文件 I/O | | 易用性 | ✅ 图形界面优秀,自动优化 | ✅ 开源免费,社区支持好 | | 成本 | ❌ 商业软件(Workstation 需付费) | ✅ 完全免费 | | 跨平台支持 | ✅ Windows / Linux / macOS | ✅ 同样支持良好 | | 推荐用途 | 生产级开发、持续集成测试 | 学习、轻量级实验 | > 🔚 **结论:如果你重视编译速度稳定性,优先选择 VMware;若预算有限或仅用于学习,VirtualBox 经过调优后也可接受。** ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹅编程笔记

你的鼓励将是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值