start

RAID-Z2の再構築速度

知人の業務用ファイルサーバという名の自作マシンに、悪名高きST3000DM001が5台も使われている。HDDの通電時間も15000時間を超え、そろそろ怖くなってきたので全部取り替えることになった。

CPU Intel Xeon E3-1225 V2
M/B Gigabyte Z77X-UP5
メモリ 16GB
ストレージ HDD 6台(ST3000DM001×5 + HDS723030ALA640)のRAID-Z2
OS FreeBSD 9.2-RELEASE-p4
# zpool list
NAME    SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
zdata  16.2T  8.45T  7.80T    52%  1.00x  DEGRADED  -

こんな環境。

早速1台をzpool replaceしてみたところ、6時間で1.41TBを同期して完了。既存データを総なめしてる訳だから、410MB/sほどの速度。他のRAIDシステムを使ったことがないので、これが速いのか遅いのかは判断できないが、遅くはないんじゃないかなーと思う。

ちなみに、再構築中のロードアベレージは0.5位で、CPUはsystemに15%前後取られていた。

さて、残り4台もこの調子で交換していこう。

続・L2ARCの空き容量が16EB(16.0E)と表示される件

こないだの続き。

その後システムをFreeBSD 10-STABLE (r283857)に更新しL2ARCを有効にしていたが、これまた、たまたまzpool iostatを流してたら16EBになる瞬間を捉えられた。

               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
zhome        731G   197G      0     68      0  8.01M
  mirror     731G   197G      0     68      0  8.01M
    ada0p1      -      -      0     68      0  8.13M
    ada3p1      -      -      0     74      0  8.88M
logs            -      -      -      -      -      -
  mirror     128K  7.94G      0      0      0      0
    ada1p3      -      -      0      0      0      0
    ada9p3      -      -      0      0      0      0
cache           -      -      -      -      -      -
  ada9p5    40.0G  1.78M      0      0      0      0
----------  -----  -----  -----  -----  -----  -----

               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
zhome        731G   197G      0    369      0  16.3M
  mirror     731G   197G      0    369      0  16.3M
    ada0p1      -      -      0    197      0  16.2M
    ada3p1      -      -      0    191      0  15.5M
logs            -      -      -      -      -      -
  mirror    13.8M  7.92G      0      0      0      0
    ada1p3      -      -      0      0      0      0
    ada9p3      -      -      0      0      0      0
cache           -      -      -      -      -      -
  ada9p5    40.0G  16.0E      0     63      0  7.96M  ★★ここ★★
----------  -----  -----  -----  -----  -----  -----

               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
zhome        731G   197G      0      0      0      0
  mirror     731G   197G      0      0      0      0
    ada0p1      -      -      0      0      0      0
    ada3p1      -      -      0      0      0      0
logs            -      -      -      -      -      -
  mirror    13.8M  7.92G      0      0      0      0
    ada1p3      -      -      0      0      0      0
    ada9p3      -      -      0      0      0      0
cache           -      -      -      -      -      -
  ada9p5    40.0G  1.40M      0     33      0  4.25M
----------  -----  -----  -----  -----  -----  -----

               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
zhome        731G   197G      0      0      0      0
  mirror     731G   197G      0      0      0      0
    ada0p1      -      -      0      0      0      0
    ada3p1      -      -      0      0      0      0
logs            -      -      -      -      -      -
  mirror    13.8M  7.92G      0      0      0      0
    ada1p3      -      -      0      0      0      0
    ada9p3      -      -      0      0      0      0
cache           -      -      -      -      -      -
  ada9p5    40.0G   924K      0     37      0  4.74M
----------  -----  -----  -----  -----  -----  -----

               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
zhome        731G   197G      0      0      0      0
  mirror     731G   197G      0      0      0      0
    ada0p1      -      -      0      0      0      0
    ada3p1      -      -      0      0      0      0
logs            -      -      -      -      -      -
  mirror    13.8M  7.92G      0      0      0      0
    ada1p3      -      -      0      0      0      0
    ada9p3      -      -      0      0      0      0
cache           -      -      -      -      -      -
  ada9p5    40.0G   424K      0     41      0  5.24M
----------  -----  -----  -----  -----  -----  -----

               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
zhome        731G   197G      0      0      0      0
  mirror     731G   197G      0      0      0      0
    ada0p1      -      -      0      0      0      0
    ada3p1      -      -      0      0      0      0
logs            -      -      -      -      -      -
  mirror    13.8M  7.92G      0      0      0      0
    ada1p3      -      -      0      0      0      0
    ada9p3      -      -      0      0      0      0
cache           -      -      -      -      -      -
  ada9p5    40.0G  16.0E      0     46      0  5.86M  ★★ここ★★
----------  -----  -----  -----  -----  -----  -----

               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
zhome        731G   197G      0     77      0  9.12M
  mirror     731G   197G      0     77      0  9.12M
    ada0p1      -      -      0     77      0  9.24M
    ada3p1      -      -      0     84      0  10.1M
logs            -      -      -      -      -      -
  mirror    13.8M  7.92G      0      0      0      0
    ada1p3      -      -      0      0      0      0
    ada9p3      -      -      0      0      0      0
