
自宅にフルサイズの19インチラックを置くのが夢。長いこと「逸般の誤家庭」を夢見てきましたが、現実的に考えると一般家庭には難しいのが現状です。ラックだけで100Kg近い重量、凄まじい轟音、発熱、電力供給、電気代、特に、サーバー機器は一般的なPCと違って強力なファンが付いてるので、騒音については生活の質を著しく下げるレベルです。それならせめてゲーム内だけでもと、あつ森でデータセンター作ったり、VRChatでデータセンターワールドを作ったりして遊んでました。
やっぱり一般家庭には無理だよなぁ…とあきらめていたとき、こんなツイートが目に飛び込んできました。
なんじゃこりゃー!!10インチラックなんてものがあるんだ。こ、これなら置ける…。調べてみるとこの10インチラックというのは海外ユーザーの間で人気があるようです(→Project MINI RACK)。これは面白そうだ!
そしてしばらく時がたったある日、@sawa-zenさんのめっちゃかっこいい10インチサーバーラックを見ました。3Dプリンターでこんなすごいものが作れるのか。配色も良い。自分でも作ってみたくました。
↓超長いのでお好きなところへお進みください。
3Dプリンターで作れる10インチラック
調べてみると10インチラックは既製品のほか、3Dプリント可能なラックもあるようです。この中でも特にLab Rax (インサートナット不使用版)とKWS Rack (インサートナット不使用版)が気に入りました。この2つはどちらも非常に人気があるようです。どっちもいいなぁ。いらないフィラメントが数本余ってたので、試しに両方作ってみました。

思ってたよりしっかりした作りですね。Lab Raxは部品の種類が少なく、左右対象になっているので1つのパーツがどの向きでも合うように作られています。何と何をいくつプリントすればいいんだ~? と悩むこともありません。しかしラックの奥行きが240mmと短く、足の位置が内側にあるので安定性がよくありません。
KWS Rackはプリントするパーツが多くて組み立てるのが大変でした。1か所あたり固定に2個のナットを使うので頑丈さがあり、底面もしっかり安定しています。奥行きも260mmと他の既製品のラックと同じ長さです。しかしナットの使用量が多く、組み立てが大変なのがやはりネックです。
ゼロから10インチラックを設計してみた
基本設計
Lab Raxのデザインや構造はいいけど、もっと安定性を上げたい。奥行きを260mmにしたい。もっと機能的にしたい。それならば自分で作るしかないか!ということでゼロから設計することにしました。参考にしたのは こちら の図面。この寸法がデファクトスタンダードになっているようです。このサイズに合わせて作れば、他の人が公開しているシェルフなども使えるはずです。
デザインや構造はLab Raxをまねした。設計はゼロから自分でやってるので、これはオリジナル作品になるのか迷ったのでChatGPTに聞いてみると「オリジナルのデータを使わずに設計したとしても、意匠を真似ているのであればリミックス作品にしたほうが無難。」だそうなので今回はリミックスにすることにしました。
Lab RaxのライセンスはMAKER WORLD EXCLUSIVE LICESEで、ざっくり言うと「改変してもいいけど公開はMakerWorld限定ね。クレジット明記して。商用禁止だよ。」という感じのライセンスです。リミックス作品も同じライセンスでの公開になります。
余談:ライセンスについて思うこと
以前からThingiverseで3Dモデルを公開していたんですが、知らないうちに誰かが勝手に別のサイトにコピーした3Dモデルを公開してたんですよね。でもこのライセンスはCC-BYだったのでライセンス違反ではありません。だとしても、どこにコピーされたのかを把握できないことにちょっとモヤっとすることがありました。MAKER WORLD EXCLUSIVE LICESEなら無秩序に広がることはなく、公開先はMakerWorldに限定されます。リミックスも把握でき、改変や改変したモデルの公開も可能と、作る側の自由と使う側の自由のバランスが良いライセンスだと思います。
10インチラックの3DモデルはAutodesk Fusionで作成しました。

どうして1つファイルに全部を入れてしまったのか…。パーツ別に分けてくっつけた方がメンテナンスしやすいんですが、無計画にやるとこうなっちゃうんですよね。

でもFusionてスケッチで長さを指定するときに “(辺1 – 辺2 – 10) /2 + 0.2” みたいに他の場所の値を計算値に入れることができて、ある部分の長さを変えると勝手に他も変わってくれる便利な使い方ができるんです。10インチラックのように寸法が決まっているものは、計算式を使うと調整が楽になります。
ちなみにパネル部分のハニカムは全てスケッチに書いているのではなく、小さなハニカムのスケッチを書いて→押し出し→ボディを矩形状パターンで複製→合成してライブラリ化。10インチラックの設計図に派生を挿入で読み込んで、必要なサイズに切って嵌め合わせ、という手順で作ってます。こうするとFusionが激重にならずに作れます。詳しい作り方は こちらの記事 で紹介していますので興味がある方はご覧ください。
それからもう一つ、FANの穴の作り方を紹介します。スケッチでは中心を基準に円をいくつか書き、小さい円から大きい円へフィット点スプラインで曲線を描きます。

オフセットして2本にしたら円形状パターンで回転させると、オリジナルのLab Raxのようないい感じのファンガードが作れます。ネジ穴も円形状パターンでやってます。
改良したところ
Lab Raxの左右にあるパネルは嵌めこみ式なので、組み立てた後は外すことができません。ラックの中の配線をいじりたいときに外せないのは不便なので、ネジで外せるようにしました。このように穴にM3ナットを埋めこんで、外側からパネルを固定する方式にしました。

ケージマウントアングルはM6ナットを簡単に固定できる構造にしました。ナットを横からスライドさせながら押し込むと、カチッとはまって落ちないようになってます。

このように後ろの部分がバネ状になっています。

ただ、この設計は現状ではあまり満足できていません。ねじを取り付けようとして少し力を入れて押すと、ナットが外れてしまうのです。困ったことにナットはラック内の奥深くに消えてゆきます。それだけでなくバネの部分の強度が弱く、慎重に扱わないといけないのがだめなところでした。
オプションでレールにも対応しました。重量のあるシェルフ(棚板)は前面の部分だけで固定すると曲がってしまう恐れがあります。そのため後ろ側を支えてあげる必要がありました。当初はラックの背面側まで伸ばして前後で固定する方法も試しましたが、そうすると専用のシェルフが必要になり、自由に選べなくなってしまいます。

そこでラックの内側にレールが取り付けられるようにしました。レールの中央部分に出っ張っている部分があり、そこにシェルフが乗っかるようになっています。出っ張っている部分が短いのには理由があって、これを全部引き延ばしてしまうと、下の段に別のシェルフを入れたときに引っかかってしまうためです。
シェルフ
シェルフは他の人が作った一般的なサイズのものが使用できます。今回はシェルフも凝った作りにしたかったので、まずはじめにシェルフのテンプレートを作りました。1U、1.5U下、1.5U上、2Uの4パターンがあります。ダウンロードはこちらから。

こうしておけば、オリジナルのシェルフを作るときにいちいち最初から作らずに、作っておいたテンプレートを読み込んで、追加したり削ったりするだけで素早く作れます。

今回はほぼ全てのシェルフをカスタマイズしました。詳細は後述の章で説明したいと思います。
MakerWorldで公開
今回作成した10インチラックの3Dモデルは MakerWorld で公開しています。MAKER WORLD EXCLUSIVE LICESEライセンスなので、ここ改良したいなって人は改良版をリミックスとしてMakerWorldで公開してもOKです。

ドキュメントは こちら、組み立て手順は こちら にあります。
いつも英文のテキストを作るのが面倒で嫌だったんですが、今回は日本語版を先に作って、AIに英訳してと丸投げしました。DeepLとかGoogle翻訳を使うより、AIの方が文脈を理解して適切な言い方にしてくれるので便利ですね。
Satisfactory バージョン
Satisfactory の世界観が楽しめるSatisfactory風のバージョンも作ってみました。というかこれが本命です。3Dモデルは MakerWorld でダウンロードできます。

Satisfactory バージョンはAMSを使用したマルチカラーモデルになっています。カラーのマテリアルは碇けいいちさんが作成されたライブラリを使用させていただきました。

マルチカラーモデルのデータは色ごとに分けて作ります。大切なのは異なる色のボディが重ならないようにすることです。Bambu Studioは表面の色しか見てないので、ボディが重なってると色が意図しないところに浸透してしまうことがあります。

そこで作り方の手順としては、カラー部分のボディを作ったら、結合メニュー(切り取り・ツールを維持をON)で本体を削ります。そうすれば重なる部分がなくなります。最後に3MF形式で保存します。
これをBambu Studioで読み込むときもちょっとコツがいります。最初にフィラメントの色指定がありますが、うまく色が合ってくれません。「色合わせ」を押せば合わせてくれると思いきや、なぜか変な色になってしまいます。

そんなときはいったん「リセット」を押してから再度「色合わせ」を押してみてください。バグなのか仕様なのかおま環なのかよくわかりません。次に「単位はメートルまたはインチの可能性があります。ミリメートルにスケーリングしますか?」と出ますが、気にせずいいえを押してください。いろいろ罠があります。
そして次が重要です。「複数のパーツを持つ単一のオブジェクトとして読み込みますか?」でははいを選択します。ここでいいえを押すと、各色のパーツがバラバラになってしまいます。

読み込めたらカラーの面を下にして、回転させたりして位置を調整しましょう。今回作成した3Dモデルは最初の数レイヤーだけがマルチカラーなので、フィラメントの交換回数6回程度で済みます。AMSを持ってない人でも6回なら手動でできそうですね。
そのほかの配布物

ケーブルガイド
LANケーブルをラックの端にまとめるためのものです。サイドパネルにカチッと嵌めるクリップ式のタイプと、ねじで固定するタイプ(要インサートナット)があります。
→ダウンロード

ダミーパネル
空の棚に取り付けるダミーのフロントパネルです。1U用と、1.5U用(上/下)があります。
→ダウンロード

5インチドライブ用シェルフ
5インチドライブを設置するためのシェルフです。1U用です。
→ダウンロード

ファンガード
FANに指や物が入らないようにするガードです。
→ダウンロード

NUC用シェルフ(参考)
今回使用したNUC用のシェルフです。機種によってサイズや位置は全然違うので参考用です。
→ダウンロード

スイッチカバー
スイッチの誤操作カバーです。ON/OFFどちらの状態でも保護できます。
→ダウンロード
ハードウェア構成
ブロック分け
今回作成した10インチラックサーバーは5台のNUCで構成されています。左側のラックはファイルサーバー、右側のラックは仮想マシンを実行するVMサーバーとなっています。

ファイルサーバーにはNFSサーバーとバックアップサーバーの2つがあります。NFSサーバーはVMサーバーにストレージを提供します。VMサーバー内のストレージから起動するものもあります。バックアップサーバーはバックアップデータをHDDストレージやテープドライブに保存します。

VMサーバーは仮想マシンを実行するサーバーで、3台でクラスターを組んでいます。HA構成(High Availability)になっていて、1台がダウンしても自動的に空いているサーバーに移行してVMの実行が可能です。
それぞれのサーバーの詳細は以降のセクションで説明していきます。
(1) NFSサーバー

【SPEC】
CPU: AMD Ryzen Embedded R2514 (4c/8t)
Memory: DDR4 32GB
SSD: PICe 3.0 256GB / 1TB / 1TB
NFSサーバーではホストOSとしてProxmox VEが稼働しています。その中で、仮想マシンとしてゲストOSのTrueNAS Scaleが稼働しています。TrueNASのVMには2台のSSDが接続されていますが、これらはPCIパススルーでホストOSではなくゲストOSの方に接続しているのがポイントです。ホストOSを介さないことで余計なオーバーヘッドが抑えられます。

ところでこのNUCにはM.2スロットが2つしかありません。そこに3つのNVMe SSDを接続するというイカレたことをやってます。w よく見るとSSDの下からフラットケーブルが伸びてますね!

実はWi-Fiモジュールが入ってるところに変換基板を挿して、M.2スロットにしてしまってるんです。AliExpressで売っていた こちら の変換基板を使いました。このWi-Fiスロットは PCIeなので、ソケットの形状を変更すればM.2用のデバイスが接続できてしまうんです。
PCIレーンについてはSSD側はx4でWi-Fi側はx1しかありません。しかし起動ディスクは起動してしまえばそんなにアクセスすることもありませんし、多少遅くても問題ありません。PCIe 3.0 x1なので8Gbps (約1GB/s)ですが、起動ディスクなら十分な速度ですね。そのぶん速いx4の方をNFS用のディスクに使っています。
前面パネル
NUCの後ろ側がラックの前面に出るようになっています。NUCの排気口が後ろにあり、ラックの内部に熱を滞留させないようにするために、前から排出するようにしました。部屋側の広い空間に排気すれば、部屋の空気の巡回によって熱が分散していくという考えです。おかげでLANケーブルも挿しやすくなりました。

一方で裏と表を逆にしたことで致命的な問題がありました。それは、電源ボタンが押せないこと。この対策として、電源ボタンを押すためのレバーを追加することにしました。

前面パネルの本体の下の方を見ると白いものが飛び出していると思いますが、これを引っ張ると電源ボタンが押される仕組みです。ww

押すんじゃなくて引く。なんかもっといい方法があったかもしれません。たとえばWake on LANとか。でも起動中に引っ張れば電源切れますし、フリーズしたときも “長引き” で強制電源オフができるので、これはこれでよしとしましょう。
履歴グラフ付き LCD電力メーター
NUCの電源入力の間には電力メーターが入っています。ここで入力電圧と電流値を測定して電力を求めてLCDに表示します。

この電力メーターはM5Stamp C3で動いていて、Wi-Fi接続によりAPIを通して測定値を取得したり、設定を変更することができます。それだけではなく、リモートから画像を表示したり、動画を再生することもできます。
Stamp C3にはSDカードもPSRAMもないので、UDPでひらすらデータを送信してます。この機能を何に使うかはまだ考えてませんが、サイバーパンク風の映像を流したり、サーバーの情報を表示するスクリーンとしても使ったら便利そうです。
この電力メーターについては別記事で詳しく紹介しているので、興味がある方はこちらをご覧ください。
→履歴グラフ付きLCD表示の電力メーターを作ってみた
(3) バックアップサーバー

【SPEC】
CPU: AMD Ryzen Embedded R2514 (4c/8t)
Memory: DDR4 16GB
SSD: PICe 3.0 256GB
HDD: 2.5″ 1TB x8
バックアップサーバーではホストOSとしてProxmox VE (PVE)が稼働していて、そのVMとしてProxmox Backup Server (PBS)が稼働しています。SAS HBA拡張カードには8台の2.5インチHDDと1台のLTO Ultium 5テープドライブが接続されていて、PBSと拡張カードがPCIパススルーで接続されています。NUCに。
いやいや、NUCにPCIスロットなんてないでしょ。ww

あるんだな、これが。w
M.2スロットをPCIeスロットに変換するアダプターを取り付けました。これもAliExpressで買いました。3種類くらい買いましたが認識しなかったり、途中で接続が切れてしまうものもありました。かなり力業ではありますが同じPCIなので認識するんですね。

