传统SSD
SSD是Solid State Drive(固态硬盘)。一块SSD封装有10-100个NAND芯片和一个SSD控制器。SSD控制器通过接口来管理NAND芯片并且向用户提供服务,其中NVMe就属于一种接口。 NVMe是Non Volatile Memory Host Controller Interface Specification。曾经广泛使用的SATA接口传输速度太慢,拖了SSD的后腿。NVMe性能高,可以自动适配很多平台,无需厂家提供驱动。![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204013054-1534452296.png)
![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204034674-145605832.png)
![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204055491-405986756.png)
![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204107327-491812962.png)
![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204132580-279753264.png)
ZNS SSD
ZNS就是Zoned Namespaces的意思,通过NVMe的新规范(https://nvmexpress.org/developers/nvme-specification/)就可以实现。分区存储模型(Zoned Storage Model)
zone(分区)在namespace(命名空间)里线性分布,所有的zone都要顺序地写入,在再一次写入前必须要先重置。![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204147467-639762224.png)
- 线性地指向下一个写入单元的写指针
- 指向第一个LBA(逻辑区块地址,Logical Block Address)的指针:ZSLBA(Zone Starting LBA)
- Zone容量,用可写入的LBA的数量表示
- zone状态,包括读写访问规则
![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204213294-1569779302.png)
分区大小(zone size)和分区容量(zone capacity)
Zone size就是zone里面所有逻辑块的总数,命名空间里的所有zone都是相同的。zone capacity是一个zone里可以写入的LBA的数量,也就是可用的逻辑块总数(一个LBA对应一个逻辑块)。通常是固定的,但是标准允许它变。分区容量总是小于等于分区大小。![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204227136-1894425695.png)
分区状态(zone state)
每一个zone都有一个状态机,LBA是否可读写就取决于它的状态。![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204252317-2128681074.png)
![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204305337-1446035969.png)
分区资源限制(Zone Resources Limits)
ZNS标准允许控制器设置同时能够在隐式、显式开放状态下的zone总数,还可以定义活跃zone的总数。分区命名空间指令集(Zoned Namespace Command Set)
就是NVMe的那一套,包括命名空间、控制器的数据结构和 Flush (0h), Read (1h), Write (2h), Verify (0Ch) 。![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204334038-646801075.png)
写入的时候为什么要用Append
NVMe标准允许设备以任何顺序执行指令,但是在一个zone里面必须要顺序写入。所以必须要把写入指令排好顺序。由于SSD本来就很快,需要消耗很多CPU资源,这样一来开销更大,因此要改用append指令。 append指令需要3个参数:ZSLBA,数据长度,数据缓存区。![](/i/l/?n=22&i=blog/1997295/202211/1997295-20221121204349902-511841394.png)
参考标签:zone,写入,Storage,ZNS,2020,简介,SSD From: https://www.cnblogs.com/hushrush/p/16913175.html
- https://snia.org/sites/default/files/SDC/2020/075-Bj%C3%B8rling-Zoned-Namespaces-ZNS-SSDs.pdf
- https://zonedstorage.io/docs/introduction/zns