ToDo:
shell scriptで下記のようにwhileブロックにreadを組み合わせて外部ファイルを一行ずつ処理するパターンで、ブロック内部からsshを呼び出したらループが中断した。
cat config | while read _var; do [block-to-process-_var] done
どうやら、sshが標準入力をリダイレクトする関係で、catからwhileブロックを繋ぐパイプが切れてしまう模様
逆に言えば、sshへと繋がる標準入力がwhileブロックのもので無ければ良いらしい
よくよく考えれば当たり前なのだが、echoとかは標準入力を食べないので気がつきにくい罠
ZFSのレプリケーション回りを実装中…
snapshot/send/recvを一般権限で回すことを考えていたのですが、最後に同期したsnapshotをソースファイルシステム側に記録するためユーザー定義プロパティを使ったのですが、zfs allowで設定権限を委譲可能なプロパティは決まっておりユーザー定義プロパティは委譲できない模様 (プロパティ全般を委譲する設定もない?)
とりあえず、root権限で動かすしかないか?
ソースファイルシステムのコンテンツに記録することも考えたが、レプリカチェーンを作る際にreadonly属性のファイルシステムに管理用のメタデータを記録するにはプロパティ側に記録するしかない…
RAID array再構築・データ移行完了し、初期運用開始
当面の運用課題
TrueNASとかも試したけど、NIC認識回りの若干の問題とUI回りが微妙に使いにくかったので、FreeBSD 15.1-STABLEベースでOpenZFS + Samba4.24 workgroup serverで運用することに
NASアプライアンスは、Thecus/ASUSTOR/QNAPを使ったことがあるが、TrueNASはなんかコンテナサービスとかの部分の主張が強くて使いにくい気がした
で、ZFSのRAIDZ POOLを再構成したのだが、流用したHDDの1台が途中からスピードが落ちる不具合発生した模様
状況的に一部の領域で読み出し速度が出ない系だと思うので、 設置場所起因の振動問題で無ければ、不具合の前兆か?
色々調べたが、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
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の装着スロットを入れ替えてみた
推論するに、問題個体の応答遅延が増大しているのではないだろうか?
更なる確認により、全4台中、応答遅延が多きい個体のFirmware revisionが異なることが判明
したがって、遅延特性の違いはFirmware revisionに起因するかもしれない…
NAS箱更新用に入手したので、ハードウェア本体の試験中
memtest86実行時の本体ファンはかなり静かな模様
とりあえず、FreeBSD 15.1-STABLEを放り込んでハードウェア負荷試験を予定
本運用は、FreeBSD + sambaで運用するか、TrueNAS SCALEを放り込むかを検討中
ディスクも更新したい所だが、最近値上がり・入手性悪化があるので、既設のNASから流用するしかないか?
あと、事前情報では、N5・N5 PROはRTL8126(5G) + AQC113(10G)の組み合わせという話だったが、 入手個体はRTL8126(5G)+RTL8127(10G)の組み合わせだった
量産途中でチップ変更があったか?
# 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"
| 構成 | 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%) |
| 構成 | 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%) |
| 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% |
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.
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.
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.
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.
カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記