start

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日目全面かさぶた継続中(いまここ)。普通に口を開く分にはかさぶたが割れるような事はなくなった。

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

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

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

   *゚゚・*+。
   |   ゚*。
  。∩∧∧  *
  + (・ω・`) *+゚  はやくなお~れ
  *。ヽ  つ*゚*
  ゙・+。*・゚⊃ +゚
   ☆ ∪  。*゚
   ゙・+。*・゚

MacのtftpでRTX1100のファームウェアを更新する

実家用に中古のRTX1100を買ったところ、なんと初期出荷ファームだったのでRev.8.03.94に更新した。もの凄い今更感ではあるが、参考までにMac OS X v10.9.5での作業手順をメモ。

シリアルコンソールでルータにログインし、LAN1にIPアドレスを振る

# ip lan1 address 192.168.0.1/24
# save

telnetで入れることを確認。

$ telnet 192.168.0.1
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.

Password: 

RTX1100 Rev.8.02.31 (Fri Jan 14 11:04:37 2005)
  Copyright (c) 1994-2004 Yamaha Corporation.
  Copyright (c) 1991-1997 Regents of the University of California.
  Copyright (c) 1995-1996 Jean-loup Gailly and Mark Adler.
...

ルータのtftpによるファームウェア受信を許可する。 IPアドレス(192.168.0.2)はtftpクライアントとなるマシンのアドレスを入れる。

# tftp host 192.168.0.2

tftpでファームを流し込む。オケツのexecも必要なので注意。

$ tftp 192.168.0.1
tftp> put rtx1100.bin exec

転送が受理されるとシリアルコンソールに下記のようなメッセージが出る。

Update exec file receiving... Testing received file... Writing to Nonvolatile memory... done
Restarting ...

で、自動で再起動がかかる。

RTX1100 BootROM Rev.5.07
  Copyright (c) 2004 Yamaha Corporation

Press 'Enter' or 'Return' to select a firmware and a configuration.
Default settings :  exec0 and config0

Starting with default settings. 
Starting with exec0 and config0 ...

RTX1100 Rev.8.03.94 (Thu Dec  5 19:06:16 2013)
  Copyright (c) 1994-2012 Yamaha Corporation. All Rights Reserved.
  Copyright (c) 1991-1997 Regents of the University of California.
  Copyright (c) 1995-2004 Jean-loup Gailly and Mark Adler.
...

無事更新された模様。 仕上げにtftpによるファーム受信を無効にする。

# no tftp host 
# save

ワットチェッカーによると、アイドル時の消費電力は5W。LANケーブルを1本リンクさせた状態でも変わらず5Wだった。

C#でファイルパスの円記号を自動エスケープ

WindowsのファイルパスをRegexに渡す場合、円記号をエスケープシーケンスする必要があるが、ファイルパスが固定文字列じゃなかったりstring変数に入ってたりすると、さぁ大変。

string path = @"C:\path\to\file.txt";
Regex matcher = new Regex(path); // エラー!(パスの円記号のエスケープはどうしよう…)

C#の事だから良い感じにエスケープしてくれる機能があるに違いないと思って調べてみたら、案の定Regex.Escapeっていうそのまんまなメソッドがあった。

string path = @"C:\path\to\file.txt";
Regex matcher = new Regex( Regex.Escape(path) ); // C:\\path\\to\\file\.txt になる!

円記号だけではなく、正規表現のメタ文字を全部エスケープしてくれる。なので、上記例では拡張子のピリオドもエスケープされる。

便利便利。

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo