ラボのすすめ

こんにちは、Infrbbitです。

基本的にインフラの人だったりネットワークの人だったりはご自宅にラボを形成していることが多いとは思います。

ここでいうラボ、とは「自分が何しでかしてぶっ壊しても誰にも怒られない環境」です。

もちろん会社が負担して作って用意してくれているラボがあるならそれは素晴らしいことです。
でもいちいち会社に申請するのもめんどくせぇってことは少なくなく、そうなると結局「家にもほしい」とかナチュラルにほざき始めます。

例えば人によってはA100みたいなカード乗っけたのを置いているかもしれませんし。いやなかなか手が出ねぇよ、A100はwww
まあでも安価なTensorコア搭載機くらいはおいてる人少なくないんじゃないですかね。うちはLLMは本筋じゃないので買っていませんが、そろそろ一台ほしいなとは思います。

例えばうちですと、オンプレミス環境でよく使う系をいろいろと。iSCSIベースのNAS、NAS OS搭載させて大量のストレージ突っ込んでるストレージアレイ、最低限のVLANとSTP組むためのインテリスイッチ複数台、そしてハイパーバイザぶち込んだ仮想基盤、といったところです。

そんなもんおいて何しているのか、といえば、ちょっとお仕事でこれ動作検証しないとなぁってなったときに気軽に使う環境、ってことですね。

例えばDockerコンテナとかなら別にEC2でいいんです。EC2さくっと立ち上げるなり、Fargateにぶち込むなりしてコンテナ自体は検証できますから、それで十分、といえばそれで十分なんです。

じゃあいつ使うのか、というと、普通にオンプレミスとのハイブリッドクラウド環境でVMをオンプレミスからAWSにマイグレーションしましょうね、とか、ストレージ間マイグレーションぶっぱするのにちょっとトリッキーなことしようと思ったときとか、そもそもクラスタ系のサービスを動かして簡単にいろいろテストしてみたいときとかにEC2何台も起動したくないなぁ、ってなったときとか。

特にオンプレがらみの世界はハードウェアありきで物事が進みますので、ハードウェアはともかくとしてハードウェア上でなんのプロトコルがお話ししてくれるか、とかはわかってないと話になりません。そもそもそのプロトコル知らないっす。とかはお仕事にすらなりません。だから遊びで使えるFC-SANスイッチほしい。安くならんかな。

スタッキングとかまで行くとさすがに高いので、自宅に買うかっていうと別になくてもスタッキングはわかるし、まあいいか。ってなるんだけど、VLANわかりませんとかはオンプレだとなしです。STPもわかりませんはダメですね。

というわけで、ちょっとちゃんとしたことやろうとすればインフラやネットワークの人はハードウェア買わないと勉強にすらならないのです。机上の勉強でVLANがどーのって言われたって、絶対設定失敗します。ネットワークなんかはもう、実際にやったこと以外はまるで信用できない。お客さんの前で「こうすればいいはず」ってマニュアル見ながらしゃべるなんてカッコ悪いし、絶対に失敗します。

お客さんが「機械買ったから一緒にいじって遊ぼうぜ!」って誘ってくれているならそれでいいですが、お金いただいて「やってほしいです」って頼まれたときにそれじゃあダメですよ。

というわけで、Infrabbitにはそこそこちゃんとしたラボがあります。とはいえ、くそ高いラックマウント機とかは買ってないですが、人によっては普通にご自宅に42Uのラックある人もいます。昔リユースのお店でCobaltのラックが3000円くらいで売ってたんですごくほしかったんですけどね。

42Uのラックは普通に鉄の塊なので、一般のご家庭で床の補強しないで導入したら当たり前に床が抜けます。ましてそれに鉄の塊のラックマウントサーバをちゃかぽこ突っ込んだら、基本全体従量が数百Kg~1tに至ります。床が抜ける、で済めばいいほうです。

ご自宅が鉄筋コンクリート造です、とかでもない限り、普通にお勧めできません。買うとしてもオープンラックにしましょう。じゃないと死にます。

というわけでこれからインフラになりたいんだ、とかいう人はできるだけ「どうやれば気軽にテストできるか」という「どう気軽に手を動かす環境を保有するか」というのをしっかりと考えることをお勧めします。

もちろん、OSから上(それだけをインフラとは言いたくないけど)だけをまずは、というならEC2やVagrant+Virtual Box or Hyper-Vとかでも全然かまいません。Linuxというだけでも途方もない勉強の世界ですし、私だっていまだにLinux触ってて「こんな機能あったの!?」ってなることは少なくないです。

ただまあインフラ名乗るならオンプレやれてしかるべきよね。クラウドからオンプレ回帰することだってありますし、そもそもオンプレにはオンプレのよさ、クラウドにはクラウドの良さがあります。クラウドが攻めているとはいえ、っぱファイルサーバはオンプレのほうが早えなぁ!とか思っちゃいますし。まあ壊れるのも早えなぁ!ってなりますけどw

そもそもクラウドとつなぐためにはL3触れないと話にならんですし、少なくともネットワークは避けられないわけです。

