Plan9の9Protocolをdiodで試す
3 min read
こんにちは、無能です。
今回はUNIXが生まれたベル研究所、Plan9が分散オペレーティング・システムのために開発したPlan9プロトコルを試してみます。
はじめに
分散型OSとしてPlan9は全てのリソースはファイルである
としてよりかんたんに構成しておりました。
このため、リソースを使うためにはそれぞれのファイルシステム上でリモートで行うことでCPUリソースの分散も行っていたようです。例えば、/bin
ディレクトリを連結させたり、/dev
であればコードを追加せずにもデバイスの共有ができます。
例えば、今であればcups
もCommon Unix Printing System
として、キューディレクトリを指す/var/spool/cups
を共有してしまえばプリントサーバーからかんたんにプリントを行うことも可能です。
ポートで管理するよりも、ファイルシステム上にマウントすることによってよりかんたんに動作出来るはずです。
その中で使われていたPlan9 Protocol
を試してみます。
実際には、現状ではWikipediaを確認するとBSD・GNU/Linuxで使えるものであればqemu
とdiod
があり、すでにqemu
は使用しているのでそのファイルサーバーとして本来のUNIX的なdiod
を今回は使ってみます。
diodのインストール
diodのGithubはここですが、パッケージ管理からかんたんにインストールできます。
apt
sudo apt isntall diod
yay
yay -S diod
これでインストールができます。
サーバーの起動、マウント
Github上のREADME.md
でやり方が書いてあるのでそのとおりに行います。
今回はサーバーの/media/ncp/files
ディレクトリをクライアント側の/mnt/9p
にマウントします。
また564/TCP
で動作するため、サーバーからはufw
でallow
します。 Server
sudo ufw allow 564/tcp
sudo ufw reload
sudo diod -f -d 1 -n -e /media/ncp/files/
これで起動ができました。
Client
sudo diodmount -n 192.168.10.113:/media/ncp/files /mnt/9p
これでマウントができました。
ls
で確認してみましょう。
$ ls -la /mnt/9p/
合計 6115604
drwxr-xr-x 2 haturatu haturatu 4096 9月 2 21:58 .
drwxr-xr-x 3 root root 4096 9月 5 22:32 ..
-rw-r--r-- 1 haturatu haturatu 6262358016 9月 2 13:58 devuan.qcow2
-rwxr-xr-x 1 root root 1845 9月 2 21:58 index.php
-rw-r--r-- 1 root root 937 9月 2 21:53 style.css
完璧です。あとでここはユーザをwww-data
にしなければ。。。
アンマウントは普段どおりで大丈夫です。
sudo umount /mnt/9p
よりシンプルに
複雑性を無くし、シンプルであるのでとても心地がよいです。
元々は分散OSとしてのシステムですが、残念ながら今であればBSD・GNU/Linuxがある種で身近なものとなり異なるファイルシステムを持ちます。
その分岐によって異なるOS間での分散型OSとするのはあまり現実的ではなさそうです。
例えば、FreeBSD
であればpkg
やユーザが自由に入れるソフトウェア群は/usr/loacl/etc
の設定ファイルとしますがGNU/Linuxは/etc
です。
そして、FreeBSD
には/proc
と/sys
は存在しませんがGNU/Linuxには存在します。
もちろん相互的である部分はあるので一部では可能であるとは言えます。
今回であれば、ストレージが小さなVPS上からWireguard
も組み合わせて使えば容易にストレージの拡張ができますしそれなりに実用性はあります。
また、他のファイルサーバーと言えばSamba等いくつか使ったことはありますがおそらく最もシンプルで高速だと感じています。
少し話題はそれますが、改めてOpenBSDのテオ・デ・ラートのインタビュー記事を読み返して、OpenBSDのWikipediaを再度読んでいると
オープンソースおよびドキュメンテーションの重視
とあり、実際にこんな仕組み上古いものでもこんなかんたんに私がテストできたのも過去にドキュメントを作ってくれた人がいたからこそです。
複雑であることよりシンプルに、再度ドキュメントの重要性を感じた一日でした。
それでは。またよろしくお願いします。