日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nvme-cli常用指令

發布時間:2023/12/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nvme-cli常用指令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

NVMe management command line interface
1.下載地址
https://github.com/linux-nvme/nvme-cli
2.安裝
unzip nvme-cli-master.zip
cd nvme-cli-master.zip
make && make install

/dev/nvme1 nvme1為主控
/dev/nvme1n1 nvme1n1為NVMe硬盤名稱
/dev/nvme1n1p1 硬盤nvme1n1的分區
3.常用指令
1)nvme format -s 1 /dev/nvme1n1 格式化硬盤(secure erase drives)

nvme format /dev/nvme1n1 -n 1 -l 1 4k對齊
nvme format /dev/nvme1n1 -n 1 -l 0 恢復初始狀態512
nvme format /dev/nvme1n1 -l 0 Optane device Units512

參數詳情請參考:http://www.pudn.com/Download/item/id/3180638.html

2)nvme smart-log /dev/nvme0n1 讀取硬盤nvme0n1的smart信息

部分其他參數詳解參考:https://www.percona.com/blog/2017/02/09/using-nvme-command-line-tools-to-check-nvme-flash-health/
3)nvme升/降固件版本

nvme reset /dev/nvme1 重置硬盤(NVMe硬盤固件版本進行upgrade/downgrading后要進行reset后才能effective,如果不重置主控需reboot 系統)

4)OP(Over-Provisioning)
為什么要進行OP,請參考:https://blog.csdn.net/weixin_40343504/article/details/83145713

nvme admin-passthru /dev/nvme0 -o 0x9 --cdw10=0xc1 --cdw11=0x2000000 --cdw12=0x0

OP to GB
1.The decimal value of LBA is (X * 1000 * 1000 * 1000 / 512), then convert it to Hex Value.
2. Put the Hex Value to cdw11
3. If the Hex Value over 0xFFFFFFFF, put the high overflow digits to cdw 12.
4. Example:
? 3200 GB
? Decimal value is 6,250,000,000 and Hex Value is 0x174876E80
The value for cdw12 should be 0x1 and for cdw11 is 0x74876E80.
? 2000 GB
? Decimal value is 3,906,250,000 and Hex Value is 0xE8D4A510
The value for cdw12 should be 0x0 and for cdw11 is 0xE8D4A510.
? 4000 GB
? 7,814,037,168 // 0x1 D1C0 BEB0
? 7200 GB - 0x3 4630 B8A0
6400 GB - 0x2 E90E DD00
例一:

例二:
原容量OPed到3.4T
[root@localhost nvme-cli-master]# nvme admin-passthru /dev/nvme9n1 -o 0x9 --cdw10=0xc1 --cdw11=0x18BCFE568 --cdw12=0x1
NVMe command result:00000000

5)nvme-cli 創建namespaces
什么是Namespace?
簡單地說,namespace是對用戶空間的邏輯劃分,就是把用戶空間這塊大披薩劃分開,大家各吃各的。那么大披薩長什么樣呢?劃成一片片兒披薩又什么樣呢?我們知道,跟其他傳統的存儲設備一樣,非易失性存儲器也是可以格式化為邏輯塊的,每個邏輯塊都有自己的地址,俗稱logical block address,簡稱LBA,我們就是通過LBA來吃披薩(讀寫IO)的。邏輯地址長相很普通,是從0,1,2….直到最大塊地址。
邏輯塊地址計算是有講究的,嚴格依據JEDEC218A里面定義的邏輯塊與容量關系公式。比如4KiB一個邏輯塊的話, 500G就需要2646 + 244188 * 500 = 122096646個邏輯地址了,這些邏輯塊就組成了namespace(512B一塊邏輯塊的話,500G就需要21168+1953504*500=976773168個邏輯地址)。那么一塊SSD是否可以劃分為多個namespace來供不同的應用場景使用呢?答案是肯定的。

例如:創建一個500G和一個465G的namaspaces

檢查SSD上剩余空間是否足夠創建目標namespace。使用Identify命令查看unvmcap的值可知剩余可分配容量,單位是Byte。

#進行以下步驟前請務必確保自己的SSD支持NS #一般大廠才會有進行NS的需求,請和你的廠商確保SSD支持。 #個人的盤不建議嘗試進行NS操作 1.detach nvme detach-ns /dev/nvme0 -n 1 -c 0 nvme delete-ns /dev/nvme0 -n 1 nvme reset /dev/nvme02.創建 **#1953125000 = 1,000,000,000,000/512 = 1,953,125,000 (1TB)** nvme create-ns /dev/nvme0 -s 976562500 -c 976562500 -f 0 -d 0 -m 0 nvme attach-ns /dev/nvme0 -n 1 -c 0nvme create-ns /dev/nvme0 -s 975175680 -c 975175680 -f 0 -d 0 -m 0 #第二個創建的必須 nvme attach-ns /dev/nvme0 -n 2 -c 0nvme reset /dev/nvme0 nvme list [root@localhost Muti-namespace_Test]# nvme list Node SN Model Namespace Usage Format FW Rev ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- -------- /dev/nvme0n1 XXXXXX XXXXX 1 500.36 GB / 500.36 GB 512 B + 0 B VDV10152 /dev/nvme0n2 XXXXXX XXXXX 2 499.29 GB / 499.29 GB 512 B + 0 B VDV101523,刪除 nvme detach-ns /dev/nvme0 -n 1 -c 0 nvme detach-ns /dev/nvme0 -n 2 -c 0nvme delete-ns /dev/nvme0 -n 1 nvme delete-ns /dev/nvme0 -n 24.恢復 nvme create-ns /dev/nvme0 -s 1000204886016 -c 1000204886016 -f 0 -d 0 -m 0 #1000204886016是通過“nvme id-ctrl /dev/nvme0n1 | grep tnvmcap”抓取并除以512 nvme attach-ns /dev/nvme0 -n 1 -c 0 nvme reset /dev/nvme0nvme list [root@localhost Muti-namespace_Test]# nvme list

4.PCIe硬盤壽命計算
可以通過nvme-cli讀取PCIe硬盤smart信息,進行進行計算硬盤的Endurance、DWPD(Drive Writes Per Day)。
建議壽命測試僅企業級可能有必要,個人沒必要進行此項操作。
a.測試前讀取硬盤smart-log信息

[root@localhost nvme-cli-master]# nvme intel smart-log-add /dev/nvme0n1 Additional Smart Log for NVME device:nvme0n1 namespace-id:ffffffff key normalized raw program_fail_count : 0% 0 erase_fail_count : 0% 0 wear_leveling : 0% min: 0, max: 0, avg: 0 end_to_end_error_detection_count: 100% 159 crc_error_count : 100% 25963 timed_workload_media_wear : 100% 0.000% timed_workload_host_reads : 100% 8% timed_workload_timer : 100% 120864 min thermal_throttle_status : 100% 0%, cnt: 1 retry_buffer_overflow_count : 100% 0 pll_lock_loss_count : 100% 0 nand_bytes_written : 0% sectors: 0 host_bytes_written : 100% sectors: 26008485

b.fio進行讀寫一定的數據
c.fio結束后再次執行nvme intel smart-log-add /dev/nvme0n1讀取smart-log信息
d.計算

盤進入穩態后進行隨機寫得到DWPD的值更為準確

總結

以上是生活随笔為你收集整理的nvme-cli常用指令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。