HDD を SSD に換装して半年くらい経ちました
今年の 1 月に開発マシンの増強をしていた際に、ストレージも HDD から SSD に換装しました。SSD が出たのはもうずいぶん前になりますが、去年の年末に Macbook Air を買うまでは、その性能を体感する機会がなく、漠然と速いんだろうなーくらいの印象でいました。
しかし、実際に SSD 搭載の Macbook Air の瞬間起動っぷりを経験してしまうと、やっぱり HDD のディスク性能には戻れないなーと思わずにはいられませんでした。私のように長年 HDD で暮らしてきた人間からすると、軽い衝撃でした。こんなに変わるのかー、という感じ。
購入した SSD は Intel の 330 シリーズ 120 GB です。
載せ替えるのが Linux の開発用 PC で、それほどディスク容量が必要ということもなかったので、1 万円くらいを予算に買えるサイズを買った感じです。ハードウェアの仕組みとしては、容量が多いほどアクセスが早くなるらしいので、奮発して欲しい容量のひとつ上くらいを買っておくといいのかもしれませんね。
今調べてみたら、同じくらいランクの SSD が 11,000 円台後半~13,000 円台になっているようなので、ちょっと値上がりしてるかなというところでしょうか。
今年の年明けくらいから円安の影響で PC パーツが急に値上がりし始めたり、日本の経済政策でごにょごにょあったりと、この半年を振り返ると結構いろいろあった感が強いです。ハードウェアを買うタイミングが来ると、為替とかやってるわけでもないのに、どうしても円相場に敏感になってしまいます…。
(とは言いつつも、いつも物欲に負けて欲しい時・必要な時に買ってしまうのであまり意味ないですが…)
OS 起動時間はどのくらいか
うちの開発用 PC では、電源をぽちっと押してから OS(Fedora 17 GUI)のログイン画面が表示されるまで 54 秒くらいになりました。ただし、パーツを継ぎ足し継ぎ足し増強したせいか BIOS の起動とハードウェアのチェックが結構遅いので、実際に OS の起動が始まる(GRUB 2 が表示される)のは起動後 31 秒くらいでした。なので OS 自体の起動は 約 23 秒です。
SSD への換装というと、よく OS が起動する要すをそのまま撮った動画がアップされてたりしますが、ああいう動画のように十数秒で起動する、というところまでは行けませんでした。Macbook Air の速度まで追いつけなかったのはちょっと残念でした。たぶん他のハードウェアが影響しているような気がするので、きちんとその辺を解消してやれば、他の人のような高速起動もできるようになるんじゃないかと思っています。
ただ、Fedora OS 自体の起動はかなり早くなっているのは確かです。
最近の Fedora の GUI 起動画面というと、F のマークがインジケーターになるアレ(↓)がお馴染みですが、HDD の頃には十数秒で読み込みが終わっていたのが、SSD に載せ替えてからは 1, 2 秒で読み込み完了するようになりました。F マークがすごい勢いで白くなります。
書き込み読み込みがとにかく速くなった
一方 OS の終了はというと、こちらは驚くほどちょっぱやになりました。今はシャットダウンメニューを選んでから 2 秒くらいでハードウェア電源まで停止しています。ここが一番 SSD への載せ替えによる速度差を感じたところでした。
他にも eclipse の起動時間とか、MySQL への初期化クエリの実行時間とか、yum で rpm ダウンロード後のインストール時間とか、grep の早さなんかでは SSD の恩恵がはっきりと見てとれます。
何をやるにせよ、日常的にこうしてハードウェア増設の効果を体感できるのは精神的にもいいですね。買い換えた甲斐があったなーと。
一昔前にメモリを積みまくって RAM ディスクを作るのが流行りましたが、乱暴に言ってしまえば SSD は HDD をまるごと RAM ディスクにするようなものなので、メモリ増設よりも効果はわかりやすいと思います。メモリは足りているうちはいくら積んでもかわらないですからね。
HDD から SSD へのデータ以降
HDD から SSD への換装作業ですが、増設した SSD をプライマリブートディスクにするように BIOS を設定して、SSD 上のみに OS を新規インストールしました。OS をインストールする時に物理的に HDD を外しておけば、絶対に上書きできないので安全ですが、めんどくさがりな私はびくびくしながら(笑)インストール先に SSD のみを選択した感じです。普段の Linux のインストールでは自分でパーティションを切るようにしてましたから、そういう事情もあってさらっとやりました。
つなげっぱなしの HDD ですが、起動時にそのまま /mnt 下にマウントするようにしています。
振り返ってみれば、古いデータを見返すということも正直あまりなかったのですが、捨てていいかを逐一チェックするのも面倒だったので、そのまま繋げておきました。なので、いまでも HDD のマスターブートレコードには HDD 上のカーネルをブートする GRUB が載ったままになっています。
fedora 17 では /etc/fstab でのハードウェア指定が UUID になっています。
/dec/hda1 とかじゃなくなってるのも時代の変化ですね。
# blkid /dev/sda1: LABEL="_Fedora-17-x86_6" UUID="469e2678-4d98-43e8-aabb-a6f7e18fb0ec" TYPE="ext4" /dev/sdb1: LABEL="Vista" UUID="362AA9CD2AA98A87" TYPE="ntfs" /dev/sdb5: LABEL="base" UUID="264EE27F4EE246E1" TYPE="ntfs" /dev/sdb6: UUID="05fcc84b-1abb-4900-a170-0ec3f715f61a" TYPE="ext4" /dev/sdb7: UUID="dbb9e1fe-07b3-4452-8988-dd1ad1814be1" TYPE="swap" /dev/sdb8: UUID="47f99b90-059f-4f3b-a706-9e0ee6cb8e8c" TYPE="ext4" # vi /etc/fstab UUID=469e5678-4d98-41e8-aabb-a6f7e18fb0ec / ext4 defaults 1 1 UUID=dbb9e1fe-07b3-44b2-8988-dc1ad1814be1 swap swap defaults 0 0 UUID=05f1c84b-1abc-4900-a170-0ef3f715f61a /mnt/f15old ext4 defaults 0 0 UUID=47f34b90-0596-4f3b-a706-9e0ee6cb8e8c /mnt/fswork ext4 defaults 0 0blkid はデバイスの UUID を調べるコマンドです。これで表示される UUID を /etc/fstab に書き足せば、次回起動時からは自動でマウントされるようになります。
fstab の詳細はこちらに書いてありますので参照のこと。
SSD の使用状況を確認する
SSD のハードウェア設計上書き込み回数には上限があり、これが実運用上どのくらいでやってくるのかが、SSD が出始めた頃よく話題になりました。実際にあとどのくらいで寿命がくるのかを調べるためには、ハードウェアの S.M.A.R.T. 機能を使うことで目安を知ることができます。
Linux では、S.M.A.R.T. 機能による統計情報は、smartmontools パッケージに含まれる smartctl コマンドで表示することができます。
# yum install -y smartmontools
OS 起動後に S.M.A.R.T. 機能を有効化することもできますが、BIOS で有効化しておくと毎回有効化する手間が省けます。
手動で実行する場合のコマンドはこちら。
# smartctl -s on
S.M.A.R.T. 機能による統計情報は、-a オプションで見ることができます。
# smartctl -a /dev/sda1 smartctl 6.0 2012-10-10 r3643 [x86_64-linux-3.6.11-1.fc17.x86_64] (local build) Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org ... SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 5 Reallocated_Sector_Ct 0x0032 100 100 000 Old_age Always - 0 9 Power_On_Hours_and_Msec 0x0032 000 000 000 Old_age Always - 895049h+23m+50.630s 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 169 181 Program_Fail_Cnt_Total 0x0032 000 000 000 Old_age Always - 0 182 Erase_Fail_Count_Total 0x0032 000 000 000 Old_age Always - 0 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 169 225 Host_Writes_32MiB 0x0032 100 100 000 Old_age Always - 1638 232 Available_Reservd_Space 0x0033 100 100 010 Pre-fail Always - 0 233 Media_Wearout_Indicator 0x0032 100 100 000 Old_age Always - 0 241 Host_Writes_32MiB 0x0032 100 100 000 Old_age Always - 1638 242 Host_Reads_32MiB 0x0032 100 100 000 Old_age Always - 2454 249 NAND_Writes_1GiB 0x0013 100 100 000 Pre-fail Always - 72 ...表示される情報はいろいろあるのですが、ベンダー固有情報の項目がおおまかな目安になるようです。
Intel の SSD の場合、ひとまず Available_Reservd_Space と Media_Wearout_Indicator の値が大きいほど残り寿命が多いことになるそうです。
smartctl コマンドでは SSD のテストや直近で発生したエラーの内容などを表示することもできるので、試してみてください。
Intel の SSD といえば…
そんなこんなでついに私も Intel の SPEED DEMON ステッカーを手に入れたのでした!!(半年前に)SSD なんておまけです :-)Linux, 雑記 コメント (0) 2013/07/27 18:50:35