2013年5月31日金曜日

ZFS on Linux 0.6.1 の性能を OpenIndiana 151a7 と比較

ZFS on Linux を使い始めて約1年、始祖の Solaris 実装とどの程度性能が違うのか知りたくなり、試してみました。

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                    local
zpool の構成は前記のとおりのシングル構成です。

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の性能を比較

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