Macに搭載されたSSDのS.M.A.R.T.情報を確認したい

f:id:taisho_goes:20200306212117j:plain

個人的なメモを兼ねて記事にまとめました。

やりたいこと

Macに搭載されたSSDの状態を確認したくなりました。具体的にはS.M.A.R.T.情報を表示させて、SSDの劣化状態を確認しようというものです。

WindowsであればCrystal Disk Infoという有名フリーソフトがあるため、手軽に搭載されたSSDやHDDの状態を確認できます。

しかし、macOSで同様の機能を持ったソフトウエアを探そうとすると、有料のものばかりで困ってしまいました。

そこで無料でなんとか確認する方法はないか?と調べたところ、ターミナルを用いてS.M.A.R.T.情報を表示させることができました。

動作環境

今回、この作業を行なった環境は以下のとおりです。

  • iMac 21.5inch (late 2012)
  • macOS 10.15.3 Catalina
  • 1TB FusionDrive

すでにメインPCとしての役目をMacBook Proに譲っており、家庭内でNASとして使おうと考えました。容量としても1TBでは足らないので、次のSSDも外付けして併せて用います。

このSSDはそもそもが知人から譲ってもらったものですし、自分でもWindowsを入れて別のノートPCで使っていました。

ストレージとして使うにあたり、iMacと外付けSSDの劣化が心配です。FusionDriveにはHDDも含まれていますが、落下などしたことがないので大丈夫だと思います。

診断ツールの準備

ツールのインストール

今回はSmartmontoolsを使います。Homebrewでインストールします。

brew install smartmontools

※最初にHomebrewをインストールする必要がありますが、これも1行のコマンドを実行するだけなので公式サイトを参考にやってください

インストール後、brew listを実行してsmartmontoolsが一覧に出てきたら完了です。

追加プラグインの導入

Smartmontoolsはインストールしただけでは外付けドライブの情報を表示させることができません。そのため、追加プラグインで機能を拡張する必要があります。

まず、USB接続されたドライブでS.M.A.R.T.を有効化させるため、OS-X-SAT-SMART-Driverを入れようとしました。しかし、GitHubで公開されているものは3〜5年前で更新が終わっており、うまくインストールできませんでした。

というのも、macOS 10.15 Catalinaから開発者の署名がないソフトのインストールが禁じられてしまったようです。

そのため、Binary Fruit社が販売しているDrive DXのサイトを参考に、同社が開発元として署名されているバージョンをインストールしました。

ダウンロード元:DriveDx - external USB and FireWire drive diagnostics support

利用したバージョンはdriver v0.8 (recommended, already included in DriveDx)のうち、for OS X El Capitan 10.11+というもの。

このインストールではmacOSのシステム環境設定内での作業も必要です。同じくBinary Fruit社の手順書(英語)を見ながら、作業をしていきます。以下、拙訳。

  1. 「システム拡張機能がブロックされました」みたいな通知が出る
  2. システム環境設定 → セキュリティとプライバシーに進む
  3. 下部に表示されているソフトの「許可」をクリック

https://developer.apple.com/library/archive/technotes/tn2459/Art/tn2459_approval.png

この許可を与えるボタンは最初の通知が出たあと30分間しか表示されないので注意が必要です。

設定が終了したら、一度、システムを再起動します。

診断の実行

ディスク番号を知る

S.M.A.R.T.情報を確認するためには、まずはディスクの番号を知る必要があります。

まずはターミナルを起動し、diskutil listを実行します。すると内蔵ドライブや外付けディスクなど接続されているディスクが一覧で表示されます。

f:id:taisho_goes:20200306212146j:plain

行頭の/dev/disk0というのがディスク番号です。

診断する

続いて、実際の診断を行います。

smartctl -a ※ディスク番号※を実行してみます。前の手順で調べたディスク一覧で容量から推測すると、

