M2 nvmeディスクから起動したLinux(Ubuntu 18、カーネル4.15)デスクトップがあります。
週に一度、真夜中に衝突が発生します。 /var/log/syslog.*の関連ログファイルの出力は次のとおりです。
Jul 16 00:00:00rabbitcruncher systemd[1]: 未使用のチャンクを捨て始めます。
7月16日 00:00:00 Rabbitcruncher カーネル: [559644.954267] nvme 0000:41:00.0: AMD-Vi: ロギングイベント [IO_PAGE_FAULT ドメイン=0x0014 アドレス=0x0000000000
7月16日 00:00:00rabbitcruncher カーネル: [559644.975805] nvme nvme0: 非同期イベント結果 00010300
7月16日 00:00:30rabbitcruncher カーネル: [559675.338834] nvme nvme0: コントローラがリセットされます。 CSTS=0x3、PCI_STATUS=0x1010
7月16日 00:00:31 Rabbitcruncher カーネル: [559675.621182] nvme 0000:41:00.0: AMD-Vi: ロギングイベント [IO_PAGE_FAULT ドメイン=0x0014 アドレス=0x0000000000
7月16日 00:01:01 Rabbitcruncher カーネル: [559706.346300] nvme nvme0: コントローラがリセットされます。 CSTS=0x3、PCI_STATUS=0x1010
Jul 16 00:01:01 Rabbitcruncher カーネル: [559706.378641] nvme nvme0: 名前空間を識別できませんでした。
7月16日 13:39:24 Rabbitcruncher systemd-fsck[962]: /dev/nvme0n1p1: 12ファイル、1186/130812クラスタ
7月16日 13:39:24 Rabbitcruncher カーネル: [1.052853] nvme nvme0: pci 機能 0000:41:00.0
7月16日 13:39:24 Rabbitcruncher カーネル: [1.285806] nvme0n1: p1 p2
7月16日 13:39:24rabbitcruncher カーネル: [5.036910] EXT4-fs(nvme0n1p2): ソートされたデータモードを使用してマウントされたファイルシステム。オプション:(空)
7月16日 13:39:24rabbitcruncher カーネル: [5.318742] EXT4-fs(nvme0n1p2): 再インストールします。選択: エラー=remount-ro
「使用しないブロックを破棄する」とは、Linuxがfstrimを実行しようとしていることを意味することを理解しています。しかし、私はsystemctlを使ってfstrimを無効にしましたが、それでも起こります!
systemctl 状態 fstrim.service
● fstrim.service - 未使用のブロックを破棄します。
ロード済み:ロード済み(/lib/systemd/system/fstrim.service;静的;ベンダーデフォルト:有効)
アクティブ:非アクティブ(死)
この問題を解決する方法がわかりません。誰でもアドバイスできますか?
答え1
あなたのUbuntukvm
仮想マシンで実行AMD-Vi
したがって、実行しないでくださいfstrim
。
サービスは以下fstrim
に基づいて実行されます。timer
root
rm /var/lib/systemd/timers/stamp-fstrim.timer
systemctl stop fstrim.service fstrim.timer
systemctl disable fstrim.service fstrim.timer
systemctl mask fstrim.service fstrim.timer
答え2
あなたの問題はこれに関連しているようです一つTRIMmingがトリガされるたびに発生する競合を説明しますfstrim.timer
。これはAMDでバイパスできる最近のカーネル問題のようですiommu=soft
(処方箋を見つけました)。ここ理由の詳細はありません) - NVME SSDのベストプラクティスに従って、fstrim.timer
M.2 NVMEディスクを再度有効にできるようになりました。
私はIntelでも同じ問題に遭遇したと思います。 - 報告しました。ここ- そして、この問題をどのように回避できますか(intel_iommu=pt
Intelと同じiommu=soft
)。
問題がIOMMUに関連していることを確認した後、動作を変更する方法を見つけ始めました。ここPCIパススルーのためのホスト構成に関するベストプラクティスに関するRed Hatのドキュメントで、これに触れてintel_iommu=pt
問題を解決しました。
私は現在この設定の副作用(存在する場合)を知りません。