lio*_*ori 21 trim virtual-machine
虽然引入 TRIM 支持是为了让 SSD 更好地工作,但它也应该帮助虚拟机优化虚拟磁盘(例如,了解虚拟磁盘的哪些部分不需要物理分区上的存储)。是否有任何 VM 机器以这种方式使用 TRIM?
phu*_*clv 12
Virtualbox 从4.2 版开始支持 TRIM
- 存储:支持在使用 VDI 映像时通过 SATA 和 IDE 的 TRIM 和 SCSI 的 UNMAP 丢弃未使用的映像块
您需要使用--nonrotational on和--discard on选项:
--discard为虚拟硬盘启用自动丢弃功能。这指定 VDI 映像将收缩以响应来自来宾操作系统的修剪命令。必须满足以下要求:
- 磁盘格式必须是 VDI。
- 清除区域的大小必须至少为 1 MB。
- Oracle VM VirtualBox 只会修剪整个 1 MB 块。VDI 本身被组织成 1 MB 的块,因此这仅在被修剪的空间至少是 1 MB 边界处的 1 MB 连续块时才有效。在 Windows 上,偶尔使用
defrag.exe /D或btrfs filesystem defrag作为后台 cron 作业运行的 Linux 进行碎片整理可能是有益的。
更多信息可以在
Hyper-V 还可以缩小 VHD 和 VHDX 映像
用例
- ...
安装在精简配置的 SAN 上的消费者 VHD:
VHD 最初安装在精简配置环境的最小板上。当文件存储在 VHD 中时,VHD 的存储空间会成倍增长。当 VHD 中的文件被删除时,Hyper-V 将 File_TRIM 调用到底层的精简配置 SAN。如果 TRIM 大于 SLAB 粒度,SAN 现在可以删除 SLAB,从而减少 VHD 在该 SAN 上的占用空间。如果 VHD 驻留在基于 Windows 8 的服务器上,则存储优化器还将发送 TRIM 以从安装的 VHD 内减少 VHD 的平板占用空间。
也可以看看
VMware Workstation 10声称支持 SSD 直通
- SSD Pass-through Windows 8 能够检测它何时从固态驱动器 (SSD) 运行,并针对此硬件优化自身。在 Workstation 10 中,来宾操作系统将能够检测虚拟机磁盘文件何时存储在 SSD 驱动器上,并且操作系统可以在虚拟机中运行时进行相同的优化
VMWare Workstation Pro 文档中心的主机系统的磁盘驱动器要求 - 固态驱动器中也提到了这一点:
如果您的主机具有物理固态驱动器 (SSD),则主机会通知来宾操作系统它们正在 SSD 上运行。
这允许客户操作系统优化行为。虚拟机如何识别 SSD 和使用此信息取决于来宾操作系统和虚拟磁盘的磁盘类型(SCSI、SATA 或 IDE)。
但是从文本看来,TRIM 命令仅传递给底层物理 SSD,而不是缩小 VMDK 映像
其他 VMware 产品如 vSphere 和ESXi也支持 TRIM,但尚不清楚它们是否利用它来缩小映像
问:VMware 是否支持直接从 vSphere 6.0 中的来宾操作系统执行 UNMAP。
是的。vSphere 6.0 支持直接从来宾操作系统发出 UNMAP 以回收空间。
问:UNMAP 运行需要哪些先决条件?
有许多必须满足的先决条件。这些是:
- VMDK 必须是精简配置的
- 虚拟机硬件版本必须为 11 (ESXi 6.0)
- 高级设置 EnableBlockDelete 必须设置为 1
- 来宾操作系统必须能够将磁盘识别为瘦磁盘(Windows 2012 [2015 年 10 月 30 日更新] 使用 B2 模式页面来实现此目的)
问:回收仅适用于 UNMAP 吗?修剪呢?
这是一个“视情况而定”的答案。TRIM 仅在底层设备为 SSD – 固态磁盘时使用。据我了解,TRIM 在 I/O 堆栈中被转换为 UNMAP。但是,将 TRIM 转换为 UNMAP 存在一些问题。UNMAP 在 VMFS 上的某些块边界上工作,而 TRIM 没有这样的限制。因此,某些转换为 UNMAP 的 TRIM 可能会由于块对齐问题而失败。
也可以看看
QEMU 和 KVM 还支持discard=unmap回收磁盘映像空间的选项
为了缩小*.qcow2 文件,您有两个选择,启用TRIM 支持或将guest 虚拟机中包含的分区的所有可用空间清零,然后使用qemu-img 重新转换映像。
| 归档时间: |
|
| 查看次数: |
12412 次 |
| 最近记录: |