月: 2024年8月

  • ディスクIOが遅すぎてファイルコピーとかRobocopyが失敗する時の対処

    Windowsのエクスプローラーで大きいファイルをコピーする時、次のようなメッセージが出ることがある。

    2024/08/10 11:01:33 エラー 121 (0x00000079) ファイルをコピーしています E:\folder1\a.txt
    セマフォがタイムアウトしました。
    2024/08/10 11:01:44 エラー 1117 (0x0000045D) ファイルをコピーしています E:\folder1\a.MOV
    I/O デバイス エラーが発生したため、要求を実行できませんでした。

    回線細い場所でDBのでっかいDBのバックアップとかSMBで送るときになったりもする。バックアップ用に売られているHDDで5400RPMとかIOが遅いやつでも発生しやすい。

    どうやらRobocpyはデフォルトで並列実行されているみたいで、この並列処理の要求にディスクが追いつけず失敗しているみたい。だからこの並列実行数を下げてやったら成功。そのオプション

    robocopy AAA BBB /MT:2 /ZB

    ※”/ZB”のオプションも併せてつけておくと保険になって良い

    /mt:<n>n 個のスレッドによるマルチスレッド コピーを作成します。 n は、1 から 128 までの整数である必要があります。 n の既定値は 8 です。 パフォーマンスを向上させるには、/log オプションを使用して出力をリダイレクトします。/mt パラメーターを /ipg および /efsraw パラメーターと共に使用することはできません
    /zb再開可能モードでファイルをコピーします。 ファイル アクセスが拒否された場合は、バックアップ モードに切り替えます。

    参考URL:Robocopy | Microsoft Learn

  • OPNsenseというソフトウェアルータのメモ

    OPNsenseというソフトウェアルータをHyper-V上に立てて仮想マシンのGWにした。

    詳しくはFreeBSDベースのファイアウォールOS「OPNsense」(インストール編) | さくらのナレッジ (sakura.ad.jp)を見ることとして、あくまで内部ネットワーク用のFWとして作ったからwan側にはローカルアドレスを当てている

    ↑HyperV上の仮想マシンが外に出るために通るルータとして作った

    普通にWAN側のアドレスからログインしたかったから、フィルタのルールを許可してたんだけどなかなかできなかったんだけどデフォルトだとWAN側からのプライベートアドレスはすべて拒否する設定になっているみたいで、それを外すの見つけるのに時間かかったからメモ

    ↑黄色線のとこ

    参考:MullvadとopnSenseで隔離された安全なネットワークを作る – parakeet (mohemohe.dev)