相生あおはの書庫

ねこにうもれたい。

MENU

我が家の自宅サーバ事情

※この記事は とんえぼ老人部 Advent Calendar 2023 19日目の記事です
昨日はnabeくんのネコチャンの記事でした。ネコチャン…!?
猫は最高、最高なので。猫…おっといけない正気を取り戻しましょう。


こんにちは。相生あおはです。
あんな記事書いたら自宅サーバのこと書きたくなっちゃったんで書きます。

~~もくじ~~

そのまえに

ちなみに私のメインPCの構成遷移はこちらに書いてたりします。
semicolon0103.hatenablog.comここでは「水冷は無駄」と言ってますが現在は簡易水冷積んでます。なんやねん。でも会社の有識者の方々のお墨付きのがあると言ったら導入しちゃうじゃないですか。まぁ、買ったらケースに入らなくてケースも買い替えることになったのは別の話…


サーバを置くきっかけ

実は高一くらいの時に遡ります。技術力も用途も無いけど、漠然とサーバという存在に憧れがありました。当時Twitterでよく会話してた人達が何故か高専や工業高校の方達だったため、そういう系の話を授業で一切扱わない普通科高校生だった私にとって輝いて見えたわけです。

それから数年後、大学に入ってサークルの部長になり部室のサーバを作った頃、自宅PC上のデータを屋外から参照することが可能じゃんと思ったわけです。そしてそれを行動に移した感じになります。これが大学二年の時の話になります。

最初はNASを買いました。が、それだけでは外部からのアクセスが出来ないと気づき、VPNサーバを最初に作りました
この時は、高校時代から使っていたノパソが余ってたので、それをサーバマシンにしてました*1
こんな、ひょんなことで始めた自宅サーバ。それが現在こんなことになるとは……

自宅のサーバ周りの写真

ケーブルの最適化する余裕が無くてェ……ちなみに件のマイクラサーバは一番左のマシンで動いています。

サーバ第一期

マシン構成

先述のNECのノパソを使ってました。元々はPentiumB980にメモリ4GB、HDDというポンコツ性能だったわけですが、CPUは「世代一緒なら動くよね」で2個くらい換えて、飽き足らずに「ソケット一緒なら動くよね?」と更に変えた結果i7-3720QMが載ってました。なおメモリはとっくに8GBx2の16GB構成で、SSD化は高校時代に終えてました。
…え?なに?このCPU今でも新品で買えるの?それに買った当初より安いし(当時16,500円で買った)

なんで安くなってるねん

性能は購入当初と比較にならない程強くなっており、CPUベンチだけ見ても5倍の性能です。SSD化にメモリ増設とかでまぁ10倍は性能アップと言うことでいいんじゃないですかね?その代わり消費電力(TDP)が10W増えたので持ち運びはできなくなりました。が、それのお陰でサーバマシンとして使えるようになりました。万事解決。

sftpサーバへ

この時、自宅で常に起動中となるマシンがNASVPN用のサーバマシンの2機でした。そこで私は「NASVPNサーバの機能を一緒に出来ないの?」となりました。
さらに、VPNサーバを介したNASへのアクセスが何故か異様に遅く*2、ダイレクトにNAS的な何かにアクセスしたいと思いました。
その結果、sftpサーバを作ることになりました。ただ、作るも何も、sshを有効化すれば作ったと同義なので全く苦労はしてません。

これにより、NASとは違い完全に自分で制御できるオンラインストレージが手に入りました。このため、スマホやノパソからのアクセスを容易にすることができ、いつでもどこでもデータを召喚できるようになったため私はUSBメモリを手放しました

gitサーバも建ててみる

自分が使いたい機能で何が欲しいかなと考えた所、卒論データを管理するgitを作ろうとなり、作りました。
今はもう運用してないので覚えてませんが、卒業する前の最終pushだけは今でも覚えています。

が、差分管理とかすることなく、ただデータを置くだけでした。そもそもgitの機能を理解することなくサーバ立てたのがいけない。酷すぎるけどまぁ、いっかな…

サーバ第二期

マシン構成