SAS HBA拡張カードはLSI 9300-i16を買いました。このカードはPCIe 3.0 x8なのでx4では足りませんが、x4でも遅くなるだけで使用することができます。もっとも接続しているドライブがHDDなので全く問題ありません。
そして、この機種は古いモデルなのでかなり発熱します。新しいモデルは低消費電力なのですが高いので、今回は安い方にしました。触れないほど熱くなるのでファンを付けて冷却するようにしています。

あと、フロントパネルのLCDの下にツマミがありますが、これはファンの回転数をコントロールするためのものです。フル回転するとうるさいので回転数を下げられるようにしました。ファンコントローラーはAmazonで5個699円の電圧可変型のDC-DCコンバーターを使用してます。

元々は10KΩの多回転ポテンショメーターが基板に取り付けられていましたが、これをはんだシュッ太郎で取り外し、5KΩのポテンショメーターと5.1KΩの抵抗を並列に繋いで基板に接続しています。ここで抵抗値を低くしたのは、実際に出力したい範囲に合わせているためです。
ちなみにここで使用しているツマミの3Dモデルは MakerWorld で公開しています。
5インチドライブとの接続
10インチラックには3台の5インチドライブが取り付けられています。2.5インチドライブが4台搭載できるものと、テープドライブです。5インチドライブ取り付け用シェルフの3Dモデルは こちら からダウンロードできます。

裏側はこうなってます。SAS HBAカードからSFF-8643ケーブルを接続し、それぞれのSATAコネクタをドライブに接続しています。テープドライブはSATAではなくSASだったので、SASタイプのもの使用しました。

テープドライブについては楽しい遊び方を以前ブログに書いたので、興味がある人は見てみてください。
→憧れのテープドライブを使ってみた – Ubuntu 24でLTO Ultrium5を使う
(3) 電源ユニット
電源ユニットはファイルサーバー側の電源を全てこれ1台でまかないます。1UサイズのFlex ATX電源を使用して1Uサイズに収まるようにしました。10インチラックのフロント側とリア側に分割することで、メンテナンスがしやすようにしています。

このATX電源の出力端子はATX 24Pin、EPS 4+4Pin、PCIe 6+2Pinとペリフェラル(4P+SATAx2)が2本です。350Wのサーバー用電源としては標準的な構成だと思います。これらの端子に変換ケーブルを作って各デバイスに電源を供給していきます。
PCIe 6+2Pinはスイッチと2台のNUCの3デバイスに12Vを供給します。NUCのACアダプターは19Vなのですが、実は12Vでも動くんです。このNUCは消費電力が低いので負荷が上がっても12Vで正常に動作しました。最大で12V 2.5A 30Wくらいでした。

真ん中に12V→5VのDC-DCコンバーターがありますが、これはテープドライブへの電源供給用の5Vを作ってます。このFlex ATX電源は5Vの出力能力が低くて、1レーンあたり2Aが限界です。すでにHDDだけで5V 1A食ってるので、ここにテープドライブを接続するとシステムがリセットしてしまいます。テープドライブだけでアイドル時5V 2A、動作時なら3Aを超えるので、単独で電源供給が必要です。

そこで使用していないEPS 4+4Pinの12Vから5Vを取り出すために、このDC-DCコンバーターがあります。このDC-DCコンバーターは秋月電子で売っている OKL-T/6-W12N-C使用キット を使いました。この小ささで6Aまで取り出すことができ、変換効率が高いので発熱も低いです。
DC-DCコンバーターについては別の記事で詳しく書いてますので、興味がある方はこちらをご覧ください。
→1U Flex ATX電源の5Vが足りないので、12Vから5Vを作ってみた
ATX 24Pinも活用しています。使う予定はないけどあればいつか使うだろうと思ってAliExpressで買ったATX電源取り出し端子が役に立ちました。ここから12Vと5Vを取り出し、UIAPduino (5V)、LED (12V)、ラック最上部のファン(12V)に供給しています。

