SSHFS を Systemd から BASH スクリプトを実行することでマウントしたい

この記事を作った動機 最近 Blender に Flamenco を導入して分散コンピューティング?を試す において、SMB ではなく SSHFSを使う必要があることがわかったので、SSHFS を試そうとしたところ、躓いたため記録を取る。 私の環境では、元々 SMB を使ってファイル共有を導入し、それを VPN 経由で利用していたが、それは普段の利用であってもファイルが大量にあるディレクトリを高遅延なネットワーク環境で開いたりすると1分ほど待たされたりするなど、明確に動作が遅いところがあった。そしてその挙動が、Blender の Flamenco の利用において顕著になり、限界が見受けられたため、SFTPを使った方法に移行するということがあった。 Blender の Flamenco において問題が起きる前までは、SMB 以外にすでに SFTP を使っていたが、それは Gnome Shell 内臓のファイラーで使っていたが、そちらでは、sftp://の URL から始まるパスで Gnome が勝手に独自でマウントしたフォルダーにアクセスするようになっている。SMB のときのように、マウントポイント用のフォルダを作成して、そこにネットワークドライブをマウントするという形態は取っていなかったため、問題になった。 そこで、SMB のように SFTP をマウントできる方法について、Google Gemini Fast 3に投げてみたところ、一つの提案として SSHFS を使う案が出てきたため試した。試したところ、コマンドラインにおいて、sshfsコマンドを使って、特定のフォルダに特定の SSH 接続先のフォルダをマウントするというような動作はできた。しかし、それを Systemd において自動化する際において、問題が起きた。 問題としては、私が Systemd に専用に備わっている方法や、/etc/fstab に明記する方法ではなく、起動後に自分で書いた専用の管理 Python スクリプトを Systemd で動かし、VPN と ネットワークドライブの管理を自分で自動的に行う方法を取っていたことによってその処理内容がsshfsコマンドの特性上適切でないことで起こった。SMB の時点では、/etc/fstab に書くことでネットワークドライブをマウントする方法もやっていたことがあった。しかし、それだと起動時やシャットダウン時において、ネットワークドライブにアクセスできなかった場合に、OS ごと巻き込んで、起動が途中で止まったりシャットダウンが途中で止まったりするなど、課題になったため、自分で手動で Systemd サービスやスクリプトを書いて起動して Gnome Shell にログインしてから具体的な処理が自動で走るように書いていた。その仕様が今回 SSHFS を導入するにあたって問題となった。 SSHFS - ArchWiki などに書いてあるように、専用の Systemd の automount を使ったりする方法もあるようであるが、私としては、ネットワークドライブは VPN の接続状況に応じて一緒に管理したいということがあった。SMB を使っていたときと同じように、SSHFS も自分でマウントするスクリプトを書いて、それを Systemd 経由でスクリプトとして実行し、専用の Python 管理スクリプトからは、systemd の自分で用意したネットワークドライブに関するサービスを叩くだけにしたいということがあった。 ...

March 24, 2026

Blender に Flamenco を導入して分散コンピューティング?を試す

このページは、まだ未完成です。。。 nicotalk&キャラ素材配布所 http://www.nicotalk.com/charasozai_kt.html (2024年5月16日) この記事を作った動機 最近 Gemini Fast 3 を使っていると、Blender において分散コンピューティングみたいなレンダリングの仕方ができることが分かり、気になった。それで、最初は Gemini Fast 3 が提案してきて、Blender - ArchWiki にも掲載されている、BlendNetを試そうと思った。 しかし、BlendNet のリポジトリを見てみると、実際のところは Blender 2.x.x の古い Blender にしか対応してなさそうな感じであった。私が使っている Blender のバージョンは 5.x.x 以降であったことから、別の物がないか Gemini Fast 3 に提案させてみると、Blender 公式の Flamenco が出てきたため試した。 そして、とりあえず動くようになるところまで、設定して確かめることができたため、そのことについて記録したい。まだ完全ではなく、途中でレンダリングに失敗したりと、成果物を得られている状態ではない。現状では Flamenco Manager と Flamenco Worker が実際に疎通を取り、Manager 側のクライアントの Blender からジョブを投げると、Worker 側がレンダリングを開始し負荷がかかるところまで確認した。 細かい説明(序章) 全体的な Flamenco 運用イメージ 以下に構築する環境のイメージを示す。今回はファイル共有サーバと Worker となる PC は物理的に1つに全部がまとまっている事を想定しているが、以下の画像ではわかりやすさのために、ファイル共有サーバやレンダリングを行う Worker farm の PC は物理的に分けている前提で表現している。 前提について 以下の点については、すでに設定されているものまたは前提として取り扱う。 Manager 側と Worker 側の間の設定 LAN で物理的に同じネットワークに繋がっているか、VPNによって実質的に同じネットワークに繋がっている。 SSH の設定が済ませてあり、LAN で物理的に同じネットワークに繋がっているときに疎通が取れる。 ping によって物理的に同じネットワークに繋がっているときに疎通が取れる。 Worker 側は GNOME RDP の設定が済ませてあり、Remmina クライアントにより LAN で物理的に同じネットワークに繋がっているときに疎通が取れる。 SFTP によるファイル共有が可能な状態になっている。 どちらも Linux 環境がセットアップされてあり、インターネットへの接続が確認できている。 firewalld をファイアウォールとして使っている。 VPN での接続がある場合について SMB ではなく SFTP によってファイルのやり取りを行う。 MTU サイズが十分小さく設定されており、ネットワーク障害が発生しないように設定されている。(MTUサイズ1000にするなど) 高遅延を前提とする。 Manager 側の視点から設定作業などを行い、Flamenco Manager と Blender を立ち上げた状態で作業する。 Manager 側と Worker 側は VPN によって遠隔地で通信を行う。 単語の解釈 Worker Flamenco において実際にレンダリング処理をする端末を、Flamenco公式ドキュメントなどを見た結果、Workerと呼ぶと私は現時点(2026/3/22)では解釈している。 ...

