R&D/OS

Intel P3700 nvme

sunshout 2015. 7. 9. 10:09

Intel NVMe 의 Product 번호를 보면

3x00 시리즈와 750 시리즈가 있는데, 3x00 시리즈는 서버향 NVMe 이며 750 시리즈는 클라이언트향이다.



PCI 정보

08:00.0 Non-Volatile memory controller: Intel Corporation Device 0953 (rev 01) (prog-if 02)

        Subsystem: Intel Corporation Device 3702

        Flags: bus master, fast devsel, latency 0, IRQ 16

        Memory at ef110000 (64-bit, non-prefetchable) [size=16K]

        Expansion ROM at ef100000 [disabled] [size=64K]

        Capabilities: [40] Power Management version 3

        Capabilities: [50] MSI-X: Enable+ Count=32 Masked-

        Capabilities: [60] Express Endpoint, MSI 00

        Capabilities: [100] Advanced Error Reporting

        Capabilities: [150] Virtual Channel

        Capabilities: [180] Power Budgeting <?>

        Capabilities: [190] Alternative Routing-ID Interpretation (ARI)

        Capabilities: [270] Device Serial Number 55-cd-2e-40-4b-fe-fe-d3

        Capabilities: [2a0] #19

        Kernel driver in use: nvme


Linux 에서 장치가 보이기 위해서는 nvme.ko 커널 드라이버 모듈이 올라와야 한다.


nvme 커널 드라이버 모듈이 올라오면 장치는 /dev/nvme0 와 /dev/nvme0n1 이 올라온다.

root@server-m:/sys# ls /dev/nv*

/dev/nvme0  /dev/nvme0n1


block device 는 nvme0n1 으로 nvme0 디바이스의 namespace 1번 이란 의미다.
root@server-m:/sys# fdisk /dev/nvme0n1
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x8a404e68.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): p

Disk /dev/nvme0n1: 400.1 GB, 400088457216 bytes
255 heads, 63 sectors/track, 48641 cylinders, total 781422768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8a404e68

        Device Boot      Start         End      Blocks   Id  System

Command (m for help):

About NVMe


Sequential Write Performance

- /dev/nvme0n1 은 NVMe SSD 이며

- /dev/sdb1 은 일반 SSD 임

root@server-m:/sys/block/nvme0n1# dd if=/dev/zero of=/dev/nvme0n1 bs=1M count=10240 oflag=direct

10240+0 records in

10240+0 records out

10737418240 bytes (11 GB) copied, 10.3149 s, 1.0 GB/s

root@server-m:/sys/block/nvme0n1# dd if=/dev/zero of=/dev/sdb1 bs=1M count=10240 oflag=direct

10240+0 records in

10240+0 records out

10737418240 bytes (11 GB) copied, 43.4187 s, 247 MB/s


참조:

http://www.intel.com/content/www/us/en/solid-state-drives/intel-ssd-dc-family-for-pcie.html


Intel Linux NVMe Driver (Reference Guide for Developers) 

http://downloadmirror.intel.com/23929/eng/Intel_Linux_NVMe_Driver_Reference_Guide_330602-002.pdf