ZFS SATAディスク交換例 – camcontrol使えない編

1TB*5台で構成されているRAIDZの空き容量が不足しているので、全部2TBに交換してオンラインマイグレーションする。

zpoolのオンラインマイグレーションは、

  • zpoolのautoexpandプロパティを使用する
  • zpool online -e を使用する

の2パターンがあるが、FreeBSD 8.2(zpool v15)以前では使用出来ず再起動したので、実際は「オンラインマイグレーションする予定でした。」が正しい。

その一部ログを単に貼り付けるだけですよ、っと。

現在の接続状況

# camcontrol devlist -v
scbus0 on mpt0 bus 0:
<ATA WDC WD10EADS-00L 1A01>        at scbus0 target 0 lun 0 (da0,pass0)
<ATA ST2000DL003-9VT1 CC3C>        at scbus0 target 1 lun …
more…

ZFS SATAディスク交換例 - atacontrol編

1TB*5台で構成されているRAIDZの空き容量が不足しているので、全部2TBに交換してオンラインマイグレーションする。

その一部ログを単に貼り付けるだけですよ、っと。

現在の接続状況

# atacontrol list
ATA channel 0:
    Master:      no device present
    Slave:       no device present
ATA channel 2:
    Master:  ad4  SATA revision 2.x
    Slave:       no device present
ATA channel 3:
    Master:  ad6  SATA revision 2.x
    Slave:       no device present
ATA channel 4:
    Master:  ad8 …
more…

ZFS Benchmark - Single編

単体ディスクのZFS性能変動をfioを用いて測定する。

おそらく最も一般的に興味のない単一ディスク編から始まるのであった。

測定環境は ZFS Benchmark – 環境構成編(http://www.ainoniwa.net/ssp/?p=224) を参照。

Sequential WriteはOpenIndiana/FreeBSD共に同じくらい、と言っても差し支えない気がする。

図1.1 OpenIndiana Sequential Write

図1.2 FreeBSD Sequential Write

Sequential ReadはなぜかOpenIndianaが爆速で、FreeBSDが(1本を除いて)遅い。

HDDの本来性能以上の値が測定できているのか、FreeBSDが単に遅いのか、全部キャッシュのせいなのかは今のところ棚上げ。

図1.3 OpenIndiana Sequential Read

Single-7だけ変に飛び上がってるけど、その値とOpenIndianaの平均値が同じくらい。

図1.4 FreeBSD Sequential Read

512KiB Random …

more…

ZFS Benchmark - 環境構成編

OpenIndiana 151a/FreeBSD 9.0-RC1で動かすZFSストレージの性能変動をfioを用いて測定する。

まずは、環境構成の整理と設定について簡単にまとめる。

この構成は基本的に両OSで同じものを使用する。

OS

  • OpenIndiana 151a
  • FreeBSD 9.0-RC1

設定

  • OpenIndiana : インストール後IPとSSH設定をした程度
  • FreeBSD 9.0-RC1 : インストール後IPとSSH設定をした程度(/boot/loader.confにはノータッチ)

機器構成 …

more…

HTS725050A9A364

HTS725050A9A364の読み込み性能を軽く測った結果、ZFSの記事は飛ばし記事みたいになってしまったから、当たり障りの無い表現に修正しておこう。

決してファイルシステムによる性能劣化…ではない、という辺りで。

とはいえ、何も考えずにdd使うと、ZFSは外周から素直に埋めていくってことは分かったよね。って言い訳。:

# dd if=/dev/dsk/c3t1d0 of=/dev/null bs=512k count=30720
30720+0 records in
30720+0 records out
16106127360 bytes (16 GB) copied, 154.042 s, 105 MB/s

# dd if=/dev/dsk/c3t1d0 of=/dev/null bs …
more…

ZFSの性能劣化について - snapshot無し版

前回は、テストケースに合わせた測定をしたので、そこからSnapshotを取得しない(したとしても、別のプールの)場合を考える。

少しファイル量を調整(定常CAP 94%、測定終了時CAP98%位)したので、厳密な比較ではないです。

本当は、性能の回復に向けたデータ取得がしたいのだけど、スクリプトが上手く表現できなさそうだったから、簡単な方からやりました。

しかし、ディスクの内外周性能差が直接グラフに出てるだけで、ZFSさんは何も悪くない感じですね、マジで。

以下特に面白くないグラフぺたぺた。

image0

snapshot取得時に比べると、低下は若干緩やかになっている。

440GiB地点では、何故かReadが向上してWriteは低下している。

たまたまシーケンシャルに近い動きをしたのかもしれない けど、そもそもZFSさんはどの程度アロケートサイズの間隔を持たせるのかよく知らないので割愛。

しかし、概ねsnapshotを取得していた場合と傾向は似ており、snapshotを大量に取得することで、性能に大幅な影響を与える可能性は今のところ少ないように見える。

(データの削除やパーティションごとのデータ移動に伴って、snapshotの示すデータ位置のフラグメンテーションが激しくなる場合は性能が劣化して当然なので、実運用における結論とはならない)

性能劣化はファイルシステムじゃなくて、ディスクの内外周の速度差に起因するものだと見ても良いレベル。

image1

概ね同様の傾向。

image2

2枚目と同様の傾向。

352GiB地点における安定感から、440GiB地点のぶれは、微妙に余った外周部分にも読み書きが発生しているだけのように見える。

image3

応答時間は徐々に増えているが、440GiB地点のぶれは、同様にディスクの内外周に起因するものに見える。

snapshot取得時はこのような傾向が見えていなかったが、若干ファイル数の調整を行ったのが裏目に出た感じかなぁ…。

再取得してくるます。

image4

zpool …

more…

ZFSの性能劣化について

ZFSはHDDの空き領域の現象に伴って、性能が劣化すると言われている。

自宅で動いているZFSなファイルサーバのパフォーマンスも、少し落ちてきている気もする。

そこで、簡単なテストケースを準備して、性能劣化が見られるか試してみることにした。

結論から言うと、別に容量問題は存在しないように見受けられる。

空き領域が減ったら問題が起きるわけではない、と言うだけ。

一般的な書き換え頻度によって長期間運用された結果、空き領域が足りなくなった状況においては、 直接的に性能に影響を及ぼす要素は、単純な空き領域以外の要素(CoWによるデータの散らばりやフラグメント)ではないかと考えられる。 そして、性能低下と言う状況が表面化するタイミングを見極めるうえで、空き領域を指標として用いる、と言うのが直感的に理解しやすいために、空き領域が足りなくなると性能が極端に低下する、と表現されるような気がしている。

試験環境

  • GT110b + OpenIndiana v148

OpenIndianaから見た情報

  • HDD(HTS725050A9A364):

    # format
     Searching for disks...
     Failed to inquiry this logical diskdone
    
    AVAILABLE DISK SELECTIONS:
     0. c2d0 <????pHoH??[Xq???? cyl 2608 alt …
more…