メインPCをマザーボードごと変えたので、大学一年からメインで使っていたi7-6700Kが乗ってるマシンをそのままサーバマシンにしました。
このように、自宅のメインPCを新しくしたときに発生したお古のパーツをサーバマシンにするのがたぶん自宅サーバ登竜門でしょう。皆さんもきっと自宅にそういう余剰パーツがあると思うので、サーバを作りましょうねえ。

CPUはi7-6700K、メモリは32GBくらい?SSDはサーバ化に伴い新調したはずです。また、内蔵ドライブを沢山積めるようになったためHDD載せてたと思いきや、何故かストレージのマウント方法をこの時調べようとしなかったため、ストレージ用の領域とOS領域が同じディスクでした。アホ。

ようやくマイクラサーバを

サーバを作って最初にやること第一位はマイクラサーバというのは、全SEの共通見解。何ででしょうね。私はようやく性能がデスクトップPCに追い付いたこのタイミングで始めました。
ちなみにこのサーバがとんえぼマイクラ部のサーバだったりします。
note.com

で、このタイミングではメモリは確実に64GB積んでるはずです。なので、どこかでまたメモリを買ってます私。

ようやくwebサーバを

暫くは先述のsftpサーバで満足してました。最初はパスワード認証でしたがそれを鍵認証に変え、楕円関数の鍵に変えるなどセキュリティ方面に興味が向き始めてる頃でもありました。

またこの頃は丁度創作方面でも活動が大きくなりつつある時期だったので、セキュアなポートフォリオ的なサイトを作ろうと思い立ちました。
が、当時の私のweb知識はhtml時代で止まっており、フロントエンドが本当に全く分からない状態。なので、フロントは適当にどっかのテンプレを流用して誤魔化し、バックエンド側をいろいろやってました

フツーに立てるとhttpになるわけですが、いくら通信内容が外部に漏れても困らない作りのサイトでもSEO的観点からssl対応は常識の時代。なのでletsencryptで証明書を取ってきたりとか、余計なクローラ拒否とか色々を調べながらやってました。懐かしい。

何故かメールサーバを作る

自前のサービスと言うのに面白味を覚えてたこの頃、メールアドレスを独自ドメインの物にすることが技術的に可能ということを知ります。もうこの時点でsemicolon0103.comドメインは取得済みだったため、追加コスト0円ならやらない手はないでしょう
が、webサーバと比較にならないくらい複雑で難しくて本当に大変でした。が、サービスの連携やセキュリティ、原因の切り分け方等ですごくいい勉強になりました。みんなもやろう。

そしてこの時作ったメールサーバが創作用のメールアドレスになってます。もうね、実は自宅サーバってロマンじゃなくて実用なんですよ

(番外編)OSの変更作業

この辺りの時期に、当時OSとして使ってたCentos7のサポート期限が発表され、事実上Centos自体の死刑宣告が世間を騒がせました。また丁度この頃私は失職状態で時間が無限にあったため、今しかないと思いUbuntu(LTS版)への移行作業を行いました。
しかし、本番環境を長期間止めるわけにはいかなかったので、余ってたパーツでテスト環境用マシンみたいなのを作り、そこでUbuntu化用ディスクを作成しました。そうすれば、サーバ停止時間はディスクの差し替えと軽い設定する時間だけで済みます。サーバの仮想化も丁度この時期ですね。てかテスト環境が現在無いってマジ?我ながらありえへんわなんとかします

一番大変だったのはメールサーバ周りです。もっと言うとDovecotです。設定ファイルがCentosUbuntuで記法が僅かに違っていて中途半端に動いていたもんで、原因特定に凄まじく時間がかかった記憶があります。
ただこの作業によりシステムが延命できたことには間違いないので一安心です。


…ちなみに、この時使っていたテスト環境用マシンは後にnabeくんのパソコンとなります。もっと言うとこのマシンのマザーボードは、いもねぎPCを作った時に相性ミスで動かなかったものだったりします*3。無駄なことって無いんだなぁって思います。

サーバ第三期

マシン構成