端子がむき出しで、うっかりねじを落としたら危険なのでカバーを取り付けています。ほかの部分もカバーをつけて、ショートしないようにしてます。ほんとこの10インチラック、ナットがすぐ落ちるんですよ。
粗悪ケーブルに注意!
PCIe 4+4Pinケーブルにはそれなりに大きな電流が流れるんですが、動作テストをしているときに、変換ケーブルのところだけがやたら熱くなることに気づきました。サーモカメラで見るとご覧の通り。

これはAmazonで買った安い延長ケーブルだったんですが、ケーブルの加工をしているときに芯線がちょっと細いなぁとは気づいてました。まぁ被覆に18AWGって書いてあるから大丈夫でしょ、ってやったらだめでした。このケーブルの使用をやめてこちらのAINEXの延長ケーブルにしたところ、ケーブルの発熱はなくなりました。
厨二心あふれるフロントパネル
機能的に必要なものは電源スイッチだけで十分なのですが、厨二病ならごちゃごちゃと付けたくなりますよね。今回はなんかあったらかっこいいやつを付けてみました。

一番右にある赤いカバーがかかってるのが主電源のスイッチです。これはATX 24Pinの15番ピン (PS-ON) に繋がっています。このスイッチは厨二病が好きそうなミサイル発射スイッチ風の誤操作カバー付きのスイッチなんですが、カバーを閉じるとスイッチがオフになってしまいます。そこで閉じてもスイッチがオフにならないカバーを自作することにしました。


これを3Dプリントするときに使用したのがTINMORRYの PETG 半透明-赤フィラメントです。澄んだ綺麗な色でなかなか発色がいいです。左のオレンジの方はBambu LabのPETG 半透明オレンジです。
次に進みましょう。キースイッチは電源スイッチと直列に繋がっているので、両方をオンにしなくてはなりません。キースイッチの上の赤いパイロットランプは電源がオンのときに光ります。
左側のスイッチとLEDはテープドライブ用で、DC-DCコンバーターに繋がってます。テープドライブはアイドル時でも5V 2Aが常に流れていて、本体は触れないくらいの温度になっています。しかしテープドライブはバックアップしてデータをアーカイブするときしか使いませんから、常時電源を入れておく必要がありません。省電力化のために電源をオフにできるようにしました。
UIAPduinoで作ったナイトライダー

ナイトライダーをご存じない方のために、簡単にまとめておきます。
『ナイトライダー』は、元刑事のマイケル・ナイトが、秘密組織「ナイト財団」の一員として、最先端の人工知能を搭載したスーパーカー「K.I.T.T(キット)」とともに犯罪や悪に立ち向かうアクションドラマです。マイケルとK.I.T.Tは単なる運転手と車ではなく、互いに冗談を言い合い、助け合う相棒のような関係です。冷静で知的なK.I.T.Tと、行動派のマイケルが信頼を深めながら事件を解決していくところが、この作品の大きな魅力です。
そのK.I.T.Tで特徴的なのは、フロントグリルのところに流れるように点滅するランプがあって、それがまた厨二病心をくすぐるわけです。
動画を見る
↓英語版はこちら(高画質)
今回はこれを、290円マイコンUIAPduinoで作りました。

別の記事で製作過程を書いてますので、興味がある方はこちらをご覧ください。
→UIAPduinoでナイトライダーを作ってみた
(4) スイッチ
スイッチは2.5Gが8ポート、10G SFP+が2ポートのL3マネージドスイッチです。マネージドなのでVLANの作成や、複数のポートを束ねるリンクアグリゲーションなど、ポートごとに様々な設定ができます。

電源は12Vなので、付属のACアダプタを使用せずに、ラックの電源ユニットから12Vを供給するようにしています。隣のラックとは10G SPF+ポート間をDACケーブルで接続しています。
今回はVLANを使用していますが、この辺はネットワーク構成の章で解説していきたいと思います。
(5) VMサーバー
それでは右側のラックに移りましょう。VMサーバーは仮想マシンを実行するサーバーです。HA構成にするために同じ構成のものを3台設置しています。

