标签: nvme

了解 NVMe 存储和硬件要求

我对基于 PCIe 的存储的最新发展感到有些困惑,特别是因为它与 NVMe 规范及其硬件兼容性有关。

虽然我在磁盘外形尺寸的SSD和一些更高端的 PCIe 设备(如Fusion-io )方面进行了广泛的工作,但我处于不了解 NVMe 基础知识的位置,并且正在寻求有关服务器类型的说明支持硬件。

例如,Supermicro这样的广告文案令人困惑。

...高性能 CPU PCI-E Gen3 直接连接到 NVMe 设备。

我正在处理基于 Linux 的软件定义存储解决方案,并希望使用备用 Fusion-io 设备,该设备使用专有驱动程序(向操作系统显示/dev/fioX设备名称)。

当我向供应商寻求帮助时,得到的答复是:

“fioX”设备命名已被新的 NVMe 设备接口淘汰。这意味着我们购买过时的适配器来增加其他人没有要求的支持。

这似乎有点苛刻。我不认为 Fusion-io 适配器已经过时。

我在网上找到的稀缺信息似乎暗示 NVMe 仅支持绝对最新一代的服务器硬件(英特尔 E5-2600v3 CPU 和 PCI 3.0 芯片组?)。但我无法验证这一点。

这是真的?

采用率是多少?这是工程师在他们的设计决策中考虑的事情,还是我们在谈论尚未完全形成的“标准”?

如果 NVMe适用于市场上的最新系统,那么(向供应商)建议我的旧系统的安装基础不能与 NVMe 兼容是否合理,因此值得添加我请求的支持?

hardware storage ssd fusionio nvme

17
推荐指数
1
解决办法
1万
查看次数

为什么 nvme 有字符设备和块设备?

我正在尝试了解 nvme 的配置。

但我不明白为什么有两个设备:nvme 块和 nvme 字符设备:

crw------- 1 root root 243, 0 Dec 12 16:09 /dev/nvme0
brw-rw---- 1 root disk 259, 0 Jan 14 01:30 /dev/nvme0n1
Run Code Online (Sandbox Code Playgroud)

每个的目的是什么或何时使用它们?

device block-device nvme

12
推荐指数
2
解决办法
7622
查看次数

在 Ubuntu 16.04 中的 AWS EC2 上自动挂载 SSD 实例存储

我在 c5d.2xlarge 硬件上使用来自 AWS 的 Ubuntu 16.04 EC2。它配备了一个 200 GB 的 SSD,称为/dev/nvme1n1.

我可以使用以下方法安装此驱动器:

$ sudo mkfs.ext4 -E nodiscard /dev/nvme1n1

$ sudo mount -o discard /dev/nvme1n1 /home/ubuntu
Run Code Online (Sandbox Code Playgroud)

为了尝试让它自动挂载,我还添加了/etc/fstab

/dev/nvme1n1 /home/ubuntu/spda ext4 defaults,users,nofail,discard 0 2
Run Code Online (Sandbox Code Playgroud)

我的问题:

  • 当我停止/启动实例时,它似乎不会自动挂载。我不知道如何修复/调试。

  • 当我手动挂载它时,创建的文件夹属于根目录,我无法以用户身份访问它。

我的目标是能够启动实例并且已经安装了驱动器并且用户可以访问。

ssd amazon-ec2 amazon-web-services nvme ubuntu-16.04

10
推荐指数
1
解决办法
3745
查看次数

使用 FIO 了解 ZFS NVMe 基准测试

我正在尝试对全 NVMe ZFS 磁盘阵列进行基准测试。我熟悉极快的基准测试结果,由于高效的 ZFS 缓存,磁盘活动非常少。我遇到了相反的情况:大量的 ZFS 磁盘活动,但 FIO 仅显示很少的带宽。我该如何解释这种行为?

Zpool iostat -v 1仅显示一秒,但每秒输出一致:16 至 20 GiB/s 写入带宽

                capacity     operations     bandwidth
pool          alloc   free   read  write   read  write
------------  -----  -----  -----  -----  -----  -----
my_pool-10    1.92T  19.0T      2   155K  95.7K  16.9G
  mirror-0     329G  3.16T      0  26.2K  3.99K  2.84G
    nvme2n1       -      -      0  13.2K      0  1.42G
    nvme3n1       -      -      0  13.1K  3.99K  1.42G
  mirror-1     328G  3.16T      0  26.0K      0  2.83G
    nvme4n1       -      -      0  13.0K      0  1.41G
    nvme5n1       - …
