kvm下虚机使用dimm内存设备
来源:互联网 发布:大数据分析平台架构 编辑:程序博客网 时间:2024/05/17 15:42
kvm下的虚机在qemu和libvirt处默认使用balloon方式的内存,还可以支持使用dimm设备内存,本文介绍如何配置虚机使用dimm设备。
Linux下对虚机的管理通常使用libvirt,虚机的配置以xml文件格式保存,所以需修改xml文件。
1.在虚机xml文件的memory字段处配置maxMemory,以限制虚机总内存大小和可插入dimm设备的slot数。
<maxMemory slots='16' unit='KiB'>
12524288</maxMemory>
2.在cpu字段处增加虚机numa配置,并指定虚机内存大小。
<numa>
<cell cpus='0-1' memory='1048576'/> 为虚机配置numa
<cell cpus='2-3' memory='1048576'/>
</numa>
3.device字段配置dimm设备
<memory model='dimm'>
<source>物理机侧的配置,可选项,不指定的话默认采用numatune的配置
<pagesize unit='KiB/>'4096</pagesize> 设置后忽略主机内存默认的页大小
<nodemask>1-3</nodemask> 从指定numa节点分配内存
</source>
<target>虚机侧的配置,指定插入内存设备的大小及虚机中的numa节点
<size unit='KiB'>524287</size>
<node>1</node>
</target>
</memory>
4.支持情况说明
对于dimm设备可以创建虚机时指定配置或是以
device方式virsh attach-device热插给虚机使用,
qemu命令行中有-device pc-dimm,node=0,
memdev=memdimm1,id=dimm1字段,表示使用dimm设备。
Qemu和libvirt将dimm设备配置给虚机之后,虚机操作系统本身也要识别到该设备才能正常使用,如果在虚机系统中free看到内存没有包含dimm设备的大小,可进行如下操作:
到/sys/devices/system/memory/下面检查每个memory下面的state是否为online,主要针对memory32之后的如:
[root@localhost memory]# cat memory32/state
offline
[root@localhost memory]#
这是系统内核编译时决定对于热插内存是否默认为online,如果为offline,则需手动执行echo online > memory32/state。
详见:https://www.kernel.org/doc/Documentation/memory-hotplug.txt
设置online后再用free查看内存会发现已经识别到dimm设备的内存,虚机可以正常使用该部分内存。
如果虚机系统是64位的,并且创建虚机时配置的内存小于4G,则需要在grub里面设置iommu=soft来开启IOMMU以支持虚机系统使用dimm设备的内存。
检查是否开启IOMMU:
[root@localhost memory]# dmesg|grep SWIO
[0.522781] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
详见:https://www.kernel.org/doc/Documentation/x86/x86_64/boot-options.txt
Linux下对虚机的管理通常使用libvirt,虚机的配置以xml文件格式保存,所以需修改xml文件。
1.在虚机xml文件的memory字段处配置maxMemory,以限制虚机总内存大小和可插入dimm设备的slot数。
<maxMemory slots='16' unit='KiB'>
12524288</maxMemory>
2.在cpu字段处增加虚机numa配置,并指定虚机内存大小。
<numa>
<cell cpus='0-1' memory='1048576'/> 为虚机配置numa
<cell cpus='2-3' memory='1048576'/>
</numa>
3.device字段配置dimm设备
<memory model='dimm'>
<source>物理机侧的配置,可选项,不指定的话默认采用numatune的配置
<pagesize unit='KiB/>'4096</pagesize> 设置后忽略主机内存默认的页大小
<nodemask>1-3</nodemask> 从指定numa节点分配内存
</source>
<target>虚机侧的配置,指定插入内存设备的大小及虚机中的numa节点
<size unit='KiB'>524287</size>
<node>1</node>
</target>
</memory>
4.支持情况说明
对于dimm设备可以创建虚机时指定配置或是以
device方式virsh attach-device热插给虚机使用,
qemu命令行中有-device pc-dimm,node=0,
memdev=memdimm1,id=dimm1字段,表示使用dimm设备。
Qemu和libvirt将dimm设备配置给虚机之后,虚机操作系统本身也要识别到该设备才能正常使用,如果在虚机系统中free看到内存没有包含dimm设备的大小,可进行如下操作:
到/sys/devices/system/memory/下面检查每个memory下面的state是否为online,主要针对memory32之后的如:
[root@localhost memory]# cat memory32/state
offline
[root@localhost memory]#
这是系统内核编译时决定对于热插内存是否默认为online,如果为offline,则需手动执行echo online > memory32/state。
详见:https://www.kernel.org/doc/Documentation/memory-hotplug.txt
设置online后再用free查看内存会发现已经识别到dimm设备的内存,虚机可以正常使用该部分内存。
如果虚机系统是64位的,并且创建虚机时配置的内存小于4G,则需要在grub里面设置iommu=soft来开启IOMMU以支持虚机系统使用dimm设备的内存。
检查是否开启IOMMU:
[root@localhost memory]# dmesg|grep SWIO
[0.522781] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
详见:https://www.kernel.org/doc/Documentation/x86/x86_64/boot-options.txt
0 0
- kvm下虚机使用dimm内存设备
- KVM如何使用内存
- KVM如何使用内存
- DIMM
- KVM中使用usb设备
- KVM中使用usb设备
- KVM使用USB设备的方法
- KVM客户机使用主机USB设备
- spd.从DIMM内存条I2C设备移植到扣板NOR_FLASH
- qemu-kvm设备初始化
- kvm设备节点操作
- QEMU KVM系列三: 使用EPT 模拟内存。
- qemu-kvm 设备虚拟化----I/O 端口和 I/O 内存
- KVM 内存管理概述
- kvm内存管理
- KVM 内存虚拟化
- kvm内存优化--KSM
- kvm内存优化--内存气球
- C++实现字符串分割函数 split
- 百度地图高度自适应
- Windows 7 系统的旧版IE浏览器升级到IE11
- tomcat中配置mime类型
- Android图片加载框架Glide
- kvm下虚机使用dimm内存设备
- 根据给出的相对地址获取网站绝对地址
- Android 开发小工具之:Tools 属性
- Eclipse svn提交代码的一般步骤(对比、解决冲突、更新、提交)
- AngularJS+FileReader实现图片上传
- 关于iOS的多线程
- 阿里driud数据库连接池的使用
- js中获得当前的时间
- SCI、UART与RS232区别