使用PCIe 1.0-2.0总线升级旧服务器的磁盘子系统

为什么选择本文主题来升级磁盘子系统
显然,首先需要的是规则:

  1. 增加RAM。 这是一个显而易见的举动,以至于我什至都不认为有必要在主要文章中对此进行撰写
  2. 安装其他处理器,或将两个处理器替换为服务器插槽支持的最高效的版本。

对于具有内存的较旧服务器,通常可以以低廉的价格找到处理器。

在某些时候,他们自己服务器的任何所有者的问题都会变成升级或新服务器。

由于新服务器的价格现在可以以数百万卢布衡量,因此许多产品都在升级之路上。

对于成功的升级,使用折衷方案非常重要,这样一小笔费用(相对于新服务器的价格),我们就能获得显着的性能提升。

本文提供了服务器SSD PCI-E 2.0 x8的列表,它们现在便宜得多,显示了支持SSD缓存的RAID控制器,并且在SATA II接口上测试了SATA III SSD。

升级磁盘子系统的最明显方法是从HDD切换到SSD。 对于笔记本电脑和服务器都是如此。 在服务器上,唯一的区别可能是可以轻松地将RAID内置到RAID中。

的确,在旧服务器上可能没有任何SATA III端口,因此您必须替换或安装适当的控制器,这有一些微妙之处。

当然,有中间方法。

在SSD上缓存。


通常,此方法非常适合数据库,1C和任何随机访问。 速度确实加快了。 对于巨大的视频监视文件,此方法没有用。

LSI Raid控制器(IBM,DELL,CISCO,Fujtsu)


从92xx系列开始,LSI具有CacheCade 2.0技术,该技术使您几乎可以将任何SATA SSD用作RAID阵列缓存。 用于阅读和写作。 甚至通过缓存SSD来创建镜像。

使用品牌控制器,事情变得更加复杂。 对于IBM来说尤其如此。 您将需要从IBM大量购买CacheCade的密钥和SSD,因此将控制器更改为LSI并以低价购买硬件密钥更加容易。 软件密钥的成本明显高于硬件密钥。

Adaptec突袭控制器


Adaptec控制器具有MaxCache技术,该技术还允许您将SSD用作缓存。 我们对以字母Q结尾的控制器版本感兴趣。

Q控制器几乎可以使用任何SSD,而不仅仅是Adaptec提供的SSD。

  • 从5xxx开始,所有控制器都具有Hybrid raid支持。 这项技术的本质是,当其中有一个镜像驱动器(其中有SSD)时,总是使用SSD读取数据。
  • 5xxxQ,例如5805ZQ。 这些控制器支持MaxCache 1.0。 仅读取缓存。
  • 6xxQ,例如6805Q。 MaxCache 2.0。 读取和写入缓存。
  • 7xxQ,例如7805Q。 MaxCache 3.0。 读取和写入缓存。
  • 由于价格昂贵,用于升级目的的8xxQ几乎没有意义。

有关在Habré(控制器和OS)上缓存SSD的文章。

SSD上的软件技术缓存


我不会介绍这些技术。 现在几乎在所有操作系统中都支持它们。 我记得使用btrfs时,它会自动将读取请求转发到队列最短的设备-SSD。

SATA II上的SATA III SSD


由于不总是有机会和金钱来购买新的控制器,因此出现了一个问题,即SATA III SSD在过时的SATA II接口上的运行情况如何。

让我们做一点测试。 作为测试对象,我们将提供400GB SATA III SSD英特尔S3710。
随机读取,iops平均读取延迟,毫秒随机写,iops平均写入延迟,毫秒线性读取,MB / s线性写入,MB / s
SATA II212412135804282235
SATA III680730.468613920.52514462

用于速度测试的命令
fio --name LinRead --eta-newline=5s --filename=/dev/sda --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting fio --name LinWrite --eta-newline=5s --filename=/dev/sda --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting fio --name RandRead --eta-newline=5s --filename=/dev/sda --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting fio --name RandWrite --eta-newline=5s --filename=/dev/sda --rw=randwrite --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --iodepth=32 --direct=1 --numjobs=4 --runtime=60 --group_reporting 


如您所见,线性速度,IOPS,延迟之间的差异非常大,因此仅使用SATA III接口是有意义的,如果不是,则安装控制器。

公平地说,我会说在其他实验中,随机读写速度差异是微不足道的。 SATA II和SATA III之间可能发生了如此大的IOPS差异,这是因为我使用了某种极为不成功的SATA II控制器或一个存在一些错误的驱动程序。

但是,事实是您需要检查SATA II的速度-突然您有了相同的制动控制器。 在这种情况下,需要过渡到SATA III控制器。

PCI-e 2.0或1.0上的PCIe SSD


如您所知,最快的SSD是PCI-e NVMe,不限于SAS或SATA。

但是,在安装现代PCI-e SSD时,必须考虑到这样一个事实,即它们中的大多数仅使用4条PCI-e线路,通常为PCI-e 3.0或3.1。

现在让我们看一下PCI-e总线速度表。
PCI Express带宽,GB /秒
年份
释放
版本号
PCI Express
编码方式
速度
传输方式
X行带宽
×4×8×16
2002年1.08b / 10b
0.50 GB /秒1.0 GB /秒2.0 GB /秒4.0 GB /秒
2007年2.08b / 10b
1.0 GB /秒2.0 GB /秒4.0 GB /秒8.0 GB /秒
20103.0128b / 130b
1.97 GB /秒3.94 GB /秒7.88 GB /秒15.8 GB /秒
在PCI-e 2.0总线上安装PCI 3.0 x4 SSD时,它将在相同数量的线路上工作,但速度明显降低。 存在一个问题,即现代PCI-e SSD的线性速度超过了PCI-e 2.0总线(尤其是PCI-e 1.0)的带宽。

M.2 SSD和PCI-e适配器

当我们以10美元的价格购买适配器并将M.2 SSD放入服务器时,可以有很好的升级选项,但是对于良好的SSD来说,速度也会降低(尤其是在PCI-e 1.0上),并且M.2 SSD并不总是很容易获得适用于服务器负载:由于廉价型号上装有SLC缓存,因此具有很高的耐用性,电源保护和高速特性的稳定性。

因此,此方法仅适用于具有PCI-e 2.0总线且忙于非关键性工作的服务器。

PCI-E 2.0 x8固态硬盘


最经济的逻辑升级是将PCI-E 2.0 x8 SSD用于具有PCI-e 1.0总线(带宽最高2 GB / s)和PCI-e 2.0(最高4 GB / s)的服务器。

现在,可以在各种市场和在线拍卖中(包括在俄罗斯),以非常便宜的价格购买这种服务器SSD。

我已经整理了一张过时的SSD表格,可以完美地超频您的旧服务器。 在表的最后,我添加了几个具有PCI-E 3.0 x8接口的SSD。 突然之间,您很幸运,而且价格合理。

职称结核病PBWPCI-E4k读取IOPS,K4k写入iops,K读取,MB / s写入,MB /秒
Fusion-io ioDrive II DUO MLC2.432.52.0 x848049030002500
SANDISK FUSION IOMEMORY SX350-13001.342.0 x822534528001300
SANDISK FUSION IOMEMORY PX600-13001.3162.0 x823537527001700
SANDISK FUSION IOMEMORY SX350-16001.65.52.0 x827037528001700
闪迪Fusion ioMemory SX300-32003.2112.0 x834538527002200
闪迪Fusion ioMemory SX350-32003.2112.0 x834538528002200
SANDISK FUSION IOMEMORY PX6002.6322.0 x835038527002200
华为ES3000 V21,68.762.0 x839527015501100
华为ES3000 V23.217.522.0 x877023031002200
EMC XtremSF2.22.0 x834011027001000
HGST Virident FlashMAX II2.2332.0 x835010327001000
HGST Virident SSD FlashMAX II4.810.12.0 x8269512600900
HGST Virident FlashMAX III2.27.12.0 x85315927001400
戴尔美光P420M1.49.22.0 x8750953300630
美光P420M1.49.22.0 x8750953300630
HGST SN2601.610/253.0 x8120020061702200
HGST SN2603.217.523.0 x8120020061702200
英特尔P36083.217.53.0 x88508045002600
金士顿DCP10003.22.783.0 x8100018068006000
甲骨文F3203.229日3.0 x875012055001800
三星PM17253.229日3.0 x8100012060002000
三星PM1725a3.229日3.0 x8100018062002600
三星PM1725b3.218岁3.0 x898018062002600

在这些SSD中,独立的Fusion ioMemory。 Fusion的研究主管是史蒂夫·沃兹尼亚克Steve Wozniak) 。 然后SanDisk以12亿美元收购了这家公司。 一次,它们的价格从每张50,000美元起。 现在,您可以以几百美元的新价格购买它们,以购买容量为1TB或更高容量的驱动器。

如果仔细查看该表,您会发现它们每条记录的IOPS数量很高,几乎等于每次读取的IOPS数量。 鉴于目前的价格,我认为这些固态硬盘值得关注。

是的,它们具有以下功能:

  1. 它们不能启动。
  2. 需要驱动程序才能使用。 驱动程序几乎具有所有功能,但是在最新版本的Linux下,必须对其进行编译。
  3. 最佳扇区大小为4096字节。 (也支持512)
  4. 最坏情况下的驱动程序会消耗大量RAM(扇区大小为512字节)
  5. 工作速度取决于处理器的速度,因此最好采用节能技术。 这既是加也是减,因为在功能强大的处理器的帮助下,该设备的工作速度甚至比规格中指示的还要快。
  6. 需要良好的冷却。 对于服务器,这应该不是问题。
  7. 不建议在ESXi中使用,因为ESXi首选具有512N扇区的磁盘,这可能导致驱动程序占用大量内存。
  8. 通常,达不到SanDisk最新驱动程序级别的供应商支持这些SSD的品牌版本(2019年3月)

与相当现代的服务器固态硬盘Intel P3700 PCI-E 3.0 x8相比,我进行了Fusion ioMemory测试(后者的成本比具有类似容量的Fusion高出4倍)。 同时,您可以看到x4总线将速度降低了多少。
融合PX600 1.3TB PCI-E 2.0 x8英特尔P3700 1.6TB PCI-E 3.0 x4

是的,Intel P3700独特地降低了线性读取速度。 护照应该为2800 MB / s,而我们为1469 MB / s。 尽管通常可以说,如果可以以合理的价格获得它们,则可以使用PCI-e 2.0总线使用服务器SSD PCI-E 3.0 x4。

结论


可以通过使用SSD来重新发现具有PCI-E 1.0或2.0总线的旧服务器的磁盘子系统,该SSD可以利用8条PCI-E线路提供高达4GB / s(PCI-E 2.0)或2GB / s(PCI-E)的吞吐量。 1.0)。 最经济的方式是使用过时的PCI-E 2.0 SSD。

与购买用于LSI控制器的CacheCade密钥或用Q版本替换Adaptec控制器有关的折衷选项也很容易实现。

好吧,一种完全不合常规的方法是购买(搜集)SATA III控制器,以使SSD能够全速工作并以所需的速度移动它们。

Source: https://habr.com/ru/post/zh-CN454222/


All Articles