ZFS および mdadm で使用されるディスクの SMART エラー

ZFS および mdadm で使用されるディスクの SMART エラー

しばらくの間、ワークステーションを再起動するたびに (「チャーム」と呼ばれます)、次のような電子メールが届きます。

Subject: SMART error (ErrorCount) detected on host: charm

This message was generated by the smartd daemon running on:

   host name:  charm
   DNS domain: jj5.net

The following warning/error was logged by the smartd daemon:

Device: /dev/nvme3, number of Error Log entries increased from 324 to 326

Device info:
PNY CS3140 1TB SSD, S/N:PNY21242106180100094, FW:CS314312, 1.00 TB

For details see host's SYSLOG.

You can also use the smartctl utility for further investigation.
The original message about this issue was sent at Sat Feb  4 12:53:13 2023 AEDT
Another message will be sent in 24 hours if the problem persists.

再起動するたびに、ワークステーションにあるNVMe SSDドライブごとに1つずつ、4つのメールが届きます。エラーメールからわかるように、私のドライブはPNY CS3140 1TB SSD私は 4 台持っています。この問題は私の PNY ドライブに特有のものではないと思います。なぜなら、ここで説明したのと同じ問題が、Samsung 990 PRO NVMe ドライブを使用している別のコンピューターでも発生しているからです。

最初にワークステーションをセットアップしたとき、私はこの記事そして、ZFS zpool の ashift 設定を 14 に設定しました。記事では、値を 12 に増やす必要があり、それ以上増やしても問題ないと書かれていました。私が抱えている SMART エラーの問題は、この ZFS ashift 設定に関連している可能性があると考え、オペレーティング システム (Ubuntu) を再インストールし、次のように ashift 設定なしで ZFS zpool を再作成しました。

DISK1=/dev/disk/by-id/nvme-eui.6479a74fb0c00509
DISK2=/dev/disk/by-id/nvme-eui.6479a74fb0c00507
DISK3=/dev/disk/by-id/nvme-eui.6479a74fb0c004b7
DISK4=/dev/disk/by-id/nvme-eui.6479a74fb0c00508

zpool create -f \
    -o autotrim=on \
    -O acltype=posixacl -O compression=off \
    -O dnodesize=auto -O normalization=formD -O atime=off -O dedup=off \
    -O xattr=sa \
    best ${DISK1}-part4 ${DISK2}-part4 ${DISK3}-part4 ${DISK4}-part4

zpool create -f \
    -o autotrim=on \
    -O acltype=posixacl -O compression=lz4 \
    -O dnodesize=auto -O normalization=formD -O atime=off -O dedup=on \
    -O xattr=sa \
    fast mirror ${DISK1}-part5 ${DISK2}-part5 mirror ${DISK3}-part5 ${DISK4}-part5

シフト設定を自動検出させたところ、すべてのディスクに対して 9 が選択されました。

$ zdb | grep ashift
            ashift: 9
            ashift: 9
            ashift: 9
            ashift: 9
            ashift: 9
            ashift: 9

これにも興味があるかもしれません:

$ cat /proc/partitions | grep -v loop
major minor  #blocks  name

 259        0  976762584 nvme1n1
 259        2    1100800 nvme1n1p1
 259        3    1048576 nvme1n1p2
 259        4   52428800 nvme1n1p3
 259        5  104857600 nvme1n1p4
 259        6  817324032 nvme1n1p5
 259        1  976762584 nvme0n1
 259        7    1100800 nvme0n1p1
 259        8    1048576 nvme0n1p2
 259        9   52428800 nvme0n1p3
 259       10  104857600 nvme0n1p4
 259       11  817324032 nvme0n1p5
 259       12  976762584 nvme2n1
 259       14    1100800 nvme2n1p1
 259       15    1048576 nvme2n1p2
 259       16   52428800 nvme2n1p3
 259       17  104857600 nvme2n1p4
 259       18  817324032 nvme2n1p5
 259       13  976762584 nvme3n1
 259       19    1100800 nvme3n1p1
 259       20    1048576 nvme3n1p2
 259       21   52428800 nvme3n1p3
 259       22  104857600 nvme3n1p4
 259       23  817324032 nvme3n1p5
   9        1  104790016 md1
 259       24  104787968 md1p1
   9        0    2093056 md0
 259       25    2091008 md0p1
  11        0    1048575 sr0

この:

$ cat /proc/mdstat
Personalities : [raid10] [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4]
md0 : active raid10 nvme3n1p2[2] nvme1n1p2[2] nvme2n1p2[0] nvme0n1p2[3]
      2093056 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]

md1 : active raid10 nvme2n1p3[3] nvme3n1p3[2] nvme1n1p3[0] nvme0n1p3[2]
      104790016 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]

unused devices: <none>

以下は、 からの選択出力ですdf:

$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/md1p1                 100G   47G   51G  48% /
/dev/md0p1                 2.0G  261M  1.6G  15% /boot
/dev/nvme2n1p1             1.1G  6.1M  1.1G   1% /boot/efi
best                       325G  128K  325G   1% /best
fast                      1006G  128K 1006G   1% /fast

ルートファイルシステムは btrfs です。

私の SSD では、パーティション 2 と 3 を mdadm RAID アレイに使用し、パーティション 4 と 5 を ZFS zpool の「best」と「fast」に使用しています。

メール内のエラー メッセージには、詳細については syslog を確認するように記載されていますが、syslog にはそれほど多くの情報がありません。

$ cat /var/log/syslog | grep smartd
Feb  8 15:20:33 charm smartd[3202]: Device: /dev/nvme2, number of Error Log entries increased from 323 to 324
Feb  8 15:20:33 charm smartd[3202]: Sending warning via /usr/share/smartmontools/smartd-runner to root ...
Feb  8 15:20:33 charm smartd[3202]: Warning via /usr/share/smartmontools/smartd-runner to root: successful
Feb 10 13:47:49 charm smartd[3233]: smartd 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-60-generic] (local build)
Feb 10 13:47:49 charm smartd[3233]: Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
Feb 10 13:47:49 charm smartd[3233]: Opened configuration file /etc/smartd.conf
Feb 10 13:47:49 charm smartd[3233]: Drive: DEVICESCAN, implied '-a' Directive on line 21 of file /etc/smartd.conf
Feb 10 13:47:49 charm smartd[3233]: Configuration file /etc/smartd.conf was parsed, found DEVICESCAN, scanning devices
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme0, opened
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme0, PNY CS3140 1TB SSD, S/N:PNY21242106180100095, FW:CS314312, 1.00 TB
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.PNY_CS3140_1TB_SSD-PNY21242106180100095.nvme.state
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme1, opened
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme1, PNY CS3140 1TB SSD, S/N:PNY21242106180100093, FW:CS314312, 1.00 TB
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme1, is SMART capable. Adding to "monitor" list.
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme1, state read from /var/lib/smartmontools/smartd.PNY_CS3140_1TB_SSD-PNY21242106180100093.nvme.state
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme2, opened
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme2, PNY CS3140 1TB SSD, S/N:PNY21242106180100092, FW:CS314312, 1.00 TB
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme2, is SMART capable. Adding to "monitor" list.
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme2, state read from /var/lib/smartmontools/smartd.PNY_CS3140_1TB_SSD-PNY21242106180100092.nvme.state
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme3, opened
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme3, PNY CS3140 1TB SSD, S/N:PNY21242106180100094, FW:CS314312, 1.00 TB
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme3, is SMART capable. Adding to "monitor" list.
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme3, state read from /var/lib/smartmontools/smartd.PNY_CS3140_1TB_SSD-PNY21242106180100094.nvme.state
Feb 10 13:47:49 charm smartd[3233]: Monitoring 0 ATA/SATA, 0 SCSI/SAS and 4 NVMe devices
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme0, number of Error Log entries increased from 318 to 320
Feb 10 13:47:49 charm smartd[3233]: Sending warning via /usr/share/smartmontools/smartd-runner to root ...
Feb 10 13:47:49 charm smartd[3233]: Warning via /usr/share/smartmontools/smartd-runner to root: successful
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme1, number of Error Log entries increased from 321 to 323
Feb 10 13:47:49 charm smartd[3233]: Sending warning via /usr/share/smartmontools/smartd-runner to root ...
Feb 10 13:47:49 charm smartd[3233]: Warning via /usr/share/smartmontools/smartd-runner to root: successful
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme2, number of Error Log entries increased from 324 to 326
Feb 10 13:47:49 charm smartd[3233]: Sending warning via /usr/share/smartmontools/smartd-runner to root ...
Feb 10 13:47:49 charm smartd[3233]: Warning via /usr/share/smartmontools/smartd-runner to root: successful
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme3, number of Error Log entries increased from 324 to 326
Feb 10 13:47:49 charm smartd[3233]: Sending warning via /usr/share/smartmontools/smartd-runner to root ...
Feb 10 13:47:49 charm smartd[3233]: Warning via /usr/share/smartmontools/smartd-runner to root: successful
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.PNY_CS3140_1TB_SSD-PNY21242106180100095.nvme.state
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme1, state written to /var/lib/smartmontools/smartd.PNY_CS3140_1TB_SSD-PNY21242106180100093.nvme.state
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme2, state written to /var/lib/smartmontools/smartd.PNY_CS3140_1TB_SSD-PNY21242106180100092.nvme.state
Feb 10 13:47:49 charm smartd[3233]: Device: /dev/nvme3, state written to /var/lib/smartmontools/smartd.PNY_CS3140_1TB_SSD-PNY21242106180100094.nvme.state

smartctl -x以下はnvme3 デバイスの出力です。

# smartctl -x /dev/nvme3
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-60-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       PNY CS3140 1TB SSD
Serial Number:                      PNY21242106180100094
Firmware Version:                   CS314312
PCI Vendor/Subsystem ID:            0x1987
IEEE OUI Identifier:                0x6479a7
Total NVM Capacity:                 1,000,204,886,016 [1.00 TB]
Unallocated NVM Capacity:           0
Controller ID:                      1
NVMe Version:                       1.4
Number of Namespaces:               1
Namespace 1 Size/Capacity:          1,000,204,886,016 [1.00 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            6479a7 4fb0c00508
Local Time is:                      Sat Feb 11 06:57:14 2023 AEDT
Firmware Updates (0x12):            1 Slot, 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:     84 Celsius
Critical Comp. Temp. Threshold:     89 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     8.80W       -        -    0  0  0  0        0       0
 1 +     7.10W       -        -    1  1  1  1        0       0
 2 +     5.20W       -        -    2  2  2  2        0       0
 3 -   0.0620W       -        -    3  3  3  3     2500    7500
 4 -   0.0440W       -        -    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:                        41 Celsius
Available Spare:                    100%
Available Spare Threshold:          5%
Percentage Used:                    16%
Data Units Read:                    21,133,741 [10.8 TB]
Data Units Written:                 151,070,190 [77.3 TB]
Host Read Commands:                 202,445,947
Host Write Commands:                2,302,434,105
Controller Busy Time:               5,268
Power Cycles:                       58
Power On Hours:                     7,801
Unsafe Shutdowns:                   33
Media and Data Integrity Errors:    0
Error Information Log Entries:      326
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        326     0  0x1018  0x4004  0x028            0     0     -

したがって、エラーが実際に何なのかはわかりません。原因もわかりません。どれほど深刻なのかわかりません (すべて正常に動作しているようです)。特に、この問題をどのように解決すればよいのかわかりません。

ご提案があればぜひお願いします。

答え1

私も Crucial P3 CT4000P3SSD8 で同じ問題を抱えています。Ubuntu 22.04 (カーネル 5.15.0-67-generic) の ZFS ミラー プールで同じものを 2 つ実行していますが、システムを再起動するたびに、各ドライブの SMART エラー ログに 2 つのエラーが追加されます。

nvme-cliをインストールして実行しましたnvme error-log /dev/<your_drive>。ログには、エラーが見つかりました。0x2002(INVALID_FIELD: A reserved coded value or an unsupported value in a defined field).

私は見つけたこのスレッドnvme-cligithubページ、特にこのコメント@keithbusch からのコメント:

sqidは管理キューです。したがって、このエラーは、ドライバーまたは何らかのツールが、コントローラーがサポートしていない無害なオプションコマンドを実行しようとしたことを示している可能性があります。デバイス ベンダーは、これらのエラーのログ記録に過度にこだわることで知られています。仕様ではこの動作が許可されていますが、これを行うことは必須ではなく、誰にとっても役に立ちません。

私たちは安全だと思います。ただ、この過剰な伐採に耐えることを学ぶ必要があります...

関連情報