Synology DS1517+をext4→Btrfs移行

■Windowsのバックアップソリューション探索

同居人も含めWindows PCがだいぶ増えて来たので、コスパとユーザビリティの高いバックアップ方法を検討しました。以前はWindows Home Server/2011を愛用していましたがサポートが切れ、Windows Storage Server 2012のThecus製のNASに移行。こちらも今年でサポート終了です。

それ以前にThecusやその国内代理店のサポートもまともに機能してない様子でしたり、Windows ServerやActive Domainも使い勝手が悪く、管理画面もなにをするにもかったるくてほぼ使っていませんでした。

ただWHSやWindows Strage Serverの良かった点は複数PCのバックアップを重複排除して保存できる点。つまり、OSやアプリなどの重複ファイルを別個に格納せず、完全一致するファイルについては1つ分の容量でバックアップできるということです。何台もWindows PCをバックアップする際にはバカになりません。

そしてファイル単位のリカバリーとベアメタルリストア(OS環境まるごと復元)ができる点などを要件として検討しました。

またノートや携帯機もあるので個別にUSBなどでストレージをぶらさげるのは使い勝手が著しく悪いですし、それぞれの空き容量を無駄なく管理することもできないので最悪です。ということでNASによるバックアップ一択で考えました。

■Synology Active Backup for Businessという選択と障壁

もろもろ加味して調べると身近なところに良い選択肢があります。Synology製の上位NASで無料で扱えるSynology Active Backup for Businessです。重複排除やファイル単位/ベアメタルの両立、ファイルバージョン管理など必要な要件は揃っています。ハード自体も既に我が家にはあるので、ストレージ領域さえ用意すれば良いことになります。

実は存在自体はかなり以前から知っていました。しかし導入してこなかったのには理由があります。(昔は有料で結構高かったような気がするのと)ファイルシステムがBtrfsでないと使えないという点です。Btrfsは従来のext4よりも新しいファイルシステムで、重複管理やバージョン管理などの機能はこのファイルシステムに基づいた実装となっています。廉価モデルでは利用自体が非対応ですが、我が家のDS1517+はOK。ただ現在稼働しているext4のボリュームをそのままBtrfsにコンバートできないというのが問題でした。変換には一度ボリュームを削除して再作成する必要があります(裏技もあるにはあるっぽいですが上手くいかないリスクも)。つまり稼働しているNASに対して行うには、一度データをまるごと待避する必要があり、それをするだけの空きディスクを用意しなければなりません。これが手間やコストの問題で躊躇していました。DS1511+からDS1517+に乗り換える際に、HDD 5台をまるごと新調するコストもかけづらかったので、そのままディスクを刺し替えて移行し、ext4も引き継いでしまっていたくらい。

ちなみにBtrfs自体のメリットは公式ページにまとめられています。ext4よりわずかにパフォーマンスが劣るらしく、今でもext4はサポートされてますしBtrfsの機能を不要と考える人や非対応モデルの人はext4もまだまだ現役のようです。

今回ようやく重い腰を上げ、今のボリュームまるごとを待避できる12TBのHDDも導入し、Btrfs移行を敢行することにしました。

モデルはSynologyのサポートが手厚い(印象のある)IronWolf。今回は外付けで使うので同Proである必然性は薄いと判断してコスパ重視で。それでも同モデルを2021年に買った時は3万切っていたのが今回4万以上しており円安や部品不足の影響を強く感じました。

こちらを元々外付けにつかっていたeSATAケースに入れ替えてマウントし、これまたSynology謹製のバックアップツールHyperBackupでボリュームや各アプリ設定をまるごとバックアップしました。ちなみにUSB3.0の方が速いならケースもこの機会に買い換えようと思ったんですが、理論値とは裏腹にeSATAの方が速いという情報ばかりだったので継続して使用することにしました。USBに変換するオーバーヘッドの方がロスが大きいってことなんでしょうかね。まぁどのみちHDDのスピードが頭打ちになるのであんまり差は出ないのかも知れません。

これでバックアップが正しくできていなかったら復元もできないのでかなり不安です。整合性チェックなども走らせたりしました。まぁ最悪でも重要な共有フォルダは実家に遠隔バックアップもしているので、いつまでもはビビっていられずボリューム削除と再作成に踏み切りました。

こういう神経のすり減らしを避けたい方は、新ハードとHDD一式を買い揃えてコピー移行するのがオススメです…

