Solaris 系は、初挑戦でしたが、インストールはさほど難しくなかった印象です。むしろ、その前準備(マルチブートのためのパーティション構成変更作業)に手間がかかりました。特に、ディスク先頭の Windows7 のパーティションをいじるのに苦労しました。実験に使ったマシンは ThinkPad T510 ですが、プリインストールされていた Windows7 環境では、C: の他にシステムパーティションと呼ばれる領域がもう1つ確保されていて、これを削除するのが手間でした。ZFS本(ISBN-13: 978-4048676540)によると、OpenSolaris は、基本パーティションにインストールする必要があるということで、Windows7 のシステムパーティションが邪魔になったのです。そこは本題ではないので、詳細は割愛しますが、最終的に次のようなパーティション構成となりました。
今回の測定環境は ThinkPad T510 + 古い SAMSUNG SSD (eSATA接続) です。
# zdb tankM: version: 23 name: 'tankM' state: 0 txg: 194345 pool_guid: 17978947249853082376 hostid: 8323328 hostname: 'my42' vdev_children: 1 vdev_tree: type: 'root' id: 0 guid: 17978947249853082376 children[0]: type: 'disk' id: 0 guid: 2831835469869973055 path: '/dev/disk/by-id/ata-SAMSUNG_MCCOE64G8MPP-0VA_SE809N0057-part1' phys_path: '/dev/ada1s1' whole_disk: 0 metaslab_array: 24 metaslab_shift: 29 ashift: 12 asize: 64017399808 is_log: 0 DTL: 73 create_txg: 4 features_for_read: # zpool get all tankM NAME PROPERTY VALUE SOURCE tankM size 59.5G - tankM capacity 32% - tankM altroot - default tankM health ONLINE - tankM guid 17978947249853082376 local tankM version 23 local tankM bootfs - default tankM delegation on default tankM autoreplace off default tankM cachefile - default tankM failmode wait default tankM listsnapshots off default tankM autoexpand off default tankM dedupditto 0 default tankM dedupratio 1.00x - tankM free 39.9G - tankM allocated 19.6G - tankM readonly off - tankM ashift 12 local tankM comment - default tankM expandsize 0 - tankM freeing 0 local tankM feature@async_destroy disabled local tankM feature@empty_bpobj disabled local tankM feature@lz4_compress disabled local # zfs get all tankM -s local NAME PROPERTY VALUE SOURCE tankM mountpoint /tankM local tankM atime off localzpool の構成は前記のとおりのシングル構成です。
SAMSUNG SSD の基本性能は次のような具合(Disk Utility のベンチマーク結果)です。
以下、bonnie++ 1.96 のデータです。
■CentOS 6.4
# uname -a Linux xxxx 2.6.32-358.6.2.el6.x86_64 #1 SMP Thu May 16 20:59:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux # bonnie++ -u root -d /tankM ... Version 1.96 ------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 xxxx 15464M 151 99 68485 12 40237 9 319 84 108505 11 910.6 26 Latency 73426us 146ms 1240ms 842ms 302ms 480ms Version 1.96 ------Sequential Create------ --------Random Create-------- xxxx -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 17826 84 +++++ +++ 4228 29 19977 85 +++++ +++ 21914 96 Latency 31300us 332us 77141us 31685us 67us 912us 1.96,1.96,xxxx,1,1369835550,15464M,,151,99,68485,12,40237,9,319,84,108505,11,910.6,26,16,,,,,17826,84,+++++,+++,4228,29,19977,85,+++++,+++,21914,96,73426us,146ms,1240ms,842ms,302ms,480ms,31300us,332us,77141us,31685us,67us,912us
■OpenIndiana 151a7
# uname -a SunOS xxxx 5.11 oi_151a7 i86pc i386 i86pc Solaris # ./bonnie++ -u root -d /tankM ... Version 1.96 ------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 xxxx 16G 209 96 75797 12 42079 10 606 99 102241 10 2499 34 Latency 43718us 190ms 1469ms 18081us 545ms 45179us Version 1.96 ------Sequential Create------ --------Random Create-------- xxxx -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 5706 15 +++++ +++ +++++ +++ 24358 53 +++++ +++ +++++ +++ Latency 1686ms 144us 102us 7317us 27us 92us 1.96,1.96,xxxx,1,1369836787,16G,,209,96,75797,12,42079,10,606,99,102241,10,2499,34,16,,,,,5706,15,+++++,+++,+++++,+++,24358,53,+++++,+++,+++++,+++,43718us,190ms,1469ms,18081us,545ms,45179us,1686ms,144us,102us,7317us,27us,92us
■FreeBSD 9.1
# uname -a FreeBSD xxxx 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 # bonnie++ -u root -d /tankM ... Version 1.96 ------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 xxxx 16G 174 99 69411 11 38889 7 414 91 104735 5 1040 8 Latency 50405us 3339ms 2989ms 628ms 620ms 1002ms Version 1.96 ------Sequential Create------ --------Random Create-------- xxxx -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 31430 95 +++++ +++ 16114 62 32265 96 +++++ +++ 4389 93 Latency 13375us 118us 118ms 13380us 115us 447us 1.96,1.96,xxxx,1,1369838677,16G,,174,99,69411,11,38889,7,414,91,104735,5,1040,8,16,,,,,31430,95,+++++,+++,16114,62,32265,96,+++++,+++,4389,93,50405us,3339ms,2989ms,628ms,620ms,1002ms,13375us,118us,118ms,13380us,115us,447us
■Fedora18
# uname -a Linux xxxx 3.9.3-201.fc18.x86_64 #1 SMP Tue May 21 17:02:24 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux # bonnie++ -u root -d /tankM ... Version 1.96 ------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 xxxx 15688M 149 95 74100 13 42477 10 362 87 108047 11 946.6 30 Latency 98607us 170ms 1224ms 733ms 433ms 621ms Version 1.96 ------Sequential Create------ --------Random Create-------- xxxx -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 13264 56 +++++ +++ 10665 70 19831 85 +++++ +++ 24615 94 Latency 310ms 7156us 49153us 39069us 80us 551us 1.96,1.96,xxxx,1,1369840982,15688M,,149,95,74100,13,42477,10,362,87,108047,11,946.6,30,16,,,,,13264,56,+++++,+++,10665,70,19831,85,+++++,+++,24615,94,98607us,170ms,1224ms,733ms,433ms,621ms,310ms,7156us,49153us,39069us,80us,551us
測ってみた感想としては、わたしの利用範囲においては、OpenIndiana , FreeBSD と比較して、Linux 実装のパフォーマンスは遜色ない(若干劣る程度)と感じました。ただ、普段使いは CentOS6 なのですが、最新カーネルの恩恵を受けられる Fedora18 のほうがパフォーマンス発揮できるようです。
Fedora, CentOS 等の iso イメージ格納庫、調査用ソース展開場所(主にカーネル)、自作開発ソース格納庫、バックアップイメージ格納庫、KVM ゲスト用ディスク割り当て(スパース zvol)が、わたしの現在の用途です。
本格的に使っている zpool の形態は、RAIDZ(HDDx4 , バックアップ, iso格納用)、RAIDZ2(HDDx6+zram(L2ARC), ソースコード格納用)、mirror+stripe(HDDx2+HDDx2+SSDx2(ZIL&L2ARC), 大容量バックアップ用NFS)、HW-RAID上のシングル(KVM ゲスト向けzvol切り出し用)といったところです。すっかり、どっぷりと使っています。
仕事では、SAN ストレージ+multipath+LVM2+ext4 領域も使っていますが、ZFS と比べて、運用・操作性が格段にヤヤコシイく感じます。
■関連記事
3つのOSでZFSの性能を比較