NVMe
NVMe是Non-Volatile Memory express(非易失性内存主机控制器接口规范)的简称,它是一种协议,能够使固态硬盘(SSD)运行得更快,如今在企业用户中已越来越流行。
NVMe(非易失性存储器快速)是一种主机控制器接口和存储协议,用于通过计算机的高速外围组件互连高速(PCIe)加速企业和客户端系统与固态硬盘(SSD)之间的数据传输总线。与基于 SAS 和 SATA 的 SSD 相比,基于 NVMe 的 PCIe SSD 的主要优点是减少了主机软件堆栈的延迟,提高了每秒输入/输出操作(IOPS),并可能降低功耗,具体取决于外形尺寸和正在使用的 PCIe 通道数。
NVMe和SATA、SAS类似是一种接口协议,NVMe SSD比SAS SSD性能更好
NVMe具体优势包括:
①性能有数倍的提升;
②可大幅降低延迟;
③NVMe可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升;
④自动功耗状态切换和动态能耗管理功能大大降低功耗;
⑤NVMe标准的出现解决了不同PCIe SSD之间的驱动适用性问题。
Nvme类型对比
外观类型 | 插卡式(AIC) | 盘式(u.2) | 条式(m.2) |
PCIe | x4,x8,x16 | x4 ,x2 x2(双端口) | x4,x2 |
主要规格 | 半高半长HHHL 全高半长FHHL | 2.5寸 厚15mm/7mm | 2260/2280/22110 |
尺寸大小 | 大 | 中 | 小 |
最高性能 | 高 | 中 | 低 |
支持热插拔/易维护性 | 不支持/一般 | 支持/好 | 不支持/一般 |
能耗 | 高 | 中 | 低 |
兼容性 | 服务器广泛支持 | 需背板支持 | 板载M.2插槽或转接卡 |
适用场景 | 高性能、大容量需求 | 易部署、前端维护 | 提供不同长度(60mm、80mm、110mm 占用极少体积,适用空间受限,超大规模数据中心 |
插卡式
盘式
挂载显示
脚本添加nvme判断
function mkfs_data()
{
msg "begin mkfs_data"
dev_which=1
dev_num=$(fdisk -l |grep dev |grep -v -w sda | awk '{print $2}' |sed 's/://g' |grep dev 2>/dev/null |sort |uniq |wc -l)
dev=$(fdisk -l |grep dev |grep -v -w sda | awk '{print $2}' |sed 's/://g' |grep dev 2>/dev/null|sort |uniq)
for i in `echo $dev`
do
dd if=/dev/zero of=${i} bs=1M count=10
parted -s $i -- mklabel gpt
parted -s $i -- mkpart primary 1 -1
partprobe
done
if [ $dev_num -eq 1 ]
then
/sbin/mkfs.ext4 -F -b 4096 -i 8192 -I 256 -m0 ${dev}1 >/dev/null
mkdir /mnt/root/data
echo "${dev}1 /data ext4 defaults 0 0 " >> /mnt/root/etc/fstab
else
for i in `echo $dev`
do
mkdir /mnt/root/data"$dev_which"
echo $i | grep "nvme" > /dev/null
if [ $? -eq 0 ]
then
echo "${i}p1 /data${dev_which} ext4 defaults 0 0 " >> /mnt/root/etc/fstab
/sbin/mkfs.ext4 -F -b 4096 -i 8192 -I 256 -m0 ${i}p1 > /dev/null &
dev_which=`expr $dev_which + 1`
else
echo "${i}1 /data${dev_which} ext4 defaults 0 0 " >> /mnt/root/etc/fstab
/sbin/mkfs.ext4 -F -b 4096 -i 8192 -I 256 -m0 ${i}1 > /dev/null &
dev_which=`expr $dev_which + 1`
fi
done
wait
fi
参考文档:http://storage.it168.com/a2018/0921/5045/000005045252.shtml
https://www.leiue.com/non-volatile-memory-express
https://blog.csdn.net/weixin_40343504/article/details/82386024 #nvme-cli命令
nvme list
nvme-cli smart-log /dev/nvme0 #读取硬盘nvme0n1的smart信息
nvme smart-log-add /dev/nvme0
root@ts140i:/home/pz/workloads/1m# nvme smart-log-add /dev/nvme0
Additional Smart Log for NVME device:nvme0 namespace-id:ffffffff
key normalized raw
program_fail_count : 100% 0
erase_fail_count : 100% 0
wear_leveling : 62% min: 1114, max: 1161, avg: 1134
end_to_end_error_detection_count: 100% 0
crc_error_count : 100% 0
timed_workload_media_wear : 100% 37.941%
timed_workload_host_reads : 100% 51%
timed_workload_timer : 100% 446008 min
thermal_throttle_status : 100% 0%, cnt: 0
retry_buffer_overflow_count : 100% 0
pll_lock_loss_count : 100% 0
nand_bytes_written : 100% sectors: 16185227
host_bytes_written : 100% sectors: 6405605