随着数据中心规模的不断扩大与延展,硬件设备的运行维护已经成为信息技术企业与部门普遍重视的一环。随之而来的,是极为庞大的IT运维工作量。实现硬件设备的可维护,就需要灵活高效的监控与管理工具。
第一节
NVMe设备工具
Linux中有诸多的监控与管理工具来助力设备运维,如hdparm,ethtool, SmartCTL等;当然也有很多简单易用的系统工具,如lspci, lsblk, iostat。对于目前部署量越来越大的NVMe设备,最通用有效的工具莫过于Nvme-cli。
通过Nvme-cli,使用者可以获取NVMe设备记录的各种LOG;可以查询当前设备状态;获取设备本身以及内部Namespace的配置信息;设置设备的各项功能;以及对设备做重启与格式化。
Nvme-cli在监控管理NVMe设备的主要过程,既是组织相关命令信息,通过对NVMe设备文件(/dev/nvmeX,/dev/nvmeXnY)发起IOCTL系统调用,将命令传入内核继而发送请求到NVMe设备上;待NVMe设备响应命令请求,发回响应后,再提取有效响应信息出来。所以Nvme-cli 众多命令的普遍格式是:
nvme []
第二节
SPDK Nvme-cli
SPDK是一组用于编写高性能,可扩展的用户模式存储应用程序的工具和库。它的基础是处在用户空间,轮询模式、异步、无锁的NVMe驱动程序。这为从用户空间应用程序直接访问Nvme SSD提供了零拷贝,高度并行的访问。在此基础上,SPDK还提供了完整的块堆栈作为用户空间库,该库能够执行与操作系统中块存储软件