7.6. 在 NVDIMM 上创建扇区命名空间以充当块设备
您可以在扇区模式(也称为传统模式)中配置非线性内存模块 (NVDIMM) 设备,以支持传统的基于块的存储。
您可以:
- 将现有命名空间重新配置为扇区模式,或者
- 如果有可用空间,创建一个新的 sector 命名空间。
先决条件
- 一个 NVDIMM 设备被附加到您的系统。
7.6.1. 将现有的 NVDIMM 命名空间重新配置为扇区模式
您可以将非易失性双内存模块 (NVDIMM) 命名空间重新配置为扇区模式,将其用作快速块设备。
重新配置命名空间会删除之前在命名空间中存储的数据。
先决条件
-
已安装
ndctl
工具。如需更多信息,请参阅安装 ndctl。
流程
查看现有命名空间:
# ndctl list --namespaces --idle [ { "dev":"namespace1.0", "mode":"raw", "size":34359738368, "state":"disabled", "numa_node":1 }, { "dev":"namespace0.0", "mode":"raw", "size":34359738368, "state":"disabled", "numa_node":0 } ]
将所选命名空间重新配置为扇区模式:
# ndctl create-namespace --force --reconfig=namespace-ID --mode=sector
例 7.1. 在扇区模式中重新配置 namespace1.0
# ndctl create-namespace --force --reconfig=namespace1.0 --mode=sector { "dev":"namespace1.0", "mode":"sector", "size":"755.26 GiB (810.95 GB)", "uuid":"2509949d-1dc4-4ee0-925a-4542b28aa616", "sector_size":4096, "blockdev":"pmem1s" }
重新配置的命名空间现在位于
/dev
目录下,存为/dev/pmem1s
文件。
验证
验证系统中的现有命名空间是否已重新配置:
# ndctl list --namespace namespace1.0 [ { "dev":"namespace1.0", "mode":"sector", "size":810954706944, "uuid":"2509949d-1dc4-4ee0-925a-4542b28aa616", "sector_size":4096, "blockdev":"pmem1s" } ]
其他资源
-
系统上的
ndctl-create-namespace (1)
手册页
7.6.2. 在扇区模式下创建新 NVDIMM 命名空间
您可以在扇区模式中创建一个非线性内存模块 (NVDIMM) 命名空间,以便在区域中存在可用空间时将其用作快速块设备。
先决条件
-
已安装
ndctl
工具。如需更多信息,请参阅安装 ndctl。 NVDIMM 设备支持标签在区域中创建多个命名空间。您可以使用以下命令检查它:
# ndctl read-labels nmem0 >/dev/null read 1 nmem
这表示它读取一个 NVDIMM 设备的标签。如果值为
0
,这表示您的设备不支持标签。
流程
列出系统上有可用空间的
pmem
区域。在以下示例中,在 region1 和 region0 区域中有空间:# ndctl list --regions [ { "dev":"region1", "size":2156073582592, "align":16777216, "available_size":2117418876928, "max_available_extent":2117418876928, "type":"pmem", "iset_id":-9102197055295954944, "badblock_count":1, "persistence_domain":"memory_controller" }, { "dev":"region0", "size":2156073582592, "align":16777216, "available_size":2143188680704, "max_available_extent":2143188680704, "type":"pmem", "iset_id":736272362787276936, "badblock_count":3, "persistence_domain":"memory_controller" } ]
在任何可用区域上分配一个或多个命名空间:
# ndctl create-namespace --mode=sector --region=regionN --size=namespace-size
例 7.2. 在 region0 上创建 36-GiB 扇区命名空间
# ndctl create-namespace --mode=sector --region=region0 --size=36G { "dev":"namespace0.1", "mode":"sector", "size":"35.96 GiB (38.62 GB)", "uuid":"ff5a0a16-3495-4ce8-b86b-f0e3bd9d1817", "sector_size":4096, "blockdev":"pmem0.1s" }
新命名空间现在作为
/dev/pmem0.1s
提供。
验证
验证新命名空间是否在扇区模式中创建:
# ndctl list -RN -n namespace0.1 { "regions":[ { "dev":"region0", "size":2156073582592, "align":16777216, "available_size":2104533975040, "max_available_extent":2104533975040, "type":"pmem", "iset_id":736272362787276936, "badblock_count":3, "persistence_domain":"memory_controller", "namespaces":[ { "dev":"namespace0.1", "mode":"sector", "size":38615912448, "uuid":"ff5a0a16-3495-4ce8-b86b-f0e3bd9d1817", "sector_size":4096, "blockdev":"pmem0.1s" } ] } ] }
其他资源
-
系统上的
ndctl-create-namespace (1)
手册页