2010-03-18 [長年日記]

SSDなUbuntu 9.10のインストールメモ

Ubuntu を 9.10 に上げる。折角なので、SSDにチャレンジしてみた。

メーカー: INTEL
型番: X25-V Value SATA SSD SSDSA2MP040G2R5
容量: 40GB
価格: 12k (T-ZONE)
http://kakaku.com/item/K0000079560/

SSDは「書き込み回数が多いと寿命は2年」らしいので、rootパーティションで利用して、データ領域にはIDE(SATA)を利用することにした。インストール自体は30分弱で完了。てか、9.10のインストーラの完成度は異常。デフォルトで進んでたら ext4 になったけど、まぁよしとしよう。

優しいSSDの育て方

の情報をまとめると、

  1. swap領域をSSD内に作らない
  2. OSのキャッシュの書き込みの頻度調整
  3. RAMDISK(tempfs)を利用する (/tmp,swap)
  4. アクセスタイムの記録を止める

ことで、writeの頻度と作業が減り、SSDの延命に繋がるようだ。(機能とのトレードオフではあるが)。具体的には、以下のコマンドになる。

# vi /etc/sysctl.conf
vm.swappiness = 0                      # 1
vm.dirty_writeback_centisecs = 1500    # 2
# sysctl -p                            # 設定を反映させる

# vi /etc/fstab
UUID=df06(..略..)035 / ext4 noatime,errors=remount-ro 0 1  # 3
tmpfs /tmp tmpfs defaults,size=512m 0 0                    # 4
# mount -a

最初は、上記サイトの記述にあるように /var/log も tmpfs にしてみたのだが、サブディレクトリが reboot の度に消えてしまうので、apache2 や bootchart などのアプリケーションで不具合が生じたので断念した。しかし、SSDのままだと優しくないので、/data (IDE/SATA) へのリンクにしてみた。

# mkdir -p /data/var/log
# cd /var
# ln -s /data/var/log .

速度比較

# hdparm -t /dev/sda1
 Timing buffered disk reads:  438 MB in  3.00 seconds = 145.81 MB/sec

# hdparm -t /dev/sdb1
 Timing buffered disk reads:  264 MB in  3.00 seconds =  87.96 MB/sec

# hdparm -t /dev/sdg1
 Timing buffered disk reads:  100 MB in  3.01 seconds =  33.23 MB/sec

sdb は /data で使ってる3年前に購入したSATA IDE。sdg は先日購入した、USB外付けHDD (HD-CL1.0TU2 / BUFFALO)。

温度比較

hddtemp というソフトで温度が測定できるらしい。

# aptitude install hddtemp

# hddtemp /dev/sda
WARNING: Drive /dev/sda doesn't seem to have a temperature sensor.
WARNING: This doesn't mean it hasn't got one.
WARNING: If you are sure it has one, please contact me (hddtemp@guzu.net).
WARNING: See --help, --debug and --drivebase options.
/dev/sda: INTEL SSDSA2M040G2GC:  no sensor

# hddtemp /dev/sdb
/dev/sdb: Hitachi HDP725050GLA360: 37°C

# hddtemp /dev/sdg
/dev/sdg: BUFFALO External HDD: S.M.A.R.T. not available

SSDはSMARTないのか。BUFFALOは何でだろう?とにかく、比較は失敗に終わった。

Web2.0時代のOSアップグレード方法

先日、/etc/.git の有用性を紹介したが、write 頻度を下げるバックアップ方法はSSDでは特に有益だろう。そしてさらに、OSのアップグレード(or 入れ直し)でも活躍するのだから、勝ち将棋鬼の如しである。

  1. 生前のOSの /etc/.git を保存しておく (実体は最初から /data/repos/etc なので既に完了)
  2. 新しいOSに /data を mount し、/etc/.git の symlink を復活させる

これで、あとは git を使って好きに料理するだけ!例えば、インストール後に ntpdate で時間合わせようとして、「ああ、前の設定どこにしてたっけか?」なんてときには、

# cd /etc
# git diff default/ntpdate
--- a/default/ntpdate
+++ b/default/ntpdate
@@ -7,7 +7,7 @@ NTPDATE_USE_NTP_CONF=yes
 
 # List of NTP servers to use  (Separate multiple servers with spaces.)
 # Not used if NTPDATE_USE_NTP_CONF is yes.
-NTPSERVERS="ntp.nict.jp"
+NTPSERVERS="ntp.ubuntu.com"

で、速攻まるわかり!これでオッケーなら、あとはクールに

# git checkout default/ntpdate

で完了。

diff /data/backup/etc/... が許されるのは小学生まで

え、apache2 の設定はファイルが一杯あるから面倒?

# cd /etc/apache2
# git diff .
# git checkout .       # 全部OKなら"."一発、ダメならファイル単位で

一度やった設定はDRYに決める。これがOSアップグレード2.0。

今回のインストールのKPT

KEEP

  • 別IPで仮稼働レベルまで育成した
  • /var/cache/bind/*.jnl を忘れなかった
  • pg の dump を忘れなかった
  • etc を git でキメた

PROBLEM

  • /etc/aliases を忘れて postfix 起動
  • インストールしたアプリをメモらず

TRY

  • メールをしっかりケアする
  • aptitude の履歴を取る
  • /data 側に git の checkout しておく

インスコ直後は git-core が入ってないので、少し困った。(/etc/network の設定情報を得る為に git を使いたいが、そのためにネットが必要)。こういう超序盤用に /data 側に etc の git object を展開しておくとさらに便利そうだ。


サイト内検索 (by Google)

| JRuby | Rails | Berryz | ℃-ute | エッグ | jQuery |

過去

2010年
3月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

未来

コンタクト