ç§ã¯å€ãã®äººãèããããšã確信ããŠãã NVM Expressã®ããåã« ã®NVMeãåœåããããã¯ç§ã«ãšã£ãŠãã ã®é«éãã©ã€ãã§ããããããŠãããããããã®ãã©ã€ããæ¥ç¶ããããã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ããããšã«æ°ã¥ããŸããããããã圌ã¯ãPCIeãã¹ãä»ããŠããŒã¿ã転éããããã®ãããã³ã«ãšããŠNVMeãç解ãå§ããŸããããŸãããããã³ã«ã ãã§ãªãããœãªããã¹ããŒããã©ã€ãçšã«ç¹å¥ã«èšèšããããããã³ã«ããã ãŸãã
å°ããã€ããããå šäœã®ä»æ§ã§ããããšã«æ°ã¥ããŸãã ããããŠãç§ãã¡ã¯å»ããŸã... NVMeã«ã¯ãããã€ã®èå³æ·±ã䜿çšæ©èœãååšããããšãããããŸãããããã€ã®ãã®ãçºæãããã®ã...ãã®ãããªæ å ±ã®å±€ãç§ãéãéããã®ã¯å°ãã§ãäžå¿«ã§ããã
ã§ã¯ãNVMeãšã¯æ£ç¢ºã«ã¯äœã§ããïŒããèŠãŠã¿ãŸãããã
ããã¯ãã¹ãŠSATAã€ã³ã¿ãŒãã§ãŒã¹ããå§ãŸããŸãã ãå®éããã以åã¯ãSCSIãUltraSCSIãATAãPATAãªã©ãä»ã«ãå€ãã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŸãããããããã¯æã®ãã®ã§ãããã®èšäºã§ã¯ãçŸåšé¢é£ããã€ã³ã¿ãŒãã§ãŒã¹ã®ã¿ãæ€èšããŸãã
SATAã€ã³ã¿ãŒãã§ã€ã¹ãä»ããããŒã¿è»¢éé床ã¯560MB / sã«éããŸããããã¯ãHDDãã£ã¹ã¯ã«ã¯ååãããã»ã©ã§ããHDDãã£ã¹ã¯ã®ããã©ãŒãã³ã¹ã¯90ã235 MB / sã§ãïŒãããã¿ã€ããããã€ããããé床ã¯480 MB / sã«éããŸãïŒã ïŒãããããããã¯SSDãã©ã€ãã«ã¯ååã§ã¯ãªãããã§ã«ããã©ãŒãã³ã¹ã¯3000ã3500 MB /ç§ã«éããŠããŸãã SASã€ã³ã¿ãŒãã§ã€ã¹ãæ©èœããŸãããæ倧é床ã¯ããã1200MB /ç§ã§ãã
ãœãªããã¹ããŒããã©ã€ãã®å¯èœæ§ãæ倧éã«åŒãåºãããã«ãåªãã人æãPCIeã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããããšã決å®ããŸãã ãä»ã§ã¯ã8ã32 GB / sã®é床ã§ããŒã¿ã転éã§ããŸãã SSDã®PCIeã€ã³ã¿ãŒãã§ãŒã¹ãžã®æ¥ç¶ãçµ±åããããã«ãNVMeä»æ§ãéçºãããŸããã USBãã©ãã·ã¥ãã©ã€ããæ¥ç¶ããããã®ä»æ§ããããŠäœæãããã®ãšåãæ¹æ³ã§ã
NVMeãå®å šã«å解ããããšã¯ãããŸããããã®èšäºã§ã¯ãç§ãéåžžã«èå³ãæã£ãæ©èœã§ããNVMeåå空éãŸã㯠åå空éãçãããšå ±æããããšæããŸã ã
èªè ã®äžã«ã¯ããã®ãã¯ãããžãŒã®æ¢æ±ã«èå³ãæã£ãŠãã人ãããããšãé¡ã£ãŠããŸããçµéšè±å¯ãªãŠãŒã¶ãŒã®ã³ã¡ã³ããæè¿ããŸãããããŠãç§ã®ããã«ããã®ãããã¯ãç解ãå§ããã°ããã®å Žåã¯ãSSDã®æŽå²ã«é¢ããäžé£ã®èšäºãèªãããšããå§ãããŸã ããã€ãŠã圌女ã¯ç§ãç§ã®é ã®äžã®ããããã®ãŽããããã£ãŠæŽçããã®ãæäŒã£ãŠãããŸããã
NVMeã«è¿ã
Linuxäžã®NVMe
é ãããå§ããŸããåå空éã«é¢ããæ å ±ã調ã¹ãŠæ€çŽ¢ããããã«ããLinuxã®NVMeãã£ã¹ã¯ããªããã®ããã«åŒã°ããã®ã§ããïŒããšãã質åã衚瀺ãããŸããã
Linuxã®ãã£ã¹ã¯ããããã¯ããã€ã¹ãšããŠã©ãã«ä»ãããããšã«èª°ããæ £ããŠããŸããããã㯠ãç©çããã€ã¹ãŸãã¯ä»®æ³ããã€ã¹ãšå¯Ÿè©±ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸãããã¡ã€ã«èšè¿°åã§ãããããŠããã®ãããªããã€ã¹ã«ã¯ã©ã³ãã ã§ã¯ãããŸããããããã€ãã®æ å ±ãå«ãéåžžã«å³å¯ãªååããããŸããdevfsããã®æ¬¡ã®åºåãèŠãŠã¿ãŸããã ã
root@thinkpad-e14:~$ ls -l /dev/ | grep -E "nvme" crw------- 1 root root 241, 0 25 22:04 nvme0 brw-rw---- 1 root disk 259, 0 25 22:04 nvme0n1 brw-rw---- 1 root disk 259, 1 25 22:04 nvme0n1p1 brw-rw---- 1 root disk 259, 2 25 22:04 nvme0n1p2 brw-rw---- 1 root disk 259, 3 25 22:04 nvme0n1p3
æ¬çªãã·ã³ã«æ¥ç¶ãããŠãããã¹ãŠã®NVMeããã€ã¹ãããã«äžèŠ§è¡šç€ºãããŸãããããã¯ããã€ã¹/ dev / nvme0n1p1ã«ã€ããŠèã㊠ã¿ãŸããå¥åŠãªããšã«ãnvmeéšå ã¯NVMeããã€ã¹ã«äœ¿çšãããŸãã次ã®çªå·ã¯ããã©ã€ãã§å®è¡ããããã¹ãŠã®æäœãæ åœãããã£ã¹ã¯ã³ã³ãããŒã©ã®ã·ãªã¢ã«çªå·ã瀺ããŠã ãŸãã æ«å°Ÿp1ã¯ç€ºã ããŒãã£ã·ã§ã³çªå·ããã£ã¹ã¯äžããæåŸã«ã泚ç®ã«å€ããéšåã¯n1ã§ããããã¯ã¹ããŒã¹ã®æ°ã§ãã
ç°¡åã«ããããã«ãéåžžã®SSDãšã®é¡äŒŒç¹ãæãããšãã§ããŸã
ã/dev/sda-/dev / nvme0n1ã®é¡äŒŒç¹
/ dev / sda1- / dev / nvme0n1p1ã®ã¢ããã°
/ dev / nvme0ããã€ã¹ã«æ³šæããŠãã ãããããã¯NVMeã³ã³ãããŒã©ãŒã§ãããã£ã©ã¯ã¿ãŒããã€ã¹ã§ãããããã£ãŠãç¹å®ã®ã³ãã³ããéä¿¡ããããšã§åç §ã§ããŸããããã«ã€ããŠã¯ãããã«äœ¿çšããŸãã
åå空éãšããŒãã£ã·ã§ã³
ããªãã¯çåã«æããããããŸããïŒåå空éã¯ããŒãã£ã·ã§ã³ãšã©ãéãã®ã§ããïŒNVMeåå空éã®ãã¹ãŠã®æ©èœãšå©ç¹ãåé€ããŸããããããŒãã£ã·ã§ã³ã¯ããã¹ãã¬ãã«ã®ãã£ã¹ã¯ããŒãã£ã·ã§ã³ ã§ããåå空éã¯ã³ã³ãããŒã©ãŒã¬ãã«ã®ã»ã¯ã·ã§ã³ ã§ããã€ãŸããåå空éã¯ããã¹ãããããã¯ããã€ã¹ã®ããã«æ©èœããäžçš®ã® è«ç空éã§ãã
å¥ã®ã¬ãã«ã®ããŒãã£ã·ã§ã³åå²ã«ãããã¹ãã¬ãŒãžã·ã¹ãã ã®ç·šæã«æè»æ§ãè¿œå ãããããŒã¿ã®ä¿¡é Œæ§ãããã©ãŒãã³ã¹ãããã³ã»ãã¥ãªãã£ã®åäžãç®çãšããããŸããŸãªãã¯ãããžãŒã䜿çšã§ããããã«ãªããŸãããããã«ã€ããŠã¯åŸã§èŠãŠãããŸãã
NVMeã³ã³ãããŒã©ãŒãã©ã¡ãŒã¿ãŒ
ãã¹ãŠã®ããŒã¿æäœã¯ãç¹å¥ãªNVMeã³ã³ãããŒã©ãŒã«ãã£ãŠåŠçãããŸããããã«ãã¡ã¢ãªã«ã¯ãã·ãªã¢ã«çªå·ãã¢ãã«ããã¹ãŠã®çš®é¡ã®ãã£ã¹ã¯èšå®ãå²ãåœãŠãããã¹ããŒã¹ãããŒã¿åœ¢åŒãªã©ã®æ å ±ã®å éšæ§é ã«é¢ããã¡ã¿ããŒã¿ãæ ŒçŽãããŸãã
é¡åŸ®é¡ã§èª¿ã¹ãããšãææ¡ããŸãããããè¡ãããã«ãç¹å¥ãªã³ãã³ããã³ã³ãããŒã©ãŒã«éä¿¡ããããã«å¿çããŠã¡ã¿ããŒã¿ãè¿ããŸããããããè¡ãæ¹æ³ã«ã€ããŠã¯åŸã§èª¬æããŸããããšããããèŠãŠã¿ãŸããããããŒã¿ãããããããã®ã§ãå®å šã«ã¯æ¿å ¥ããŸããã§ããããåŸã§èª¬æãããã©ã¡ãŒã¿ãŒãå®éã«ååšããããšãç¥ã£ãŠããå¿ èŠããããŸã ã
{ "vid" : 5197, "ssvid" : 5197, "sn" : "00000000000000", "mn" : "00000000000000000000000000", "fr" : "7L1QFXV7", "rab" : 2, "ieee" : 9528, "cmic" : 0, "mdts" : 9, "cntlid" : 5, "ver" : 66304, "rtd3r" : 100000, "rtd3e" : 8000000, "oaes" : 512, "ctratt" : 0, "rrls" : 0, "crdt1" : 0, "crdt2" : 0, "crdt3" : 0, "oacs" : 23, "tnvmcap" : 256060514304, "unvmcap" : 0, ... }
ã¡ã¿ããŒã¿ã¯ãäžäœããäžäœã®é ã«ãã€ãã®ã·ãŒã±ã³ã¹ãšããŠã³ã³ãããŒã©ãŒã«æ ŒçŽããããããããã«æ¬¡ã®èšé²åœ¢åŒã«åŸããŸãïŒ
[ãã€ãééïŒããã°ãšã³ãã£ã¢ã³åœ¢åŒïŒ] /ãã©ã¡ãŒã¿ãŒå/埩å·åã
ç解ãæ·±ããããã®äŸã次ã®ã¬ã³ãŒãã¯ã71ã64ãã€ãã®frãã©ã¡ãŒã¿ã®å€ãæ ŒçŽãããŠããããš ãæå³ããŸããããã¯ããã¡ãŒã ãŠã§ã¢ãªããžã§ã³ãè¡šã ãŸãïŒ
[71:64] / fr /ãã¡ãŒã ãŠã§ã¢ãªããžã§ã³ã
[23ïŒ4] / sn /ã·ãªã¢ã«çªå·ãã³ã³ãããŒã©ã®ã·ãªã¢ã«çªå·ãå«ãŸããŠããŸãã
[63:24] / mn /ã¢ãã«çªå·ãã¢ãã«çªå·ãŸãã¯éšåçªå·ãå«ãŸããŸãã
[71:64] / fr /ãã¡ãŒã ãŠã§ã¢ãªããžã§ã³ãã³ã³ãããŒã©ãã¡ãŒã ãŠã§ã¢ã®ãªããžã§ã³çªå·ãå«ãŸããŠããŸãã
[257ïŒ256] / oacs /ãªãã·ã§ã³ã®adminã³ãã³ãã®ãµããŒããè¿œå ã®ã³ãã³ããšã³ã³ãããŒã©ãŒæ©èœã®ååšã瀺ããŸããããã¯16ãããã§æ§æãããåããããç¹å®ã®ã³ãã³ããæ åœããŸãããããã1ã®å Žåãã³ã³ãããŒã©ãŒã¯æ¬¡ã®ããšãå¯èœã«ããŸãã
- [15:10]-äºçŽæžã¿ã
- [9] -LBAã¹ããŒã¿ã¹ãååŸããŸãã
- [8]- ããã¢ãã«ãããã¡æ§æããžã®ã¢ã¯ã»ã¹ãååŸããŸã;
- [7]-ä»®æ³åã管çããïŒãä»®æ³å管çãïŒ ;
- [6] -NVMe-MiRecieveããã³NVMe-MiSendã³ãã³ãïŒãNVMe管çã€ã³ã¿ãŒãã§ã€ã¹ãïŒã䜿çšããŸãã
- [5]-ãã£ã¬ã¯ãã£ãïŒ "ãã£ã¬ã¯ãã£ã"ïŒã䜿çšããŸã;
- [4] â («Self-Test Commands»);
- [3] â («Namespace Management»);
- [2] â ( «Firmware Commit» «Firmware Download»);
- [1] â («NVM Format»);
- [0] â («Security Send», «Security Receive»).
ãã®èšäºã§ã¯ãåå空éã«é¢é£ããé¢æ°ãã€ãŸããåå空é管çããš ãNVM圢åŒãã«ã€ããŠã®ã¿è§ŠããŸã ãä»ã®æ©èœã®è©³çŽ°ã«èå³ãããå Žåã¯ãNVMExpressãªããžã§ã³1.4ã®ä»æ§ãåç §ããŠãã ãã ã
NVMeã¹ããŒã¹ãã©ã¡ãŒã¿
次ã«ãNVMeã¹ããŒã¹ã®ã¡ã¿ããŒã¿ãèŠãŠã¿ãŸãããã
{ "nsze" : 500118192, "ncap" : 500118192, "nuse" : 233042000, "nsfeat" : 0, "nlbaf" : 0, "flbas" : 0, "mc" : 0, "dpc" : 0, "dps" : 0, "nmic" : 0, "rescap" : 0, ... ] }
[7ïŒ0] / nsze /åå空éã®ãµã€ãºãããã¯ãè«çãããã¯å ã®ã¹ããŒã¹ã®æ倧éã§ãããã®å Žå-500118192512ãã€ãã®ãããã¯ãã¡ãªã¿ã«ãblockdevã®åºåã«ç€ºãããŠããŸã ã
root@thinkpad-e14:~$ sudo blockdev --getsz /dev/nvme0n1 500118192
[15ïŒ8] / ncap /åå空é容éãããã¯ãçŸåšã¹ãã¬ãŒãžã¹ããŒã¹ã«å²ãåœãŠãããŠããè«çãããã¯ã®æ°ã§ãã
[23:17] / nuse /åå空éã®äœ¿çšãããã¯ãçŸåšããŒã¿ã«ãã£ãŠå æãããŠããè«çãããã¯ã®æ°ã§ãã
nszeãªãã·ã§ã³ãšncapãªãã·ã§ã³ã¯åãã§ããããšã«æ³šæããŠãã ãããæ倧ããªã¥ãŒã ãšçŸåšå²ãåœãŠãããŠããããªã¥ãŒã ãæå®ãããã€ã³ãã¯äœã§ããïŒããã¯ãçŸæç¹ã§å©çšå¯èœãªå²ãåœãŠãããå²ãåœãŠãå°ãªãå¯èœæ§ãããããšãæå³ããŸããïŒã¯ãïŒ
äºå®ãåå空éã¯ã·ã³ããããžã§ãã³ã°ãã¯ãããžãŒããµããŒãããŠããŸãã ..ãããã¯ãæå®ãããããªã¥ãŒã ã®äžéšã®ã¿ãã¹ããŒã¹ã«å²ãåœãŠãããããšãæå³ããŸããä»ã®éšåã¯å ±æããŒã«ã«æ®ãããªã³ããã³ãã§ãã®ã¹ããŒã¹ãŸãã¯ä»ã®ã¹ããŒã¹ã«å²ãåœãŠãããŸããå²ãåœãŠãããããªã¥ãŒã ããã£ã±ãã«ãªã£ããšãããŸãã¯ã¯ãªãã£ã«ã«ãããå€ã«éãããšãã§ããäžè¬ã«ããã®ãã¯ãããžãŒã«ãããã¹ãã¬ãŒãžãªãœãŒã¹ãããå¹ççã«äœ¿çšã§ããŸãããã®ãã¯ãããžãŒã®è©³çŽ°ãšè©³çŽ°ã«ã€ããŠã¯ ããã®èšäºãåç §ããŠãã ããã
ç§ãã¡ã®ç¶æ³ã§ ã¯ãã¹ããŒã¹ã¯çŽ°ããååžã®ãµããŒããªãã§äœæããããããnszeãšncapã¯çãããªã ãŸãããã£ã¹ã¯äžã®ãã®ãããªã¹ããŒã¹ã¯æ¬¡ã®ããã«ãªããŸãã
ncapãš nsizeã¯ã1ã€ã®åèšã¹ããŒã¹éãæã ãŸãããã£ã¹ã¯äžã§ã·ã³ãã£ã¹ããªãã¥ãŒã·ã§ã³ã䜿çšããå Žåãã¹ããŒã¹ã¯æ¬¡ã®ããã«ãªããŸãã
ããã§ã nszeã¯æ倧ããªã¥ãŒã ãnca p-å²ãåœãŠ æžã¿ã瀺ãã nuseã¯ã©ã¡ãã®å Žåãå æãããŠãããã®ã®ã¿ã瀺ããŸããå€ãšã nuseã«éããã«ã¯ã NCAPã NCAPã®å¢å ããã§ã¯ãªãããã nszeã
ãã®ãã¯ãããžãŒããµããŒãããã«ã¯ãåå空éã®é©åãªæ§æãšãã³ã³ãããŒã©ãŒåŽããã®ã·ã³ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ãµããŒããå¿ èŠã§ããããšã«æ³šæããŠãã ããã
[24:24] / nsfeat /åå空éæ©èœããã®ãã©ã¡ãŒã¿ã¯ç¹ã«èå³æ·±ããã®ã§ããã¹ããŒã¹ã®è¿œå æ©èœã®ååšã瀺ããŸããããã¯8ãããã§æ§æããïŒããã°ãšã³ãã£ã¢ã³ã«ããªã¹ããããŠããŸãïŒããããããç¹å®ã®æ©èœãæ åœããŸãããããå€ã1ã®å Žåãé¢æ°ã¯ã¢ã¯ãã£ãã§ããã0ã§ã¯ãããŸããã
- [7ïŒ5]-äºçŽæžã¿ã
- [4ïŒ4] -I / Oãæé©åããããã®è¿œå ãã£ãŒã«ãã®ãµããŒãã
- [3ïŒ3] -NGUIDãã£ãŒã«ãã®åå©çšãç¡å¹ã«ããŸã;
- [2ïŒ2]-åé€ããããããã¯ãšæžã蟌ãŸããŠããªããããã¯ã®ãµããŒãïŒãã³ã³ããã¹ãå±æ§ãïŒ ;
- [1ïŒ1]-ã¢ãããã¯èšé²çšã®è¿œå ãã£ãŒã«ãã®ãµããŒãïŒãã¢ãããã¯æäœãïŒ ;
- [0ïŒ0]-ã·ã³ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ãµããŒãã
[26:26] / flbas /ãã©ãŒããããããlbaãµã€ãºããã®ãã©ã¡ãŒã¿ãŒã¯ãLBAæ§é ãæããŸãããŸãã8ãããã§æ§æãããŠããŸãã
- [7ïŒ5] -äºçŽæžã¿ã
- [4ïŒ4] -1ã«èšå®ãããŠããå Žåãã¡ã¿ããŒã¿ããããã¯ã®æåŸã«ä¿åãããããšã瀺ããŸããå€ã0ã®å ŽåïŒã¡ã¿ããŒã¿ã¯å¥ã®ãããã¡ãŒã«è»¢éãããŸãã
- [3ïŒ0] -16ã®å¯èœãªLBAãã©ãŒãããã®1ã€ãéžæã§ããŸãã
[29:29] / dps /ãšã³ãããŒãšã³ãã®ããŒã¿ä¿è·ã¿ã€ãã®èšå®ããšã³ãããŒãšã³ãã®ããŒã¿ä¿è·ã®ã¿ã€ãã瀺ããŸãã8ãããã§æ§æãããŸãïŒ
- [7ïŒ4 ]-äºçŽæžã¿;
- [3ïŒ3] -ã¡ã¿ããŒã¿è»¢éã®ã¿ã€ãã瀺ããŸã;
- [2ïŒ0] -ããŒã¿ä¿è·ã®ååšãšãã®ã¿ã€ãã瀺ããŸãã
[30:30] / nmic /åå空éãã«ããã¹ããã³åå空éå ±ææ©èœããã®ãã£ãŒã«ãã¯ãåå空éãžã®ãã«ãã¢ã¯ã»ã¹ã«é¢é£ããæ©èœã®ãµããŒãã瀺ããŸãã
- [7ïŒ1] -äºçŽæžã¿ã
- [0ïŒ0] -å€1ã¯ããã®ã¹ããŒã¹ããããªãã¯ïŒãããªãã¯åå空éïŒã§ãããè€æ°ã®ã³ã³ãããŒã©ãŒãšéä¿¡ã§ããããšã瀺ããŸããå€0ã¯ãã¹ããŒã¹ããã©ã€ããŒãïŒãã©ã€ããŒãåå空éïŒã§ããã1ã€ã®ã¿ã«ãã€ã³ããããŠããããšã瀺ããŸãã
ããã§ããã©ã¡ãŒã¿ã®æŠèŠã¯çµããã§ãããããã®æ°ã¯èšå€§ã§ãããããããŸããŸãªã¿ã¹ã¯ã®åå空éãéåžžã«çŽ°ããæ§æã§ããŸããããã«ã€ããŠã¯ãèšäºã®æåŸã§æ€èšããŸããåãã©ã¡ãŒã¿ãŒã®è©³çŽ°ãªèª¬æã¯ãNVMExpressãªããžã§ã³1.4ä»æ§ã«èšèŒãããŠã ãŸãã
ãããªãã¯ã¹ããŒã¹ãšãã©ã€ããŒãã¹ããŒã¹
ãã®èšäºã§ã¯ããããªãã¯ã¹ããŒã¹ã ãã©ã€ããŒãã¹ããŒã¹ãªã©ã®çšèªã«ã€ããŠã¯ãã§ã«èª¬æããŠã ãŸãããããããã®æå³ãæ確ã«ããªãã£ãã®ã§ãå°ãæéãå²ãå¿ èŠããããšæããŸãã
ã¹ããŒã¹ãäœæããæé ã®1ã€ã¯ãã¹ããŒã¹ãNVMeã³ã³ãããŒã©ãŒã«å²ãåœãŠãããšã§ããã¹ããŒã¹ãžã®ã¢ã¯ã»ã¹ã¯ãå²ãåœãŠãããŠããã³ã³ãããŒã©ãŒãä»ããŠå®è¡ãããŸãããã ããã¹ããŒã¹ã¯1ã€ã®ã³ã³ãããŒã©ãŒïŒãã©ã€ããŒãïŒã ãã§ãªããè€æ°ã®ã³ã³ãããŒã©ãŒïŒãããªãã¯ïŒã«ãå²ãåœãŠãããšãã§ããŸãã
ãã©ã€ããŒãã¹ããŒã¹ãæ®éãšåŒã¹ããªããé¢çœããã®ã¯äœãäœããªãã®ã§ããããªãã¯ã¹ããŒã¹ã¯åå空éãã«ããã¹ã®ãããªæ©äŒãå©çšããããšãã§ããŸã ..ã
NVMeãšã®çžäºéçšæ§
NVMeããã€ã¹ãšã®å¯Ÿè©±ã®åé¡ã«åãæãããŸãããïŒã³ã³ãããŒã©ãŒã«ããŸããŸãªã³ãã³ããéä¿¡ããæ¹æ³ãåå空éãäœæããæ¹æ³ããããããã©ãŒãããããæ¹æ³ãªã©ããã®ããã«ãLinuxã®äžçã«ã¯ãŠãŒãã£ãªãã£nvme-cliããããŸãããã®å©ããåããŠãããªãã¯ãããã®æäœãå®è¡ããããšãã§ããŸãã
nvmeãªã¹ã
NVMeããã€ã¹ãäžèŠ§è¡šç€ºããããã«ã次ã®æ¹æ³ã§devfsã«ã¢ã¯ã»ã¹ããå¿ èŠã¯ãããŸããã
root@thinkpad-e14:~$ ls /dev/ | grep "nvme" nvme0 nvme0n1 nvme0n1p1 nvme0n1p2 nvme0n1p3
ãŸãã¯ãlspciã䜿çšããŠããã·ã³ã«æ¥ç¶ãããŠãããã®ã確èªããŸãã
root@thinkpad-e14:~$ lspci | grep -E "NVMe|Non-Volatile" 07:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a809
nvmelistã³ãã³ãã䜿çšããã ãã§åå ã§ãã
root@thinkpad-e14:~$ nvme list -o json { "Devices" : [ { "NameSpace" : 1, "DevicePath" : "/dev/nvme0n1", "Firmware" : "9L1QFXV7", "Index" : 0, "ModelNumber" : "SAMSUNG MZALQ256HAJD-000L1", "ProductName" : "Non-Volatile memory controller: Samsung Electronics Co Ltd Device 0xa809", "SerialNumber" : "00000000000000", "UsedBytes" : 38470483968, "MaximumLBA" : 500118192, "PhysicalSize" : 256060514304, "SectorSize" : 512 } ] }
äŸãšããŠJSON圢åŒã§æ å ±ãåºåããŸãã ãã芧ã®ãšãããããã«ã¯ããã€ã¹ã®ãªã¹ãã ãã§ãªããããã€ã¹ã«é¢ããããŸããŸãªæ å ±ã衚瀺ãããŸããäžéšã®å±æ§ïŒããšãã°ãDevicePathã ModelNumbe rïŒã¯ã³ã¡ã³ããå¿ èŠãšããªããšæãã®ã§ãããã€ãã®å±æ§ã« ã®ã¿æ³šæãæããŸãã
- ã€ã³ããã¯ã¹-ã³ã³ãããŒã©ãŒçªå·;
- UsedBytes䜿çšãããŠããã¹ããŒã¹ã®éïŒãã€ãåäœïŒã
- PhysicalSize-ãã€ãåäœã®æ倧ã¹ããŒã¹éã
- SectorSize - LBAãŸãã¯è«çãããã¯åœ¢åŒ-ã¢ãã¬ã¹å¯èœãªæå°ã®ããŒã¿ãããã¯ã
- MaximumLBAã¯ãè«çãããã¯ã®æ倧æ°ã§ãã
nvme id-ctrlãnvme id-ns
èšäºã®ååã§ãããã€ã¹ã«é¢ããã¡ã¿ããŒã¿ãååŸããããã«ãIdentifyã³ãã³ããã³ã³ãããŒã©ãŒã«éä¿¡ããŸãã ããã®ããã«ãnvmeid-ctrlã³ãã³ã ã䜿çšããŠã³ã³ãããŒã©ãŒãèå¥ããŸããã
root@thinkpad-e14:~$ nvme id-ctrl /dev/nvme0
ãã㊠ãã¹ããŒã¹ãèå¥ããããã®nvme id-nsïŒ
root@thinkpad-e14:~$ nvme id-ns /dev/nvme0n1
ããã€ã¹ïŒã³ã³ãããŒã©ãŒãŸãã¯åå空éïŒãæå®ããå¿ èŠãããããšã«æ³šæããŠãã ããã
nvme create-nsãnvme delete-ns
åå空éã¯ããã€ãã®æ®µéã§äœæãããŸãããŸããããã圢äœãå¿ èŠããããŸãããããè¡ãã«ã¯ãnvmecreate-nsã³ãã³ãã䜿çšã ãŸãã
root@thinkpad-e14:~$ nvme create-ns /dev/nvme0 --nsze 1875385008 --ncap 1875385008 --flbas 0 --nmic 1 --dps 0 create-ns: Success, created nsid:1
ããªãã¯ãã§ã«ãã®ã³ãã³ãã«äžããããåŒæ°ã«ç²ŸéããŠããŸãããNVMeã¹ããŒã¹èšå®ãã®ã»ã¯ã·ã§ã³ã§ãããã調ã¹ãŸããã
ã¹ããŒã¹ãåé€ããã«ã¯ãnvmedelete-nsã³ãã³ãã䜿çšããŸã ã
root@thinkpad-e14:~$ nvme delete-ns /dev/nvme0n1 delete-ns: Success, deleted nsid:1
nvme attach-nsãnvme detach-ns
NVMeã¹ããŒã¹ãäœæãã第2段éã¯ãçæãããã¹ããŒã¹ãã³ã³ãããŒã©ãŒã«ãã€ã³ãããããšã§ãããããè¡ãã«ã¯ãnvmeattach-nsã³ãã³ãã䜿çšããŸã ã
root@thinkpad-e14:~$ nvme attach-ns /dev/nvme0 --namespace-id 1 --controllers 1 attach-ns: Success, nsid:1
ãã®ã³ãã³ãã䜿çšããŠãèå¥å1ã®ã¹ããŒã¹ãã³ã³ãããŒã©ãŒ / dev / nvme0ã«ãã€ã³ãããŸãã--controllersåŒæ°ã«ã泚æããŠãã ãã ãããã¯ãã¹ããŒã¹ããããã§ããNVMeã³ã³ãããŒã©ãŒã®IDããªã¹ãããŸãããã®åŒæ°ã¯ãªãã·ã§ã³ã§ããããããªãã¯ã¹ããŒã¹ãäœæãããšãã«äœ¿çšãããŸãã
äœããã®çç±ã§ãã³ã³ãããŒã©ãŒã®çªå·ä»ãã¯1ããå§ãŸããŸããã€ãŸããcontroller / dev / nvme0ã®èå¥åã¯1ã§ãããããã¯--controllersåŒæ°ã§æå®ãããŸããããŸãããã°ãããã«ããã次ã®ãšã©ãŒã®èª¿æ»ã«æéã浪費ããããšãåé¿ã§ããŸãã
root@thinkpad-e14:~$ nvme attach-ns /dev/nvme0 --namespace-id 1 --controllers 0 NVMe Status:CONTROLLER_LIST_INVALID: The controller list provided is invalid(211c)
ã¹ããŒã¹ã解ãã«ã¯ãnvmedetach-nsã³ãã³ãã䜿çšããŸã ã
root@thinkpad-e14:~$ nvme detach-ns /dev/nvme0n1 --namespace-id 1 --controllers 1 detach-ns: Success, nsid:1
ãã®åŸãã¹ããŒã¹ã¯ãããã¯ããã€ã¹ãªã¹ãããæ¶ãã䜿çšã§ããªããªããŸãããŸãã-controllersåŒæ°ã§ãã¹ããŒã¹ãåé¢ããã³ã³ãããŒã©ãŒã®ã¿ãæå®ããå¿ èŠããããŸãã
nvmeãªã»ãã
ã¹ããŒã¹ãã³ã³ãããŒã©ãŒã«ãã€ã³ãããããšãéåžžã¯äœæ¥ã«äœ¿çšã§ããŸãããã ããã³ã³ãããŒã©ãŒãã¹ããŒã¹ãèªèã§ããªãå ŽåããããŸãããã®å Žåãåèµ·åããå¿ èŠããããŸã-nvmersetã³ãã³ãã䜿çšã ãŸãã
nvmeãã©ãŒããã
ã¹ããŒã¹ã®LBA圢åŒãå€æŽããå¿ èŠãããå Žåã¯ãnvmeformatã³ãã³ãã 圹ã«ç«ã¡ãŸãã
root@thinkpad-e14:~$ nvme format /dev/nvme0n1 --lbaf 0 Success formatting namespace:1
--lbafåŒæ°ã¯ãLBA圢åŒã瀺ããŸãã
ãã ãããã®ã³ãã³ãã䜿çšããŠãNVMeãã©ã€ãäžã®ããŒã¿ãå®å šã«æ¶å»ããããšãã§ããŸãã
root@thinkpad-e14:~$ nvme format /dev/nvme0n1 --ses 1 -r Success formatting namespace:1
--sesåŒæ°ã¯ãã°ã©ãŠãã¬ãã«ã瀺ããŸãã
- 1-ãã¹ãŠã®ããŒã¿ãåé€ããŸãã
- 2-æå·åãããããŒã¿ãåé€ããŸãã
-råŒæ°ã¯ãã³ã³ãããŒã©ãŒãå®å šãªã°ã©ãŠãã®åŸã«åèµ·åããããšã瀺ããŸãã
å¿çš
ã¹ããŒã¹ã«ã¯å€ãã®çšéããããŸãããããã¯äž»ã«ããã©ãŒãã³ã¹ãšåé·æ§ãåäžãããããã«äœ¿çšãããã¹ãã¬ãŒãžã·ã¹ãã ã§äœ¿çšãããŸãããããäžè¬çãªãŠãŒã¹ã±ãŒã¹ããããŸãã
ã¹ãã¢ãšãªã¢
ããªãäžè¬çãªäœ¿çšæ¹æ³ããå§ããŸããããã¹ãã¢ãšãªã¢ããŸãã¯ãªã¶ãŒããšãªã¢ã¯ãNVMeã®åããçºæãããŸãããããã¯SSDäžã®ç¹å¥ãªã¹ããŒã¹ã§ãããã³ã³ãããŒã©ãŒèªäœãå éšæäœã«äœ¿çšãããã¹ãã¯äœ¿çšã§ããŸããã
ã¹ããŒã¹ã®ãµã€ãºãå€æŽããããšã§ããã©ãŒã«ããã¯é åã®ãµã€ãºãå€æŽã§ããŸããå®éã«ã¯ããã£ã¹ã¯ã®å šäœã®ããªã¥ãŒã ã¯ããã¹ãŠã®ã¹ããŒã¹ã®ããªã¥ãŒã ãšã¹ãã¢é åã®ããªã¥ãŒã ã®åèšã«çãããªããŸãã
ãããã£ãŠãã¹ããŒã¹ã®ç·éãæžãããšãæ®ãã®éã¯ã¹ãã¢ãšãªã¢ã«æå©ã«ãªããŸãã
ããã¯ã¢ããé åã«ã€ããŠè©³ããç¥ãããå Žåã¯ããã®èšäºãåç § ããŠãã ããã
æå·åãšåé¢
NVMeãã©ã€ãã¯ãµããŒã OPALã®SEDããããã«ãåå空éããšã«ç°ãªãæå·åããŒã䜿çšãããŸãã
ã³ã³ãããŒã©ã¯æžã蟌ã¿ä¿è·ãæäŸããŸãã3ã€ã®ã¬ãã«ããããŸãïŒ
- 次ã®åèµ·åãŸã§èªã¿åãå°çšã
- æžã蟌ã¿ä¿è·æ©èœãç¡å¹ã«ããåŸã次ã®åèµ·åãŸã§èªã¿åãå°çšã
- äœæ¥å šäœãéããŠèªã¿åãå°çšã
ããã¯ãåºå®ããã³ã¢ãã€ã«PCã§ãã䜿çšãããŸããããšãã°ãããŒãããŒããŒãèªã¿åãå°çšã¹ããŒã¹ã«é 眮ããŠãæå·ãé²ãããšãã§ããŸããä»ã®éèŠãªããŒã¿ãåãæ¹æ³ã§ä¿è·ã§ããŸãã
è€æ°äœ¿çš
åè¿°ã®ããã«ãã¹ããŒã¹ã¯ã³ã³ãããŒã©ãŒã¬ãã«ã®ããŒãã£ã·ã§ã³ã§ããããšã³ããã¹ãããã¯å¥ã®ããã€ã¹ãšããŠè¡šç€ºãããŸãã倧ããªNVMeãã©ã€ããããã€ãã®ãã©ã€ããŒãã¹ããŒã¹ã«åå²ãããããããç°ãªããã¹ãã«å²ãåœãŠãããšã¯å¯èœã§ããïŒã§ããïŒãŸãããããã¯ãŒã¯ãããã³ã« NVMe-oFïŒNVMe Over FabricsïŒã䜿çšããŠããããã®ã¹ããŒã¹ãä»®æ³ãã¹ãã ãã§ãªãç©çãã¹ãã«ãå²ãåœãŠãããšãã§ããŸãã
ãã®ãã©ã€ãã®äœ¿çšã«ãããããŒãã£ã·ã§ã³ã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãã
NVMeã³ã³ãããŒã©ãŒã¯ãã¹ããŒã¹ãäºãã«åé¢ãããŠããããšã確èªããŸããããŒã¿ã¯ãã©ã€ãã®å¥ã ã®é åã«ä¿åãããåãã¹ãã«ã¯ç¬èªã®I / Oãã¥ãŒããããŸãããã ãã ã¹ãã¢ãšãªã¢ãŸã㯠ã¹ãã¢ãšãªã¢ã¯åŒãç¶ãå ±æãããŸãã
åå空éãã«ããã¹ãšåå空éå ±æ
åå空éå ±æããŸãã¯ãããªãã¯åå空éã¯ã1ã€ä»¥äžã®ãã¹ãã2ã€ä»¥äžã®ã³ã³ãããŒã©ãŒãä»ããŠã¹ããŒã¹ãå ±æã§ããããšãæå³ããŸãã
ããã¯äœã®ããïŒãã®å³ã¯ããããªãã¯ã¹ããŒã¹ã®äœ¿çšå³ã瀺ããŠããŸããã¯ããèå³æ·±ãã§ããNVMeã³ã³ãããŒã©ãŒ1ãšNVMeã³ã³ãããŒã©ãŒ2ãä»ããŠNS Bã¹ããŒã¹ã«ã¢ã¯ã»ã¹ã§ããŸããããããå³ã次ã®ããã«ãªããŸã§ãããã«ã¯äœã®æçšæ§ããããŸããã
ããã§ã¯ãã³ã³ãããŒã©ãŒãå®å šã«ç°ãªããã¹ãäžã«ãããããŒã¿ãžã®ããã€ãã®ç¬ç«ãããã¹ãããããšãããããŸãããã¹ãã³ã³ãããŒã©ãŒãã¹ãAïŒéè²ã®ã³ã³ãããŒã©ãŒïŒãšãã¹ãBïŒçŽ«è²ã®ã³ã³ãããŒã©ãŒïŒãçµç±ããŸããããã§ãåé·æ§ãããã©ãŒãã³ã¹ã®åäžã«äœ¿çšã§ããŸããéããã¹ã®è² è·ãé«ãå Žåã¯ã玫è²ã®ãã¹ã䜿çšããŸãã
ãã®ã¢ãããŒãã«ãããNVMe-oFã䜿çšããŠãåŸæ¥ã®ãµãŒããŒãã©ãããã©ãŒã ããé«æ§èœã§ä¿¡é Œæ§ã®é«ãæè»ãªãœãããŠã§ã¢ããã¡ã€ã³ãã¹ãã¬ãŒãžã·ã¹ãã ãç·šæã§ããŸãã
çµæ
NVMeåå空é㯠ããã£ã¹ã¯ã®è«çããŒãã£ã·ã§ã³ã ã
ãã®èšäºã§ã¯ãåå空éã䜿çšããéã®ãã¹ãŠã®åŽé¢ãšåŸ®åŠãªç¹ã«ã€ããŠã¯èª¬æããŠããŸãããããããã¬ãã¥ãŒãç¥äººã§ããããšãå€æããŸããããã ããå¿ èŠã«å¿ããŠãããããã¯ãããžãŒã®ããæ·±ãç 究ãéå§ããã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
ããšãã
ãã®èšäºãæžããŠãããšããç§ã¯
- 2b2qexe7 / 2b2qexm7ãã¡ãŒã ãŠã§ã¢ãæèŒããSamsung970 EVO / 970 EVO Plusãã©ã€ãã¯ããªã»ããã³ãã³ããšãã©ãŒãããã³ãã³ããå®è£ ããŠããŸããã
- ãã¡ãŒã ãŠã§ã¢2b2qexe7 / 2b2qexm7ãæèŒããSamsung970 EVO / 970 EVO Plusãã©ã€ãã¯ãcreate-nsãdelete-nsãdetach-nsãatach-nsã³ãã³ãã䜿çšããã¹ããŒã¹ç®¡çãå®è£ ããŠããŸããã
- 9L1QFXV7ãã¡ãŒã ãŠã§ã¢ãæèŒããSamsungPM991ãã©ã€ãã«ã¯ãã°ããããresetã³ãã³ãã䜿çšããŠã³ã³ãããŒã©ãŒãåèµ·åãããšãšã©ãŒãçºçããŸãã
- 9L1QFXV7ãã¡ãŒã ãŠã§ã¢ãæèŒããSamsungPM991ãã©ã€ãã«ã¯ãã°ããããformatã³ãã³ãã䜿çšããŠã¹ããŒã¹ããã©ãŒããããããšãšã©ãŒãçºçããŸãã
- ãã¡ãŒã ãŠã§ã¢9L1QFXV7ãæèŒããSamsungPM991ãã©ã€ãã¯ãcreate-nsãdelete-nsãdetach-nsãatach-nsã³ãã³ãã䜿çšããã¹ããŒã¹ç®¡çãå®è£ ããŠããŸããã
äŒæ¥ã»ã°ã¡ã³ãã®ãã£ã¹ã¯ã«ã¯ãããã®åé¡ã¯ãªããšç¢ºä¿¡ããŠããŸããã誰ãããã®ãããªããŒããŠã§ã¢ãè³Œå ¥ã§ããããã§ã¯ãªãã®ã§ãè³Œå ¥ããéã«ã¯ãã£ã¹ã¯ãšãããã®ããã¥ã¢ã«ã詳ãã調ã¹ãŠãã ããããŸããè³Œå ¥åã«ãã£ã¹ã¯ã調ã¹ãŠNVMeã³ã³ãããŒã©ãŒã®ãã©ã¡ãŒã¿ãŒã確èªããæ©äŒãããå Žåã¯ãå¿ ãããã䜿çšããŠãã ããã
圹ç«ã€æ å ±æº
- SSDïŒããã€ã¹ãã³ã³ããŒãã³ããããã³åäœåç
- NVMExpressã®ã¯ã€ãã¯ãã¢ãŒ
- NVMe1.4ä»æ§
- NVMeåå空é
- Base NVM Express â Part One
- NVMe Command Line Interface (NVMe-CLI)
- NVMe Over Fabrics