トップ 追記

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|07|08|09|10|11|12|
2026|01|02|03|04|05|06|07|08|09|10|

2026-10-28 [長年日記]

_ [雑記]MINISFORUM N5airクーラーアッセンブリ

SO-DIMM交換のためにCPUクーラーのファンブロックを取り外し・再装着したのだが、ファンの音が明らかに大きくなった

ヒートシンクとファンダクト間がネジ接合(3本)で他はファンアッセンブリが周辺と防振パッドで触れるだけの構造なので、接触圧不足か隙間が出来て振動しているような…(起動直後にビビリ音が発生する)

あとでもう一度ばらして組み直す予定

memtest86及びbuildworld stress testは問題なくクリア (SK-Hynix版のSanMaxメモリなので、定格で問題が出るようでは困るのだが)


2026-10-26 [長年日記]

_ [雑記]MasterBox CM695出物

昨日、秋葉原散策でCooler Master MasterBox CM695の出物を発見

流通価格の4割引きに近い展示処分特価 9,999円で付属品は揃っているらしいので、お買い得といえばお買い得

将来的にCM695で組みたい構成の構想もあるのだが、外箱無しの持ち帰り品なのと自宅の保管スペースの目処が立たないので、流石に見送り


2026-10-12 [長年日記]

_ [雑記]N5 air NAS運用

管理用定時実行タスクの実装は概ね完了、残るは待機系の自動停止のみ…

  • 実装済み
    • primary/secondary NAS間のミラーリング
      • zfs snapshot・zfs send/recv及びsnapshot cleanupを管理するshell scriptを実装し、crontabへ組み込む
    • 待機系自動起動
      • primary側のcrontabに待機系へのwake(1)を仕込む
  • 未実装
    • 待機系の自動シャットダウン
      • ミラーリングツールへshutdown管理の実装を検討中
      • zpool scrub中のshutdown遅延を実装する必要あり

2026-10-10 [長年日記]

_ [雑記]shell scriptで嵌った

shell scriptで下記のようにwhileブロックにreadを組み合わせて外部ファイルを一行ずつ処理するパターンで、ブロック内部からsshを呼び出したらループが中断した。

cat config | while read _var; do
  [block-to-process-_var]
done

どうやら、sshが標準入力をリダイレクトする関係で、catからwhileブロックを繋ぐパイプが切れてしまう模様

逆に言えば、sshへと繋がる標準入力がwhileブロックのもので無ければ良いらしい

よくよく考えれば当たり前なのだが、echoとかは標準入力を食べないので気がつきにくい罠


2026-10-09 [長年日記]

_ [FreeBSD]ZFSの権限委譲

ZFSのレプリケーション回りを実装中…

snapshot/send/recvを一般権限で回すことを考えていたのですが、最後に同期したsnapshotをソースファイルシステム側に記録するためユーザー定義プロパティを使ったのですが、zfs allowで設定権限を委譲可能なプロパティは決まっておりユーザー定義プロパティは委譲できない模様 (プロパティ全般を委譲する設定もない?)

とりあえず、root権限で動かすしかないか?

ソースファイルシステムのコンテンツに記録することも考えたが、レプリカチェーンを作る際にreadonly属性のファイルシステムに管理用のメタデータを記録するにはプロパティ側に記録するしかない…


2026-09-29 [長年日記]

_ [雑記][FreeBSD]N5 air初期運用開始

RAID array再構築・データ移行完了し、初期運用開始

