kariaの日記 @ Alice::Diary

ノリツッコミの鳩子がはてなブログ書いちゃうよ

Ubuntu14.04でHDDが7台以上認識しない場合の対処法

ニッチすぎる記事。

HDDの容量がとにかく足らなすぎるのでRAID6のマシンでもりもりHDDを追加していったところ、7台目に差し掛かったところでどうも認識しないという症状に遭遇した。構成は以下。

「6個までしか」というところでまず思い当たったのは以下のマザーボードのスペック。

チップセット:

6 x SATA 6Gb/s対応コネクター(SATA3 0~5)を搭載し、6台の SATA 6Gb/s対応機器をサポート
RAID 0, RAID 1, RAID 5, およびRAID 10をサポート

Marvell® 88SE9172チップ:

2 x SATA 6Gb/s対応コネクター(GSATA3 6/7)と2ポートのeSATA 6Gb/s対応コネクターをバックパネルに搭載し、2台のSATA 6Gb/s対応機器をサポート
* GSATA3 6, 7コネクターとeSATAコネクターの同時使用はできません。
RAID 0 および RAID 1をサポート

チップセット側のSATAコネクタから優先して使っていたので、ちょうど6個ということは、もしかしてチップセット側のSATAコネクタしか認識しないのでは?と思って、試しにPCI Expressに刺さるタイプのSATA拡張カードを買ってみたものの、これも認識しない。

というのが昨日まで3ヶ月ぐらい悩んでいた話で、今日ふと思い立ってMarvell 88SE9172側のSATAを認識するかどうか切り分けしてみると、どうやらIntelチップセット側だろうがMarvell側だろうが、Ubuntu側で認識はしてるらしいことがわかった(6個を超えた分のどれか1つ認識しない)。起動時に一瞬エラーメッセージらしき文言が見えるけど、起動後にdmesgを漁ってみても見当たらない。これはやっかいだ……。

で、試しにHDDを1個抜いた状態で、起動中にSATAコネクタを接続するという荒技をやってみたところ、 /var/log/syslog に以下の出力があった。

Oct 30 16:29:15 yuno02 kernel: [  384.869837] ata7: exception Emask 0x10 SAct 0x0 SErr 0x4050000 action 0xe frozen
Oct 30 16:29:15 yuno02 kernel: [  384.869846] ata7: irq_stat 0x80400040, connection status changed
Oct 30 16:29:15 yuno02 kernel: [  384.869852] ata7: SError: { PHYRdyChg CommWake DevExch }
Oct 30 16:29:15 yuno02 kernel: [  384.869864] ata7: hard resetting link
Oct 30 16:29:15 yuno02 kernel: [  384.878375] dmar: DRHD: handling fault status reg 2
Oct 30 16:29:15 yuno02 kernel: [  384.878389] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:15 yuno02 kernel: [  384.878389] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:16 yuno02 kernel: [  385.615531] dmar: DRHD: handling fault status reg 2
Oct 30 16:29:16 yuno02 kernel: [  385.615545] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:16 yuno02 kernel: [  385.615545] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:16 yuno02 kernel: [  385.762921] ata7: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
Oct 30 16:29:16 yuno02 kernel: [  385.763483] dmar: DRHD: handling fault status reg 3
Oct 30 16:29:16 yuno02 kernel: [  385.763496] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:16 yuno02 kernel: [  385.763496] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:16 yuno02 kernel: [  385.763510] ata7.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
Oct 30 16:29:21 yuno02 kernel: [  390.761108] ata7: hard resetting link
Oct 30 16:29:21 yuno02 kernel: [  390.777628] dmar: DRHD: handling fault status reg 2
Oct 30 16:29:21 yuno02 kernel: [  390.777633] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:21 yuno02 kernel: [  390.777633] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:21 yuno02 kernel: [  391.105505] dmar: DRHD: handling fault status reg 2
Oct 30 16:29:21 yuno02 kernel: [  391.105518] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:21 yuno02 kernel: [  391.105518] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:21 yuno02 kernel: [  391.252936] ata7: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
Oct 30 16:29:21 yuno02 kernel: [  391.253477] dmar: DRHD: handling fault status reg 3
Oct 30 16:29:21 yuno02 kernel: [  391.253490] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:21 yuno02 kernel: [  391.253490] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:21 yuno02 kernel: [  391.253513] ata7.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
Oct 30 16:29:21 yuno02 kernel: [  391.253523] ata7: limiting SATA link speed to 3.0 Gbps
Oct 30 16:29:26 yuno02 kernel: [  396.251113] ata7: hard resetting link
Oct 30 16:29:26 yuno02 kernel: [  396.267733] dmar: DRHD: handling fault status reg 2
Oct 30 16:29:26 yuno02 kernel: [  396.267744] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:26 yuno02 kernel: [  396.267744] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:27 yuno02 kernel: [  396.595532] dmar: DRHD: handling fault status reg 2
Oct 30 16:29:27 yuno02 kernel: [  396.595545] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:27 yuno02 kernel: [  396.595545] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:27 yuno02 kernel: [  396.742945] ata7: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
Oct 30 16:29:27 yuno02 kernel: [  396.743485] dmar: DRHD: handling fault status reg 3
Oct 30 16:29:27 yuno02 kernel: [  396.743497] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:27 yuno02 kernel: [  396.743497] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:27 yuno02 kernel: [  396.743522] ata7.00: failed to IDENTIFY (INIT_DEV_PARAMS failed, err_mask=0x80)
Oct 30 16:29:32 yuno02 kernel: [  401.741123] ata7: hard resetting link
Oct 30 16:29:32 yuno02 kernel: [  401.757721] dmar: DRHD: handling fault status reg 2
Oct 30 16:29:32 yuno02 kernel: [  401.757725] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:32 yuno02 kernel: [  401.757725] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:32 yuno02 kernel: [  402.085537] dmar: DRHD: handling fault status reg 2
Oct 30 16:29:32 yuno02 kernel: [  402.085550] dmar: DMAR:[DMA Write] Request device [06:00.1] fault addr fffe0000
Oct 30 16:29:32 yuno02 kernel: [  402.085550] DMAR:[fault reason 02] Present bit in context entry is clear
Oct 30 16:29:32 yuno02 kernel: [  402.232957] ata7: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
Oct 30 16:29:32 yuno02 kernel: [  402.232978] ata7: EH complete

ん?なにこれ?と思って検索してみたところ以下のURLがヒットした。

http://dpdk.org/ml/archives/dev/2013-August/000400.html


どうやら同じエラーメッセージで悩める人がいたらしい。で、気になるのが以下の部分。

I tried that as well, but it works as if I only add intel_iommu=on.. which
means I do not receive any packets from hypervisor. I also have pci realloc
added. Does this affect?

ん、hypervisor……?

ということで、試しにUEFI (※このマザボBIOSではない) の画面からCPUのVT-d機能をOFFにして、再起動。

7台目認識した!!

なんかよくわからんけど、仮想化技術との相性が悪いらしいです。まーじかー。このマシンでKVMとか試そうかと思ってたんだけどなぁ。

そんなわけで、目下のお悩みは解決したので、これからももりもりHDD増設していく所存です。