Time Machine で iSCSI にバックアップ

Leopard なので Time Machine が使えるわけだが、せっかく家庭内サーバがあるので外付けの USB HDD とかじゃなくてサーバにバックアップを取りたい。
ということでサーバに iSCSI target、MacbookiSCSI initiator (globalSAN iSCSI Initiator - SNS (Studio Network Solutions)) を入れて Time Machine で使う話。

まずサーバは Gentoo Linux (kernel:2.6.19-gentoo-r5)。emerge で iscsitarget と lvm をインストール。
# の前に実は SATA の HDD を増設したのにのドライバが入ってなかったので kernel rebuild したり、そしたらミスって起動しなくなったり……があったけど本筋と関係ないので割愛

# emerge iscsitarget
# emerge lvm2

LVM を設定してパーティションを切り出す。

# fdisk /dev/sda                         <- 増設した /dev/sda を 1パーティション(type 8e=Linux LVM)に
# pvcreate /dev/sda1                     <- /dev/sda1 を Physical Volume として使う
# vgcreate vg01 /dev/sda1                <- VolumeGroup vg01 に /dev/sda1 を追加
# lvcreate --name lvmac --size 250G vg01 <- 250GB の Logical Volume を vg01 に作成

次に iscsi target の設定。
/etc/ietd.conf

Target iqn.2007-11.org.example:iscsi
       Lun 0 Path=/dev/vg01/lvmac,Type=fileio
       Alias iSCSI

で /etc/init.d/ietd start で起動。起動時に

net.core.wmem_max is lower than recommended 1048576

のような警告が出たので、/etc/sysctl.conf に以下を追記して sysctl -p /etc/sysctl.conf した。

net.core.wmem_max     = 1048576
net.core.rmem_max     = 1048576
net.core.wmem_default = 1048576
net.core.rmem_default = 1048576
net.ipv4.tcp_mem      = 1048576 1048576 1048576
net.ipv4.tcp_rmem     = 1048576 1048576 1048576
net.ipv4.tcp_wmem     = 1048576 1048576 1048576

さて、これでサーバの iSCSI target 設定が完了したので、OSX で globalSAN iSCSI initiator を起動して接続。これはサーバの IP アドレスを入れて、表示される Target を指定するだけなので簡単。
接続すると、認識できないディスクなのでどうするか(フォーマットしてないから当然)、と訊かれるのでボリュームを作ってフォーマット。
……ということで、Time Machine で使用できるようになった。


参考までにいくつかベンチマーク結果を。結果としては、MacBookの内蔵2.5inch HDD < iSCSI target (3.5inch HDD) でした。すばらしい。

サーバの LVM パーティションext3 でフォーマットして bonnie++ で計測。

Version 1.93c       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
sola          2047M   366  99 61460  26 25475   8   945  98 72971  10 145.2   1

MacBook の内蔵 HDD (TOSHIBA MK-1237GSXに換装) を Xbench で計測。

Disk Test	36.05	
	Sequential	50.88	
		Uncached Write	61.66	37.86 MB/sec [4K blocks]
		Uncached Write	62.05	35.11 MB/sec [256K blocks]
		Uncached Read	31.16	9.12 MB/sec [4K blocks]
		Uncached Read	70.47	35.42 MB/sec [256K blocks]
	Random	27.92	
		Uncached Write	10.27	1.09 MB/sec [4K blocks]
		Uncached Write	66.59	21.32 MB/sec [256K blocks]
		Uncached Read	59.37	0.42 MB/sec [4K blocks]
		Uncached Read	71.34	13.24 MB/sec [256K blocks]

サーバの iSCSI target (Seagate ST3500630AS) を MacBook から Xbench で計測。接続は 1000Base-T

Disk Test	44.70	
	Sequential	54.84	
		Uncached Write	60.79	37.32 MB/sec [4K blocks]
		Uncached Write	60.89	34.45 MB/sec [256K blocks]
		Uncached Read	32.12	9.40 MB/sec [4K blocks]
		Uncached Read	111.94	56.26 MB/sec [256K blocks]
	Random	37.72	
		Uncached Write	11.25	1.19 MB/sec [4K blocks]
		Uncached Write	76.78	24.58 MB/sec [256K blocks]
		Uncached Read	1259.89	8.93 MB/sec [4K blocks]
		Uncached Read	303.08	56.24 MB/sec [256K blocks]