Armadilloフォーラム

大容量外付けSSDを、起動から初回マウント時しばらく固まる

oshiro

2022年10月19日 20時22分

お世話になっております。
4TBの外付けSSD(※)を用意し、後述のようにしたところ、
「Armadillo起動後、(電源コネクタとLANポートの間の)USBポートに接続し初回マウントし、初回アクセスした瞬間、そこから数分間応答がなくなりUSBにアクセス出来ない」現象が出ているのですが、何か分かりますでしょうか。
応答が復活した以後は、USBを抜いても挿してもマウントしてもアンマウントしても、特に引っかかりなく動きます。再起動すると再発します。
USBは、起動後に挿しても、挿したまま起動しても起こります。
Linux 4.9 at25のカーネルをビルドして開発キットに入れて使っており、自作のソフト等は問題なく動いています。自作のソフトは止めていても現象が起こります。
※ USB接続C-C接続だったのでA-Cケーブルを買って接続。購入時にexFATかNTFS(失念)でフォーマットされている、SXS2000/4000G

どうやら、本現象は、ext4では起きて、ext3では起きないようです。(耐断片化等から、出来ればext4を使いたい所ですが。)

fdisk -l

→ /dev/sda を確認。

Linux用にext4パーティションを用意

fdisk /dev/sda
p
→Windowsで見ると1パーティションしかないのに、ここでは何故か、sda1, sda2 がある
d
→dは2回選択し、パーティションを全て選択
w
→パーティション削除を反映
 
(→別の手順でフォーマットして、GPTパーティションテーブルではなくなっていれば、2TBを超えているからDOSパーティションはダメだと警告が出るので、 fdisk /dev/sda → g → w でGPTにしておく。)
 
fdisk /dev/sda
n
→そのままEnterを数回おし、Partition1 先頭セクタから末尾まで選択
w
 
mkfs -t ext4 /dev/sda1

マウントしてアクセス

mkdir /mnt/usb
mount /dev/sda1 /mnt/usb
cp hoge.txt /mnt/usb

→ここで3分程度固まります。(cp~ ではなく umunt /mnt/usb でも同じ。)

この前後の /var/log/message は

tail -f /var/log/message
 
Nov  4 02:17:31 armadillo kernel: EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
Nov  4 02:18:03 armadillo kernel: usb 1-1: reset high-speed USB device number 2 using ci_hdrc
Nov  4 02:18:34 armadillo kernel: usb 1-1: reset high-speed USB device number 2 using ci_hdrc
Nov  4 02:19:06 armadillo kernel: usb 1-1: reset high-speed USB device number 2 using ci_hdrc
Nov  4 02:19:36 armadillo kernel: usb 1-1: reset high-speed USB device number 2 using ci_hdrc
Nov  4 02:20:08 armadillo kernel: usb 1-1: reset high-speed USB device number 2 using ci_hdrc
Nov  4 02:20:38 armadillo kernel: usb 1-1: reset high-speed USB device number 2 using ci_hdrc
Nov  4 02:20:39 armadillo kernel: sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
Nov  4 02:20:39 armadillo kernel: sd 0:0:0:0: [sda] tag#0 CDB: Write same(16) 93 08 00 00 00 00 00 00 57 f0 00 00 10 00 00 00

02:17:31 マウント完了
数秒後 cpコマンド実行、応答無くなる。
02:20:39 cpコマンド無事終了。以後、他の操作も問題なく出来るようになる
という挙動です。
固まっている間にUSBを引き抜くと messages には disconnect 云々がすぐ現れ、応答が復活します。
ジャーナル破損のような表示も時折出るので、念のため mount 前に fsck /dev/sda1 を行っても、本現象は発生します。

usb-devices を打った結果は以下のようになります。

root@armadillo:/home/atmark# usb-devices
 
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=04.09
S:  Manufacturer=Linux 4.9.133-at25 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=ci_hdrc.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
 
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0951 ProdID=176b Rev=01.00
S:  Manufacturer=Kingston
S:  Product=XS2000
S:  SerialNumber=50026B7282BF6996
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
 
T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=04.09
S:  Manufacturer=Linux 4.9.133-at25 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=ci_hdrc.1
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
 
T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 3
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=02 MxPS=64 #Cfgs=  1
P:  Vendor=0424 ProdID=3503 Rev=a1.a0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=2mA
I:  If#= 0 Alt= 1 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=02 Driver=hub
 
