自分のテスト環境を晒す No.1

このエントリはWCDI Advent Calendar 2018 – Adventar の6日目の記事です。


めっちゃ後悔してます

 

Advent Calendarのために急いでブログを復旧させたので、ここでやっていきます

acque.2two です。

 

WCDI Advent Calendarなのでまずは自分のことを雑に話しますと、自分が1年のころになんやかんやあって情報技術研究部に所属したのが事の始まりでした。

 

そろそろ飽きてくる頃だと思うので自己紹介はここまでにして、今回の本題を書いていきます〜

 

私の自宅サーバーは完全テストベッドとして動作しているようなもので、
何か実験したいなーとかそういう時にサクッと環境を構築して、検証が終わったらそのまま放置(おい)、安定性とかも同時に検証できる素晴らしい環境(?)です。

そんな風にテストベッドとして運用してきた中で、結構良かった環境たちを一つずつ公開していければ〜なんて思ってます

とは言っても、「本来の使い方とは逸脱した使い方」だったり「悪手」も多いと思っているので、この記事を閲覧することで悪い影響を受けないように、心にバリアを貼ってご覧ください。

あと構築方法とかの詳細は一切書かないので、試す際は自分で調べたりして自己責任でお願いします。

ちなみにテストベッドとして使っているサーバーの構成は以下の通りです。

CPU: Intel Core i5 3570K (定格)
RAM: 16GB
Stor: 2TB HDD + 64GB SSD + 128GB SSD

  1. systemd-nspawn + systemd-networkd + btrfs ( + bcache )

全ての環境を「自分だけ」が触るという環境で、この環境はとても便利でした。

init(systemd)から起動したとしてもごく僅かなメモリ使用量、
namespaceなどを使ってホスト環境とは綺麗に隔離された環境が作れる、
cgroupを使ってリソース管理を厳格に行える、
ディスクI/Oも普通のファイルシステム操作で高速、ホストのファイルキャッシュも全て使える。
systemd-networkdでインターフェイス名から接続先ブリッジを逆算して勝手に接続してくれるし、btrfsのreflinkで環境のコピーも数秒、構築も数秒。

そんな環境を使っていた時期がありました。めっちゃ便利でした。

まるで普通のVMのように扱えて、ちゃんと設定を仕込んでおけば .service ファイルを作成して systemdでstartするだけですぐに使える環境が作れて、とても重宝していました。

/sys/fs/cgroups の中をクローリングして、全てのVM環境のCPU使用率・メモリ使用率を表示するスクリプトも作った気がしますが、この環境を破棄する原因になったハードウェアクラッシュの時に吹き飛びました。

この環境を使い続けながら、「これLXCならもっと簡単な気がする」「LibvirtとLXCってつながったよなあ?」ってことを考えてしまった時期があったので、環境の再作成はしませんでした。しかしこの次の環境はLXCなんて使っていませんが、またそれは別の話。

 

この環境で自分がマズったなあと思っていることは、このVMたちを使ってルーターまでも作ってしまい、1台のサーバー内部でファイアウォール・ルーターが誕生して、OSPFで上流ルータと経路交換なんていうことをしていたのがアホでした。

確か当時は「いちいち上流ルータにパケットを飛ばして上流ルータに処理してもらわずとも、サーバー内部で完結すればメモリバス速度でサーバー間通信が可能じゃね?」という発想でした。
しかし、環境が複雑になりすぎたため、結局実効速度はサーバー内部の一番遠いノード同士で5Gbpsくらいしか出ず、CPUだけ無駄にゴリゴリ削られていた記憶があります。(NICが1Gbpsなのでまあお釣りは帰ってきてたけど)

 

以上です

次は thestewedrabbit です。

https://adventar.org/calendars/3284

 

うーん・・・日本語構築能力が低いなあ・・・

Leave a Reply

Your email address will not be published. Required fields are marked *