18.6. 在 NVDIMM 上创建设备 DAX 命名空间
在设备 DAX 模式下配置附加到您系统的 NVDIMM 设备,以支持具有直接访问功能的字符存储。
考虑以下选项:
- 将现有命名空间重新配置为设备 DAX 模式。
- 如果有可用空间,请创建新设备 DAX 命名空间。
18.6.1. 设备直接访问模式中的 NVDIMM 复制链接链接已复制到粘贴板!
设备直接访问(设备 DAX、devdax
)提供了应用程序直接访问存储的方法,而无需参与文件系统。设备 DAX 的优点是它提供有保证的容错粒度,可以使用 ndctl
工具的 --align
选项来进行配置。
对于 Intel 64 和 AMD64 构架,支持以下故障颗粒度:
- 4 KiB
- 2 MiB
- 1 GiB
设备 DAX 节点只支持以下系统调用:
-
open()
-
close()
-
mmap()
您可以使用 ndctl list --human --capabilities
命令查看 NVDIMM 设备支持的协调。例如,若要为 region0 设备查看它,请使用 ndctl list --human --capabilities -r region0
命令。
不支持 read()
和 write()
系统调用,因为设备 DAX 用例与 SNIA Non-Volatile Memory Programming Model 关联。
18.6.2. 将现有的 NVDIMM 命名空间重新配置为设备 DAX 模式 复制链接链接已复制到粘贴板!
您可以将现有的 Non-Volatile Dual In-line Memory Modules (NVDIMM) 命名空间重新配置为设备 DAX 模式。
重新配置命名空间会删除之前在命名空间中存储的数据。
先决条件
-
已安装
ndctl
工具。如需更多信息,请参阅安装 ndctl。
流程
列出系统中的所有命名空间:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新配置任何命名空间:
ndctl create-namespace --force --mode=devdax --reconfig=namespace-ID
# ndctl create-namespace --force --mode=devdax --reconfig=namespace-ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 18.1. 将命名空间配置为设备 DAX
以下命令为支持 DAX 的数据存储重新配置
namespace0.1
。它与 2-MiB 故障粒度一致,以确保操作系统一次在 2-MiB 页面中故障:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命名空间现在位于
/dev/dax0.1
路径。
验证
验证系统中的现有命名空间是否已重新配置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.6.3. 在设备 DAX 模式下创建新 NVDIMM 命名空间 复制链接链接已复制到粘贴板!
如果区域中有可用空间,您可以在非线性内存模块(NVDIMM)设备上创建一个新设备 DAX 命名空间。
先决条件
-
已安装
ndctl
工具。如需更多信息,请参阅安装 ndctl。 NVDIMM 设备支持标签在区域中创建多个命名空间。您可以使用以下命令检查它:
ndctl read-labels nmem0 >/dev/null
# ndctl read-labels nmem0 >/dev/null read 1 nmem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这表示它读取一个 NVDIMM 设备的标签。如果值为
0
,这表示您的设备不支持标签。
流程
列出系统上有可用空间的
pmem
区域。在以下示例中,在 region1 和 region0 区域中有空间:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在任何可用区域上分配一个或多个命名空间:
ndctl create-namespace --mode=devdax --region=regionN --size=namespace-size
# ndctl create-namespace --mode=devdax --region=regionN --size=namespace-size
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 18.2. 在区域上创建命名空间
以下命令在 region0 上创建 36-GiB 设备 DAX 命名空间。它与 2-MiB 故障粒度一致,以确保操作系统一次在 2-MiB 页面中故障:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命名空间现在作为
/dev/dax0.2
提供。
验证
验证新命名空间是否在设备 DAX 模式中创建:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow