「ソリッドステートドライブ/NVMe」の版間の差分
(→インストール: 同期) |
(→管理: 冒頭を同期) |
||
27行目: | 27行目: | ||
# nvme id-ctrl -H /dev/nvme0 |
# nvme id-ctrl -H /dev/nvme0 |
||
− | {{Tip| |
+ | {{Tip|使用されている略語の意味を理解するには、関連する [https://nvmexpress.org/developers/nvme-specification/ NVMe 仕様書]のリファレンスセクション 5.15.2.2 ("Identify Controller data structure") を参照してください (例: 1.4a 仕様書の172ページの下部)。}} |
− | 名前空間と |
+ | 名前空間とサポートされている機能に関する情報を一覧表示します: |
+ | {{Note|名前空間 (namespace) とは NVMe 技術の構成要素で、ユーザデータを保持します。NVMe コントローラには複数の名前空間を付けることができます。今日のほとんどの NVMe SSD は単一の名前空間しか使用しませんが、マルチテナント型アプリケーション、仮想化、セキュリティの場面においては複数の名前空間が使用されることがあります。}} |
||
− | {{Note|Namespaces are the construct in NVMe technology that hold user data. An NVMe controller can have multiple namespaces attached to it. Most NVMe SSDs today just use a single namespace, but multi-tenant applications, virtualization and security have use cases for multiple namespaces.}} |
||
# nvme id-ns /dev/nvme0n1 |
# nvme id-ns /dev/nvme0n1 |
||
− | {{Tip| |
+ | {{Tip|使用されている略語の意味を理解するには、関連する [https://nvmexpress.org/developers/nvme-specification/ NVMe 仕様書]のリファレンスセクション 5.15.2.1 ("Identify Namespace data structure") を参照してください (例: 1.4a 仕様書の163ページ)。}} |
NVMeエラーログページを表示します: |
NVMeエラーログページを表示します: |
||
41行目: | 41行目: | ||
# nvme error-log /dev/nvme0 |
# nvme error-log /dev/nvme0 |
||
+ | {{Tip|エラーログにエラーが記録されているか調べるには、エラーカウント (error_count) が0でないエントリを探してください。}} |
||
− | {{Tip|Look for output where error count does not equal 1 to find out if there are any errors in the error log.}} |
||
名前空間を削除します: |
名前空間を削除します: |
2022年12月8日 (木) 17:21時点における版
関連記事
NVM Express (NVMe) とは、PCI Express バスで接続されている SSD にアクセスするための規格です。論理デバイスインターフェイスとして、NVM Express は新規に設計されました。PCI Express SSD の低遅延性と並列性を活かし、現代の CPU、プラットフォーム、アプリケーションの並列性を映し出しています。
目次
インストール
Linux の NVMe ドライバはバージョン 3.3 からネイティブにカーネルに含まれています。NVMe デバイスは /dev/nvme*
に現れるはずです。
その他のユーザスペース NVMe ツールは nvme-cli や nvme-cli-gitAUR に含まれています。
サポートされているファイルシステム、パフォーマンスの最適化、ディスクの読み書きの最小化などは ソリッドステートドライブ を見てください。
管理
接続されているすべての NVMe SSD の名前、シリアル番号、サイズ、LBAフォーマット、シリアルを一覧表示します:
# nvme list
ドライブとドライブがサポートする機能に関する情報を、人間にわかりやすい方法で一覧表示します:
# nvme id-ctrl -H /dev/nvme0
名前空間とサポートされている機能に関する情報を一覧表示します:
# nvme id-ns /dev/nvme0n1
NVMeエラーログページを表示します:
# nvme error-log /dev/nvme0
名前空間を削除します:
# nvme delete-ns /dev/nvme0n1
新しい名前空間を作成します。例えば、より小さなサイズの名前空間を作成して、SSDをオーバープロビジョニングし、耐久性、パフォーマンスおよび遅延を改善します:
# nvme create-ns /dev/nvme0
すべてのコマンドのリストと簡潔な説明については、nvme help
や nvme(1) を参照してください。
SMART
健康状態、温度、耐久性などの NVMe SMART ログページを出力します:
# nvme smart-log /dev/nvme0
NVMe support was added to smartmontools in version 6.5 (available since May 2016 in the official repositories).
Currently implemented features (as taken from the wiki):
- Basic information about controller name, firmware, capacity (
smartctl -i
) - Controller and namespace capabilities (
smartctl -c
) - SMART overall-health self-assessment test result and warnings (
smartctl -H
) - NVMe SMART attributes (
smartctl -A
) - NVMe error log (
smartctl -l error[,NUM]
) - Ability to fetch any nvme log (
smartctl -l nvmelog,N,SIZE
) - The smartd daemon tracks health (
-H
), error count (-l error
) and temperature (-W DIFF,INFO,CRIT
)
See S.M.A.R.T. and the official wiki entry for more information, and see this article for contextual information about the output.
Secure erase
See Solid state drive/Memory cell clearing#NVMe drive.
パフォーマンス
セクタサイズ
Advanced Format#HDD が 4k セクタを使用しているかどうか判断する方法を見てください。
Discard
ext4 や LVM を使用する普通のセットアップではデフォルトで Discard は無効になりますが、ファイルシステムによっては明示的に無効化する必要があります。
SSD メーカーの Intel はファイルシステムレベルで discard を有効にすることを非推奨としており、代わりに fstrim で定期的に TRIM を適用する方法を提案しています [2]。
エアフロー
NVMe SSD は負担時に高熱になることが知られており、特定の閾値に達すると性能が制限されます [3]。
テスト
デバイスの性能テストは hdparm で実行できます:
# hdparm -Tt --direct /dev/nvme0n1
省電力 APST
NVME 省電力パッチ
Andy Lutomirski は Linux における NVMe デバイスの省電力機能を修正するパッチセットをリリースしています。メインラインカーネル v4.11 でパッチはマージされました。
NVME の電源管理が動作しているかテストするには、nvme-cli をインストールして # nvme get-feature -f 0x0c -H /dev/nvme[0-9]
を実行してみてください:
# nvme get-feature -f 0x0c -H /dev/nvme0
get-feature:0xc (Autonomous Power State Transition), Current value:0x000001 Autonomous Power State Transition Enable (APSTE): Enabled Auto PST Entries ................. ...
ASPT が有効になっている場合 Autonomous Power State Transition Enable (APSTE): Enabled
と出力されます。表のエントリは各ステートに移行するときの待機時間を示しています。
ASPT が有効になっているのにステートが表に表示されない場合、高遅延のせいでデフォルトで有効になっていない可能性があります。# nvme id-ctrl /dev/nvme[0-9]
を使うことで NVME コントローラの未使用のステートを確認できます。ステートの遅延の合計 (enlat + xlat) が 25000 (25ms) よりも大きい場合、有効にするにはブートパラメータを使って nvme_core
カーネルモジュールの default_ps_max_latency_us
オプションで最低でもこれよりも高い値を渡す必要があります。ASPT が有効になり # nvme get-feature
の表にエントリが表示されるようになります。
Linux 4.10 における Samsung ドライブのエラー
Linux 4.10 では、ドライブのエラーが発生してシステムが不安定になることがあります。省電力状態となったときにドライブが使えなくなるようです。カーネルパラメータ nvme_core.default_ps_max_latency_us=5500
は一番低い省電力ステートを無効にし、書き込みエラーを防止します [4][5]。