遂にサーバ用にパーツを新調します
サーバ第二期で使ってたi7-6700KというCPUは、もう世間が13世代云々言ってる時代では流石に限界です。ですので、不具合など一切無いけれど機器更新することにしました。
ほんと、24時間365日稼働させてても一切故障しなかった、ASUSマザボとSeasonicの電源は完全に信頼しています。ありがとう、そしてこれからもよろしくね。

CPUはi7-12700にしました。第6世代から第12世代へのパワーアップです。

まだ変なことはしてない

流石にこれ以上新たな機能を追加しようにも思いつかなかったんで、とりあえずこの記事書いてる時点では第二期と同じことやってます。

が、Windowsの仮想インスタンスを立ち上げて遊んだりはしました。それで全自動株取引システムを作ろうとしましたが、検証段階では上手く行っても実運用に持って行くと何故かズレた上、今は安定した会社にいるのでしばらく進展は無いでしょう。
しれっと書いた全自動株取引システム、私の仮説が立証されそうではあったので、悔しいから計算式見直して再トライしたいですね。

サーバ第四期

サーバマシンをもう一つ作った

現時点で我が家にサーバマシンが2台あります。第三期で出てきたサーバマシン(一台目)は今でも運用中ですが、ストレージに特化したものが欲しいな~ということで作りました。
CPUはryzenの5600Gとごく普通ですが光ファイバでLANに繋がってるのが特筆すべき点でしょう。メインPC-ハブ-二台目サーバ間では実測で最大9.6Gbpsくらい出ます(理論値は10Gbps)。

転送中のメインPCのタスクマネージャ。大きい数字は健康に良いとされる

RTX3090はマイニング要員として駆り出されてるので現在のメインPCのGPUは代打としてIntel A770。数量限定の半額セールを社内チャットで聞いたのでつい買った奴です。ちなみに現在RTX3090は↓の写真の一番右の居間用PCに刺さってます。

真ん中のが二台目サーバ。青緑色のケーブルが光ファイバ

最速を叩き出すにはFastCopyを使うのがおススメです。多量or巨大なファイルを転送するなら最適解です。Winのエクスプローラは本当にダメダメでぇ…
興味深いことに、最も遅くなるのはまさかのWinSCP使用時です。1Gbps程度しか出ない上に処理時間も何故か遅いです。プロトコルは同じはずなのに何でだろう、不思議で夜しか眠れません。forest.watch.impress.co.jp

ここで割と書いたんですが、多量の音楽、旅先で撮ってきた動画像を保存するのに重宝しています。WAN側が10Gbpsも出ないので屋外からは意味ないものの、SSD積んでるだけあって数百Mbpsはしっかり出てくれるわけで助かってます。
ここにコストを割くあたり、サーバマシンを置く当初モチベがファイルの外部アクセスだっただけあるな~って今書いてて思います。伏線回収感ある

今後の展望

イクラサーバの更なる高速化

ここの最後に書いてるんですが、tmpfs上でマイクラサーバを動かせばIO処理が速くなってもっと快適になるんじゃないかなって考えてます。なので、一台目サーバのメモリは現在128GBです。
1枚に32GB載ってるメモリ、本当に安くなりましたね。16GBメモリの購入を躊躇していた時代が懐かしいです。

しかしこれをするには電源断に今まで以上に敏感になる必要があり、いよいよUPSを導入する必要があります。現在念入りに検討中なので、tmpfs上でマイクラサーバを動かせるのはまだ先の話でしょう。

各サーバのコンテナ化

現在はサーバマシン上に仮想インスタンスを立てて、その上に各サーバが動いてるという構成になってます。この仮想化は保守性向上を狙ったわけですが、実際に運用してみると、私の運用方法では仮想化したことによるデメリットが多い気がしてきて本末転倒だなあというお気持ちです。
物理マシン上にコンテナを置いた方が良いのでは?と今の仕事やってて思っちゃったんです。余計な気づきを得たわけです。
なので、近いうちにまたサーバのシステム全移行が始まります。いい加減そろそろ曲を作らせてくれ。

webサーバ上で動いてるサイトが本格化したりと、もう本当にサーバを止めることが出来なくなってしまった現在、ホットスタンバイ的なことやらないと移行作業が出来ません。草ですね。
ピン折れから復活した*4マザボと余ってる16GBメモリがあるので、それで作る予定の退避用サーバ上で作業予定です。

