<html dir="ltr"><head></head><body style="text-align:left; direction:ltr;"><div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre># Q. </pre><pre>『MicroK8sのクラスターを作って、自宅サーバの負荷分散』が、本当に負荷分散に繋がるのでしょうか?</pre></blockquote><br></div><div>自分の場合は、ownCloudサーバの運用でして。</div><div>ownCloudサーバをVPSから自宅サーバに移行したのですが、その際のサーバのスペックがメモリ4GBだったこともあり、40GBくらいのデータの同期を複数クライアントから行っている最中にMySQLが落ちました。</div><div>その後、メモリを16GBにしてから落ちることはなくなったのですが、それでも高負荷対策をしたいなと。</div><div>Kubernetesのサービス(pod)を複数起動させておいて、落ちたら別のpodが起動するようになっていれば落ちなくなると。</div><div>でもこれ、負荷分散ではなくて安定化なんですよね。</div><div><br></div><div>なおグリッド・コンピューティングについてもう少し調べていたところ、ミドルウェアのSun Grid Engineはサンがオラクルに買収された後、オープンソースコミュニティで、Son of Grid Engineと、Open Grid Schedulerに派生したものの、現在は両方とも開発が止まってる。</div><div>デファクトのGlobusツールキットは2018年1月で開発終了、SCoreは現在でもPCクラスタコンソーシアムに引き継がれているものの、情報がほぼない。</div><div><br></div><div><br></div><div>2021-09-19 (日) の 15:40 +0900 に TAKAHASHI Hidetsugu さんは書きました:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>高橋秀羅 a.k.a まんじゅ(´ん`)です。</pre><pre><br></pre><pre>とても興味のある話題なのでレスをさせて頂きます。</pre><pre>しかし、まず無知による愚問をさせて下さい:</pre><pre><br></pre><pre># Q. </pre><pre>『MicroK8sのクラスターを作って、自宅サーバの負荷分散』が、本当に負荷分散に繋がるのでしょうか?</pre><pre><br></pre><pre>## 私個人の案(できるだけ簡潔に)</pre><pre><br></pre><pre>* せっかくUbuntu Serverを用いているので、Canonical社の『Juju / </pre><pre>MAAS』を使ってはどうだろう。</pre><pre>     * ベアメタル向けの操作もある</pre><pre>     * 『Juju / </pre><pre>MAAS』自体で『Kubernetes』の『Charm』,『Bundle』が提供されている記憶</pre><pre>* 『遠隔手続き呼び出し(RPC』で調べていくのも一つかも</pre><pre><br></pre><pre>## tl; dr(整理も至らぬまま書いた長い持論展開)</pre><pre><br></pre><pre>私個人整理できてない状態でこの文面を書いてしまっていますので、</pre><pre>「単語から連想した自分の知見への関連付け」</pre><pre>を行っているという点をご容赦頂きながら読んで頂けると幸いです:</pre><pre><br></pre><pre>----------</pre><pre><br></pre><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>「そもそもUbuntu </pre><pre>Serverで、複数のサーバを使った並列処理、分散コンピューティングの手法があるのでは?」</pre></blockquote><pre>ここで私個人躓いてしまったのが、</pre><pre>「『分散コンピューティング』の定義ってなんだべ?」</pre><pre>と思い抱きました。また;</pre><pre><br></pre><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>・Kubernetesはクラウドサービス向けの技術なのでオンプレミスでの利用のための情報が少ない</pre><pre>・そもそもオンプレミスなら使えるリソースはフルに使い切っていいので、Kubernetesだとムダがある</pre></blockquote><pre>という考えに私個人も同感を抱きました。</pre><pre><br></pre><pre>そこで、手前味噌にWikipedia日本語版で『分散コンピューティング』について引きました:</pre><pre><br></pre><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>分散コンピューティングは、コンピュータ同士をネットワーク接続し、効率的に通信できるよう努力した結果として自然に生まれた。しかし、分散コンピューティングはコンピュータネットワーク </pre><pre><</pre><a href="https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF>と同義ではない。単にコンピュータネットワークと言った場合、複数のコンピュータが互いにやり取りするが、単一のプログラムの処理を共有することはない。World"><pre>https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF>と同義ではない。単にコンピュータネットワークと言った場合、複数のコンピュータが互いにやり取りするが、単一のプログラムの処理を共有することはない。World</pre></a><pre> </pre><pre>Wide Web <</pre><a href="https://ja.wikipedia.org/wiki/World_Wide_Web"><pre>https://ja.wikipedia.org/wiki/World_Wide_Web</pre></a><pre>> </pre><pre>はコンピュータネットワークの例であるが、分散コンピューティングの例ではない。 </pre><pre><br></pre><pre><br></pre><pre>分散処理を構築するための様々な技術や標準が存在し、一部はその目的に特化して設計されている。例えば、遠隔手続き呼出し </pre><pre><</pre><a href="https://ja.wikipedia.org/wiki/%E9%81%A0%E9%9A%94%E6%89%8B%E7%B6%9A%E3%81%8D%E5%91%BC%E5%87%BA%E3%81%97"><pre>https://ja.wikipedia.org/wiki/%E9%81%A0%E9%9A%94%E6%89%8B%E7%B6%9A%E3%81%8D%E5%91%BC%E5%87%BA%E3%81%97</pre></a><pre>> </pre><pre>(RPC)、Java Remote Method Invocation </pre><pre><</pre><a href="https://ja.wikipedia.org/wiki/Java_Remote_Method_Invocation"><pre>https://ja.wikipedia.org/wiki/Java_Remote_Method_Invocation</pre></a><pre>> (Java </pre><pre>RMI)、.NET Remoting <</pre><a href="https://ja.wikipedia.org/wiki/.NET_Remoting"><pre>https://ja.wikipedia.org/wiki/.NET_Remoting</pre></a><pre>> </pre><pre>などがある。</pre><pre><br></pre></blockquote><pre>*Wikipedia日本語版『分散コンピューティング』の項より抜粋*</pre><pre><br></pre><pre>たまたま自分が直近の開発仕事で『gRPC </pre><pre>[1]』が絡んだ技術調査を調べていた事もあり、つい、</pre><pre>「(実装する。もしくはこれらを用いた実装があるだろう。という前提で持論を展開してしまっているが)</pre><pre>『gRPC』と『Protocol Buffer </pre><pre>[2]』を用いれば、数年前よりは容易に実装が可能なのでは? </pre><pre>そしてとっくにされているのでは?」</pre><pre>と思い至った次第です。</pre><pre><br></pre><pre>------</pre><pre><br></pre><pre>と、つい熱を込めてポエム(詩じゃない何か)をのたまいてしまいましたが、『RPC』特に『gRPC』の方向で調べ直すのは徒労になりかねないので;</pre><pre><br></pre><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>自宅サーバの負荷分散をしよう</pre></blockquote><pre>に着目し、</pre><pre>「複数のワンボードコンピュータによるスケール・イン/アウトを動的に行えれば良い」</pre><pre>のであれば、</pre><pre>「『Juju/MAAS』を触るのが無難な選択」</pre><pre>かと思った次第です。</pre><pre><br></pre><pre>乱文・長文お許し下さい。</pre><pre>小池さんの今後の調査の方向を広げられる一因になればとても幸いです。</pre><pre><br></pre><pre><br></pre><pre># 脚注</pre><pre><br></pre><pre>[1] 『Google』が提唱し、『Cloud Native Computing </pre><pre>Foundation』が主導して開発しているRPCフレームワーク: </pre><a href="https://grpc.io/"><pre>https://grpc.io/</pre></a><pre><br></pre><pre><br></pre><pre>[2] </pre><pre>『Google』が提唱した「汎用構造定義フォーマット」(という高橋の認識)。『gRPC』でも用いられている: </pre><a href="https://developers.google.com/protocol-buffers"><pre>https://developers.google.com/protocol-buffers</pre></a><pre><br></pre><pre><br></pre><pre><br></pre><pre>On 2021/09/19 11:59, Toshiaki Koike wrote:</pre><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><pre>小池です。</pre><pre>昨年Raspberry </pre><pre>PIを3台購入して、MicroK8sのクラスターを作って、自宅サーバの負荷分散をしようと勉強している(時間がとれず中途半端に終わってる)のですが、よくよく考えてみると</pre><pre><br></pre><pre>・Kubernetesはクラウドサービス向けの技術なのでオンプレミスでの利用のための情報が少ない</pre><pre>・そもそもオンプレミスなら使えるリソースはフルに使い切っていいので、Kubernetesだとムダがある</pre><pre><br></pre><pre>ことに思い当たり「そもそもUbuntu </pre><pre>Serverで、複数のサーバを使った並列処理、分散コンピューティングの手法があるのでは?」と思い調べてみたのですが、グリッドコンピューティングに関連してかなり古い記事ばかりでした。</pre><pre>一番新しそうなもので、2008年。</pre><a href="https://mizuno.hatenadiary.org/entry/20080809/1218289825"><pre>https://mizuno.hatenadiary.org/entry/20080809/1218289825</pre></a><pre> </pre><pre><</pre><a href="https://mizuno.hatenadiary.org/entry/20080809/1218289825"><pre>https://mizuno.hatenadiary.org/entry/20080809/1218289825</pre></a><pre>></pre><pre>(Ubuntu Japanese Teamの水野さんの記事ですよね)</pre><pre><br></pre><pre>wikipediaによればLinuxのグリッドコンピューティングにはBeowulfって方式があるらしいですが、これも情報が少ない。</pre><pre><br></pre><pre>現在は、Linuxでのグリッドコンピューティング手法は死滅してしまったのでしょうか?</pre><pre>それともクラウド技術に圧されて流行ってないから情報が少ないだけで、実現のためのパッケージがUbuntu </pre><pre>Serverに用意されてたりするのでしょうか?</pre><pre><br></pre><pre>-- </pre><pre>-------------------------------------------------</pre><pre>小池利明</pre><a href="mailto:t-k@dive2.blue"><pre>t-k@dive2.blue</pre></a><pre> <mailto:</pre><a href="mailto:t-k@dive2.blue"><pre>t-k@dive2.blue</pre></a><pre>></pre><pre>Toshiaki Koike</pre><pre>-------------------------------------------------</pre></blockquote><pre><br></pre></blockquote><div><span><pre>-- <br></pre><div style="width: 71ch;">-------------------------------------------------</div><div style="width: 71ch;">小池利明</div><div style="width: 71ch;"><a href="mailto:t-k@dive2.blue">t-k@dive2.blue</a></div><div style="width: 71ch;">Toshiaki Koike</div><div style="width: 71ch;">-------------------------------------------------</div></span></div></body></html>