■削除までの手順

ストレージマネージャーでボリューム(ストレージプール)を削除しようとすると、こんな画面が出ました。

削除しようとするボリュームが依存している(されている)パッケージがあり、先にそっちをどうにかしろ(消せ)という主旨です。一応これらもバックアップされてるんじゃないかと思いつつも、まぁ最近使ってないものばかりだったので粛々とパッケージをアンインストールしました。2番目のrsyncのエラーはコントロールパネルで無効化するだけで大丈夫でした。

DockerとNote Stationはなくなればなくなってもいいけど、復元されるならそれにこしたことはないなということで結果を見守りたいと思います。

いよいよエラー内容も克服し最終段階。警告や確認のパスワード入力を経て削除実行。そしてSHR & Btrfsで新しいボリュームを全容量で作成。その後、ドライブチェックが自動で走って終了まで15-20時間と出ました(総容量は17.4TB)。同時にHyperBackupからのリストアもできたかも知れませんが、余計な一時負荷をHADに与えて壊れてもイヤだし、仮にこのドライブチェックでエラーが出るようならドライブ交換も必要になるかもなので、大人しく一晩放置することにしました。

チェック完了後、さてリストアしようかと思ったらなぜかHyperBackupパッケージがなくて肝を冷やしましたが、パッケージセンターで再インストールをしたらきちんとeSATAドライブ上のバックアップを認識してくれました。ので、復元パッケージではHyperBackupのチェックを外してそれ以外を全部選択した状態で実行しました。パッケージ復元中は当該サービスが止まるよ、という警告が出たくらいなので、HyperBackupでリストア中にHyperBackupが止まったらアカンやろという判断です。まぁさすがになんも考えずに全部オンにしてリストアした時のことを想定してないわけはないでしょうが、もう少しリストアウィザードのUI表記がこなれてほしいなと思った点です。

リストは丸一日かかりました。一応抜けたデータはざっと見た限りなさそうですが、通知をみると「復元できませんでした」という不穏かつ役に立たないイベント記録があります。

具体的にどのファイルが、いくつくらい失敗してるのかわかりません。「詳しくはログを見ろ」とあるので、開いて見るも、情報は全く増えません。選択したら詳細画面に行くかと思いきやなにも置きません。1件1行の情報しか残ってないようです。

2行目はアプリのリストア失敗なので良いとして、その後の1行目が「リストアが失敗」となっていて影響範囲がわかりません。2行目のエラー発生を受けて、満点ではないという意味なのか、具体的にファイルに影響があるのか、もやもやが残るリストアです。

もやもやは残るけどもはやどうしようもないので、一応リストアできたと思って使って行くしかなさそうです。

ちなみにストレージの利用量がガサっと減ってるのも恐いですw。8TBくらいあったのが6.5TBとかになっています。ヒリヒリします(^^;)。軽くホラーです。ゴミが減ってクリーンアップされたのか、本当に復元できていないファイルがあるのか、はたまたext4とBtrfsの差やセクターサイズによる違いなのか、理由は謎。まぁでも6.5TBという数値はバックアップのサイズと同じくらいです。抜けができてるとしたらリストア段階ではなく復元段階なのかも知れません…だとすると復元はやりなおしても同じな可能性が高いです。気にしてもしょうがないので、空き容量が増えたことを喜んでおくしかなさそう。

■外付けドライブでBtrfsを使えるか?

今回、12TBという真っ新なHDDを用意した機会だったので一時的に待避ドライブとして使ってBtrfs化を図りましたが、実のところActive Backup for Businessのストレージとしては内蔵部分は使うつもりはありません。サイズの大きなバックアップ領域をSHR(RAID)で冗長化するのはコスパが悪いし、バックアップのバックアップまでは必要なかろうという判断です。最終的には待避に使ったHDD自体をBtrfsでフォーマットしてそこにバックアップできればいいんじゃないかと考えました。

ただ現行のSynology NAS(DSM7)は外付けドライブをBtrfsで初期化することはできない模様。公式ページによると、「Synology NAS は次のフォーマットを認識します。Btrfsext3ext4FAT32exFATHFS Plus、and NTFS.」とBtrfsを含む一方、「外部ドライブは Synology NAS で ext4 または FAT32にフォーマットできます。」という記載もあり、”使えるけど自分で初期化はできない”という状況ぽい。ということは、他のPCでBtrfsでフォーマットしてからもってくる必要がある。めんどくさー!