当面の運用課題

  • 管理用の定時実行タスクの実装
    • primary/secondary NAS間のミラーリング
      • zfs snapshot及びzfs send/recvで複製するスクリプトの作成
    • 待機系の自動起動 (primary側からWoLさせる)
    • 待機系の自動シャットダウン
      • 案1. ミラーリングタスクにシャットダウンを組み込み
      • 案2. 定期的に稼働状況を監視して、自動シャットダウンさせる
        • タスク実行中の誤シャットダウンを避けるロック機構が必要
        • 異常終了時のロック解消機構も必要 (crontabのrebootエントリもしくは、rc.dで初期化させる)
  • NTPのdelay/jitter問題の解決
    • 接続形態(RTL8127 vs ConnectX-6 Lx)で、挙動が異なる
    • LRO等のスループット向けの機能が遅延や遅延分散の悪化に影響している? NTPが参照するRx packet timestampの打刻に問題がある模様
      • ifconfig mce0 -hwrxtstmpで、hardware timestampを無効にすると安定した
      • hwrxtstmpオプション(default ON)使用時にntpq -c peerのdelayやoffsetへ現れる外れ値に偏り(〜300msecと〜600msec)があった。hardware time counterの繰上げ処理時の誤差が量子化している?
    • LAN内10GbEのスループットと遅延特性のバランスが取れる設定を探す hwrxtstmpのみOFFで問題解消したので、スループットへの影響は無くなった

2026-09-23 [長年日記]

_ [雑記][FreeBSD]N5 air運用投入

TrueNASとかも試したけど、NIC認識回りの若干の問題とUI回りが微妙に使いにくかったので、FreeBSD 15.1-STABLEベースでOpenZFS + Samba4.24 workgroup serverで運用することに

NASアプライアンスは、Thecus/ASUSTOR/QNAPを使ったことがあるが、TrueNASはなんかコンテナサービスとかの部分の主張が強くて使いにくい気がした

で、ZFSのRAIDZ POOLを再構成したのだが、流用したHDDの1台が途中からスピードが落ちる不具合発生した模様

  • データ流し込み時点では速度が出ている
  • 書き込み済みデータのChecksum計算用に読み出し時に1台 busy 100%で速度が出ないHDDが発生
  • 当該HDDの最外周部は速度が出る (recoverdiskにて測定)
  • 現時点では、Pending Sector/Reallocated Sectorは出ていない

状況的に一部の領域で読み出し速度が出ない系だと思うので、 設置場所起因の振動問題で無ければ、不具合の前兆か?

色々調べたが、1 Disk単位の操作や書き込み系では性能劣化が見られず、読み取り時のみの模様

vfs.zfs.vdev.async_read_max_activeを標準の3から大きく増やすと改善するので、 特定HDDの応答遅延にChecksum整合性検査のため他のHDDが待たされている模様。 これ自体は、ZFSの強力なBlock Device検査機能の動作上の要請なので仕方ないが、 同一個体群内の同時読み出し遅延に差が出ているのが気になる…

ハードウェアに原因を求めるなら、筐体内の配置に伴う振動干渉(制振対策・シャッフリングで解決する?)とか 経年劣化に伴う応答特性の悪化(トラッキング・読み出しの内部リトライ?)辺りか?

以前に使っていた際は、QNAP QTSのRAID6なのでRAIDZ2の様な読み出し時の整合性検査目的の待ち合わせが無いので、 元々バラツキがあったが表面化していない可能性もあるか…

vfs.zfs.vdev.async_read_max_active: 3での読み出し運用状況 (標準状態)

Disks  nda0  ada0  ada1  ada2  ada3  ada4
KB/t    125 59.13 80.08 75.44 77.14   117
tps     995   403   301   316   308   197
MB/s    122 23.25 23.53 23.31 23.23 22.40
%busy     4    11    18    15    15    99

vfs.zfs.vdev.async_read_max_active: 15での読み出し運用状況 (改善後)

Disks  nda0  ada0  ada1  ada2  ada3  ada4
KB/t    125 47.76 51.10 50.49 53.09   126
tps    2194  1653  1548  1568  1491   646
MB/s    268 77.10 77.26 77.29 77.31 79.26
%busy     8    35    47    55    52   100
  • RAIDZ2を構成するada0〜4の内ada1〜4が同型で、読み出し運用のボトルネックに成っている個体がada4
    • ada4のbusy率だけが目に見えて高い(tpsが他の半分なのは、転送サイズが他の倍なので辻褄はあっている)
  • (おそらくHDD毎に個別読み出ししていると思しき)scrub時はada0〜4ともに問題なく逐次読み出し性能が出る
  • 同型HDD ada1〜4のSMART属性値のなかで、ada4のThroughput_PerformanceのRAW VALUEが大きく外れている模様
    • RAW VALUEがアクセス性能と正の相関があるなら、やはりada4が不調か?
ada1:  2 Throughput_Performance  0x0005   137   137   054    Pre-fail  Offline      -       92
ada2:  2 Throughput_Performance  0x0005   136   136   054    Pre-fail  Offline      -       96
ada3:  2 Throughput_Performance  0x0005   134   134   054    Pre-fail  Offline      -       104
ada4:  2 Throughput_Performance  0x0005   148   148   054    Pre-fail  Offline      -       48

不調がバックプレーンやAHCIチャンネルによるものかHDD側かを確認するため、同型の ada3とada4の装着スロットを入れ替えてみた

  • vfs.zfs.vdev.async_read_max_active=3での読み出し運用時にada3側で%busyが飽和するようになった
    • ボトルネックが物理的なHDDに依存している → AHCIコントローラ・バックプレーンの不具合やスロットの物理配置が原因では無い

暫定的なまとめ

  • RAIDZ2読み出し時に、特定HDDのI/Oが先に飽和してボトルネックになる
  • RAIDZ2への逐次書き込み時はボトルネックが顕在化しない
  • HDD毎の逐次読み出し性能は、概ね一致する (dd・zpool scrub)
  • HDD毎の簡単なIOPS測定の結果では異常は見られない
  • 当該個体のSMART属性値 Throughput_PerformanceのRAW_VALUEが他の個体群と大きく異なる

推論するに、問題個体の応答遅延が増大しているのではないだろうか?

更なる確認により、全4台中、応答遅延が多きい個体のFirmware revisionが異なることが判明

したがって、遅延特性の違いはFirmware revisionに起因するかもしれない…


2026-09-17 [長年日記]

_ [雑記]TrueNAS on N5 air

試しにインストールしてみた

  • TrueNAS 25.10.7では、RTL8126(5G)は認識するが、RTL8127(10G)は認識出来ない
  • FreeBSD側で作ったZPOOLはインポート出来た
  • アプライアンスメニューには、スケジュール Shutdownの類は見当たらない
  • TrueNASは、電源ボタンイベントに反応する

2026-09-08 [長年日記]

_ [雑記]MINISFORUM N5 air入手

NAS箱更新用に入手したので、ハードウェア本体の試験中

memtest86実行時の本体ファンはかなり静かな模様

とりあえず、FreeBSD 15.1-STABLEを放り込んでハードウェア負荷試験を予定

本運用は、FreeBSD + sambaで運用するか、TrueNAS SCALEを放り込むかを検討中

ディスクも更新したい所だが、最近値上がり・入手性悪化があるので、既設のNASから流用するしかないか?

あと、事前情報では、N5・N5 PROはRTL8126(5G) + AQC113(10G)の組み合わせという話だったが、 入手個体はRTL8126(5G)+RTL8127(10G)の組み合わせだった

量産途中でチップ変更があったか?

各種検証まとめ

  • Power Button
    • 起動中のFreeBSD側のACPIスタックからは、power buttonイベントとして認識しない
      • 長押しで電源断は出来るので、電源の直接操作のみでACPI未対応か?
      • TrueNAS (Debianベース)は、電源ボタンイベントに反応した (FreeBSDのデフォルト設定の問題か?ACPI実装の問題か?)
  • SATAベイ
    • hotswapをサポートするが、レバー操作でSATAコネクタが外れないので、斜め状態のレバーを持って引き抜く必要あり
      • トレイがプラスチック製なので、変な力をかけるとレバーが折れそう… もう少し脱着機構の改善するかトレイ金属化が欲しい所
    • LEDインジケータの番号順と、FreeBSDの認識するahcichの番号順が逆
      • 混乱防止の観点から、device hintでada番号を固定化すべき
# for MINISFORUM N5 air
hint.scbus.0.at="ahcich4"
hint.scbus.1.at="ahcich3"
hint.scbus.2.at="ahcich2"
hint.scbus.3.at="ahcich1"
hint.scbus.4.at="ahcich0"

# ada
hint.ada.0.at="scbus0"
hint.ada.1.at="scbus1"
hint.ada.2.at="scbus2"
hint.ada.3.at="scbus3"
hint.ada.4.at="scbus4"
  • WoL
    • LAN1(RTL8126) - Colr Power時はWoL不可・FreeBSD側で初期化後はWoL可
    • LAN2(RTL8127) - Cold Power時はWoL不可・FreeBSD側で初期化後はWoL可
      • どちらもOSによる初期化がないとWoL出来ないなので、WoL待機運用ではAuto Power On設定で運用することになる模様
  • CPUパフォーマンス
    • Ryzen 7 255のCCDは 8C/16Tの Zen4 CCDそのものなので、CPUパワーに関しては上限Clock・TDP制限がかかっていることを除けばRyzen 7000系と同様の模様
    • buildworld benchmarkの結果を見るに、8C動作時はTDP制限でClock抑制されている。4C動作時は、Ryzen 9 7950X 16C動作時のbenchmark scoreの1/4を少し下回るスコアであり、Clock制限を考慮すると概ね整合する
  • I/O帯域 /dev/urandom -> HDD ZFS (lz4) (/dev/urandom読み出しで飽和する模様)
構成 Write B/sec (occupancy)
4 HDD 682,778,776 (50〜 70%)
3 HDD 674,476,779 (70〜 85%)
2 HDD 544,293,283 (85〜100%)
  • I/O帯域 SSD ZFS (lz4) -> HDD ZFS (lz4) -> /dev/null
構成 Write B/sec (occupancy) Read B/sec (occupancy)
4 HDD 1,058,316,242 (90〜100%)1,132,364,765 (85〜100%)
3 HDD 779,223,099 (90〜100%) 872,901,560 (85〜100%)
2 HDD 528,959,631 (90〜100%) 605,340,026 (85〜100%)
4 HDD (RAIDZ2) 429,982,006 (75〜100%) 583,122,802 (80〜100%)
4 HDD (RAIDZ1) 610,390,799 (75〜100%) 859,798,472 (80〜100%)
3 HDD (RAIDZ1) 464,565,935 (75〜100%) 604,326,171 (80〜100%)
  • 消費電力 (4 HDDのアイドリング vs 待機状態で 10W程度の差がでる模様)
Mode Freq Power SYS Load
4 HDD Idle 1600 31W 0%
4 HDD Idle 3800 31W 0%
buildworld (16T) 1600 45〜 50W 5〜10% Lap 4400sec
buildworld (16T) 3800 90〜100W 5〜10% Lap 1994sec
4 HDD RAIDZ2 Writing 1600 50〜55W 10%
4 HDD RAIDZ2 Writing 3800 60〜65W 10%
4 HDD RAIDZ2 Reading 1600 49〜52W 2%
4 HDD RAIDZ2 Reading 3800 52〜55W 2%
4 HDD RAIDZ1 Writing 1600 52〜55W 14%
4 HDD RAIDZ1 Writing 3800 65〜69W 13%
4 HDD RAIDZ1 Reading 1600 50〜53W 5%
4 HDD RAIDZ1 Reading 3800 57〜60W 4%
3 HDD RAIDZ1 Writing 1600 47〜50W 11%
3 HDD RAIDZ1 Writing 3800 58〜62W 9%
3 HDD RAIDZ1 Reading 1600 47〜48W 4%
3 HDD RAIDZ1 Reading 3800 51〜53W 3%
  • N5 air(RTL8127 + realtek-re-kmod-1102.01.1501502_1) MTU 9000 dev.cpu.0.freq=1600 <-> ConnectX-6 MTU 9000
