自宅サーバー

【仮想化】自宅サーバーへ移行しました【VMWare Esxi&kusanagi】

ブログを自宅サーバーへ移行しました

この度、Kixiの雑記帳を自宅サーバー環境に移行しました。
現在も、この写真のサーバーから当ブログは配信されています。

メモとして、サーバーの構成等を記しておこうと思います。

サーバーのスペック

自作PCを作る人々は、家に必ず一台は用途不明なPCがあるはず。
Kixiもそれにもれず、全く使っていない家に転がっているPCを今回のサーバーに仕立て上げました。
※スペック等、詳細はこちらに記載しました。

【構築メモ】VMWare ESXiとkusanagiの環境構築まとめ

床に転がってる不用品の寄せ集めみたいなPCですが、弱小ブログのWEBサーバーには必要十分なスペックを誇っています。

なお、画像を見たら分かると思いますが、第4世代のCore i7のケースは嘘です。嘘ケースです。
ジャンクで中を取り出して余ったケースに、上記パーツを詰め込んています。

今回の構成

さて、ハードのスペックについては語りましたが、サーバーはハードだけでは動きません。
今回はよくあるCentOSではなく、「VMWare Esxi」をインストールし、仮想サーバーにしました。

VMWare Esxi とは?

仮想サーバー用のOSです。 歴史は意外と古く、2008年ごろからずっとバージョンを上げつつ生き残っています。
今回わざわざ、仮想化するのには理由があります。

それは「kusanagi」が使いたかったからです。

kusanagiとは?

超高速WordPress仮想マシン「KUSANAGI」(以下「KUSANAGI」)は、プライム・ストラテジー株式会社が開発・構成する、WordPressを高速に動作させるための仮想マシンおよびそのイメージです。WordPressの実行時間3ミリ秒台、秒間1000リクエストをページキャッシュ非使用で実現する世界最高速クラスのWordPress実行環境です。 kusanagi 公式ページより

シビアにチューニングされたのphpやMySQLなどが搭載された、CentOSベースの仮想イメージを無料で提供してくれています。
※通常のXAMPP環境の10倍速度が出るとまで言われています。

ここで重要なのは、「仮想イメージ」を配布しているということ。
元々VPSやクラウドでの使用を想定している上、直接ハードウェアを管理するOSにしてしまうと高速化のチューニングが上手くいかないのではと思います。
kusanagiを直接PCにインストールするのはハードルが高いのです。

以上から、
自宅サーバーにVMWare Esxiをインストール
kusanagiが無償で配布しているVMWare用の仮想イメージをデプロイ
の順番で構築しました。

※Docker版もありますが、機能が一部制限されるそうなので今回は見送りました。
確か、Let’s Encryptを導入するコマンド等が使えなかったはず。

回線について

この度、NURO光に乗り換えました。
遅い時でも500Mbpsくらいは出ているので、とりあえず速度に問題はなさそう。

ただし、NUROは固定IPにできない問題があります。

そのうち、VPSでも借りて、VPNサーバーを構築し、自宅サーバー→VPSのVPNサーバー経由の固定IP…みたいな構成を組みたいですが、とりあえずDDNSで対応しています。
IPアドレスのリースが多発するようなら、また考えます。

2020/02/16 追記

2年近く運用していますが、ルーターを交換した1回だけグローバルIPが別のものに切り替わりました。
それ以外の時はルーター再起動等してもIPは変わらなかったので、特殊な事をせずにDDNSによる運用で十分だと思います。

構築でハマったところ

VMWare Esxiも、CentOSも、kusanagiの独自コマンドもすべて初体験だったので、色々詰まる所はありました。

IPアドレスの設定で詰む

ボーっとしながら構築していたら、Esxiとkusanagiのipアドレスを同じものに設定してしまっていました。
気が付いたらEsxiのWeb管理画面には入れず、サーバーから直接仮想マシンを止める方法も良くわからず、英語のメニューを探し回って設定のリセットを行いました。
※再起動時にkusanagiが自動で立ち上がる設定にしていたせいで、再起動後も勝手にkusanagiが立ち上がり、NginXの初期画面が表示されてWebコンソールに入れない。

リセット後、作業途中のkusanagiのイメージは残っていましたが、EsxiのIPを変えるのも面倒で、kusanagiは初期設定で再デプロイしました。

MyDNSの設定が良くわからない

MyDNSというサービスを使ってDDNSの設定を行いました。

MyDNSだと、上手くサブドメインを他IPに割り当てられなくて、仮運用のつもりが結局「pic.kixi.jp」「tachibanaold.kixi.jp」なども自宅サーバーへ移動させました。

物理ディスクの追加

何故か内蔵SATAにHDDを繋いでもうまくいかない。
そもそもディスクをEsxiが認識されていないみたいで、sshで接続して設定ファイルを色々書き替えたりしたが、ディスク一覧に現れる事は無かった。

とりあえずバックアップはできないとまずいので、USBの外付けHDDをマウントし(これもコマンドラインから面倒な操作が必要)、有志が作ったツールを利用して、日次バックアップするようにした。

Vmotionとか使えたら便利だが、無料のEsxiだと使えないので仕方がない…。

→HDDが故障していました… 先日3TBx3のRAID5を組んだ際は、きちんと認識しました。 但し、Esxiの再起動が必要でした…。

AmazonJSの表示がおかしい

何故かAmazonJSの表示がおかしくなったが、調べてみるとHHVMだと動かないらしい。
とりあえずphp7にして、キャッシュが消えるまで静かに待ちました。

最後に

VMWare Esxiは割とグラフィカルで取っつきやすいですが、kusanagiは完全CUIなので、CUIアレルギーの人は中々手間取ると思います。

しかし、慣れると非常に楽です。 例えば、特定のサイトをSSL化するには、 kusanagi ssl –email [メールアドレス] [特定のサイトの設定名]
kusanagi ssl –https redirect [特定のサイトの設定名]
の2コマンドだけ打ち込めば良いのです。

これだけで、記事内のリンクやWordPressの設定値などもSSLに対応したものへ自動的に変換されます。
以上を、置換プラグイン入れて~証明書発行して~とかやってたら、そこそこ時間が掛かります。

殴り書きのような記事になりましたが、時間のある時にまた整理しようと思います。

自宅サーバーは良いぞ……(VPSで十分) それでは!