ITファシリティ

仮想化基盤

CDSLには,3台の物理マシンがあります.

サーバーとUPS

3台のサーバーのスペックは次の表のとおりです.

CPURAMStorage
Ryzen 7 2700X (8コア)128GB3TB (iSCSI経由でNASをマウント)
Ryzen 7 3800X (8コア)128GB3TB (iSCSI経由でNASをマウント)
Ryzen 9 3950X (16コア)128GB3TB (iSCSI経由でNASをマウント)
サーバーのハードウェアスペック

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

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

NAS

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

NAS

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でインフラを自動テストした

自動テストの結果通知

モニタリング

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

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