Linuxカーネルとnvmeドライバ間の競合。バッテリー節約モードが正しく有効になっていませんか? ( "nvme_core.default_ps_max_latency_us = 0 pcie_aspm = off"は役に立ちませんでした)

Linuxカーネルとnvmeドライバ間の競合。バッテリー節約モードが正しく有効になっていませんか? (

ほぼ同じ2つのサーバーがあります。どちらのサーバーにも次の機能があります。

  1. バイオスターGTA690マザーボード
  2. インテルCPU
  3. 同じ量のRAMとディスクレイアウト
  4. PVEの配布(Debianベースのハイパーバイザー)。カーネル 5.19.17-1-pve.

私はSeagate Firecuda 530(2TB)をそれぞれ3台購入しました。両方のサーバーにある6つのドライブが同じ方法で失敗したのは理由がわかりません。

私は以前NVMe SSDファームウェアのアップグレードを試みましたが、ダウンロードに行ってみたら、私がインストールしたバージョン(SU6SM003、リリース日03/01/22)と同じバージョンでした。それで、最新バージョンにアップデートされたことを当然と考えました。

また、ドライブは完全にフォーマットされておらず、空の状態であり、パフォーマンスをテストするために生のfioテストを実行していたときにドライブが失敗することを確認しました。

すべての種類のテストモード(読み取り、書き込み、randread、ranwrite)で失敗します。ドライブの2つはgen4 m2コネクタに接続され、1つはgen3に接続されます。 PCIe第3世代がデータ転送にボトルネックが発生しなくても、第3世代ドライブはより長い期間の動作に耐えることができるようです。私はベンチの温度を監視しましたが、温度が60℃に達するのを見たことがありません。警告と臨界温度は90度、95度なので、メインマザーボードクーラーを使用しても温度問題ではないようです。

ここに失敗したkernel.log例を添付しますnvme0

Feb 17 10:42:58 pve-02 kernel: [   63.521693] pcieport 0000:00:06.0: AER: Corrected error received: 0000:00:06.0
Feb 17 10:42:58 pve-02 kernel: [   63.521703] pcieport 0000:00:06.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, (Receiver ID)
Feb 17 10:42:58 pve-02 kernel: [   63.521704] pcieport 0000:00:06.0:   device [8086:464d] error status/mask=00000001/00002000
Feb 17 10:42:58 pve-02 kernel: [   63.521706] pcieport 0000:00:06.0:    [ 0] RxErr
Feb 17 10:43:29 pve-02 kernel: [   95.188263] nvme nvme0: controller is down; will reset: CSTS=0xffffffff, PCI_STATUS=0x10
Feb 17 10:43:29 pve-02 kernel: [   95.188269] nvme nvme0: Does your device have a faulty power saving mode enabled?
Feb 17 10:43:29 pve-02 kernel: [   95.188270] nvme nvme0: Try "nvme_core.default_ps_max_latency_us=0 pcie_aspm=off" and report a bug
Feb 17 10:43:29 pve-02 kernel: [   95.244775] nvme 0000:01:00.0: enabling device (0000 -> 0002)
Feb 17 10:43:29 pve-02 kernel: [   95.244881] nvme nvme0: Removing after probe failure status: -19
Feb 17 10:43:29 pve-02 kernel: [   95.268964] nvme0n1: detected capacity change from 3907029168 to 0

nvme1そして江戸同様ですnvme2。そして両方のサーバーは同じです。

nvme_core.default_ps_max_latency_us=0 pcie_aspm=offカーネルログで提案されているように設定しようとしました。私はsystemd-bootを使用しているので、これをファイルのオプション行に追加しました/boot/efi/loader/entries/proxmox-5.19.17-1-pve.conf。再起動後に戻るnvme get-feature /dev/nvme0 -f 0x0c -H

get-feature:0xc (Autonomous Power State Transition), Current value:00000000
    Autonomous Power State Transition Enable (APSTE): Disabled

有効にする前に、今はエラーが解決されることを望んでいましたが、そうではありません。ドライブにエラーが発生し続けますが、ログは少し異なります。

Feb 20 10:50:38 pve-02 kernel: [ 1117.637355] nvme nvme0: controller is down; will reset: CSTS=0xffffffff, PCI_STATUS=0x10
Feb 20 10:50:38 pve-02 kernel: [ 1117.637377] nvme nvme0: Does your device have a faulty power saving mode enabled?
Feb 20 10:50:38 pve-02 kernel: [ 1117.637384] nvme nvme0: Try "nvme_core.default_ps_max_latency_us=0 pcie_aspm=off" and report a bug
Feb 20 10:50:38 pve-02 kernel: [ 1117.694007] nvme0: Admin Cmd(0x6), I/O Error (sct 0x3 / sc 0x71)
Feb 20 10:50:38 pve-02 kernel: [ 1117.733561] nvme 0000:01:00.0: enabling device (0000 -> 0002)
Feb 20 10:50:38 pve-02 kernel: [ 1117.733671] nvme nvme0: Removing after probe failure status: -19
Feb 20 10:50:38 pve-02 kernel: [ 1117.761606] nvme0n1: detected capacity change from 3907029168 to 0

pcieportエラーは消えましたが、今では新しい概念があります。Admin Cmd(0x6), I/O Error (sct 0x3 / sc 0x71)、そしてそれが何を意味するのか神は知っています。

ここにサーバー2にnvme0のスマートデータを添付します。

root@pve-02:~# smartctl -a /dev/nvme0
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.19.17-1-pve] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Seagate FireCuda 530 ZP2000GM30013
Serial Number:                      7VR033KY
Firmware Version:                   SU6SM003
PCI Vendor/Subsystem ID:            0x1bb1
IEEE OUI Identifier:                0x6479a7
Total NVM Capacity:                 2,000,398,934,016 [2.00 TB]
Unallocated NVM Capacity:           0
Controller ID:                      1
NVMe Version:                       1.4
Number of Namespaces:               1
Namespace 1 Size/Capacity:          2,000,398,934,016 [2.00 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            6479a7 6d3f00fdd1
Local Time is:                      Mon Feb 20 11:46:09 2023 CET
Firmware Updates (0x18):            4 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x005d):     Comp DS_Mngmt Wr_Zero Sav/Sel_Feat Timestmp
Log Page Attributes (0x08):         Telmtry_Lg
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     90 Celsius
Critical Comp. Temp. Threshold:     95 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     7.80W       -        -    0  0  0  0        0       0
 1 +     2.90W       -        -    1  1  1  1        0       0
 2 +     2.80W       -        -    2  2  2  2        0       0
 3 -   0.0250W       -        -    3  3  3  3     2500    7500
 4 -   0.0050W       -        -    4  4  4  4    10500   65000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         2
 1 -    4096       0         1

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        28 Celsius
Available Spare:                    100%
Available Spare Threshold:          5%
Percentage Used:                    0%
Data Units Read:                    9,323,369 [4.77 TB]
Data Units Written:                 2,755,621 [1.41 TB]
Host Read Commands:                 125,896,434
Host Write Commands:                271,550,259
Controller Busy Time:               26
Power Cycles:                       2,348
Power On Hours:                     287
Unsafe Shutdowns:                   2,312
Media and Data Integrity Errors:    0
Error Information Log Entries:      88
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0

Error Information (NVMe Log 0x01, 16 of 63 entries)
Num   ErrCount  SQId   CmdId  Status  PELoc          LBA  NSID    VS
  0         88     0  0x0008  0x4004  0x028            0     0     -
  1         87     0  0x1014  0x4004      -            0     0     -

次に何をすべきかわからないし、行き止まりの路地に到達したようで、どんな助けでも役に立ちます。

付録として、誰かに役立つ場合に備えて、私が行ったfioテストの詳細な説明をここに作成します。

まず、ドライブの最大書き込みIOPSをテストするために、4kランダム書き込みモードでテストしました。 400,000 IOPSを提供する3つのディスクがあっても(最初は時間が経つにつれてゆっくりと減少しました)、第3世代のディスクは長く続きました。これを何度も繰り返しましたが、常に同じで、3つのディスクすべてがパフォーマンスが同じ理由を理解していません。

その後、出力設定 iolength と jobs を 1 に減らしました。これにより、IOPSは140,000 IOPSで起動します。 Gen 4ドライブもこのモード(56および57℃)で失敗しましたが、Gen 3ドライブはエラーなしで4時間実行されました。もちろん、Gen 3とGen 4ドライブのBWとIOPSは同じです。

その後、最大4k IOPSに切り替えました。第4世代は1M IOPS、第3世代は700Kです。 Gen 4ドライブは数秒で消去され、Gen 3ドライブは最大2分で消去されました。温度は決して55度を超えませんでした。

最後に、最大4Mシーケンシャルリードに切り替えました。 4世代の場合は1700 IOPS、3世代の場合は850 IOPSです。 b。ここでは、4世代が最初に衝突し、次に3世代、最後に4世代が衝突しました。実際、最後が15〜20分間持続し、最も異なっていました。

それからこれらのどれも理解できず、あきらめたので、どんな助けでも歓迎します。

ベストアンサー1

おすすめ記事