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.双端口双主机系统

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

  • 相关阅读:
    第四百零三节,python网站在线支付,支付宝接口集成与远程调试,
    第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置
    第四百节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装python3.5.1
    第四百零一节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署virtualenv虚拟环境安装,与Python虚拟环境批量安装模块
    中间件
    django自定义分页器组件
    Form组件
    前端之CSS重点知识
    group by 和where
    关于update和alter
  • 原文地址:https://www.cnblogs.com/marton/p/12545974.html
Copyright © 2011-2022 走看看