- blogs:
- cles::blog
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 にしてやります。
どうもこの nbmand というプロパティが off だとクライアントがファイルをうまくロックすることができず、これが原因になっていたようです。
nbmand のデフォルトは off ですし、おそらくパフォーマンス等に対するペナルティもあると思われるので、今回はバックアップに使う共有でだけ on にしています。Open Solaris の時から nbmand は cross-protocol locking (例えば NFS と SMB を同時に使う)が必要な時だけ on にする必要がある*3という認識だったのですが、どうやらちょっと僕の認識が間違っていたようです。これまで off でもファイルサーバとしては特に問題になる挙動に当たったことがなかったのですが、このあたり近日中に詳しく調べてみたいと思います。
† 実際に発生するエラー
実際にバックアップを取ろうとすると発生するエラーは以下のような感じです。
- *1: illumos: manual page: zfs.8
- *2: illumos: manual page: mount.8
- *3: Managing CIFS Shares (Task Map) (Solaris CIFS Administration Guide)
File Locksmith でファイルをロックしているプロセスを探す
windows
windows11 以前、Windows でファイルをロックしているプロセスを調べることができる LockHunterというアプリについてのエントリを書きましたが、これと同じことをすることができる MS 謹製の File Locksmith というユーティリティをみつけました。PowerToys というユーティリティ群のひとつとして搭載されています。
導入する場合、以下の GitHub のリリースから PowerToys としてダウンロードすることになります。
使い方はファイルを右クリックして「このファイルは何で利用していますか?」という項目を選択するだけです。PowerToys は File Locksmith に限らず便利なツールがいろいろ揃っているので、導入しておくと良いと思います。
PowerToysWindows 用の File Locksmith ユーティリティ | Microsoft Learn
エクスプローラー内の 1 つ以上のファイルまたはディレクトリを選択します。 ディレクトリが選択されている場合、そのすべてのサブファイルとサブディレクトリもスキャンされます。 がアクティブ化されると File Locksmith 、アクセスできる実行中のすべてのプロセスがスキャンされ、使用しているファイルが確認されます。
Ubuntu が contains a file system with errors で起動しなくなった場合の対処法
ubuntu
linux 使っている Ubuntu の VM が以下のようなファイルシステムエラーを吐いて通常起動しなくなってしまったので、対処方法をメモ。
勝手にシングルユーザーモードになっているようなので、以下のように fsck による /dev/sda1 の修復をかけて無事に修復することができました。
実際にサーバのトラブルーシューティングができる練習環境 SadServers
systemmanagemant
networking
linux SadServers という実際に Linux サーバのトラブルーシューティングを体験できる演習環境を見つけたのでメモ。
実際にサーバ運用をしたことがあれば、Easy や Medium あたりは楽しんで挑戦できると思いますが、Hard はかなり難しいです。
SadServers - Troubleshooting Linux Servers
Troubleshoot and make a sad server happy!
"Like LeetCode for Linux"
Capture The Flag challenges. Train and prove your debugging skills.
Practice for your next SRE/DevOps interview.
Get a full remote Linux server with a problem and fix it.
この演習環境のアーキテクチャについては GitHub - fduran/sadservers: SadServers.com Public で解説されていますが、1 回ごとに EC2 でインスタンスが立ち上がるようになっているようです。
Core Utilities 9.1 がリリースに
linux
cli Linux などの mv や cp などの基本的なコマンドの実装である GNU Coreutils のバージョン 9.1 がリリースされていたのでメモ。
こんなツール、まだバージョンアップする余地があるの?という感じもしますが、現在でもアップデートされ続けているんですよね。
基本コマンドをカバーするGNU Core Utilitiesがバージョンアップ | TECH+
ddがFreeBSDと同じ動作するエイリアスのサポートや、dircolorsが環境変数LS_COLORSのカラーコードに従って表示するオプション、環境変数COLORTERMを参照するようになった。改良点はcpやmv、installを使用してディレクトリをコピーする際は、競合状態を回避するためにopenat()システムコールを使用。printfによるマルチバイト文字の数値表示をサポートした点が目立つ。
AI Suite III の代わりに使える「Fan Control」
windows
asus ASUS の AI Suite 3 の代わりに使えるファンコントロールユーティリティを見つけたのでメモ。
† AI Suite 3 は一旦インストールしてしまうと微妙なので・・・
ASUS のマザーボードには専用のユーティリティとして AI Suite 3 というものがあるのですが、これがちょっと曲者で、アンインストールしてもファイルやサービスが残ってしまったり、一旦構成が壊れると再インストールしても動かなかったりでどうしようもありません。
もちろんファンスピードは UEFI から調整できるのですが、いちいち UEFI を起動するのも面倒なので Windows 上からファンコントロールできるサードパーティ製のアプリがないかと思って探してみたら、なんとか見つけることができました。今後は AI Suite 3 ではなく、こっちだけを使っていこうと思います。
Windows 上で .pfx/.p12 の中身を確認するには
ssl
windows Windows 上で .pfx の中身をチェックするためには certutil -dump (cert.pfx) のようにコマンドを使えば確認できますが、面倒なのでドラッグアンドドロップで確認できるスクリプトを書いてみました。
show_pfx.bat
† 実行例
以下のような感じで証明書の中身が表示できます。
ちなみに PFX のパスワード入力はエコーバック(画面表示)されないので注意しましょう。
全角スペースが入りのファイルを bat にドラッグアンドドロップする
bat
windows 昔、作ったドラッグアンドドロップでファイル名に日付を追加する .bat ファイルですが、全角スペースが含まれたファイルが上手く扱えないので、使えるように改良してみました。
bat ファイルでの全角スペースの扱いは、半角スペースの扱いと違うのでみんな苦労しているようです。
今回は一度違う文字(___)に置換してから、ループ内で逆に置換するようにしました。
作成時の注意点は文字コードを Shift-JIS にして保存する必要があるということだけです。
こんな感じで、全角スペース入りの複数のファイルをドラッグアンドドロップしても大丈夫になりました。
bat でコマンドを途中で改行するには
bat
windows Linux でシェルスクリプトを書くときに長いコマンドを途中改行するためには改行の直前に \ を書きますが、Windows の bat ファイルでは同様のやり方を知らなかったので調べてみました。
† これはどこにドキュメンテーションされているのか
ネットを検索すると ^ を使えば良いというのはすぐに見つかりました。
書いて見ると実際に問題なく動きましたが、公式のドキュメントで仕様を確認しておきたかったのでどこに記載があるのかちょっと調べてみました。
エスケープに関する記述は set コマンドの解説の以下でしょうか。明確に escape character が ^ である と書いてありますが、これが bat 全体で使えるという記述は見つけることができませんでした。この仕様はおそらく DOS の時から変わっていないと思われるのですが、DOS に関するドキュメントは今や MS のサイトにはないですからしょうがないですね。
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").
ドラッグアンドドロップでフォルダ毎に zip アーカイブを作る bat
bat
windows フォルダをドラッグ&ドロップすると、zip にアーカイブしてくれるという bat ファイルを書いてみました。
複数のフォルダを一度にドラッグ&ドロップすると、フォルダ毎にアーカイブされるようになっています。
圧縮に 7-zip を使っているので、予めインストールしておいてください。
完成してみれば非常に簡単な bat ですが、パスにスペースが入っている場合を考慮するのが大変でした。
zip.bat
† 参考
- sadpkv
- CACHEMANAGER.phpというのはどうだろうかと
- pairb1m
- Lightning のToDoリストを複数のPCで共有できるアドオン
- majodca
- 九州旅行から帰ってきました
- majodca
- 九州旅行から帰ってきました
- hot534
- yum を使って OpenVPN をインストールする
- dresssu3
- NP_Trackbackを騙るトラックバックspamについて
- zippern7o
- NP_SpamBayesJP jp1b
- park81o
- Google Docs をメールフォームとして使う
- fogmpl
- なんで官庁の文章はPDFなんだろうか
- cutjw9
- 即席スライドショーを作る
- frightenlho
- 添付ファイルの容量を表示する「Attachment Sizes」
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(5032)
3 . GitHub が全ての公開リポジトリへのシークレットスキャンを有効に(4172)
4 . 年次の人間ドックへ(4102)
5 . 2023 年分の確定申告完了!(1つめ)(3956)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]