【SPEC】
CPU: AMD Ryzen 5 7640HS (6c/12t)
Memory: DDR4 32GB
SSD: PICe 3.0 512GB x2
今まで紹介してきたNFSサーバーやバックアップサーバーと比べると、わりと普通ですね。上に付いてるフタを外したくらいです。ストレージは512GBが2枚入っていて、ミラーリングで運用しています。ディスクサイズの大きいVMはNFSを使用して、小さいものやHA構成が必要なVMはローカルのSSDを使用するような使い分けをしています。
電源のUSB化に失敗
VMサーバー用のNUCにはACアダプターが付属しています。しかしこれを24時間無人状態で動かすのには抵抗がありました。NUCの電源は24時間動かすことを想定して作られていませんし、激安NUCメーカーの製品ですから徹底したコスト削減によって(必要なものまで削ってたり…)作られているはずです。
私はAnker信者なので、これをAnkerのACアダプターで動かせば、純正のACアダプターを使うより安全なのではないかと考えました。消費電力はアイドル時で10W前後、ちょっと何かを動かすと30Wくらいに上がり、ピーク時には60Wくらいになります。試しに100W 20V 5AのUSB PDのトリガーを買って試してみました。

USB給電でVMサーバーを起動させてみると普通に起動します。全CPUに負荷をかけて消費電力が60Wくらいになっても問題ありませんでした。これでいけると思ったので200WのACアダプターを買って3台のVMサーバーを接続しました。

起動しねーw 電源を入れると起動中に落ちます。どうやらこのACアダプター、一瞬でも大きな電流れると安全装置が働いて出力が止まるようです。瞬間的なピーク電流に弱いみたいですね。当初テストしていたACアダプターはUGREENの100Wのでしたが、きっと “寛容” だったのでしょう。どちらがいいのかは別の話ですが。
後ろはこんな感じ

左がファイルサーバー側、右がVMサーバー側です。VMサーバー側はすっきりしてますね。上にUSB PDトリガー用の電源がありますが、これはまだ失敗に気づく前に撮った写真です。スペースは余ってるので後ろにACアダプターを入れてしまえばラックの周りもすっきりするでしょう。
ファイルサーバー側はかなりごちゃごちゃしてます。でも最下段の電源ユニットですべての電源をまかなってるので、ACケーブルは1本だけで済みます。一番上にあるシェルフのツマミは天井に付いてるファンの回転数をコントロールするためのものです。本当は前面に付けたかったのですが場所がなく、後ろになってしまいました。
ネットワーク構成
VLAN構成

まだ構築途中ではありますが、ネットワークは4つのセグメントで構成されています。VLANタグの付いてない方はインターネットとのゲートウェイやPCがある「一般のご家庭」の部分です。
VLAN 30は公開サーバー用のセグメントで、OpenWrtのファイアウォールでどのネットワークにもアクセスできないようになってます。Webの公開はCloudflare Tunnelを通して行います。すべてのリクエストはリバースプロキシを通して、URLに応じて各サーバーへ振り分けています。
VLAN 10は管理用のセグメントで、ProxmoxやTrueNASなどの各種サーバーと通信するために使います。
VLAN 20はストレージ用のセグメントで、物理的にもネットワークが分離しています。バックアップやレプリケーションを実行するときは大量のトラフィックが発生しますが、それによって輻輳が起こらないように、NUCの2つ目のNICをストレージ用として割り当てました。
Proxmox VEでHAを使う場合はもう1つ専用のネットワークを割り当てた方がいいそうですが、NUCには2ポートしかNICがないですし、ストレージ以外では大量のトラフィックはあまりないので、HAはVLAN 10を使うようにしました。
VLANの設定は主にL3スイッチで行ってます。VLAN 20のような1ポートが専属で使用するところはPort VLANで設定し、複数のVLANが通るところはTagged VLANで設定しました。
Proxmox側の設定
Proxmoxの方でもVLAN awareを設定して、それぞれ必要な個所にVLAN IDを設定をしています。PVEを管理ネットワークに参加させるために、物理nic0に接続されているvmbr0にはIPアドレスを設定せず、vmbr.10にIPアドレスを設定しました。

PVE上で稼働するVMはVLANタグを指定することで、そのVLAN IDのセグメントで通信ができるようになります。

こうすることで1台のスイッチだけで、4つの仮想的なネットワークが構築できるようになります。ただ正直わかりにくいのと、スイッチの配線を1か所間違えただけでネットワークが繋がらなくなってしまうデメリットがあります。L2スイッチを4台用意したほうがわかりやすいですね。でもサーバー側のLANのポート数は限られているので、VLANを使うのは理にかなっていると思います。
ソフトウェア構成
Proxmox仮想基盤

この10インチラックサーバーでは Proxmox を核とした仮想基盤を構築しました。すべてのマシン上でProxmox VEが稼働していて、それぞれの役割に応じたサーバーは仮想サーバーとして動作しています。
すべてPVEで仮想化する理由
左のpve-ssdサーバーとpve-hddサーバーには、それぞれ1台しかサーバーが稼働していません。それならPVEはいらないのでは?と思うかもしれません。しかしPVE上で構築することで同じインターフェース上で起動やアップデート、再インストール、バックアップができるようになりってとても便利なのです。
そうなると気になるのは、仮想化したことでパフォーマンスが落ちないかという点です。今回のケースではVMにPCIパススルーでストレージを接続しているので、ストレージに関してはパフォーマンスの低下はみられません。またCPUやメモリの性能に関してはわずかに影響は出ますが、実際は誤差程度で気にするほどでもありませんでした。
この辺の実験をした結果があるので、興味がある方はこちらをご覧ください。
→TrueNASをProxmox VEのVMで稼働すると性能はどのくらい下がるのか?
オレオレRoot認証局を作ってみた
PVEの管理画面にアクセスするとき、1つ困ったことがありました。ブラウザのアドレスバーに「保護されていない通信」と表示されて、ブラウザのパスワード自動入力が機能しません。1つや2つ程度なら手入力でもいいんですが、台数が増えると毎回入力するのがめんどくさい。なんとかならんのかねぇ大門くん(by二宮係長)

ということで、この問題を解決するためにRoot認証局を作って、各サーバーにオレオレ証明書をインストールします。これでPC側にルート証明書をインストールすれば、証明書の検証エラーも出ずに快適な操作ができるようになります。オレがオレであることを証明するためにオレがオレを証明する。なんだこの茶番は。w
オレオレRoot認証局についは別の記事で詳しく書いてるので、興味がある方はこちらをご覧ください。
→オレオレRoot認証局を作って オレオレ証明書を発行しよう!Portainer + Local CAでサクッとWebで
Proxmox Datacenter Managerを入れてみた
3台のPVEをクラスター化したので、3台のうちのいずれかのサーバーにログインすれば、以下のように統合的に管理することができます。これはとても便利です。

しかしクラスター化してないPVEやPBSは個別にログインしなくてはなりません。1か所ログインするだけで全部使えたら便利だろうと思い、Proxmox Datacenter Manager (PDM)をインストールしてみました。
が、なんか使いにくい…。やたら不要な情報や空白が広い面積を占めていて、メニューを切り替えるたびにいちいちスクロールしないといけないことがあります。ウィンドウを広げないと表示内容が切れてしまったりして、ちょっと操作性が良くないですね。一応個別にPVEやVMの状態を見ることができます。

データセンター全体の状態も見ることができるので、負荷の高いノードを発見して他にVMをマイグレーションするとか、運用時に便利そうなツールです。

ノードが数個程度の一般のご家庭にはPDMはオーバースペックかもしれません。ただ入り口が1か所になるので、ブラウザのブックマークをPDMにしておいて、個々のPVEを開くときはPDM内のリンクから行く、という使い方がいいんじゃないかと思います。
ギャラリー
最後に10インチラックの写真を載せておきます。






