Dan*_*uus 7 boot kernel sata drivers
我正在运行 22 个磁盘设置,其中 19 个在 ZFS 阵列中,其中 15 个由连接到由sata_sil24
模块驱动的 SATA 控制器的三个端口倍增器支持。全速运行(SATA2,3 Gbps)时,操作非常古怪。简单的读取错误会使整个端口倍增器长时间处于痉挛状态,有时会产生非常糟糕的结果。使用内核参数引导libata.force=1.5G
以强制 SATA 控制器进入“传统”速度完全解决了端口倍增器的所有问题。事实是,我的 ZFS 池由 ICH10R 控制器上的快速缓存 SSD 支持。同一控制器上的另一个 SSD 保存系统。
否则libata.force=1.5G
立即大约100 MB刮胡子/秒掉我的固态硬盘的传输速率。对于根驱动器来说,这没什么大不了的,但对于 ZFS 缓存 SSD 来说,它是。与没有缓存驱动器相比,它有效地使整个 zpool 进行持续传输时更慢。随机访问和 fs 树查找,当然仍然受益。列出 的模块选项sata_sil24
,不存在这样的选项。
如何将libata.force=1.5G
参数传递给sata_sil24
模块支持的三个 SATA 控制器?
啊! 我发现!
在http://www.kernel.org/doc/Documentation/kernel-parameters.txt,它指出,
libata.force= [LIBATA] Force configurations. The format is comma
separated list of "[ID:]VAL" where ID is
PORT[.DEVICE]. PORT and DEVICE are decimal numbers
matching port, link or device. Basically, it matches
the ATA ID string printed on console by libata. If
the whole ID part is omitted, the last PORT and DEVICE
values are used. If ID hasn't been specified yet, the
configuration applies to all ports, links and devices.
If only DEVICE is omitted, the parameter applies to
the port and all links and devices behind it. DEVICE
number of 0 either selects the first device or the
first fan-out link behind PMP device. It does not
select the host link. DEVICE number of 15 selects the
host link and device attached to it.
The VAL specifies the configuration to force. As long
as there's no ambiguity shortcut notation is allowed.
For example, both 1.5 and 1.5G would work for 1.5Gbps.
The following configurations can be forced.
* Cable type: 40c, 80c, short40c, unk, ign or sata.
Any ID with matching PORT is used.
* SATA link speed limit: 1.5Gbps or 3.0Gbps.
* Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7].
udma[/][16,25,33,44,66,100,133] notation is also
allowed.
* [no]ncq: Turn on or off NCQ.
* nohrst, nosrst, norst: suppress hard, soft
and both resets.
* dump_id: dump IDENTIFY data.
If there are multiple matching configurations changing
the same attribute, the last one is used.
Run Code Online (Sandbox Code Playgroud)
因此,棘手的部分是找出哪个端口 X 和设备 Y (dmesg ataX.YY) 是哪个控制器和驱动器。我认为 - 该符号与 PORT[.DEVICE] 匹配,但也有 W:X:Y:Z 符号。我猜是ataX.YY :)
幸运的是,我上周刚刚手动完成了这个映射(试图识别一个引发痉挛的驱动器并重置主机控制器),所以我已经有了一个详尽的列表:) 我找不到任何从 sdX 到 ataX 的映射。 Y 或 W:X:Y:Z 列出的位置,所以我最终只是拔出 SATA 电缆并查看 /var/log/messages 中出现哪些 ataX.YY 消息;)
所以,在我的设置中,似乎我需要做
libata.force=1:1.5G,2:1.5G,3:1.5G
Run Code Online (Sandbox Code Playgroud)
一旦我的 ZFS 磨砂完成,我就必须尝试一下,然后回来报告:) 太棒了!希望这对其他人有帮助:)
归档时间: |
|
查看次数: |
13133 次 |
最近记录: |