BLOGTIMES
» ArchiveList (Tag for "mysql / windows" )
«Prev || 1 · 2 · 3 · 4 · 5 ·... | | Next»
2023/03/25

OmniOS/ZFS サーバに wbadmin でイメージバックアップが取れない時に確認すべきこと

omnios  windows 

以前、SMB 2.0 以降を使う Samba サーバの共有フォルダを対象にして Windows のイメージバックアップを取ろうとすると Sparse File の関係でバックアップが取れたり取れなかったりするという問題がありました。

同じような問題が OmniOS(illumos) でも発生していたので困っていました。
OmniOS は Open Solaris の系譜なので、ファイル共有は Samba ではなく Kernel 内蔵の smb です。
というわけで、Linux のSamba と同じテクニックは使えず、原因も Sparse File ではありません。

まず、結論から

いつも通り、解決するための結論から書いて置きます。

以下のようなコマンドで zfs 共有の nbmand(Non Blocking mandatory locks)*1*2 プロパティを on にしてやります。

zfs set nbmand=on tank/share

どうもこの nbmand というプロパティが off だとクライアントがファイルをうまくロックすることができず、これが原因になっていたようです。

nbmand のデフォルトは off ですし、おそらくパフォーマンス等に対するペナルティもあると思われるので、今回はバックアップに使う共有でだけ on にしています。Open Solaris の時から nbmandcross-protocol locking (例えば NFS と SMB を同時に使う)が必要な時だけ on にする必要がある*3という認識だったのですが、どうやらちょっと僕の認識が間違っていたようです。これまで off でもファイルサーバとしては特に問題になる挙動に当たったことがなかったのですが、このあたり近日中に詳しく調べてみたいと思います。

実際に発生するエラー

実際にバックアップを取ろうとすると発生するエラーは以下のような感じです。

Microsoft Windows [Version 10.0.22621.1413] (c) Microsoft Corporation. All rights reserved. C:\Windows\System32>wbadmin start backup -backuptarget:\\192.168.0.1\path\to\dir -include:c: -allCritical -quiet wbadmin 1.0 - バックアップ コマンドライン ツール (C) Copyright Microsoft Corporation. All rights reserved. 注意: この保存先では、バックアップ データを安全に保護することはできません。 リモート共有フォルダーに保存されたバックアップは、ネットワーク上の他の ユーザーによってアクセスされる可能性があります。バックアップは、信頼できる ユーザーがアクセスする場所か、セキュリティ対策が実施されているネットワーク にのみ保存してください。 ボリューム情報を取得しています... これにより (EFI システム パーティション),(C:),(\\?\Volume{00000000-0000-0000-0000-000000000000}\) が \\192.168.0.1\path\to\dir にバックアップされます。 \\192.168.0.1\path\to\dir へのバックアップ操作を開始しています。 バックアップに指定されたボリュームのシャドウ コピーを作成しています... バックアップに指定されたボリュームのシャドウ コピーを作成しています... ボリューム (EFI システム パーティション) (100.00 MB) のバックアップを完了できませんでした。エラー: プロセスはファイルにアクセ スできません。別のプロセスがファイルの一部をロックしています。 バックアップ操作の概要: ----------------------- バックアップ操作が完了する前に停止しました。 バックアップ操作が完了する前に停止しました。 エラーの詳細: プロセスはファイルにアクセスできません。別のプロセスがファイルの一部をロックしています。 正常にバックアップされたファイルのログ: C:\WINDOWS\Logs\WindowsBackup\Backup-25-03-2023_15-08-17.log バックアップに失敗したファイルのログ: C:\WINDOWS\Logs\WindowsBackup\Backup_Error-25-03-2023_15-08-17.log バックアップ セットのいずれかのボリュームのバックアップ イメージを準備しているときにエラーが発生しました。 プロセスはファイルにアクセスできません。別のプロセスがファイルの一部をロックしています。

at 19:59 |
2023/03/14

MariaDB が yum/dnf でアップデートできなくなっていたので

mysql  centos7  centos8  rockylinux9 

MariaDB は yum/dnf で自動的にアップデートされるようにしていたのですが、いつの間にか以下のようなエラーが出るようになってしまっていました。

warning: /var/cache/yum/x86_64/7/mariadb-main/packages/MariaDB-server-10.3.38-1.el7.centos.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID c74cd1d8: NOKEY The following updates will be applied on host.example.jp: ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: MariaDB-client x86_64 10.3.38-1.el7.centos mariadb-main 11 M MariaDB-common x86_64 10.3.38-1.el7.centos mariadb-main 82 k MariaDB-compat x86_64 10.3.38-1.el7.centos mariadb-main 2.2 M MariaDB-server x86_64 10.3.38-1.el7.centos mariadb-main 25 M MariaDB-shared x86_64 10.3.38-1.el7.centos mariadb-main 113 k Transaction Summary ================================================================================ Upgrade 5 Packages Updates failed to install with the following error message: GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY"

どうやら GPG のキーが新しくなった*1ようで、エラーを解消するにはこれをインストールしてやる必要があります。
MariaDB の公式マニュアル通りに以下を実行することで大丈夫でした。

sudo rpm --import https://supplychain.mariadb.com/MariaDB-Server-GPG-KEY

at 21:31 |
2022/12/05

File Locksmith でファイルをロックしているプロセスを探す

windows  windows11 
File Locksmith - File Locksmith でファイルをロックしているプロセスを探す

以前、Windows でファイルをロックしているプロセスを調べることができる LockHunterというアプリについてのエントリを書きましたが、これと同じことをすることができる MS 謹製の File Locksmith というユーティリティをみつけました。PowerToys というユーティリティ群のひとつとして搭載されています。

導入する場合、以下の GitHub のリリースから PowerToys としてダウンロードすることになります。

使い方はファイルを右クリックして「このファイルは何で利用していますか?」という項目を選択するだけです。PowerToys は File Locksmith に限らず便利なツールがいろいろ揃っているので、導入しておくと良いと思います。

PowerToysWindows 用の File Locksmith ユーティリティ | Microsoft Learn

エクスプローラー内の 1 つ以上のファイルまたはディレクトリを選択します。 ディレクトリが選択されている場合、そのすべてのサブファイルとサブディレクトリもスキャンされます。 がアクティブ化されると File Locksmith 、アクセスできる実行中のすべてのプロセスがスキャンされ、使用しているファイルが確認されます。


    at 21:11 |
    2022/03/02

    AI Suite III の代わりに使える「Fan Control」

    windows  asus 
    Fan Control - AI Suite III の代わりに使える「Fan Control」

    ASUS の AI Suite 3 の代わりに使えるファンコントロールユーティリティを見つけたのでメモ。

    AI Suite 3 は一旦インストールしてしまうと微妙なので・・・

    ASUS のマザーボードには専用のユーティリティとして AI Suite 3 というものがあるのですが、これがちょっと曲者で、アンインストールしてもファイルやサービスが残ってしまったり、一旦構成が壊れると再インストールしても動かなかったりでどうしようもありません。

    もちろんファンスピードは UEFI から調整できるのですが、いちいち UEFI を起動するのも面倒なので Windows 上からファンコントロールできるサードパーティ製のアプリがないかと思って探してみたら、なんとか見つけることができました。今後は AI Suite 3 ではなく、こっちだけを使っていこうと思います。


      at 22:42 |
      2022/02/20

      Windows 上で .pfx/.p12 の中身を確認するには

      ssl  windows 

      Windows 上で .pfx の中身をチェックするためには certutil -dump (cert.pfx) のようにコマンドを使えば確認できますが、面倒なのでドラッグアンドドロップで確認できるスクリプトを書いてみました。

      show_pfx.bat

      @echo off cd /d %~dp0 for %%f in (%*) do ( echo "%%~nxf" certutil -dump "%%~dpf%%~nxf" ) pause

      実行例

      以下のような感じで証明書の中身が表示できます。
      ちなみに PFX のパスワード入力はエコーバック(画面表示)されないので注意しましょう。

      "www.example.com.pfx" PFX パスワードの入力: ================ 証明書 0 ================ ================ 開始入れ子のレベル 1 ================ 要素 0: シリアル番号: 00 発行者: OU=Security Communication RootCA2, O=SECOM Trust Systems CO.,LTD., C=JP この日以降: 2009/05/29 14:00 この日以前: 2029/05/29 14:00 サブジェクト: OU=Security Communication RootCA2, O=SECOM Trust Systems CO.,LTD., C=JP 署名は公開キーと一致します ルート証明書: サブジェクトと発行者は一致します Cert ハッシュ(sha1): 5f3b8cf2f810b37d78b4ceec1919c37334b9c774 ---------------- 終了入れ子のレベル 1 ---------------- キー プロバイダー情報がありません 暗号化の解除のための証明書と秘密キーが見つかりません。 ================ 証明書 1 ================ ================ 開始入れ子のレベル 1 ================ 要素 1: シリアル番号: 22b9b154f33c5e5e00 発行者: OU=Security Communication RootCA2, O=SECOM Trust Systems CO.,LTD., C=JP この日以降: 2018/08/22 16:41 この日以前: 2028/08/22 16:41 サブジェクト: CN=FujiSSL Public Validation Authority - G3, O=SECOM Trust Systems CO.,LTD., C=JP 非ルート証明書 Cert ハッシュ(sha1): e659885ddd3fd3e36b3a29ff6f94585e0b40de40 ---------------- 終了入れ子のレベル 1 ---------------- キー プロバイダー情報がありません 暗号化の解除のための証明書と秘密キーが見つかりません。 ================ 証明書 2 ================ ================ 開始入れ子のレベル 1 ================ 要素 2: シリアル番号: 99999999999999999999999999999999 発行者: CN=FujiSSL Public Validation Authority - G3, O=SECOM Trust Systems CO.,LTD., C=JP この日以降: 2099/99/99 99:99 この日以前: 2099/99/99 99:99 サブジェクト: CN=www.example.com.pfx 非ルート証明書 Cert ハッシュ(sha1): 9999999999999999999999999999999999999999 ---------------- 終了入れ子のレベル 1 ---------------- プロバイダー = Microsoft Enhanced Cryptographic Provider v1.0 暗号化のテストに合格しました CertUtil: -dump コマンドは正常に完了しました。 続行するには何かキーを押してください . . .

        at 19:11 |
        2021/12/19

        全角スペースが入りのファイルを bat にドラッグアンドドロップする

        bat  windows 

        昔、作ったドラッグアンドドロップでファイル名に日付を追加する .bat ファイルですが、全角スペースが含まれたファイルが上手く扱えないので、使えるように改良してみました。

        bat ファイルでの全角スペースの扱いは、半角スペースの扱いと違うのでみんな苦労しているようです。
        今回は一度違う文字(___)に置換してから、ループ内で逆に置換するようにしました。
        作成時の注意点は文字コードを Shift-JIS にして保存する必要があるということだけです。

        @echo off cd /d %~dp0 set args=%* set args_escaped=%args: =___% echo args: %* echo args_escaped: %args_escaped% setlocal enabledelayedexpansion for %%f in (%args_escaped:"=%) do ( set fname=%%~dpnf set fname_org=!fname:___= ! echo fname_org!fname_org! echo -------- ) endlocal pause

        こんな感じで、全角スペース入りの複数のファイルをドラッグアンドドロップしても大丈夫になりました。

        args: D:\hoge\い う.txt D:\hoge\あ あ.txt args_escaped: D:\hoge\い___う.txt D:\hoge\あ___あ.txt fname_orgD:\hoge\い う.txt -------- fname_orgD:\hoge\あ あ.txt -------- 続行するには何かキーを押してください . . .

          at 22:21 |
          2021/05/08

          bat でコマンドを途中で改行するには

          bat  windows 

          Linux でシェルスクリプトを書くときに長いコマンドを途中改行するためには改行の直前に \ を書きますが、Windows の bat ファイルでは同様のやり方を知らなかったので調べてみました。

          これはどこにドキュメンテーションされているのか

          ネットを検索すると ^ を使えば良いというのはすぐに見つかりました。
          書いて見ると実際に問題なく動きましたが、公式のドキュメントで仕様を確認しておきたかったのでどこに記載があるのかちょっと調べてみました。

          エスケープに関する記述は set コマンドの解説の以下でしょうか。明確に escape character が ^ である と書いてありますが、これが bat 全体で使えるという記述は見つけることができませんでした。この仕様はおそらく DOS の時から変わっていないと思われるのですが、DOS に関するドキュメントは今や MS のサイトにはないですからしょうがないですね。

          set | Microsoft Docs

          The characters <, >, |, &, and ^ are special command shell characters, and they must be preceded by the escape character (^) or enclosed in quotation marks when used in (for example, "StringContaining&Symbol").


            at 18:45 |
            2021/05/02

            ドラッグアンドドロップでフォルダ毎に zip アーカイブを作る bat

            bat  windows 

            フォルダをドラッグ&ドロップすると、zip にアーカイブしてくれるという bat ファイルを書いてみました。

            複数のフォルダを一度にドラッグ&ドロップすると、フォルダ毎にアーカイブされるようになっています。
            圧縮に 7-zip を使っているので、予めインストールしておいてください。

            完成してみれば非常に簡単な bat ですが、パスにスペースが入っている場合を考慮するのが大変でした。

            zip.bat

            @echo off cd /d %~dp0 for %%f in (%*) do ( "C:\Program Files\7-Zip\7z.exe" a -tzip "%%~dpf%%~nxf.zip" "%%~dpf%%~nxf" ) pause

            参考


              at 18:16 |
              2021/02/22

              Dokcer で Redmine + MariaDB サーバを立ててみた

              docker  redmine  mysql  dockercompose 

              今度は Redmine + MariaDB を Docker 化していきます。

              Redmine も MariaDB もどちらも公式のイメージを使います。

              今回の Redmine は要件として

              • バージョンは 3.x 系統であること
              • パスは /redmine で参照できること

              というのがあるので、この部分についてはカスタマイズを行っています。

              ファイルを配置したら以下のコマンドで起動できます。

              docker-compose up -d

              起動ができたら http://hostname:3000/redmine/ でアクセスができるはずです。

              マイグレーション

              既存の環境からの DB のマイグレーションについては、docker-compose exec redmine-db bashで MariaDB のコンテナに入り、MariaDB にデータをインポートすれば良いと思います。ファイルについては ./data ディレクトリ以下に必要なファイルをコピーすれば OK です。

              ファイル構成

              docker-redmine-mariadb/  ├ docker-compose.yml  └ redmine/    └ Dockerfile


                at 22:55 |
                2021/01/18

                アイコンを見るだけで NTFS が破損する問題については MS が修正へ

                windows 

                パス名に $i30 が含まれているフォルダにアクセスするだけで NTFS が破損する脆弱性*1については、少し前から結構話題になっていましたが、近日中に修正されることになったようです。

                問題の再現方法については調べれば簡単にわかりますが、本当にディスクが飛びますので、ちょっと試してみるみたいなことはやめておいた方が無難です。

                アイコンを見るだけでディスクが破損するNTFSの脆弱性が修正へ - PC Watch

                この脆弱性は、Windows 10 1803以降のバージョンにおいて文字列“$i30”を含んだコードがWindowsショートカットに含まれる場合に、そのショートカットを実行しなくてもドライブが破損するというもの。コマンドプロンプトのcdコマンドなどでコードを実行した場合はもちろん、Windows上でアイコンが見えた時点で、そのショートカットがZIPファイルの中に存在するだけでも発生する。


                at 19:06 |
                «Prev || 1 · 2 · 3 · 4 · 5 ·... | | Next»
                » ArchiveList (Tag for "mysql / windows" )