Run Code Online (Sandbox Code Playgroud)

zfs benchmark nvme fio

9
推荐指数
1
解决办法
1365
查看次数

为 SQL FCI 提供高达 2M IOPS 的 S2D 设置

我们即将部署共享存储研究以实现超快速存储以实现 Microsoft SQL Server 故障转移集群 (FCI)。到目前为止,项目开始时,我们将从 8k 块的 500K IOPS 开始,大约 70r/30w 模式。此外,由于 SQL Server 不断增长的期望,我们希望能够在一年左右的时间内将 pefromance 提高到 2M IOPS(对于相同的模式)。

出于该项目的目的,我们将部署 Microsoft Storage Spaces Direct (S2D) 的 4 节点集群。至于硬件,我们已经拥有 2 台戴尔机架式服务器 R730xd,配备 2 台 E5-2697 和 512GB 内存,我们准备再购买 2 台。

至于存储,微软建议使用 NVMe 或 NVMe + SSD 以获得最大性能(来源)。因此,经过一番研究,三星 SSD 很适合搭配。https://www.starwindsoftware.com/blog/benchmarking-samsung-nvme-ssd-960-evo-m-2 http://www.storagereview.com/samsung_960_pro_m2_nvme_ssd_review

我们考虑的设置如下:每个 S2D 主机 1 个三星 960 EVO NVMe + 4 个三星 PM863 SSD。

使用三星 960 EVO NVMe 和三星 PM863 的 S2D 实现能否为 SQL FCI 提供 500k?

编辑: …

ssd shared-storage nvme windows-server-2016 sql-server-2016

8
推荐指数
1
解决办法
759
查看次数

X9DR3-F 上的 NVMe 驱动器性能意外不佳

我遇到了服务器中 NVMe SSD 条带性能异常低下的情况。硬件如下:

  • 主板:X9DR3-F
  • CPU:双E5-2650v2
  • 内存:128GB DDR3-1333 UDIMM (16x8GB)
  • NVMe 驱动器:4 个 MZVLB256HBHQ-000L7,通过带有分叉通道的 PCIe 扩展器

lspci -nvv显示了设备的 8GT/s x4 链路,显示它在 PCIe 3.0 上运行,就像驱动器想要的那样: LnkSta: Speed 8GT/s, Width x4。该驱动器的基准测试表明它能够以 1.4GB/s 左右的写入速度运行。

当我尝试对驱动器进行顺序写入时,我获得了大约三分之一的性能。下面显示了写入期间的 619MB/s,然后又暂停了 50 秒,大概是在数据完全刷新到磁盘时。

$ sudo dd if=/dev/zero of=/dev/nvme1n1 bs=16M count=1k status=progress
16726884352 bytes (17 GB, 16 GiB) copied, 27 s, 619 MB/s
1024+0 records in
1024+0 records out
17179869184 bytes (17 GB, 16 GiB) copied, 71.8953 s, 239 MB/s
Run Code Online (Sandbox Code Playgroud)

假设这只是我的综合基准与其他人的综合基准相比的一些怪癖,我将所有 4 个设备放入 MD RAID-0 中并再次尝试:

$ …
Run Code Online (Sandbox Code Playgroud)

raid performance nvme

8
推荐指数
2
解决办法
1354
查看次数

如何解释这些fio带宽结果?

fio使用以下设置在新服务器上运行了一些测试:

  • 1 个三星 PM981a 512GB M.2 NVMe 驱动器。
    • Proxmox 在 root 上与 ZFS 一起安装。
    • 创建了 1 个具有 30GB 空间并安装了 Debian 10 的虚拟机。
  • 6 个 Intel P4510 2TB U.2 NVMe 驱动器通过 OCuLink 连接到 6 个专用 PCIe 4.0 x4 通道。
    • 直接连接到单个虚拟机。
    • 在虚拟机中配置为 RAID10(3 个镜像条带化)。
  • 主板/CPU/内存:华硕KRPA-U16 / EPYC 7302P / 8x32GB DDR4-3200

这些磁盘的顺序读取速度高达 3,200 MB/s。从理论角度来看,最大带宽应为 19.2 GB/s。