え? VPCが勝手にやってくれる? いや、ルートテーブルあるじゃん。VPNやDirectConnectでBGPやAS出てくるし。TransitGatewayどうするんだよ、って言いたくなるわけです。この辺、TCP/IPとルーティングプロトコルやってないと普通に死にます。設定ミスってオンプレミスとクラウドの結線ふっとばしました、とか冗談じゃすみません。

さてさて、そんなラボですが、ラボを立てたらとりあえずやっておきたいのはこんなところでしょうか。

・ローカルルータの自作(VyOSでいいから)

・ローカルドメインをホストするDNS/DHCPサーバの作成、できればDDNSも作れると面白いね。

・ローカルにSMTP、SPAMフィルタ、IMAPサーバ

・とりあえずお気楽にコンテナ動かすコンテナ基盤

・SNMPやSyslogのアグリゲータ

・とりあえずSTPサーバー

このあたりを冗長化して組めるようになってくれば、そこそこやっていけるんじゃないかなぁ。例えばルータだって冗長化するならVRRPとか使います。ProxmoxのマイグレーションとHAでしのぐ!って言われたらそれは冗長化じゃねぇって突っ込みますw

DNSはまあもともとマスタスレーブなんでいいとして、DHCPクラスタとかはまあDHCPフェイルオーバークラスタにするのが素直でしょう。これもDHCPちゃんと知ってないと作れない。SMTPはMXレコードちゃんと把握しようね、などなど、バランサーで振り分けりゃあいいんですよ!みたいなnginx+Loadbalancerみたいな世界とは一味違う世界が味わえるんじゃないでしょうか。

この辺がわかってくると、ALB以外になぜNLBがあるのか、NLBがどういうものなのかがわかってきます。NLBはALBをカバーできるけどALBはNLBをカバーできない。だってALBはL7だから。

だいたいこれくらいできるようになるまでの間に、Linuxのクリーンインストールを100回くらいはやる羽目になります。EC2でやるからインストールしたことない? もったいない。ぜひ一度ミニマムインストールして「なんでなんのコマンドも通らない!?」ってパニックになっていただきたい。

そして、この辺で疎通確認がping打ちゃあ済むわけじゃない、Wiresharkでパケット見ないといけないときがある、とかも気づけるといいですね。

 

さて、何が言いたいかというと、Proxmoxとか簡単だね!って言ってる人のだいたい99%はこういう人が言ってるんです。

うん、こういう人から見たら超簡単なんすよあれ。便利だしw

適当に電源落としてクラスタから消して、osdとかの解除しないまま消えていったノードのcephのデータベースからの消し方とか、ちょっと真面目にやればわかるしね。真面目にやらないから今日まで放置してたけどw

 

とはいえ、インストールは楽だし、アップデートも楽だし、たぶんProxmoxとかはわりと初心者でも手を出せるんですよ、むつかしくないから。動かすこと自体はわけなくできると思う。

でも問題はそれが壊れた時。

どう直すか、どう直せるか。クリーンインストールで戻す、はできますよ。でもそれお客さんとこで言えます?

あなたの仮想基盤ちょっと挙動おかしいから、全部消して作り直しますね。今動いてるVMもディスクも全部消しますね。しょうがないですよね。

こんなやつに仕事頼まないでしょwwww 消さないにしてもデータ退避に一週間かかります、業務が一週間止まりますとか言われたら無理ですよね。

その時にどう直せるか、とかを研究とか調査するのがラボです。つまり、「動かすこと」が目的ではなくて、どっちかってーと変な壊し方をする、それを直す、というのが目的に近い。

OSとかもそうで、破綻する壊し方をして、どう直す、どう戻す?ってのをひたすらやってる。で、めどついたらクリーンインストールして全部なかったことにして戻す。インフラの連中のやってることってだいたいこんな感じだと思います。

インフラはシステムを「おかしな風に壊せて」「それをどう直すか」を知っている人たちです。

 

ただの変人じゃねぇか。

ちなみにProxmoxをVE8に置き換えるのに普段全く使ってないCephをお気軽にノード止めて廃棄してオフラインのOSDやらmonやらが削除できなくなって泣きながらcephのコマンドオプションを片っ端から試してたのは私です。いえーい。ちゃんと設定含めて止めてからノード切り離せという話。

※いいじゃんだって障害時はもう切り離したら帰ってこれないんだから回復手段あるべきだし、回復手段は知っておきたかったんだもの。

というわけで、「正しい手順で」終わらせることが出来るのと、障害によって「異常系」として例外が発生したときにどう回復させられるか、って全く別の技術なんです。見てるとこはだいたい同じなんですけどね、それが何をしているか、というのを理解するかしないか、という話です。

まあドキュメント読めばたいていのことは書いてありますが、読まない人はとことん読まないからなぁ。

 

ところで、UGREENのNASが日本上陸!ってちょっと騒がしいけど、iSCSI非対応の時点で論外です。イラネ。普通にQNAPかSynology買います。スペックは良かったんだけどねぇ、NASync。

 

まあそんなこんなでVE7からVE8に乗り換えました。SDNが実装されてて笑った。もうVMWare要らねぇじゃねぇかwwwww