NETIO - Network Throughput Benchmark, Version 1.34
(C) 1997-2018 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  417.72 MByte/s Tx,  808.57 MByte/s Rx.
Packet size  2k bytes:  573.40 MByte/s Tx,  859.33 MByte/s Rx.
Packet size  4k bytes:  904.08 MByte/s Tx,  894.09 MByte/s Rx.
Packet size  8k bytes:  858.17 MByte/s Tx,  915.71 MByte/s Rx.
Packet size 16k bytes:  855.84 MByte/s Tx,  908.02 MByte/s Rx.
Packet size 32k bytes:  854.36 MByte/s Tx,  891.16 MByte/s Rx.
  • N5 air(RTL8127 + realtek-re-kmod-1102.01.1501502_1) MTU 9000 dev.cpu.0.freq=3800 <-> ConnectX-6 MTU 9000
NETIO - Network Throughput Benchmark, Version 1.34
(C) 1997-2018 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  728.34 MByte/s Tx,  850.51 MByte/s Rx.
Packet size  2k bytes:  637.28 MByte/s Tx,  923.55 MByte/s Rx.
Packet size  4k bytes:  948.65 MByte/s Tx,  950.07 MByte/s Rx.
Packet size  8k bytes:  903.89 MByte/s Tx,  907.32 MByte/s Rx.
Packet size 16k bytes:  901.84 MByte/s Tx,  913.24 MByte/s Rx.
Packet size 32k bytes:  859.58 MByte/s Tx,  918.84 MByte/s Rx.
  • N5 air(RTL8127 + realtek-re-kmod-1102.01.1501502_1) MTU 1500 dev.cpu.0.freq=1600 <-> ConnectX-6 MTU 9000
NETIO - Network Throughput Benchmark, Version 1.34
(C) 1997-2018 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  423.02 MByte/s Tx,  733.53 MByte/s Rx.
Packet size  2k bytes:  601.83 MByte/s Tx,  771.00 MByte/s Rx.
Packet size  4k bytes:  609.74 MByte/s Tx,  778.17 MByte/s Rx.
Packet size  8k bytes:  631.51 MByte/s Tx,  787.40 MByte/s Rx.
Packet size 16k bytes:  653.96 MByte/s Tx,  803.00 MByte/s Rx.
Packet size 32k bytes:  679.44 MByte/s Tx,  793.54 MByte/s Rx.
  • N5 air(RTL8127 + realtek-re-kmod-1102.01.1501502_1) MTU 1500 dev.cpu.0.freq=3800 <-> ConnectX-6 MTU 9000
NETIO - Network Throughput Benchmark, Version 1.34
(C) 1997-2018 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  616.41 MByte/s Tx,  818.41 MByte/s Rx.
Packet size  2k bytes:  611.89 MByte/s Tx,  919.95 MByte/s Rx.
Packet size  4k bytes:  647.48 MByte/s Tx,  930.27 MByte/s Rx.
Packet size  8k bytes:  673.31 MByte/s Tx,  921.82 MByte/s Rx.
Packet size 16k bytes:  694.79 MByte/s Tx,  938.89 MByte/s Rx.
Packet size 32k bytes:  682.34 MByte/s Tx,  912.45 MByte/s Rx.

2026-09-02 [長年日記]

_ [FreeBSD]AQC113サポートが来た

stable/15の sys/dev/aqにAQC113サポートが入ってきた模様

これで、ports/net/aquantia-atlantic-kmodはお役ご免ですねぇ…

head側は確認してないけど、OpenBSDからの移植かなぁ?


カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記