fio在 ZFS RAID上运行时numjobs=1,我得到的结果范围为 ~2,000 - 3,000 MB/s(在没有 ZFS 或任何其他开销的情况下进行测试时,例如,在运行 Crystal Disk Mark 时,磁盘能够达到完整的 3,200 MB/s)在直接安装在其中一个磁盘上的 Windows 中):

fio --name=Test --size=100G …
Run Code Online (Sandbox Code Playgroud)

zfs storage nvme

6
推荐指数
1
解决办法
1880
查看次数

在 mdadm RAID10 之上使用 LUKS 的写入性能比没有使用 LUKS 时差 5 倍

我有很多 NVMe 磁盘的服务器。我正在fio使用以下方法测试磁盘性能:

fio --name=asdf --rw=randwrite --direct=1 --ioengine=libaio --bs=16k --numjobs=8 --size=10G --runtime=60 --group_reporting

对于单个磁盘,LUKS 对性能影响不大。

在此处输入图片说明

我尝试mdadmraid10+ 一个 XFS 文件系统中使用6 个磁盘。它表现良好。

在此处输入图片说明

但是当我在 mdadm 设备上创建一个 LUKS 容器时,我得到了糟糕的性能:

在此处输入图片说明

回顾一下:

  • 6 盘mdadmRAID10 + XFS = 正常性能的 116%,即与单盘 + XFS 相比,写入吞吐量和 IOPS提高16%
  • 6 盘mdadmRAID10 + LUKS + XFS = 正常性能的 33%,即与单盘 + XFS 相比,写入吞吐量和 IOPS67%

在所有其他场景中,我没有观察到 LUKS 和非 LUKS 之间的这种性能差异。这包括 LVM 跨越、条带化和镜像。换句话说,mdadm具有 6 个磁盘的 RAID10(我理解这是跨越 3 个 2 磁盘镜像)、一个 …

raid mdadm luks nvme fio

6
推荐指数
0
解决办法
796
查看次数

10G 网络上的写入速度非常慢(NVME 驱动器)

搭建实验实验室集群,通过10G光纤连接接收数据写入速度为本地写入速度的10%

测试两台相同机器之间的传输速度;iperf3显示良好的内存到内存速度为9.43Gbits/s。磁盘(读取)到内存传输的速度(9.35Gbit/s):

test@rbox1:~$ iperf3 -s -B 10.0.0.21

test@rbox3:~$ iperf3 -c 10.0.0.21 -F /mnt/k8s/test.3g 
Connecting to host 10.0.0.21, port 5201
        Sent 9.00 GByte / 9.00 GByte (100%) of /mnt/k8s/test.3g
[  5]   0.00-8.26   sec  9.00 GBytes  9.35 Gbits/sec
Run Code Online (Sandbox Code Playgroud)

但是发送超过 10G 的数据并写入另一台机器上的磁盘要慢一个数量级:

test@rbox1:~$ iperf3 -s 10.0.0.21 -F /tmp/foo -B 10.0.0.21

test@rbox3:~$ iperf3 -c 10.0.0.21
Connecting to host 10.0.0.21, port 5201
[  5] local 10.0.0.23 port …
Run Code Online (Sandbox Code Playgroud)

optimization fiber 10gbethernet linux-networking nvme

6
推荐指数
1
解决办法
216
查看次数

AWS:无法挂载我恢复的卷(EBS 快照)

我从 AWS Backup 恢复了 EBS 卷并将其附加到新的 EC2 实例。当我lsblk可以在名字下看到它时/dev/nvme1n1

\n

更具体地说,输出lsblk是:

\n
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT\nloop0         7:0    0   25M  1 loop /snap/amazon-ssm-agent/4046\nloop1         7:1    0 55.4M  1 loop /snap/core18/2128\nloop2         7:2    0 61.9M  1 loop /snap/core20/1169\nloop3         7:3    0 67.3M  1 loop /snap/lxd/21545\nloop4         7:4    0 32.5M  1 loop /snap/snapd/13640\nloop5         7:5    0 55.5M  1 loop /snap/core18/2246\nloop6         7:6    0 67.2M  1 loop /snap/lxd/21835\nnvme0n1     259:0    0    8G  0 disk \n\xe2\x94\x94\xe2\x94\x80nvme0n1p1 259:1    0    8G  0 part /\nnvme1n1     259:2    0 …
Run Code Online (Sandbox Code Playgroud)

linux mount amazon-ebs block-device nvme

6
推荐指数
0
解决办法
923
查看次数