操作场景
本文介绍如何在 M6p 实例上配置持久内存。
实例配置
本文使用了以下配置的云服务器实例,获取的相关信息请以实际情况为准:
实例规格:内存型 M6p 实例 M6p.LARGE16(4核16GB)。其他规格配置请参见 内存型 M6p。 操作系统: TencentOS Server 3.1(TK4)。
说明:
建议您的实例使用以下操作系统:
TencentOS Server 3.1
CentOS 7.6及更高版本
Ubuntu 18.10及更高版本
前提条件
英特尔® 傲腾™ DC BPS 硬件(PMEM)模式介绍
Memory 模式
在 Memory 模式下,常规 DRAM 充当最常访问数据的缓存,而持久内存作为后备内存使用,高速缓存管理操作由内存控制器自动处理。
AD 模式
M6p 机型采用该模式,在 M6p 机型中,平台侧将 BPS 硬件配置为 AD 模式透传给云服务器使用。在 AD 模式下,应用程序可以把 PMEM 设备作为内存使用,或作为本地 SSD 盘使用。
操作步骤
PMEM 初始化
首次使用实例时请依次执行以下命令,对 PMEM 设备初始化。若您已执行过 PMEM 初始化,则请跳过该步骤。
ndctl destroy-namespace all --force
说明:
最大规格实例具有两个 region,执行以下命令后,请将 region0 替换为 region1 并再次执行命令。
ndctl disable-region region0
ndctl enable-region region0
在 AD 模式下配置 PMEM
您可按照实际需求,将持久内存作为内存或本地 SSD 盘使用:
PMEM 可作为字符设备提供给上层应用(例如 redis)进行持久内存的分配,可借助 memkind 等 PMDK 框架来使用。其配置方法如下:
1. 执行以下命令,生成字符设备。
ndctl create-namespace -r region0 -m devdax
返回结果如下图所示,表示已生成 dax0.0
字符设备。
最大规格实例具有两个 region,若您使用最大规格实例,请同时执行以下命令。 ndctl create-namespace -r region1 -m devdax -f
配置完成后,/dev
目录下已生成 dax0.0
字符设备,可映射持久化内存。
2. 执行以下命令,查看持久内存大小。
扩展功能(可选)
您可通过该步骤进行功能扩展,依次执行以下命令,使用 PMEM 扩充云服务器的内存。
1. 在高版本的内核(5.1 以上且使用了 KMEM DAX 的驱动,如 TencentOS Server 3.1 的内核)支持下,可将 devdax 模式的 PMEM 进一步配置为 kmemdax,可使用 PMEM 扩充云服务器的内存。
daxctl migrate-device-model
daxctl reconfigure-device --mode=system-ram --no-online dax0.0
2. 执行以下命令,查看系统内存扩充的情况。
AD 模式的 PMEM 也可配置为高速块设备,可用作一般的块设备,进行创建文件系统,裸盘读写等操作。其配置方法如下:
1. 执行以下命令,在 /dev
目录下生成 pmem0 块设备。
ndctl create-namespace -r region0 -m fsdax
返回结果如下图所示:
最大规格实例具有两个 region,若您使用最大规格实例,请同时执行以下命令。 ndctl create-namespace -r region1 -m fsdax -f
2. 依次执行以下命令,创建文件系统或挂载使用。
2.1 创建文件系统。
2.2 挂载至 /mnt/
。
mount -o dax,noatime /dev/pmem0 /mnt/
参考资料
本页内容是否解决了您的问题?