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を再度読んでいると
オープンソースおよびドキュメンテーションの重視
とあり、実際にこんな仕組み上古いものでもこんなかんたんに私がテストできたのも過去にドキュメントを作ってくれた人がいたからこそです。
複雑であることよりシンプルに、再度ドキュメントの重要性を感じた一日でした。
それでは。またよろしくお願いします。