上篇文章介绍了一系列的基础概念,并对Multiple namespaces的一些基本使用方法进行了介绍。这篇文章将继续讨论Multiple namespaces的优势,并以PBlaze5为例解读Multiple namespaces的使用和配置。

为什么要用 Multiple Namespaces

看起来用法并不难,那么使用Multiple Namespaces有什么好处呢?简单罗列几个场景:

  • 控制逻辑范围
    可以在创建namespace时,确定利用的逻辑块的范围,有效控制用户空间大小,甚至达到扩大OP,增加寿命的效果。
  • 独立无扰
    多个namespace之间的format格式、逻辑地址、IO路径都是相互独立的。比如,
    nvme0n1 format成512B的,nvme0n2 format成4096B的完全没问题;
    nvme0n3支持数据保护,nvme0n4不支持数据保护,OK;
    nvme0n5做共享namespace,nvme0n6做私有namespace,也OK;

    IO在每个namespace上都是相对独立,互不干扰的,每个namespace的使用者都可以从0开始读写,但之间没有任何干扰,数据没有交集。放心大胆的trim一个namespace,另一个namespace继续读写,高枕无忧。
  • Dual Port
    multiple namespaces的private/shared namespace可以和双端口结合,成为双端口+多命名空间应用场景,给上层应用提供更多可能。这也是PBlaze5的一个重要的功能。
    multiple namespaces的private/shared namespace可以和双端口结合,成为双端口+多命名空间应用场景,给上层应用提供更多可能。这也是PBlaze5的一个功能。如下图所示,NS A是portx的private namespace,NS C是porty的private namespace, NS B是portx和porty的shared namespace。


    双端口 + Multiple namespaces
    双端口与 Multiple namespace 结合之后,portx 可以访问 NS A 和 NS B,porty 可以访问 NS B 和 NS C,同时,portx 可以看到 NS C 但是不能访问它,porty 可以看到 NS A 但是不能访问它。可以说,我们从分开端口的角度对 MNS 多了一层保护和控制,我们从 MNS 的角度对端口多了一层扩展和保护,基于这两个功能的强强联合,为上层应用创造了更多高效安全的可能。

如何使用PBlaze5的multiple namespaces

既然 Multiple Namespaces 好处多多,让我们用起来吧,用法也不难,以 PBlaze5 为例,慢慢道来。
让我们先了解一下 NVMe 协议里关于 Multiple Namespaces 的几个概念。

  • NSID
    -每个 namespace 都拥有自己唯一的 NSID。NSID 有效范围:
    1 ~ NN。注:0无效。NN+1 ~ FFFFFFFEh无效。FFFFFFFFh表示广播。
    如下图所示:
  • Active、Inactive、Allocated、Unallocated
    不要蒙圈,这跟 namespace 的创建和使用有关。当使用 Namespace Management command 成功创建了namespace 之后,namespace 就是 Allocated 状态,表示这些逻辑块已经划给这个 NSID 的 namespace 了;那些没有创建没有分配的逻辑块和 NSID 就是 Unallocated,很好理解。
    但是 Allocated namespace 还不能IO,还需要使用 Namespace Attachment command 挂到某个 controller 上,成为 Active namespace 才可以。所以,Active NSID 就是已经创建并且已经挂到某个 controller 上的 namespace 的NSID。
  • Namespace Management command 和Namespace Attachment command
    NVMe协议规定了两个admin命令,Namespace Management和Namespace Attachment,用以创建、管理namespace等操作。另外,Identify命令中也有对namespace的支持,比如获取NSID列表、controller ID列表等。

    图 3 - NVMe 1.3协议中两个admin命令
    拿到一块支持multiple namespace的SSD,比如PBlaze5,用支持这两个admin命令的的工具,比如nvme-cli,就可以create、delete、list、attach、detach一个namespace了:

    图 4 - nvme-cli中namespace命令
    命令不多,支持的内容还是很丰富的。比如create-ns命令,可以设置这个namespace的大小、格式化格式、数据保护能力、共享能力等。又比如list-ns命令,可以列出某个NSID之后所有有效的NSID,并可以分别列出Active、Inactive的namespace,方便用户使用。再次声明,经过细致有效的测试,PBlaze5系列产品完全符合NVMe1.3协议之规定。
    再用PBlaze5举个例子 —— 创建namespace举例
    下面以在PBlaze5 U.2 4T上使用nvme-cli工具创建一个500GB的namespace为例。
    第一步,检查SSD上剩余空间是否足够创建目标namespace。使用Identify命令查看unvmcap的值可知剩余可分配容量,单位是Byte。

    图 5 - 使用Identify查询unvmcap
    第二步:计算创建 500GB 的 namespace,是多少个LBA。执行create-ns命令时,NSZE和NCAP的单位都是指 LBA的个数,lba count和user capacity的关系符合JEDEC218A,公式如下:
    user capacity = (lbacount- 21168) / 1953504 当LBA size是512B
    user capacity = (lbacount- 2646) / 244188 当LBA size是4096B
    那么,当想创建500GB的namespace,并且该namespace格式化为512B的sector size的话,size参数就设置为:21168 + 1953504 * 500 = 976773168。
    第三步:执行nvme create-ns /dev/nvme0 –s 976773168 –c 976773168 –f 0 –d 0 –m 1即可创建一个namespace。其中,-f 0设定了一个逻辑块的大小是512Byte,PBlaze5还支持4096B等。
    第四步:执行nvme attach-ns /dev/nvme0 –n 1 –c 1即可将这500GB的namespace挂到controller 1上,这是执行IO的先决条件。
    第五步:如果操作系统支持Namespace Attribute Notices,那么此时已经可以在系统中看到这个namespace并使用它了。

    图 6 - 创建500GB namespace举例
    经过两篇文章的讨论,可以发现Multiple namespaces是NVMe SSD一个非常基础而重要的功能,是对SSD不同存储单元进行差异化策略设置和操作的基础。现在PBlaze5已经开始全面支持Multiple namespaces功能,用户可以对不同的namespaces分别执行格式化等操作。未来基于Multiple namespaces还将有更多新的特性加入,用户管理NVMe SSD也更加方便。

下面是Memblaze的技术文章合集:

实锤,PBlaze5实力演绎multiple namespaces 功能(下)相关推荐

  1. 特斯拉自动驾驶造假实锤:总监出马亲自作证,撞车片段被删,所有功能均为预编程...

    衡宇 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 特斯拉虚假宣传自动驾驶,实锤了! 现任自动驾驶软件总监亲自作证,事情板上钉钉,法庭呈堂证供承认,之前的官方对外发布的知名自动驾驶宣传视频,并 ...

  2. 华为鸿蒙被扒出来安卓,华为鸿蒙被“实锤”,操作界面曝光,为何被吐槽是换皮安卓?...

    4月已经进入尾声,但鸿蒙系统的消息最近却变少了,记得此前发布Mate X2的时候,余承东表示要在4月份开始推送鸿蒙系统,Mate X2会成为首批升级机型. 然而目前有不少用户吐槽称,依然还没有等到鸿蒙 ...

  3. 华为鸿蒙操作界面,华为鸿蒙被“实锤”,操作界面曝光,为何被吐槽是换皮安卓?...

    4月已经进入尾声,但鸿蒙系统的消息最近却变少了,记得此前发布Mate X2的时候,余承东表示要在4月份开始推送鸿蒙系统,Mate X2会成为首批升级机型. 然而目前有不少用户吐槽称,依然还没有等到鸿蒙 ...

  4. 云重磅|中西合璧 联想凌拓瓜熟蒂落;5G实锤 华为推出首部5G折叠手机;​IBM打造Kubernetes无处不在”的模式...

    戳蓝字"CSDN云计算"关注我们哦! 嗨,大家好,重磅君带来的[云重磅]特别栏目,如期而至,每周二第一时间为大家带来重磅新闻.把握技术风向标,了解行业应用与实践,就交给我重磅君吧! ...

  5. 性能下降47%!华为、荣耀四款手机跑分作弊实锤,3DMark宣布榜单除名

    楚匆 发自 凹非寺 量子位 出品 | 公众号 QbitAI 不知道华为堵不堵心. 在Mate 20正式发售前这最不该掉链子的一个多月,华为绊倒了两次. 半个月前的AI拍照"虚假宣传" ...

  6. 实锤了,尤大妥妥的二次元迷弟 —— 聊聊 Vue 的进化历程

    文章目录 实锤了,尤大妥妥的二次元迷弟 -- 聊聊 Vue 的进化历程 1. 前言 2. 库阶段 2.1 阶段发展 2.2 设计重点和特征 3. 框架阶段 3.1 阶段发展 3.2 设计重点 4. 通 ...

  7. maple 2018 窗口关闭提示乱码_GRF中野再次实锤加盟LNG!韩媒爆料:Maple或去北美赛区养老...

    原标题:GRF中野再次实锤加盟LNG!韩媒爆料:Maple或去北美赛区养老 (搜狐体育 Predwan/文)英雄联盟S10全球总决赛已经全部结束了,DWG成功帮助LCK在时隔三年之后重新拿到总冠军奖杯 ...

  8. 华为鸿蒙系统界面_实锤爆小米宣传图抄袭。华为鸿蒙系统界面设计爆光?

    设计行业新闻 1 实锤爆小米宣传图抄袭 首席内幕官:小米西班牙宣传图被指抄袭,这个色彩和构图第一眼看上去几乎是一样的.但借鉴一位小米员工的说法,借鉴跟抄袭的界限有点模糊,这种就算告了也没什么用,色彩形 ...

  9. 搜狗两大AI翻译神器亮相CES 实力演绎用中文与世界对话

    6月13日,2018年亚洲消费电子展(CES ASIA)在上海新国际博览中心拉开帷幕.阿里巴巴.搜狗.奔驰.联想等国内外知名企业齐聚于此,为世人呈现着亚洲市场各类产业的创新成果,人工智能(AI).增强 ...

最新文章

  1. 测量一条反斜线的频率和质量n+m=9
  2. 微信开发同步微信服务器图片到本地,逻辑处理。
  3. 绿米空调伴侣接入iobroker_普通空调用它变成互联网智能空调,你觉得怎么样?...
  4. 【bzoj 4455】小星星(树型DP+容斥原理+dfs建树和计算的2种方式)
  5. 计算机java语言答案,2019年全国计算机二级Java语言练习试题及答案一
  6. 高性能微服务 Dubbo RPC Redis 分布式框架
  7. linux midi编辑,MidiEditor软件下载 MIDI音乐制作软件(MidiEditor) v3.1.0 支持Windows和Linux 英文官方版 下载-脚本之家...
  8. 小米路由器恢复出厂设置方法详解
  9. 我国高等数学教材不能误导学生
  10. 逻辑面试题:猴子搬香蕉
  11. 基于python mediapipe的视频或者图片更换背景
  12. 2018中国民营企业500强榜单
  13. 摘要-Amira用户指南
  14. 【只摘金句】Linux 开发模式带给创业者的启示
  15. 市场复苏下:报复性消费,了解一下~
  16. AES128加密算法实现(C语言:ECB加密模式实现)
  17. 微机原理与系统设计三:微处理器的结构与功能
  18. Flink on yarn 集群HA 配置
  19. VR,AR,MR的区别与联系
  20. 【Verilog】FPGA驱动WS2812B点阵

热门文章

  1. 计算机与数学文化论文参考文献,数字电子技术参考文献
  2. G - 小彬的周赛(easy)
  3. 制作可以启动的DVD ISO文件
  4. 制作一份简易DVD系统
  5. 日本生活随感之 - 深入血液的服务观念
  6. (CODE:3 MEDIA_ERR_DECODE) Playback cannot continue. No available working or supported playlists
  7. 计算机系统的组成观评课报告,观评课报告
  8. DELL游匣7559安装ubuntu的问题
  9. 戴尔G3双系统:WIN10+Ubuntu18.04
  10. 融云助制造业移动信息化建设 加速两化融合创新