zoukankan      html  css  js  c++  java
  • NVME-Namespace

    NVME-Namespace

    参考资料:《深入浅出SSD》 , NVME协议1.3

    Namespace

    1.概念

    NVME SSD主要由SSD控制器,闪存空间和PCIE接口组成,如果把闪存空间划分成若干个独立的逻辑空间,

    每个空间逻辑块的地址范围为0到N-1(N是逻辑空间大小),这样划分的每个逻辑空间叫做Namespace。

    2.注意

    对SATA SSD来说,一个闪存空间只对应一个逻辑空间,对NVME SSD来说,一个闪存空间可以对应若干个逻辑空间

    每个Namespace都有一个名称和ID,系统是通过NS的ID来区分不同的NS.

    3.案例,将闪存空间划分为两个NS

    以下图为例

    1)把整个闪存空间划分成两个NS,NS A和NS B,其对应的NS ID分别为1和2.

    2)如果NS A的大小是M,NS的大小是N(以逻辑块大小为单位),那么 它们的逻辑地址空间分别为0到M-1和0到N-1

    3)主机读写SSD时,首先要指定读写的NS,否则对于LBA为0,有两个逻辑空间都有LBA 0,SSD根本不知道去个逻辑空间读写

    NVME命令中的NS域

    1.一个NVME命令有64字节,其中Byte[7:4]指定了要访问的NS

    2.对每个NS来说,都有一个4KB大小的数据结构来描述它(NS的大小,整个空间已经写了多少,每个LBA的大小,端到端数据保护相关设置,

      该NS属于某个控制器还是几个控制器共享等)

    3.NS由Host创建和管理,从主机操作系统的角度来看,每个NS就是一个独立的磁盘,用户可以在每个NS做分区等操作,比如

      将整个空间划分为两个NS, NS A和NS B,操作系统看到两个完全独立的磁盘

    4.每个NS都是独立的,逻辑块大小可以不同,端到端数据保护配置也可以不同,你可以让一个NS使用保镖,另一个NS不使用报表,第三个NS半程使用保镖

    5.NS更多是应用在企业级,可以根据客户不同的需求创建不同特征的NS,即在一个SSD上创建若干个不同功能特征的NS(磁盘)供不同客户使用

    NS的一个重要使用场合

    SR_IOV

    1)SR-IOV,全称为Single Root-IO Virtualization

    2)SR-IOV技术允许在虚拟机之间高效共享PCIE设备,并且它是在硬件中实现的,可获得与本机性能相媲美的IO性能

    3)单个SSD可以由多个虚拟机共享,共享的设备提供专用的资源,并且还使用共享的通用资源,以下图为例

    说明

    1)该SSD作为PCIE的一个Endpoint,实现了一个物理功能,有4个虚拟功能关联该物理功能

    2)每个虚拟功能都有自己独享的NS,还有共享的NS E

    3)此功能使得虚拟功能可以共享物理设备,并在没有CPU和虚拟机管理程序软件开销的情况下执行IO

    多个控制器

    对于一个NVME子系统,可以有若干个控制器,即一个SSD有几个实现了NVME功能的控制器,如下图

    说明

    1)一个NVME子系统包含两个控制器,可以分别实现不同的功能

    2)整个闪存空间划分为3个NS,NS A由控制器0独享,NS C由控制器1独享,NS B由两个控制器共享

          (独享,即只有与之关联的控制器才能访问该NS,别的控制器不能对其访问;

        共享,即NS B可以被两个控制器共同访问,但是要求每个控制器对该共享NS的访问都是原子操作,以避免同步问题)

    多个PCIE接口

    1.一个NVME子系统可以有多个PCIE接口,如下图,双控制器双端口NVME系统

    说明

    1)每一个控制器都有自己的PCIE接口,而不是两者共享一个

    2)这两个PCIE接口可能连着同一个主机,也可能连着不同的主机

    2.双端口子系统连接主机

     

     说明

    1)主机访问SSD,可以双管齐下,性能可能更好些

    2)对访问NS B,同一时刻只能被一个控制器访问

    3)可以同时操作NS A 和NS C,性能或多或少会有所提升

    4)可以提升系统的可靠性,比如PCIE A接口出现问题,主机可以通过PCIE B无缝衔接,继续对NS B访问,但是NS A

    3.双端口双主机系统

    一个主机挂了,由另一个主机接管任务,继续执行

  • 相关阅读:
    Leetcode Reverse Words in a String
    topcoder SRM 619 DIV2 GoodCompanyDivTwo
    topcoder SRM 618 DIV2 MovingRooksDiv2
    topcoder SRM 618 DIV2 WritingWords
    topcoder SRM 618 DIV2 LongWordsDiv2
    Zepto Code Rush 2014 A. Feed with Candy
    Zepto Code Rush 2014 B
    Codeforces Round #245 (Div. 2) B
    Codeforces Round #245 (Div. 2) A
    Codeforces Round #247 (Div. 2) B
  • 原文地址:https://www.cnblogs.com/marton/p/12545974.html
Copyright © 2011-2022 走看看