22 附录C、在LINUX/WIN上安装IPMCTL
ipmctl实用程序用于配置和管理Intel Optane DC永久内存模块(DCPMM)。这是一个供应商专用的实用程序,可用于Linux和Windows。它支持以下功能:
- 在平台上发现DCPMM;
- 提供平台内存配置;
- 查看和更新DCPMMs上的固件;
- 在DCPMMs上配置静态数据安全;
- 监测DCPMM的健康状况;
- DCPMMs的跟踪性能;
- 调试和排除DCPMM问题。
ipmctl引用以下接口组件:
- libipmctl:用于管理PMMs的应用程序编程接口(API)库;
- ipmctl:用于配置和管理PMMs的命令行界面(CLI)应用程序;
- ipmctl monitor:监控PMMs健康状况和状态的监控守护程序/系统服务。
22.1 IPMCTL Linux先决条件
ipmctl需要依赖libsafec。
22.1.1 libsafec
libsafec作为包在Fedora包存储库中可用。对于其他Linux发行版,它可以作为单独的可下载包在本地安装:
- RHEL/CentOS EPEL 7包装在https://copr.fedorainfracloud.org/coprs/jhli/safeclib/;
- OpenSUSE/SLES包在https://build.opensuse.org/package/show/home:jhli/safeclib;
- Ubuntu包在https://launchpad.net/~jhli/+archive/ubuntu/libsafec。
作为替代方案,可以从源代码编译ipmctl,使用-DSAFECLIB_SRC_ DOWNLOAD_AND_STATIC_LINK=ON 选项下载源代码并静态链接到safeclib。
22.2 IPMCTL Linux 包
作为一个供应商专用的实用程序,它不包括在除Fedora之外的大多数Linux发行包存储库中。EPEL7软件包可以在https://copr.fedorainfracloud.org/coprs/jhli/ipmctl. OpenSUSE和SLES包在https://build.opensuse.org/package/show/home:jhli/ipmctl。
22.3 微软Windows上的IPMCTL
ipmctl的最新Windows EXE二进制文件可以从GitHub项目页面的“Releases”部分下载(https://github.com/intel/ipmctl/releases)如图C-1所示。
运行可执行文件将安装ipmctl并通过命令行和PowerShell接口使其可用。
22.4 使用ipmctl
ipmctl实用程序为系统管理员提供了配置Intel Optane DC持久内存模块的能力,然后Windows PowerShellCmdlet或Linux上的ndctl可以使用这些模块创建可以在其上创建文件系统的命名空间。然后,应用程序可以创建持久性内存池并映射它们以直接访问持久性内存。还可以提取有关模块的详细信息,以帮助处理错误或调试。
ipmctl有一组丰富的命令和选项,可以在不使用任何命令谓词的情况下运行ipmctl来显示这些命令和选项,如清单C-1所示。
Listing C-1. Listing the command verbs and simple usage information
# ipmctl version
Intel(R) Optane(TM) DC Persistent Memory Command Line Interface Version 01.00.00.3279
# ipmctl
Intel(R) Optane(TM) DC Persistent Memory Command Line Interface
Usage: ipmctl <verb>[<options>][<targets>][<properties>]
Commands:
Display the CLI help.
help
Display the CLI version.
version
Update the firmware on one or more DIMMs
load -source (File Source) -dimm[(DimmIDs)]
Set properties of one/more DIMMs such as device security and modify device.
set -dimm[(DimmIDs)]
Erase persistent data on one or more DIMMs.
delete -dimm[(DimmIDs)]
Show information about one or more Regions.
show -region[(RegionIDs)] -socket(SocketIDs)
Provision capacity on one or more DIMMs into regions
create -dimm[(DimmIDs)] -goal -socket(SocketIDs)
Show region configuration goal stored on one or more DIMMs
show -dimm[(DimmIDs)] -goal -socket[(SocketIDs)]
Delete the region configuration goal from one or more DIMMs
delete -dimm[(DimmIDs)] -goal -socket(SocketIDs)
Load stored configuration goal for specific DIMMs
load -source (File Source) -dimm[(DimmIDs)] -goal -socket(SocketIDs)
Store the region configuration goal from one or more DIMMs to a file
dump -destination (file destination) -system -config
Modify the alarm threshold(s) for one or more DIMMs.
set -sensor(List of Sensors) -dimm[(DimmIDs)]
Starts a playback or record session
start -session -mode -tag
Stops the active playback or recording session.
stop -session
Dump the PBR session buffer to a file
dump -destination (file destination) -session
Show basic information about session pbr file
show -session
Load Recording into memory
load -source (File Source) -session
Clear the namespace LSA partition on one or more DIMMs
delete -dimm[(DimmIDs)] -pcd[(Config)]
Show error log for given DIMM
show -error(Thermal|Media) -dimm[(DimmIDs)]
Dump firmware debug log
dump -destination (file destination) -debug -dimm[(DimmIDs)]
Show information about one or more DIMMs.
show -dimm[(DimmIDs)] -socket[(SocketIDs)]
Show basic information about the physical processors in the host server.
show -socket[(SocketIDs)]
Show health statistics
show -sensor[(List of Sensors)] -dimm[(DimmIDs)]
Run a diagnostic test on one or more DIMMs
start -diagnostic[(Quick|Config|Security|FW)] -dimm[(DimmIDs)]
Show the topology of the DCPMMs installed in the host server
show -topology -dimm[(DimmIDs)] -socket[(SocketIDs)]
Show information about total DIMM resource allocation.
show -memoryresources
Show information about BIOS memory management capabilities.
show -system -capabilities
Show information about firmware on one or more DIMMs.
show -dimm[(DimmIDs)] -firmware
Show the ACPI tables related to the DIMMs in the system.
show -system[(NFIT|PCAT|PMTT)]
Show pool configuration goal stored on one or more DIMMs
show -dimm[(DimmIDs)] -pcd[(Config|LSA)]
Show user preferences and their current values
show -preferences
Set user preferences
set -preferences
Show Command Access Policy Restrictions for DIMM(s).
show -dimm[(DimmIDs)] -cap
Show basic information about the host server.
show -system -host
Show event stored on one in the system log
show -event -dimm[(DimmIDs)]
Set event's action required flag on/off
set -event(EventID) ActionRequired=(0)
Capture a snapshot of the system state for support purposes
dump -destination (file destination) -support
Show performance statistics per DIMM
show -dimm[(DimmIDs)] -performance[(Performance Metrics)]
Please see ipmctl <verb> -help <command> i.e ‘ipmctl show -help -dimm’ for more information on specific command。
每个命令都有自己的手册页。通过运行“man IPMCTL”,可以从IPMCTL(1)手册页中找到手册页的完整列表。
在线ipmctl用户指南在https://docs.pmem.io。本指南提供了有关ipmctl以及如何使用它来设置和调试问题的详细分步说明和深入信息。ipmctl快速入门指南位于https://software.intel.com/en-us/articles/quick-start-guide-configureintel-optane-dc-persistent-memory-on-linux。
对于使用ipmctl和ndctl的简短视频演示,您可以观看“Provision Intel Optane DC Persistent Memory in Linux”的网络研讨会视频(https://software.intel.com/en-us/videos/provisioning-intel-optane-dc-persistentmemory-modules-in-linux)。
如果您有关于ipmctl、Intel Optane DC persistent memory或一般persistent memory的问题,可以在persistent memory Google论坛中提出(https://groups.google.com/forum/#!forum/pmem)。特定于ipmctl的Questions或issues应发布到ipmctl GitHub问题站点(https://github.com/intel/ipmctl/issues).