备注:ORICO即奥睿科,深圳市元创时代科技有限公司旗下品牌。他们主要专注于3C数码周边产品。ORICO旗下拥有完整的产品研发,模具制造,注塑,五金冲压、生产组装、市场推广服务专业产品研发生产产业链,能实时、有效、快速地提供符合用户需求的创新型产品。其产品包括存储、网络、WIFI、蓝牙、USB周边、电脑、智能手机等产品,同时还为业界知名企业提供OEM/ODM服务。
最近,ORICO(奥睿科)给我寄了一个 USB 4.0 M.2 NVMe SSD 硬盘盒样品用来评测。因为在此之前我从来没有在测评中加入快速 USB 存储性能的测试选项,所以这个样品真的算很及时,这次可以做相关的评测了。在这篇文章中,我会检查硬件、展示如何安装 NVMe SSD,并在带有 USB 4.0 端口的 UP Xtreme i11 mini PC 中测试其性能。
ORICO USB 4.0 M.2 SSD 外壳规格和拆箱
![ORICO M.2 NVMe SSD 外壳规格](https://cnx-software.cn/wp-content/uploads/2022/07/ORICO-M.2-NVMe-SSD-%E5%A4%96%E5%A3%B3%E8%A7%84%E6%A0%BC-720x456.jpg)
我收到的型号是 ORICO M234C3-U4,带有的是玫瑰金铝制外壳(107x50x17mm),支持 M.2 M-Key 和 B + M Key 2230、2242、2260、2280 SSD(这里稍后我会做详细介绍),而且可以通过其 USB 4.0 端口提供高达 40 Gbps 的速率。
![ORICO M.2 SSD 硬盘盒](https://cnx-software.cn/wp-content/uploads/2022/07/ORICO-M.2-SSD-%E7%A1%AC%E7%9B%98%E7%9B%92-720x497.jpg)
该设备配有一根 USB Type-C 转 USB Type-C/Type-A 电缆、一个散热垫、一个散热器、两个螺钉和一本多语言的用户手册。
![ORICO 的金属外壳](https://cnx-software.cn/wp-content/uploads/2022/07/ORICO-%E7%9A%84%E9%87%91%E5%B1%9E%E5%A4%96%E5%A3%B3-720x391.jpg)
对了,要注意设备只有一个USB Type-C端口。
M.2 NVMe SSD 安装
接下来我将使用一个 256GB 的 Apacer M.2 2280 PCIe Gen3x4 SSD(AS2280P4),它可以支持1,800 MB / s的读取速度和1,100 MB / s的写入速度。1,800MB / s相当于约14.4 Gbps,虽然还不是很接近40GAbps,但仍然高于USB 3.1 Gen 2端口的10Gbps了,现在我们看看它能不能否能达到这个速度。
SSD上带有贴牌,所以我认为最好在安装散热垫之前将这个贴牌取下来,这样的散热效果会更好一点。不过取下来也会有一个问题:这个贴牌是用作保修标签的, 标签拆掉保修就无效了,所以我保留了它。记住在将散热垫放在 SSD 上之前,要记得取下塑料薄膜。
下一步就是将散热器夹在散热垫的顶部。
然后打开只有单个螺钉固定的外壳。
![M234C3-U4-M.2-NVMe 硬盘盒](https://cnx-software.cn/wp-content/uploads/2022/07/M234C3-U4-M.2-NVMe%E7%A1%AC%E7%9B%98%E7%9B%92-720x511.jpg)
虽然规格中提到了ORICO M.2 NVMe SSD可以支持M.2 2230、2242、2260和2280 SSD,但尺寸较小的SSD其实没有安装孔,因此M.2 2280 NVMe SSD是唯一一个比较实用的选择。
![M234C3-U4-M.2-NVMe硬盘盒](https://cnx-software.cn/wp-content/uploads/2022/07/M234C3-U4-M.2-NVMe%E7%A1%AC%E7%9B%98%E7%9B%92-1-720x511.jpg)
现在可以将SSD插入硬盘盒了,而且使用他们提供的固定器将其固定好,然后再将盖子放回原位。
Ubuntu 20.04 中的 ORICO USB 4.0 M.2 SSD 硬盘盒
![Orico USB 4.0 M.2 NVMe-SSD 硬盘盒评测](https://cnx-software.cn/wp-content/uploads/2022/07/Orico-USB-4.0-M.2-NVMe-SSD-%E7%A1%AC%E7%9B%98%E7%9B%92%E8%AF%84%E6%B5%8B-720x480.jpg)
上图展示的是连接在运行了 Ubuntu 20.04 UP Xtreme i11 mini PC 上 USB 4.0 Type-C 端口的USB 4.0 硬盘盒。即使在没有运行的状态下,这个金属外壳摸起来也挺热,不过这算是一个好兆头,这意味着它正在冷却SSD。
插入设备后,内核日志中有一个相当长的输出,输出的结尾如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[19177.462958] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.13 [19177.462960] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [19177.462961] usb usb5: Product: xHCI Host Controller [19177.462963] usb usb5: Manufacturer: Linux 5.13.0-48-generic xhci-hcd [19177.462964] usb usb5: SerialNumber: 0000:17:00.0 [19177.463074] hub 5-0:1.0: USB hub found [19177.463084] hub 5-0:1.0: 2 ports detected [19177.463190] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.13 [19177.463192] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [19177.463193] usb usb6: Product: xHCI Host Controller [19177.463194] usb usb6: Manufacturer: Linux 5.13.0-48-generic xhci-hcd [19177.463196] usb usb6: SerialNumber: 0000:17:00.0 [19177.463278] hub 6-0:1.0: USB hub found [19177.463286] hub 6-0:1.0: 2 ports detected [19177.473185] nvme nvme0: missing or invalid SUBNQN field. [19178.773047] nvme nvme0: allocated 64 MiB host memory buffer. [19178.784324] nvme nvme0: 8/0/0 default/read/poll queues [19184.657901] thunderbolt 0-1: new device found, vendor=0x8086 device=0x12 [19184.657909] thunderbolt 0-1: Intel USB4.0 SSD |
我们有两个新的USB集线器(总线0006和005)和一个看起来还不错的 Intel USB4.0 SSD,但它们其实也是 USB 3.0 和 USB 2.0 根集线器。
1 2 3 4 5 6 7 8 |
$ lsusb Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 1934:1202 Feature Integration Technology Inc. (Fintek) Fintek U2U F81532 AA66 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
而且,当我用 lsusb 查看数据时,没有 USB 4.0 端口,也没有 40000M 之类的东西:
1 2 3 4 5 6 7 8 |
$ sudo lsusb -t /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M |__ Port 9: Dev 2, If 0, Class=Vendor Specific Class, Driver=f81534, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M |
这真的很奇怪。因此,我可能需要使用 thunderbolt / usb4.0 特定工具来检查:
1 |
sudo apt install thunderbolt-tools |
现在我可以获得更多信息了,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ tbtadm devices 0-1 Intel USB4.0 SSD authorized not in ACL $ tbtadm topology Controller 0 ├─ Details: │ ├─ Name: Unknown device, Unknown vendor │ └─ Security level: SL0 (none) │ └─ USB4.0 SSD, Intel └─ Details: ├─ Route-string: 0-1 ├─ Authorized: Yes ├─ In ACL: No └─ UUID: 00166a50-7dc4-8680-ffff-ffffffffffff |
不过目前并没有显示任何关于速度的信息,只是显示检测到了一个 Thunderbolt 设备。SSD 驱动器也被正确检测到了:
1 2 3 4 5 |
$ inxi -D Drives: Local Storage: total: 357.72 GiB used: 49.11 GiB (13.7%) ID-1: /dev/nvme0n1 vendor: Apacer model: AS2280P4 256GB size: 238.47 GiB ID-2: /dev/sda vendor: Transcend model: TS128GSSD452K2 size: 119.24 GiB |
没有发现挂载情况,所以我在修改/etc/pmount.allow文件后使用了pmount来解决错误“device /dev/nvme0n1 is not removable(设备 /dev/nvme0n1 不可移除)”。
现在我们看看使用 iozone 会具有什么样的性能:
1 2 3 4 5 6 7 8 9 |
devkit@UPX-i11:/media/nvme0n1$ sudo iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.489 $ Compiled for 64 bit mode. Build: linux-AMD64 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 1115937 1114626 1155245 1154974 1155950 1115576 |
我重复了三次基准测试,每次的结果都大致相同。连续读写、随机读写的结果都在同一范围内,大约是1100MB/s,这可能说明了一些问题。这个数字也接近10 Gbps,因此确实可能存在 10Gbps USB连接的限制,正如lsusb -t命令所报告的。
为了进行比较,我还运行了Hardkernel使用的fio命令来测试ODROID-M1的NVME SSD性能:
1 2 |
devkit@UPX-i11:/media/nvme0n1$ sudo fio --filename=/dev/nvme0n1 --direct=1 --rw=read --bs=1024k --ioengine=libaio --iodepth=64 --size=4G --runtime=10 --numjobs=4 --group_reporting --name=fio-rand-read-sequential --eta-newline=1 --readonly | grep READ READ: bw=1204MiB/s (1263MB/s), 1204MiB/s-1204MiB/s (1263MB/s-1263MB/s), io=12.2GiB (13.2GB), run=10417-10417msec |
1,263MB/s比iozone发现的1,128MB/s读取速度高出了大约12%,但仍远低于SSD宣传的1800MB/s,而1,263 MB/s恰好是10104 Mbps。
看起来UP Xtreme i11可能是这里的问题关键了,因为usb4.0端口在宣传的时候说了具有“usb3.10”功能,最大速度是10000Mbit / s:
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo lshw | grep -A10 -i usb .... -usbhost:1 product: xHCI Host Controller vendor: Linux 5.13.0-48-generic xhci-hcd physical id: 1 bus info: usb@4 logical name: usb4 version: 5.13 capabilities: usb-3.10 configuration: driver=hub slots=4 speed=10000Mbit/s |
如果我理解正确,这应该是正常现象,因为我们的速度限制为了 10 Gbps。之后我会仔细检查、并与研扬科技(AAEON)了解确定。
查看电路板的组件
当我安装 SSD 时,我没有完全进行拆卸。因此,我现在要拆开看看能不能找到该硬件相关的更多详细信息。
![ORICO USB 4.0 M.2 NVMe SSD电路板组件](https://cnx-software.cn/wp-content/uploads/2022/07/ORICO-USB-4.0-M.2-NVMe-SSD%E7%94%B5%E8%B7%AF%E6%9D%BF%E7%BB%84%E4%BB%B6-720x376.jpg)
上图中我们可以看到有一个芯片上面标着“Intel X212TC27 JHL7440”,这是一个Intel JHL744 Thunderbolt 3控制器,所以应该能够达到40 Gbps的速度;还有一个JMS583芯片,听起来是不是很熟悉,因为“USB 3.1 Gen 2 to PCIe NVMe Gen3 x2”多年来在CNX Software所提及的几个产品中出现过多次。其实在40 Gbps设备中使用10 Gbps芯片非常奇怪,但这可能是为了向后兼容,如果我将硬盘连接到笔记本电脑的 USB 3.0 端口,可能就会使用到 JMS583 芯片。
本文我使用评测的硬盘盒型号是40Gbps“USB 4.0”,它在亚马逊上的价格是 169.99 美元;20Gbps “USB 4.0”型号的硬盘盒价格是 54.99 美元、10Gbps“USB 4.0”型号硬盘盒的售价仅为 29.99美元。因此,如果打算在亚马逊上购买此商品,要注意仔细检查你的USB 4.0/Thunderbolt端口能不能支持40 Gbps,也要注意看以下自己设备的驱动器速度,避免因买错型号多付钱。
从一位从事USB 4工作的业内人士处我得知,此硬盘盒与USB 4并没有太大关系,该产品只是在硬盘盒里面结合了一个Thunderbolt 3并回退到了USB 3.2 Gen 1,详细信息你们可以参考英文原文评论区。
![](https://cnx-software.cn/wp-content/uploads/2021/05/cnx-nicholas.jpg)
文章翻译者:Nicholas,技术支持工程师、瑞科慧联(RAK)高级工程师,深耕嵌入式开发技术、物联网行业多年,拥有丰富的行业经验和新颖独到的眼光!