cache           -      -      -      -      -      -
  ada9p5    40.0G  16.0E      0      0      0      0
----------  -----  -----  -----  -----  -----  -----

L2ARCの空きが無くなると16.0Eになるっぽい。unsignedな型で負数を扱おうとして爆発してるように見える。というか、r273060のコミットログに、思いっきり「the number became negative and overflows」と理由が載っていた(´・ω・`)

更にarc.cのログを追っていたら、r275096で修正がリバートされてるやないか!4Kセクタデバイスを考慮しておらず正しい修正ではなかったとの事……。解決には時間が掛かりそうな雰囲気。

L2ARCの空き容量が16EB(16.0E)と表示される件

zpool iostat -vしてて気付いたが、L2ARCの容量表示がおかしい。FreeBSD 10.1-RELEASE-p6で確認。

                   capacity     operations    bandwidth
pool            alloc   free   read  write   read  write
--------------  -----  -----  -----  -----  -----  -----
zhome            759G   169G      2     14   247K   500K
  mirror         759G   169G      2     14   247K   499K
    ada0p1          -      -      1      6   123K   500K
    ada3p1          -      -      1      6   125K   500K
logs                -      -      -      -      -      -
  mirror         128K  7.94G      0      0      0  12.1K
    ada1p3.nop      -      -      0      0      1  12.1K
    ada9p3.nop      -      -      0      0      1  12.1K
cache               -      -      -      -      -      -
  ada9p5         151G  16.0E      0      2  22.2K   358K

空き容量16.0EBの確保済み151GBって…。ada9p5は40GBしか無いんですけど。

r273060で修正された風には書かれてるが、再発報告(その1, その2)が上がってる。本記事を書いている時点でarc.cの最新リビジョンは先のr273060止まりなので、 → (2015-06-10追記:ウソ。arc.cの最新リビジョンのリンクはこっちで、リビジョンはr281109だった。) どこかにバグが残ってるんだろうなぁ。現に自分の所でも出てるわけだし。

表示上の問題ならいいけど、中身がバグってたら嫌なので当面L2ARCは外しておくとしよう。

ZFSのslog追加時もashift量に注意しよう

zpool statusしたら「block size: 512B configured, 4096B native」なるメッセージが出ていた。

$ zpool status zhome
  pool: zhome
 state: ONLINE
status: One or more devices are configured to use a non-native block size.
        Expect reduced performance.
action: Replace affected devices with devices that support the
        configured block size, or migrate data to a properly configured
        pool.
  scan: resilvered 389G in 2h31m with 0 errors on Sun Mar 29 16:58:56 2015
config:

        NAME        STATE     READ WRITE CKSUM
        zhome       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            ada0p1  ONLINE       0     0     0
            ada3p1  ONLINE       0     0     0
        logs
          mirror-1  ONLINE       0     0     0
            ada1p3  ONLINE       0     0     0  block size: 512B configured, 4096B native
            ada9p3  ONLINE       0     0     0  block size: 512B configured, 4096B native
        cache
          ada9p5    ONLINE       0     0     0

物理4kセクタのデバイスに512バイト単位でアクセスしてて性能低下してるかもよっていうアレ。わざわざ報告してくれるなんてZFSは神。てか、slogのブロックサイズはプール本体のashiftと連動しないんすね…

というわけで、一旦slogを消し、例によってgnopで4kセクタ化してslogを作りなおした。

$ sudo zpool remove zhome mirror-1 
$ zpool status zhome
  pool: zhome
 state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
        still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: resilvered 389G in 2h31m with 0 errors on Sun Mar 29 16:58:56 2015
config:
 
        NAME        STATE     READ WRITE CKSUM
        zhome       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            ada0p1  ONLINE       0     0     0
            ada3p1  ONLINE       0     0     0
        cache
          ada9p5    ONLINE       0     0     0
 
errors: No known data errors
 
$ sudo gnop create -S 4096 /dev/ada1p3
$ sudo gnop create -S 4096 /dev/ada9p3
$ sudo zpool add zhome log mirror ada1p3.nop ada9p3.nop
$ zpool status zhome
  pool: zhome
 state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
        still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: resilvered 389G in 2h31m with 0 errors on Sun Mar 29 16:58:56 2015
config:
 
        NAME            STATE     READ WRITE CKSUM
        zhome           ONLINE       0     0     0
          mirror-0      ONLINE       0     0     0
            ada0p1      ONLINE       0     0     0
            ada3p1      ONLINE       0     0     0
        logs
          mirror-1      ONLINE       0     0     0
            ada1p3.nop  ONLINE       0     0     0
            ada9p3.nop  ONLINE       0     0     0
        cache
          ada9p5        ONLINE       0     0     0
 
errors: No known data errors

一応、zdbで確認(ログの必要箇所のみ抜粋)

children[1]:
    type: 'mirror'
    id: 1
    guid: 12556410678957656274
    metaslab_array: 52
    metaslab_shift: 26
    ashift: 12
    asize: 8585216000
    is_log: 1
    create_txg: 13992340
    children[0]:
        type: 'disk'
        id: 0
        guid: 10904489644541021375
        path: '/dev/ada1p3.nop'
        phys_path: '/dev/ada1p3.nop'
        whole_disk: 1
        create_txg: 13992340
    children[1]:
        type: 'disk'
        id: 1
        guid: 18335897789017456858
        path: '/dev/ada9p3.nop'
        phys_path: '/dev/ada9p3.nop'
        whole_disk: 1
        create_txg: 13992340

ashift: 12になってるし、これで大丈夫だろう。nopデバイスは次に再起動した時に勝手に消えるだろうから、放置で。

ついでに、もう1個のプールも確認してみると…

$ zpool status zdata
  pool: zdata
 state: ONLINE
status: One or more devices are configured to use a non-native block size.
        Expect reduced performance.
action: Replace affected devices with devices that support the
        configured block size, or migrate data to a properly configured
        pool.
  scan: scrub canceled on Sun Mar 22 10:40:27 2015
config:

        NAME         STATE     READ WRITE CKSUM
        zdata        ONLINE       0     0     0
          raidz1-0   ONLINE       0     0     0
            ada5p1   ONLINE       0     0     0
            ada10p1  ONLINE       0     0     0
            ada12p1  ONLINE       0     0     0
          raidz1-1   ONLINE       0     0     0
            ada14p1  ONLINE       0     0     0  block size: 512B configured, 4096B native
            ada8p1   ONLINE       0     0     0  block size: 512B configured, 4096B native
            ada15p1  ONLINE       0     0     0  block size: 512B configured, 4096B native
        logs
          mirror-2   ONLINE       0     0     0
            ada1p4   ONLINE       0     0     0  block size: 512B configured, 4096B native
            ada9p4   ONLINE       0     0     0  block size: 512B configured, 4096B native
        cache
          ada1p5     ONLINE       0     0     0
        spares
          ada2p1     AVAIL

errors: No known data errors

ぉぉぉぉ、、、RAID-Zストライピングの片割れraidz1-1が見事にashitf=9になってやがる…。raidz1-1は後からashiftを考慮せずに、というよりもashiftがvdev単位?なのを知らずに追加したものなので当然っちゃ当然だが……。AFTには気をつけて作業して来たつもりだけど、こんな罠があったとはねorz

にしても困った。zdataは3TB HDD×6本のプールなので、先のslogみたいに気軽に削除&作り直しって訳にもいかんしなぁ。raidz1-1にashift=12のミラーを追加して・・・とも思ったが、ミラーのashiftはraidz1-1のが継承されそうな気がする。そもそもraidz1-1をミラーに出来るかも分からんし。もしかして詰んでる?

口唇ヘルペス再発とヘルペシア

数年ぶりに口唇ヘルペスが再発した。

5/5の朝、ひげを剃った後から唇がヒリヒリし始め、たまにあるカミソリ負けかと思っていた。しかし、夕方には赤くかぶれ水ぶくれも出来た状態で、ああ、これはヘルペスだなと。思えばひげ剃り後の痛みからして、いつもと違う若干ピリピリ系のものだったが、まさに後の祭りだ。

経験者なら分かって頂けると思うが、ヘルペス自体の痛みは然程でもないが、見てくれが非常に悪く一刻も早く治したいもの。だが折しもゴールデンウィークの真っ只中、実家帰省中で医者の場所は分からないし分かったとしても休みだったろう。ネットで調べてみたらOTC医薬品として再発治療薬「ヘルペシア」が市販されているとの情報ゲッツ。

翌日、近所のドラッグストアに行ってみるも、薬剤師がいない店舗で購入ならず。“不在“ではなく、そもそも“いない”ところもあるんすねぇ…。そうそう、ヘルペシアは第一類医薬品なので薬剤師がいないと買えないのだ。仕方なく街中の別のドラッグストアに行き、ようやくゲットだぜ!

ヘルペシアはヘルペスの前兆が出た時点で使うと効果的で、あまり酷い状態のものには効かないらしい。 自分はというと、既に発症から1.25日経っており誰がどう見てもヘルペスな状態で、まだ間に合うのか?という思いが頭をよぎりつつも、他に手段はないので買ったその足でトイレに駆け込み患部に塗布。

経過を時系列で書いてみると…

塗布後 状態
1~3日目それほど改善した感じはしない
4日目普通のかさぶたが出来始める
6日目ヘルペスの症状はほぼなくなり、全面かさぶた状態
9日目全面かさぶた継続中(いまここ)。普通に口を開く分にはかさぶたが割れるような事はなくなった。

かさぶたが取れる気配はまだなく、完治には時間が掛かりそう(´・ω・`)

てか、ヘルペス状態の時よりかさぶたの方が辛い件。口を開くとかさぶたが割れて痛い。

まぁ、肝心のヘルペスそのものは割と早く沈静化したので、ヘルペス持ちの人は心に留めておくといいよ!

   *゚゚・*+。
   |   ゚*。
  。∩∧∧  *
  + (・ω・`) *+゚  はやくなお~れ
  *。ヽ  つ*゚*
  ゙・+。*・゚⊃ +゚
   ☆ ∪  。*゚
   ゙・+。*・゚
  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo