ITファシリティ

仮想化基盤

CDSLには,7台の物理マシンがあります.上段真ん中の物理マシンが外部向け,それ以外の6台が内部向けの物理マシンです.

サーバー

外部向けサーバーのスペックは次の表のとおりです.

CPU RAM Storage
Ryzen 9 3950X (16コア) 64GB 1TB

内部向けである,4台のサーバーのスペックは次の表のとおりです.

CPURAMStorage
Ryzen 7 2700X (8コア)128GB3TB (iSCSI経由でNASをマウント)
Ryzen 7 3800X (8コア)128GB3TB (iSCSI経由でNASをマウント)
Ryzen 9 3950X (16コア)128GB3TB (iSCSI経由でNASをマウント)
Ryzen 9 5950X (16コア) 128GB3TB (iSCSI経由でNASをマウント)
Ryzen 9 5950X (16コア) 128GB3TB (iSCSI経由でNASをマウント)
Ryzen 9 5950X (16コア) 128GB3TB (iSCSI経由でNASをマウント)

各サーバーにはVMWare ESXiがインストールされ,仮想マシンが動作しています.実際にKubernetesクラスタやElasticsearchクラスタ,監視サーバが動作しています.必要に応じてコンテナや仮想マシンを作成することができます.

(参考) 新たに1台のサーバを増設しました.

NAS

SynologyのNASが2台あります.10TB * 12をRAID10で構成しています.このNASを6台のサーバーからマウントして利用しています.

iSCSIやNFSを使ってESXiからNASのボリュームをマウントしています.以降のアーキテクチャ図(通称,ポンチ絵)は,CDSLメンバーのオリジナルです.

(参考) かっこいいポンチ絵の書き方

ハイブリッドクラウド

パブリッククラウドとしてGoogle Cloud Platformを主に使用しています.現在,使用しているサービスはGCE(Compute Engine)とGKE(Kubernetes Engine)の2つです.研究室(オンプレミス)とGCPはOpenVPNで接続され,外部へ研究室内のサーバを公開することができます.

パブリッククラウドだけでなく,オンプレミスと併用したハイブリッドクラウドの構築を目指しています.クラウドを単に使うことで終わらず,新たに創ることを目標としています.

(参考) ASUSルータとOpenVPNでSite-to-Site VPNを構築 – Qiita

ネットワーク

ネットワーク・アーキテクチャは下図のとおりです.リバースプロキシとVPNにより,研究室外へコンテンツを公開できます.DHCPサーバとDNSサーバを組み合わせることで,リソースへFQDNを使ったアクセスが可能です.

(参考) ISC-DHCPD + PowerDNSによるDDNSでSlack通知 – Qiita

Elasticsearchクラスタ

研究室内にElasticsearch + Logstash + Kibanaによるクラスタが構築されています.特徴はHA(High Availability)を考慮した設計になっていることです.SPOF(Single Point of Failure)を排除しています.

(参考) HAProxyでHA化したElasticsearchクラスタを構築 – Qiita

Elasticsearchクラスタ

ID管理基盤

ID管理にはSTNSを使っています.オンプレミスのサーバにGitHub Actions Self Hosted Runnerをインストールすることで,GitHubへの変更(Push)を起点に自動的なデプロイ(設定適用)を実現しています.これはGitOpsとよばれる技術です.詳細は以下のQiita記事に書いてあります.

(参考) STNSの設定をGitHub Actionsで自動ビルド&デプロイして優勝した – Qiita

GitOpsによる自動デプロイ

踏み台サーバ

踏み台サーバをコンテナで再構築しました.詳細は以下の記事を参照ください.

さよなら踏み台サーバ,こんにちは踏み台コンテナ!

テスト

サーバやストレージが正常に動作するかを検証するためにテストを行っています.Gossとよばれるサーバ向けテストツールとGitHub Actionsを組み合わせて,定期的なテストを実現しています.仮にテスト結果が変化(失敗→成功または成功→失敗)するとSlackへ通知がされる仕組みが用意されています.詳細は以下のブログ記事に書いて有ります.

(参考) gossとGitHub Actionsでインフラを自動テストした

自動テストの結果通知

バックアップ

詳細は以下の記事で紹介しています.

研究室にあるVMのバックアップ事情

モニタリング

MaaS(Monitoring as a Service)や監視ソフトウェアを使用しています.使用しているサービスは以下です.

  • Mackerel
  • Zabbix(オンプレミス)
  • Uptime Robot
Mackerel Dashboard