現状、自宅にLinuxが稼働しているPCがないので悩ましい。こういうフォーマット関係を仮想化PCでやるのもちょっと心配、というかめんどくさそう。調べてみるとWindowsでBtrfsを扱うオープンソースプロジェクトはあるみたい。いやーどうしようかなー。どれくらい枯れているのかわからない。

別PCでLinuxからBtrfsボリュームを作成

ということで、安全をとってPCでUSBブートでLinuxを動かしてBtrfsドライブを作成することにしました。手間を省くのに、最初からBtrfsパッケージを含んだUSBブータブルなディストリビューションを選びたいところ。Bing Chatで聞いたところ、openSUSEかFedoraは標準ファイルシステムとしてBtrfsを採用している、またArch Linuxはファイルシステムの選択肢としてBtrfsをもっている、ということがわかりました。なんとなくRedHat系に馴染みがあるので今回はFedoraを使ってみることに。UNetbootinで選べる最新の30_Live_x64を適当なUSBフラッシュドライブに書き込みました。

しかし当該ISOはDLできないとエラーになり、結局、ArcLinuxで実行。

Synology NAS単体でBtrfsボリュームを作成(SSH)

後から判明したんですが、SSHでログインしてコマンドラインからなら外付けドライブもBtrfsできました。普通にmkfs.btrfsコマンドが入っているので、

既存パーティションがある場合はfdiskなどで開放する必要があるかも知れません。

しかしマウントできず、Active Backup for Businessから使えない?

どちらの方法でフォーマットした場合でも、残念ながら現状でABBで使えていません。

まず物理的に接続すると通知で「外部デバイス External SATA Disk1 のパーティション 1 をマウントできません」と出ます。一方、ストレージマネージャーではきっちりBtrfsであることは認識してるっぽいんですが(下記画像)。またコンソールからみてもマウントできてるぽくlsして中身も見られます。

それでもFile Stationでは見えないし、当然ABBでもデスティネーションとして選択できません。

Synologyのコミュニティで4年前のスレッドで公式サポートに問い合わせてABBのストレージとして外部メディアはサポートしてない、と回答されたという書き込みがありました。情報も古いし、別途こちらでも問い合わせてみようかとは思いますが、ともあれ現時点ではBtrfsでフォーマットした外付けドライブ(eSATA接続)はABBの保存先として使えていません(マウントすらできてるかあやしい)。

残る選択肢としては、

  • RAID/SHRのメインボリュームを使ってバックアップ(管理は楽だが、冗長化されてる分、コスパは悪いし、本来のファイルストレージを圧迫する)
  • ドライブの1台を12TB HDDに交換して冗長化のないボリュームを作る(スワップして復旧した場合、元のTB数から増えた分がSHRでどう使われるんだっけ?任意設定できたかどうか不明。まと10TBフルでバックアップ領域に割り当てられず4TBくらい目減りしてしまう)
  • もう一台ハードを買ってバックアップ専用機にする

くらいです。

■今追加でバックアップ機を買うなら?

今回購入した12TB HDDを活かす想定だと、1ベイか2ベイ機になりますが、そもそもABB対応モデルでというと、現行ならDS224+、DS723+でしょうか。どちらもメモリ増設は可能ですが10Gbps NICを増設できるのはDS732+だけのようです。

んー、当座1Gbpsでもいいかもですが、数年使うことを考えると拡張性は残しておきたい気がします。

■まとめ

とりあえず当初の目的である、内蔵メインボリュームのBtrfs化は果たせました。これでABB自体は使えます。しかし目論みだった外付け12TB HDDへの保存は現時点ではできなそう。

とりあえずしばらくABB運用してみて問題ないか、どれくらいストレージを消費しそうかなどを検証して、対策を考えようと思います。

ABBの使用感もまた別途記事にできたらと思っています。現状気になってるのはバックアップから除外するフォルダーを指定できない点でしょうか。完全にテンポラリなフォルダや、OneDriveやDropboxで保全できてるフォルダ、Office、Adobe系、Steamのゲームタイトルなどクラウドから再インストールすればいいだけのものについては除外しておきたいところ。そこだけがWHSと比べて難点かなーと思っています。

Windows11機のファイル共有やリモートデスクトップ接続でどうしてもパスワード認証が通らない時の覚え書き

我が家も同居人用PC以外のほとんどがWindows11になっていますが、1つ問題を抱えていました。ファイル共有機能でWindows11機にアクセスしようとするとパスワードが通らない問題。各PCは共通のMicrosoftアカウント(以下MSアカウント)でログインした状態ですが、MSアカウント(メールアドレス)、ローカルアカウント名、MSアカウントのパスワード、ローカルアカウントパスパード、パスコードなどあらゆるIDとパスワードを入れても弾かれます。MSアカウントをいれる際にいわゆるUNCという\\(PC名)\IDみたいな形式を試したり、MSアカウントの時はMicrosoftAccount\(MSアカウントのメアド)とかもダメ。これらの組み合わせも様々試しました。ググっても解説せず。

NASやMac、ポータブルSSDなどがあるのでそこまで困っておらずずっと放置してきましたが、先日リモートデスクトップ接続も同じ様につながらないことに気付きました。せっかく自宅のWANもLANも10Gbps化したので、出張中も快適に自宅PCで動画編集作業などができればと、あらためてリサーチ。

「リモートデスクトップ」を入れて検索したのが良かったのか今度はあっさり情報が見つかりました。どうも、Windows11のアカウントセットアップの過程で一度もMSアカウントのパスワードでサインインしていないと、マシン上にパスワード(を元にしたハッシュキー?)が生成されないのでダメという信じがたい仕様のようです。なるほど、真っ新なPC、スマホアプリ認証のMSアカウントでWindows11の初期セットアップをすると、スマホ側で「承認」ボタンを押し、PC側でそのままパスコードを作成できてしまうから、一度もパスワードログインしないままの状態になってしまうようです。その後そのPC自体にパスコードでログインすること自体はなんの不便もないので気付かないと。いや、それならそれで認証弾いた時にクライアント側にそれらしいエラーメッセージ出してくれよ…

詳細は参考にさせていただいた以下の2URLをご覧いただくと良いと思います。

参考リンク1

Microsoftアカウントでのリモートデスクトップ接続に苦労した話

https://qiita.com/sfjwr/items/037aabef2c5637fe0e51

参考リンク2

https://phoenixknight.jp/microsoft-account-has-a-habit/

■我が家の場合の具体的な解決手順

二段階認証の設定有無などで違うかも知れませんが、ウチではこんな感じで進めました。

  • サインアウトする
  • Windows Hello認証(指紋や顔認証)をせず待つ(顔認証の場合カメラを隠すなど)
  • 「PINを忘れた場合」が出たら選択
  • スマホの認証アプリ(ウチではMicrosoft Authenticator)に認証要求が出るので「承認」
  • PC側でパスコードを再設定

フロア間LANケーブルが断線(ショート)して引き直した話

2021年12月(1.5年前)にエアコンダクトを使って2Fのメインルーターから1FリビングまでLANケーブルを通しました。

その後、ルーターをRTX1300にし、回線もフレッツ光クロスにしたので、リビングのスイッチも10Gbps化して使っていました。

10Gbpsポートx2、2.5Gbpsポートx4のスイッチなので、幹線用に10Gbpsを使い、2.5Gbpsアダプタ経由で自分と同居人のPCを使いネトゲなどをしていたのですが、最近頻繁に切断するようになってしまいました。一度切れるけど放置すると数分で復帰し、また切れる、ような状態で同居人曰く10Gbps化した頃からということでRTX1300のログを見たりするも原因がわからず。

調べると、発熱がひどくて切れまくりだったBUFFALOのLXW-10G2/2G4と違い、QNAPのQSW-2104-2T/AZは熱くはならないものの切れるというレビューが散見され、キレたネトゲ廃人の同居人がネットが安定するならYAMAHAの高いスイッチに替えても良い(半額出す)と行ったので、業務用のSWX2220-10NT(以下SWX2220)を導入しました。

YAMAHAで揃えればルーターから一元管理/監視できるし、2.5Gbpsが倍の8ポートになるし、デカいけどその分、熱設計的にも安定するんじゃねぇの?という期待。

■スイッチを替えても安定せず…

まさかの再発。しかも遅い。回線もルーターも10Gbpsと余裕があるので、階下のPCではNICの限界である2.5Gbpsに近い値が上下とも出てたんですが、YAMAHAにしたら1Gbps前後。そして切れる。あと謎のループ発生エラーが頻発。SWX2220はインテリジェントスイッチなので色々設定項目があり、フロー制御、ストーム制御、ループ検出、リンク速度固定などあらゆる設定項目を試すも効果無し。

どちらかというと電気的な接触不良のような気まぐれな症状発生をするので、まさかと思いケーブルをテスターにかけると…

反対側をつないでないのに1-8番線のLEDが全点灯(写真撮り忘れたのでPhotoshopでイメージ合成)

このテスターはケーブル両端に測定機を取り付けるタイプなんですが、なぜか片方をつけただけで1〜8のランプが全点灯します(正常なケーブルだと全消灯)。もう片方をつなげてテストを実行すると全ペアが点灯(OK)。んー、でも明らかに正常なケーブルと挙動が違うぞと。点くはずのないタイミングで点くからショート??

ケーブルを2Fから1Fに敷くのは大仕事で、できれば二度とやりたくありません。なんか両端のちょろっと余らしてあるところに不具合があるならそこだけカットして成端し直して済ませるのですが、フルークのような高級テスターではないので異常箇所まではわからず。

ざっと調べたところ、このテスターなら「何mの位置でショート」みたいなことができるっぽい。

HIOKI (日置電機) LANケーブルハイテスタ 3665

HIOKI (日置電機) LANケーブルハイテスタ 3665

50,097円(01/29 06:32時点)
Amazonの情報を掲載しています

ン゛ーー、4,5万。払っても結局ショート箇所がど真ん中の位置だと判明したら結局全部引き直す手間は発生するので、「不具合箇所を知る」ためだけに買うのはちょっと…

そんなことを考えつつSWX2220の管理画面をいじっていると、なんと、「ケーブル診断」の項目が!YAMAHAさんスゲー、サスガ!「簡易的な診断のため、ケーブル障害位置までの距離や推定ケーブル長の診断結果には誤差があります。」とは書かれていますが、さっそく実行。

SWX2220の診断画面

反対側に機器がつながっていると正常となりますが、抜いた状態でやるとこのように「Pair3: Short」と出ました。Pair 1,2,4はOpen、つまりつながっていないということですね。端子抜いてあるのでそれが正しい。これで1ペアがショートしてることがハッキリしました。原因わかったけどケーブル引き直し確定して悲しい瞬間でもあります。ちなみにショート箇所位置は「100±10m」とありますが、他のペアをみると16〜17±10mなので、基本的にアテにはならない感じですね。物理的なケーブル長が16,7mなんでしょうが、ショートということは電気抵抗が極小なので推測不能ということなんでしょう。ちなみに検測する度に130mになったり不確定ですし、そもそもShort判定にならないことも何回かに一回ある感じ。実際の通信断が不定期に起きるように、かなり微妙なショート状態なんでしょう。わざわざSWX2220を2Fに移動してケーブルの反対側から測ってみても同じような数値でした。数値に違いが出て、せめてどちら寄りか推測できるかと思ったけど無理だったw。

総とっかえはイヤづら…中継コネクタという選択肢

2Fのエアコンダクトから外壁に出して化粧配管の中を通って地上近くまで下ろし、また1Fリビングのエアコンの化粧配管を通して室内に入れる、という二箇所の難所があります。両方やり直すのは骨が折れます。障害箇所を特定して最低限の引き直しに留め、現ケーブルと再ケーブルを中継コネクタでつなぐという案を考えました。一般に中継コネクタを経由するとインピーダンスが乱れて通信が遅くなると言われますが、実効速度としてどの程度落ちるものかリサーチ。

https://internet.watch.impress.co.jp/docs/column/shimizu/1188826.html

いくつかの実測記事をみるに、実際には誤差レベルで問題ないとされていたので、今回も中継コネクタ使用を決意。もし中継箇所が屋外だったら防水テープでグルグル巻きにして凌ごうと。ケーブルがCat6だったのでこちらをチョイス。

エレコム CAT6中継コネクタ LD-RJ45JJ6Y2

エレコム CAT6中継コネクタ LD-RJ45JJ6Y2

619円(01/29 06:32時点)
Amazonの情報を掲載しています

ではあとは障害箇所の特定です。外へ出て1F,2F両方のエアコンダクトをつなぐLANケーブルを真ん中辺りでズギャンと切断。エラーが残ったのは1F引き込み側でした。既に室内側の余剰部分もカット済みなので、おそらくエアコンダクトの引き込み部分かな。ここは施工後にエアコンを交換していて、業者の方が後で配管を通し直してるんです。その時に傷をつけたんじゃないかと。まぁ工事作業からしたら保証外の邪魔者でしかないので文句も言えないですね。新しい高機能エアコンで分解も大変でしたが、なんとか配管周りのパーツを外してダクトを見える状態にし、引き込み完了。

写真右下の辺りで切断して継ぎ直し
白くまくん、分解めんどくさす…

元のケーブルは配管でギチギチに挟まれ引いても押しても全く動かない状態でした。やはりここで圧がかかってたぽい。逆にダクトの反対側はスカスカだったので新たにそちらに通線。元のケーブルは直前でカットして反対側から思い切り引き抜きました。本当は一度成端して障害箇所を特定しようと思ってましたが、面倒くさくなって廃棄。

■まとめ

屋外配線なので劣化はあるかもと思ってましたが、今回はもう少しイレギュラーな障害だった気がします。まぁでも酷暑に入る前に対処できて良かったかなと。

QNAPは無罪で、お高いSWX2220に買い換えなくても良かった説もありますが、断線/ショート診断もできるし階下で使える2.5Gbpsポートも増えたのでまぁ良し。QNAPはいずれ他の部屋でも使うか、出張セッテイングなどで活用したいと思います。

翌2023.6.18追記

一晩置いたSWX220のログ100件をチェック。2FへとつながるPort1.10がリンクダウンしたりループした形跡はなし。大丈夫そう。こういうログが見られるのもインテリジェントスイッチの良いとこですね。

ちなみにPort1.2はChromecast with GoogleTV。定期的に3秒ほどダウンしてまた100Mbpsでリンクするということを繰り返してる模様。逆なら省電力中の更新チェックみたいな動作かと思うんですが、切れて3秒で復帰するのはなんなんでしょう。ログとしてはかなりノイズなので、下位のスイッチにつなぎ替えようかな…

Port1.8はRazer Blade 14のUSBアダプタですね。PCを使ってる時は2.5Gbpsでリンクする一方、スリープにすると100Mbpsになるっぽい。省電力ですかね。Port1.7もPC。Windowsの仕様でしょうか。SWX2220にもEEEという使ってないポートの省電力機能があるんですが、ポート毎にON/OFFできてポート7と8では無効になってるので、そちらの挙動ではない気がします。

2023/06/18 16:52:10: [ SESSION]:inf: Login succeeded as admin for HTTP: 192.168.0.53
2023/06/18 16:51:52: [ IF]:inf: Interface port1.8 changed state to up (2500-full)
2023/06/18 16:51:49: [ IF]:inf: Interface port1.8 changed state to down
2023/06/18 16:35:18: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 16:35:15: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 16:18:50: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 16:18:47: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 15:30:14: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 15:30:11: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 14:57:55: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 14:57:51: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 14:23:49: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 14:23:47: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 13:54:34: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 13:54:31: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 13:53:31: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 13:53:29: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 13:17:25: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 13:17:21: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 12:12:20: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 12:12:17: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 11:05:56: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 11:05:53: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 10:18:26: [ NTPC]:inf: Get the SNTP time 06/18/2023 10:18:26
2023/06/18 09:59:31: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 09:59:29: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 08:54:27: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 08:54:24: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 08:10:36: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 08:10:32: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 07:27:26: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 07:27:23: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 07:14:54: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 07:14:52: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 06:45:17: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 06:45:15: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 06:09:06: [ SESSION]:inf: Logout timer expired as (admin) for HTTP:192.168.0.7
2023/06/18 06:01:39: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 06:01:36: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 05:52:55: [ SESSION]:inf: Login succeeded as admin for HTTP: 192.168.0.7
2023/06/18 05:40:13: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 05:40:09: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 05:10:36: [ IF]:inf: Interface port1.7 changed state to up (2500-full)
2023/06/18 05:10:29: [ IF]:inf: Interface port1.7 changed state to down
2023/06/18 05:04:07: [ IF]:inf: Interface port1.8 changed state to up (100-full)
2023/06/18 05:04:05: [ IF]:inf: Interface port1.8 changed state to down
2023/06/18 04:59:50: [ IF]:inf: Interface port1.8 changed state to up (2500-full)
2023/06/18 04:59:46: [ IF]:inf: Interface port1.8 changed state to down
2023/06/18 04:47:35: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 04:47:31: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 04:35:09: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 04:35:05: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 04:21:27: [ IF]:inf: Interface port1.8 changed state to up (100-full)
2023/06/18 04:21:25: [ IF]:inf: Interface port1.8 changed state to down
2023/06/18 03:43:16: [ IF]:inf: Interface port1.8 changed state to up (2500-full)
2023/06/18 03:43:13: [ IF]:inf: Interface port1.8 changed state to down
2023/06/18 03:30:04: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 03:30:01: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 03:19:40: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 03:19:38: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 03:19:36: [ IF]:inf: Interface port1.7 changed state to up (2500-full)
2023/06/18 03:19:28: [ IF]:inf: Interface port1.7 changed state to down
2023/06/18 03:19:24: [ IF]:inf: Interface port1.7 changed state to up (1000-full)
2023/06/18 03:19:18: [ IF]:inf: Interface port1.7 changed state to down
2023/06/18 03:19:16: [ IF]:inf: Interface port1.7 changed state to up (2500-full)
2023/06/18 03:19:12: [ IF]:inf: Interface port1.7 changed state to down
2023/06/18 03:08:23: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 03:08:18: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 02:49:27: [ SESSION]:inf: Logout timer expired as (admin) for HTTP:192.168.0.53
2023/06/18 02:49:23: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 02:49:20: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 02:48:46: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 02:48:42: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 02:47:46: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 02:47:44: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 02:47:19: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 02:47:16: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 02:40:21: [ IF]:inf: Interface port1.8 changed state to up (100-full)
2023/06/18 02:40:19: [ IF]:inf: Interface port1.8 changed state to down
2023/06/18 02:39:24: [ IF]:inf: Interface port1.3 changed state to up (100-full)
2023/06/18 02:39:24: [ CONFIG]:inf: Configuration changed
2023/06/18 02:39:21: [ IF]:inf: Interface port1.3 changed state to down
2023/06/18 02:39:07: [ IF]:inf: Interface port1.4 changed state to up (1000-full)
2023/06/18 02:39:07: [ CONFIG]:inf: Configuration changed
2023/06/18 02:39:05: [ IF]:inf: Interface port1.4 changed state to down
2023/06/18 02:37:24: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 02:37:24: [ CONFIG]:inf: Configuration changed
2023/06/18 02:37:22: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 02:35:42: [ IF]:inf: Interface port1.5 changed state to up (1000-full)
2023/06/18 02:35:41: [ CONFIG]:inf: Configuration changed
2023/06/18 02:35:40: [ IF]:inf: Interface port1.5 changed state to down
2023/06/18 02:35:00: [ IF]:inf: Interface port1.7 changed state to up (2500-full)
2023/06/18 02:34:54: [ IF]:inf: Interface port1.6 changed state to down
2023/06/18 02:34:06: [ IF]:inf: Interface port1.2 changed state to up (100-full)
2023/06/18 02:34:04: [ IF]:inf: Interface port1.2 changed state to down
2023/06/18 02:33:55: [ CONFIG]:inf: Configuration changed
2023/06/18 02:33:48: [ IF]:inf: Interface port1.1 changed state to up (2500-full)
2023/06/18 02:33:47: [ CONFIG]:inf: Configuration changed
2023/06/18 02:33:45: [ IF]:inf: Interface port1.1 changed state to down
2023/06/18 02:33:33: [ IF]:inf: Interface port1.9 changed state to up (10000-full)
SWX2220-10NTのsyslogサンプル

YAMAHAスイッチSWX2220-10NTにsshログインする為に必要だったこと

自宅の10Gbpsイーサネット環境としてリビングにSWX2220-10NTを導入しました。10GbEが2、2.5GbEが8ポートです。2FのメインルーターRTX1300から10Gbpsの幹線を下ろし、階下でもマルチギガビットイーサが使えるようにする為、QNAPのQSW-2104-2T /AZを導入したんですが、

いまいち不安定でリビングでゲームをする同居人にキレられたので、リプレイスです。

正直まで不安定で、もしかしてスイッチが原因ではないのかも?ということになってきて、それはそれでまた後日経過を報告したいと思います。

取り急ぎ、sshがすんなりいかなかったので覚え書き。

■CUI(ssh)設定に必要だったこと

RTX1300配下におけばそちらの管理画面からもGUI設定可能ですが、telnetやsshでログインすることもできます。telnetは最近のWindows/macOSには入ってないし、より安全なsshを使おうと思ったわけですが、標準のsshクライアントでは「Unable to negotiate with 192.168.0.251 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1」だの「no matching host key type found. Their offer: ssh-rsa,ssh-dss」だの言われてアクセスできません。暗号鍵交換のアルゴリズム周りで古めのものを使ってるせいか、最近のWindows/macOSのOpenSSHクライアントが無効化していてマッチしないようでした。
そこで、このスイッチに対してのみ、要求するアルゴリズムも追加で使用許可してやる必要がありました。~/.ssh/configファイルに以下のような設定を追加します。

1行目のswx*はswxで始まるホスト名ならなんでも入れるようにしています。「ssh swx」でも「ssh swx2220」でも「ssh swx.hoge.com」でもという風にです。IPアドレス直打ちでもいけるよう、そちらも書いています。実際のIPアドレスは適宜打ち直してください。HostNameは実際にアクセスするIPアドレスです。基本的に上と同じになるでしょう。

で、そこから下がこのホスト固有の指定になります。WindowsではKexAlgorithms(鍵交換アルゴリズム)の指定だけでOKでしたが、macOSでは残りも必要なようでした。

RTX1300の「エラーカウンターがカウントアップしています」警告対策で受信バッファーを拡大してみるメモ

RTX1210時代からダッシュボードには常に「エラーカウンターがカウントアップしていいます」メッセージが出っぱなしでした。どうも受信バッファーのオーバーフロー(溢れ)によるエラーが一定数蓄積されると出るらしい。実際の動作としては送信元から再送信が行われ致命的な問題ではないものの、再送待ちが発生する分、スループットは落ちそうでもやもやします。

で、2023年4月リリースのファームウェアRev.23.00.05で、

との記載がありました。もしかしてこれを使えば前述のエラーも消えるのでは?!ということで少し設定を確認/変更してみました。

■バッファー状態の確認

などとすると、

などと表示されます。一番下にオーバーフローの回数が出ています。これが多いか少ないかはわかりませんが、たぶん0が理想なのでしょう。これの変化を見守っていきたいと思います。ちなみに再起動するとリセットされるぽいので、ある程度長期間でモニタリングしないと意味がないかも知れません。このステータスを表示する前日にファームウェア更新をしてるので、24時間程度の数値だと思われます。

また、今回は直接いじってないですが、「4.79 パケットバッファのパラメータを変更する」という設定項目もあり、場合によってはこちらもあわせて調整すると良いのかも知れません。

■受信バッファーサイズを変更する

ではリリースノートにある設定コマンドを使って値を変更してみます。デフォルトが1024で最大が16384らしいので、とりあえず倍にしてみました。

増やせば増やすほどいいかというと、メモリサイズは有限なのでこればかりに割いてもいられないんではないかと思います。ちなみに変更適用時点でメモリ使用量は29%です(変更前時点のを記録し忘れました…)。ここも見守って余裕があるようなら割り当てを増やすのもいいかも知れません。

一旦これで様子見してあまり変わらない様ならもう少し大きくしてみようと思います。

2023.4.27追記:

翌日、ほぼ24時間後です。やっぱりエラー出てました…受信オーバーフロー値は230848で倍増してるやん!まぁ少し前に仕事でギガサイズの動画ファイルを4本DLしたし。とりあえず更に倍ドン、ってことで4096にしてみます。

関係ないですが、その仕事のファイル、こちらのDirectCloudからのDLだったんですがめっちゃ速いですね。1GBがみるみる落ちてきます。自分も使ってみたいと思ったけど法人向けサービスでした。

2023.4.28追記:

上記追記から27時間くらい経ってしいましたが、エラーが出ていません!ギガサイズの動画DLも同じくらいしました。CUIでも受信オーバーフロー値もなし(再起動直後同様、行自体が出てない)。これは期待できるかも知れません。もうしばらく様子見しすつ、3072とかに減らしても平気かはそのうち検証したいと思います。

2023.5.6追記:

数日放置したらやっぱり出てましたw。うーん、関係ないのかなぁ。もうちょっと増やしてみるべきか。ルーターの再起動が必要なので、ゲームやってる家族に了解とったり面倒なんですよね。