フレミネもサーバ作るらしい

突然ですがここで問題です

Q. 物理マシンの台数

最近はパソコンを持ってない人も多いらしいです。システム業界で働いてるといささか信じがたいですが、モバイルからのアクセス数が圧倒的なのがその証左でしょう。
さて私の家にはサーバが2つあるわけですが、外見を持つ物理マシンはいくつあるでしょうか?

答えは、5台になります。日常的に使ってるものとしては、サーバ2台、メインPC1台、居間用PC1台、ノートPC1台で5台となります。

が、所持マシンとなると、実家から持って来たVista(SSD換装済み)と母校の高校で拾ってきたWin2000(実はまだ普通に動く)含めて7台だったりします。さらにここに退避用サーバが加わる予定なので8台になりそう。将来的にどうなっちゃうんでしょうか。

Q. メモリの合計量

一台目サーバのメモリは64GBだったのに現在は128GBです。あれ?最初刺さってた64GBの行方は…?となりますよね。さらに自宅メインPCは64GB積んでます。
さて、現在私の家にメモリは合計何GB分あるでしょうか。とりあえずDDR4のDIMMだけに絞ります。

答えは、288GB分です。内訳は以下。

  • メインPC: 64GB
  • 居間用PC: 32GB
  • 一台目サーバ: 128GB
  • 二台目サーバ: 32GB
  • 退避用サーバ予定: 32GB

メインPCが64GB、居間用PCは実は持ち運び用デスクトップPCという側面もあるので32GBあるのは良いとして、二台目サーバと退避用サーバにそれぞれ載ってる32GBのメモリの出どころ分かります?

…一台目サーバに刺さってた行き場を失った64GB分メモリです。もうなにやってんだか。


128GB化で余剰になったメモリは、本当は売るべきでした。が、下手に手元に残したせいで新たなマシンが生えてきました。用途は半分口実みたいなもので、本当にマシン作ってから後付けで考えてる節が実はあります。普通なら一つのマシン上に複数インスタンスを立てるんです本当は。マジでよくない。


もう気づいたら世間はDDR5とか言ってる時代です。なので、次メインPCの構成を変える頃にはこれらのメモリは古すぎて使うことができません
そう、一世代前の16GBのメモリが4本余ることになります。二台目サーバと居間用PCに載せるにしても、64GB必要なことやってないし……

思ったよりまだCPUの進歩やメモリの世代更新の速度が早かったもんで困っているのが現状です。
昨年時点では余ったパソコン(上述のテスト環境用マシン)を友人に売ったとしてもまだ許される性能ではありましたが、来年再来年となると流石に良心が痛むので無理です。本当にどうしよう。

自宅にサーバ、置いてみない?

なので、今度は皆さんも家にサーバを置いてみましょう。我が家で余剰となる予定のパーツは自宅サーバとしては充分使える性能や規格のパーツですので、
その気があるかもと思った人には私の方から積極的に声をかけて布教していくのでお覚悟を



明日は696さんによる「自作キーボード入門」です。現在左手を痛めて公私ともに深刻な悪影響が出てる私としては非常に興味があるんですが*5、ハマったら時間とお金が今以上無くなってヤバくなるのは明白なので、我慢して距離を置いている趣味の一つです。絶対面白いに決まってるじゃん、だから怖くて
いやでもやっぱ、お手軽なのは導入してみようかな……ってこれ将来的に自宅サーバ趣味と同じ道を辿る気がするんだけど、たすけて


それでは

*1:なんと今でも健在です。CPUとメモリとSSDとか全て交換してもまだ動いてるので、今は実家で母用PCになってます。NECすごい。

*2:おま環説はある

*3:BIOS更新すれば動いたんだけど、更新するためにCPUを買って届くまでの時間が待てなかったので私が買い取る形に。

*4:ツクモの店員さん本当にありがとうございます……感謝してもしきれない

*5:ちなみにこの記事の99%は左手が無事な時に書いてました。助かった。