Linux TRIM/fstrim timer(リナックストリム)
Linux SSD TRIM自動化。fstrim -av(手動)・fstrim.timer(systemd・weekly)・fstrim.service・/etc/fstab discard option(非推奨・性能低下)・LVM issue_discards 1・Btrfs autodiscard=async・ZFS autotrim=on・ext4/xfs支援・nvme-cli(NVMe管理)・udevadm で状態確認・2026年Proxmox/TrueNAS/Fedora Silverblue標準、SSDロングライフ必須メンテ。
概要
Linux では SSD の性能を維持するために「TRIM」機能が不可欠です。TRIM は不要になったブロックを SSD に通知し、フラッシュメモリの書き込み寿命を延ばします。fstrim コマンドは手動で実行でき、fstrim.timer は systemd により週次で自動実行されます。fstrim.service はタイマーが起動した際に実行されるサービスです。/etc/fstab の discard オプションは非推奨で、頻繁に書き込みが発生するとパフォーマンス低下を招くため、推奨されません。LVM では issue_discards 1、Btrfs では autodiscard=async、ZFS では autotrim=on が自動 TRIM を有効化します。ext4 と XFS も TRIM をサポートしています。NVMe デバイスの詳細情報は nvme-cli で確認でき、udevadm で現在の TRIM 状態を確認できます。2026年には Proxmox、TrueNAS、Fedora Silverblue で標準装備され、SSD の長期使用に不可欠なメンテナンス項目となっています。
主な特徴・仕組み
fstrim -avで全マウント済みファイルシステムを一括 TRIMfstrim.timerは systemd により毎週金曜 00:00 に起動fstrim.serviceはタイマーが起動した際にfstrim -avを実行/etc/fstabのdiscardは即時 TRIM だが I/O スロットリングを招く- LVM:
issue_discards 1で論理ボリュームに TRIM を転送 - Btrfs:
autodiscard=asyncで非同期 TRIM を有効化 - ZFS:
autotrim=onで自動 TRIM を有効化 - ext4/XFS:
discardオプションで手動 TRIM 可能 nvme-cliでnvme id-ctrlから TRIM サポート確認udevadm info -q property -n /dev/nvme0n1 | grep TRIMで状態確認
スペック/製品比較表
| 製品名 | 容量 | インターフェース | TRIM 対応 | 価格帯 |
|---|---|---|---|---|
| Samsung 970 EVO Plus 1TB | 1TB | PCIe 3.0 x4 | あり | ¥18,800 |
| Crucial MX500 500GB | 500GB | SATA 6Gb/s | あり | ¥9,200 |
| WD Blue SN570 500GB | 500GB | PCIe 3.0 x4 | あり | ¥10,500 |
| Intel 660p 1TB | 1TB | PCIe 3.0 x4 | あり | ¥15,400 |
| Kingston A2000 1TB | 1TB | PCIe 3.0 x4 | あり | ¥12,300 |
※価格は 2025年時点の平均値です。
具体例・対応製品
- Samsung 970 EVO Plus 1TB:PCIe 3.0 x4、最大 3,500MB/s の読み込み速度。
- Crucial MX500 500GB:SATA 6Gb/s、最大 560MB/s の読み込み速度。
- WD Blue SN570 500GB:PCIe 3.0 x4、最大 3,000MB/s の読み込み速度。
- Intel 660p 1TB:PCIe 3.0 x4、最大 2,400MB/s の読み込み速度。
- Kingston A2000 1TB:PCIe 3.0 x4、最大 2,200MB/s の読み込み速度。
自作PCでの選び方・注意点
- インターフェースの選択:PCIe 3.0 x4 以上を推奨。SATA 6Gb/s はコスト重視。
- TRIM サポート確認:
nvme id-ctrlでTRIMフラグが立っているか確認。 - ファームウェア更新:最新ファームウェアで TRIM の安定性が向上。
- タイマー設定:
systemctl enable --now fstrim.timerで週次実行を有効化。 - LVM 使用時:
lvm lvchange -o issue_discards=1 <lv>を実行。 - Btrfs 使用時:
btrfs filesystem defrag -r /mntで TRIM を手動実行。 - ZFS 使用時:
zpool set autotrim=on <pool>で自動 TRIM を有効化。 - SATA SSD:
/etc/fstabのdiscardは避け、fstrim.timerを利用。 - NVMe SSD:
fstrim -avで全デバイスを一括 TRIM。 - 長期使用:TRIM を週次で実行し、書き込み寿命を最大化。
関連用語との違い
- discard:即時 TRIM を行うオプション。頻繁に書き込みがあると I/O スロットリングを招く。
- autotrim:ZFS の設定で自動 TRIM を有効化。
- autodiscard:Btrfs の設定で非同期 TRIM を有効化。
- fstrim.timer:systemd により週次で
fstrimを実行。 - nvme-cli:NVMe デバイスの情報取得ツール。
よくある質問
Q1. fstrim.timer は毎日実行されますか?
A1. 週次(毎週金曜 00:00)に実行されます。頻繁に書き込みがある場合は手動で fstrim -av を実行してください。
Q2. /etc/fstab の discard オプションは使わない方が良いですか?
A2. はい。頻繁に書き込みがあるとパフォーマンス低下を招くため、週次 TRIM を推奨します。
Q3. NVMe SSD で fstrim を実行しても効果がない場合は?
A3. NVMe デバイスが TRIM をサポートしていないか、ファームウェアが古い可能性があります。nvme id-ctrl で確認し、必要なら更新してください。
まとめ
Linux で SSD の寿命を最大化するには、TRIM を定期的に実行することが不可欠です。fstrim.timer を有効化し、LVM、Btrfs、ZFS で自動 TRIM を設定すれば、手間なく長期的に安定した性能を維持できます。2026年に標準装備される主要ディストリビューションでは、TRIM の自動化がデフォルトで有効になるため、ユーザーは設定を最小限に抑えつつ SSD のメリットを享受できます。次世代のストレージ環境を構築する際は、TRIM の仕組みを理解し、適切に運用することが鍵となります。