Leopard なので Time Machine が使えるわけだが、せっかく家庭内サーバがあるので外付けの USB HDD とかじゃなくてサーバにバックアップを取りたい。
ということでサーバに iSCSI target、Macbook に iSCSI 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]