T:  Bus=02 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#=  5 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=0125 Rev=03.18
S:  Manufacturer=Android
S:  Product=Android
C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
 
T:  Bus=02 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#=  4 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0cf3 ProdID=3004 Rev=00.02
C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

よろしくお願いいたします。

コメント

すみません、続報です。
一度だけと記載しましたが、その後連続稼働させると、約35分周期で同様の現象が発生していました。

at_takumi.mizutani

2022年10月27日 14時38分

アットマークテクノの水谷です。

ご対応が遅くなっており申し訳ございません。
一度社内のSSDにて再現性を確かめ、またご返答させていただきたいと思います。

以上、よろしくお願いいたします。

at_takumi.mizutani

2022年10月27日 16時21分

水谷です。

G3を同じカーネルのバージョンに合わせ、社内の500GBのSSDにて再現試験を行ったのですが同様の現象は見られませんでした。

使用したSSDの情報は以下のとおりです。

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=21c4 ProdID=06cf Rev=82.08
S:  Manufacturer=Lexar
S:  Product=Portable SSD SL100 Pro
S:  SerialNumber=271911500232255
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

もし可能でしたら、以下のことを試していただけますでしょうか。
・別のSSDを使用しても同様の現象が発生するか
・別のUSBケーブルを使用しても同様の現象が発生するか

以上、よろしくお願いいたします。

水谷さま

ご連絡ありがとうございます。
取り急ぎ、片方返信いたします。

>・別のSSDを使用しても同様の現象が発生するか

どうやら2TB以上かつext4の場合に発生するようです。
・2TB以下(DOSパーティションテーブル)で、ext4 → 問題無し
・4TB(GPTパーティションテーブル)で、ext4 → 問題無し
でした。

可能性としては、電力供給の問題の可能性も?
本SSDはもともと USB C to C の太めの短いケーブルが付属するのみです。
こちらで、USB A to C の中くらいの太さのケーブルを用意して繋いでいます。
(Type-Cの方が、要求出来る電力は多めなのでそれ前提で設計されていれば、Type-AのUSB2.0から使った場合心許ない?)
ただ、同SSDで、2TBでフォーマットしたとき、ext3でフォーマットした時は不具合が出ないので、違うかもしれません。

すみませんタイポです。
・4TB(GPTパーティションテーブル)で、「ext3」 → 問題無し

本件、時間経っていますが少し動きありましたので、速報です。
つい先日、本件で使っているSSDを別のマシンでデータコピー中、突然認識されなくなり、それ以降全く使えなくなりました。
なので、初期不良やロット不良を抱えていた可能性があります。
(記事を立てた当初、SSDは新品でした。)

続報です。
USB SSDが保証で代替の新品で返って来ましたので、同様の事を試してみました。
やはり、同じような現象となりました。
(ただ、以前はマウントすると100%起きていたのが、今回は再起動すると100%なるけど、起動したまま2回目以降はほとんど起きないなど、発生頻度・再現性が下がってるような気もします。)
なお、今回は前回とは異なるArmadillo G3個体です。

SSDのKingston公式サイトでファームウェアを見てみると、500G、1TB、2TBモデルは2回リリースノートがある。
一方で、本4TBモデルは記載されておらず、ファームウェアアップデートは一度もされていないようです。
(バージョン表記も一部異なる。以下URLの一番下の「USB」の所)
https://www.kingston.com/jp/support/technical/ksm-firmware-update
4TBだけファームウェアが異なり、その影響なのかもしれません・・・?

今回の試したケーブルは、2種類です。
・Rampowの布系の20cmくらいの青みのある USB3系のA-Cケーブル
・Ankerのモバイルバッテリーに付いて来た60cmくらいの黒いビニール系のA-Cケーブル
特に現象に差異は感じられませんでした。
また、ちょっと浅めに挿したり、しっかり奥まで挿してみても関係無く、再起動して1回目のマウントで起きるようでした。
(問題無くアクセス出来たのを確認 → reboot → マウント → アクセス でも発生。この間USBコネクタ・ケーブルには触れていない。)

また、最近WindowsのPowershellとWSL2を駆使すると、WindowsのWSL(Ubuntu)にマウントする事が出来るようになったのでやってみたのですが、
そちらでマウントした時は、不具合が発生しませんでした。

結局、詳細原因は不明ですが、
SXS2000/4000Gのみ起きるのか、本SSDがArmadillo G3のハードウェアとの相性が悪いのか、その辺りなような気がします。