支持非对称命名空间访问的SPDK多路径验证

这是一个有点绕口的标题。我们先来拆分一下,里面包含了三个概念:命名空间非对称访问,以及多路径。多路径(multipath),可以针对单点故障提供容错能力,还可以为I/O流量提供负载平衡。当多路径驱动程序检测到活动路径的I/O错误时,它会将流量从故障路径转移到设备指定的辅助路径。当首选路径恢复正常时,可以将控制权返回到首选路径。本文主要围绕一个测试用例来介绍这些功能在SPDK中的支持和实现。

先看几个名词

1

非对称命名空间访问 (ANA)

共享命名空间(namespace)可以借助于多PCIe端口或NVMe over Fabrics等网络端口,通过NVMe存储控制器(controller)被访问。如果,controller的namespace访问特征受到NVM subsystem内部配置的影响,那么就会发生非对称访问(Asymmetric Namespace Access , 简称ANA),反之称为对称访问。

ANA的状态,有Optimized(最优访问)和Non-Optimized(非最优访问),还有Inaccessible(不可访问)等,SPDK暂不支持Persistent Loss(持久消失)。

图1.1展示了一个非对称访问的例子,这是一个包含双端口NVMe SSD的subsystem,呈现了两个独立的域。NVMe namespace B (图中NS B)和namespace C (图中NS C)都包含在controller2所在的域里。也就是说,controller 2提供对namespace B和namespace C的最优访问,而controller 1不能。

b1399aa37f8b5323a7d570998aa2c6d1.png

图1.1 controller 2提供对namespace B的最优访问

为了让controller 1提供对namespace B最优访问,NVM subsystem可以重新配置或可以自动执行内部配置动作来改变,如图1.2所示。controller 2提供对namespace C的最优访问,而controller 1提供对namespace B的最优访问。 

aecd2c3a7f8cb0d392338565760536a3.png

图1.2 controller 1提供对namespace B的最优访问

2

多路径I / O和命名空间共享 

根据NVMe协议,多路径I/O指的是主机和命名空间之间,两个或多个完全独立的PCIe路径。命名空间共享,是指两个或多个主机使用不同的NVMe控制器,访问公共共享命名空间的能力,如图1.3所示。(注:多路径I/O和命名空间共享都需要NVM系统包含两个或多个控制器。)

ea511929020b6d1fe929e81290cb00f1.png

图1.3:具有两个控制器和两个端口的NVM子系统

3

bpftrace脚本

bpftrace.sh 是一个帮助脚本,有助于针对正在运行的SPDK 应用程序,运行 bpftrace 脚本。它使用了数据包筛选器(Berkeley Packet Filter,简称BPF),所以要求SPDK在配置编译选项时使能userspace DTrace探针,./configure --with-usdt。

这是一个典型的用法:

scripts/bpftrace.sh `pid of spdk_tgt` scripts/bpf/nvmf.bt

通过nvmf.bt的筛选,SPDK 应用程序将打印出有关 NVMF子系统和轮询组信息状态转换的信息,如下所示: 

2110.935735: nvmf_tgt reached state NONE

2110.954316: nvmf_tgt reached state CREATE_TARGET

2110.967905: nvmf_tgt reached state CREATE_POLL_GROUPS

2111.235982: nvmf_tgt reached state START_SUBSYSTEMS

2189.921492: nqn.2016-06.io.spdk:cnode1 change state from INACTIVE to ACTIVE start

2189.952508: nqn.2016-06.io.spdk:cnode1 on thread 2 state to ACTIVE start

2189.9591

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值