问题
我想在 Linux 上的 SSD 磁盘内的交换分区上启用后台TRIM 操作。根据几篇文章,例如这篇文章,内核会检测此配置并自动执行丢弃操作,但在我的测试中,尽管使用“丢弃”挂载选项来强制执行此行为,但它似乎不起作用。
设想
背景
这些是我用来检查后台 TRIM 是否在交换分区上工作的步骤:
TRIM 支持:检查 SSD 磁盘是否支持 TRIM 命令并且内核将设备标记为非旋转:
# hdparm -I /dev/sda | grep TRIM
* Data Set Management TRIM supported (limit 1 block)
* Deterministic read data after TRIM
# cat /sys/block/sda/queue/rotational
0
Run Code Online (Sandbox Code Playgroud)交换填充:挂载分区,清理所有 VM 缓存并配置 Linux 以积极交换,将 vm.swappiness 设置为 100。然后,运行一个脚本来分配所有可用内存并强制内核开始交换:
# swapon [--discard] /dev/sda2
# …Run Code Online (Sandbox Code Playgroud)我正在 VMware Workstation v7 虚拟机内测试来自 OpenStack 项目的 Nova Compute,我收到此错误:
libvirtError: internal error no supported architecture for os type 'hvm'
Run Code Online (Sandbox Code Playgroud)
这是因为 VM 无法运行硬件加速的 Xen VM (hvm),即来宾 CPU 不支持 Intel-VT 或 AMD-V。根据 VMware,“运行嵌套 VM ”,我可以启用此支持,将这些参数添加到“.vmx”文件中:
guestOS = "vmkernel"
monitor_control.vt32 = "TRUE"
monitor_control.restrict_backdoor = "TRUE"
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用,在 VM 内运行“grep vmx /proc/cpuinfo”不会报告 Intel-VT 支持,还从“cpu-checker”包运行“kvm-ok”我得到:
# kvm-ok
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used
Run Code Online (Sandbox Code Playgroud)
我可以配置 VMware Workstation 以运行 KVM 加速或 Xen HVM 吗?谢谢!
virtualization xen libvirt vmware-workstation kvm-virtualization