March 22, 2026

CIFS (SMB、Samba)を快適に使いたい

この記事を作った動機 linux上で、cifsとVPNを使って自分のファイルサーバにアクセスしているのですが、以下のような不満点があり、どうしたらいいか考えてみた結果、いくつか興味深いオプジョンが見つかったので、それを記録しておくだけです。ちなみに、完全な解決とまでは行ってないですが、多少改善が見られた程度って感じです。 大きなファイルをやり取りすると、同時に他のファイル操作をしたときにもっさりする なにかと、特にvpn環境だと理由不明のファイルマネージャ等のプチフリが多発する ちょっとしたまとめ sudo mount -t cifs -o user=username,password="password",gid=1000,uid=1000,vers=3.11,multichannel,max_channels=16,compress //192.168.xxx.xxx/shareName /Path/To/Mount/Point 特に気になったオプション vers=3.11 smbプロトコルのバージョンを指定する項目で、以下のバージョンが選べる模様です。新しいほどいろんな機能が使えるようです。今回の場合は、使いたい機能が、3.11にあるので、それを指定している前提で、その他気になったオプションをリストアップします。 vers=arg SMB protocol version. Allowed values are: • 1.0 - The classic CIFS/SMBv1 protocol. • 2.0 - The SMBv2.002 protocol. This was initially introduced in Windows Vista Service Pack 1, and Windows Server 2008. Note that the initial release version of Windows Vista spoke a slightly different dialect (2.000) that is not supported. • 2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and Windows Server 2008R2. • 3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and Windows Server 2012. • 3.02 or 3.0.2 - The SMBv3.0.2 protocol that was introduced in Microsoft Windows 8.1 and Windows Server 2012R2. • 3.1.1 or 3.11 - The SMBv3.1.1 protocol that was introduced in Microsoft Windows 10 and Windows Server 2016. • 3 - The SMBv3.0 protocol version and above. • default - Tries to negotiate the highest SMB2+ version supported by both the client and server. If no dialect is specified on mount vers=default is used. To check Di‐ alect refer to /proc/fs/cifs/DebugData Note too that while this option governs the protocol version used, not all features of each version are available. The default since v4.13.5 is for the client and server to negotiate the highest possible version greater than or equal to 2.1. In kernels prior to v4.13, the default was 1.0. For kernels between v4.13 and v4.13.5 the default is 3.0. multichannel manページを読んでいる限り、一つだけでなく複数のデータをやり取りするための、よくわかってないですが、複数のTCPセッション(複数の通信路)みたいなのを開くっぽいです。これを指定して見ると、大きなファイルを操作していても快適にファイルマネージャとか、レスポンスよくいろんなファイル操作が行える傾向にありました。一つだけの通信路では、やはり厳しいものがあるようです。 ...

March 25, 2025

Samba を設定するメモ

この記事を書いた動機 ssh サーバ (sshd) の設定のメモ の設定についてメモを書いたのと似たような動機で、sambaについても書いていく。疲れたので、説明も簡素に、とりあえずどんな設定にしているのかおいておくことにする。 ちなみにこれら設定は、プライベートネットワークでしか使うことを想定しておらず、外部に公開されるようなサーバでは使えない、セキュリティーホールになりえる設定になっている可能性が大いにあるので、注意する。 /etc/samba/smb.conf # ネットワークドライブ名 [data] comment = data folder # ファイル共有する場所を指定 path = /Path/To/ShareFolder browsable = yes writable = yes guest ok = yes read only = no force create mode = 0777 create mask = 0777 # 全体共通の設定項目 [global] min protocol = SMB2 max protocol = SMB3 Workgroup = WORKGROUP netbios name = dataserverName log file = /Path/To/LogFile/%m.log log level = 1 wins support = yes domain master = yes ユーザの追加 ついでなので、samba のユーザの追加方法についてもよく忘れるので記録を取る。 ...

February 7, 2025

Gnome Mutter と ネットワーク共有フォルダ(SMB CIFS)

この記事を書いた動機 ただ単に、すぐに気づけなかったけど、後々気づいたことがあったので、それを記録するだけです。具体的には、Gnome の mutter において、ネットワークドライブ上を参照している場合においても、サムネイルを表示するようにすることについて、記事を書いていく予定です。 Gnome Mutter と ネットワーク共有フォルダ デフォルトの設定 gnome mutter ではデフォルトで、ネットワーク共有フォルダの中身のサムネイルなどを表示しない。 サムネイルを表示する設定に変更 以下の画面で、サムネを表示したりその他情報についてどうするか、設定できる。デフォルトでは、全ての項目がトラブルを避けるためか、ネットワーク共有フォルダなどを含まない、端末上のディスク内にしか機能しないように設定されている。 設定を開く サムネイルを表示するように設定を変更 変更後の様子 設定を変更し、ネットワーク共有フォルダ等をのぞいてみると、サムネイルなどが見えるようになったりする。 参考にしたサイト ただ気づいたことを書いただけなので特になし。

January 6, 2025