/dev/disk0 = SSD
/dev/disk1 = HDD
/dev/disk2 = SSD + HDD → FusionDrive
/dev/disk3 = 外付けSSD
/dev/disk4 = 外付けSSD(コンテナ)

でした。

とりあえず、disk0とdisk3について調べてみます。なので、まずはsmartctl -a /dev/disk0を実行すればOK。

ダーンッ!と情報が表示されます。

f:id:taisho_goes:20200306212159j:plain

もし、末尾に

SMART Disabled. Use option -s with argument 'on' to enable it.
(override with '-T permissive' option)

という文言が出てきたら、S.M.A.R.T.診断が読み取れていないということなので、smartctl -s on ※ディスク番号※を実行します。

結果の見方

TBW=総書き込みデータ量

SSDは消耗品です。製品や使用環境によって大きく異なるとは思いますが、書き込めるデータ量に限界があります。

その限界とは「500GB」のように製品パッケージに記載されたような保存容量ではなく、累計書き込みデータ量で測ることが可能です。これをTotal Bites Written( = TBW、総書き込みデータ量)と呼びます。

データ操作 保存容量 TBW
書込:+50GB 50GB 50GB
書込:+100GB 150GB 150GB
削除:-70GB 80GB 150GB
書込:+150GB 230GB 300GB

このようにデータを削除してSSDの容量を空けてもTBWは減りません。TBWは増える一方なのです。

……と前置きが長くなりましたが、先ほど表示したS.M.A.R.T.情報からTBWを読み解きたいと思います。

確認するのは、表のようになっている部分の241 Host_Writes_32MiBにあるRAW_VALUEです。これは32MB書き込むごとに増えていく数値なので、これを単純に32倍した数字の単位を変換します。

f:id:taisho_goes:20200306234135j:plain

これは外付けSSD(PLEXTOR製 512GB)のものですが、RAW_VALUEが54278とありますので、

54,278MB × 32 = 1,736,896MB ≒ 1.66TB

となり、このSSDには初回起動時から現時点まで約1.66TBを書き込んだことがわかりました。

しかし、問題なのはこのSSDはメーカーがTBWを公表していないことです。なんだよ、自信ないのかよ。

ていうか、iMac内蔵のSSDについては241 Host_Writes_32MiBをはじめとして、書き込みデータ量に関する数値が出てきません。

そのため、このTBWではiMacのFusionDriveも外付けSSDも正確な劣化具合が判定できませんでした。

まぁ、500GB前後のSSDについてTBWは少なくても60TBほどはありそうなので、1.66TBではあまり気にする必要はなさそうです。

MTBF=稼働時間

TBWで判断できないなら、仕方ないです。総稼働時間から推測してみましょう。

SSDには平均故障間隔( = MTBF)というのがあります。簡易に説明すれば、故障するまでにかかる稼働時間です。

ここで先ほどのS.M.A.R.T.情報にある9 Power_On_Hoursを見てみると、

機種名 MTBF
iMac (disk0) 10,897
SSD (disk3) 771

とあります。

iMacのほうはAppleの秘密主義に阻まれて寿命がわかりません。さすがに1万時間程度では壊れることはないと思いますが、少しモヤモヤしますね。

一応、PlextorのSSDはMTBFが公表されており、240万時間とされています。まだ771時間しか稼働していないので、当分の間は大丈夫だと考えられます。

診断してみて

残念ながら、S.M.A.R.T.情報から寿命を予測することは想像以上に困難でした。

しかし、当方のiMacはすでに購入から7年以上が経過したデバイスです。突然、不具合が生じても何ら不思議でないので、日頃からのバックアップは必須です。

一応、基本的にiMacには別の外付けHDDを接続し、Time Machineでバックアップを作成するようにしています。けれども、iMacが起動できなくなればmacOS上でしか復元ができないので、データサーバー用に高価なMac端末を別途購入するような意味不明な状況になるかもしれません。

将来的にはNASを導入するなどの設備更新が必要だと思われます。