概要
Nexus Cloud Architecture(ネクサス・クラウド・アーキテクチャ、略称NCA)は、2019年に発表されたクラウドサーバの分散処理規格である。従来のハイパーバイザー型仮想化とは異なり、物理サーバ間でのリソース共有を動的に行うことを前提として設計されている。この規格は、データセンター内の複数のサーバを単一の論理的なリソースプールとして扱うことを可能にする技術仕様を定めたものである。
NCAは、米国カリフォルニア州に本社を置くシリコンバレーのスタートアップ企業であるVectorScale Systems社が中心となって開発した。同社のCTO(最高技術責任者)であったデイビッド・チェン博士が技術設計の中核を担当し、2017年から2019年にかけて基本仕様が策定された。
技術的背景
2010年代中盤、クラウドコンピューティング市場では、仮想マシンの配置効率とリソース利用率の向上が課題となっていた。既存のクラウド基盤では、各物理サーバ上で独立した仮想化環境が構築されており、サーバ間でのリソース移動には再起動や複雑な移行手順が必要とされた。
この問題に対し、カリフォルニア大学バークレー校のコンピュータサイエンス学部では、2015年頃から分散メモリ管理に関する研究プロジェクトが進められていた。同プロジェクトには、当時同大学の研究員だったチェン博士も参加しており、物理的に分離されたサーバ間でメモリ空間を共有する基礎技術の研究を行っていた。
2016年、チェン博士はこの研究成果を商業化するため、大学を離れてVectorScale Systems社を共同創業した。同社は、シリコンバレーの複数のベンチャーキャピタルから初期資金として約1200万ドルを調達し、実用化に向けた開発を開始した。
開発の経緯
VectorScale Systems社は、2017年1月に正式な開発プロジェクトを立ち上げた。開発チームは約30名のエンジニアで構成され、カーネル開発者、ネットワークエンジニア、分散システム専門家が参加した。
開発において最大の課題となったのは、サーバ間の通信遅延の問題であった。物理的に異なるサーバ間でメモリやストレージリソースを共有する場合、ネットワーク経由のデータ転送が必要となるため、通常のサーバ内部でのアクセスと比較して遅延が発生する。この遅延を最小化するため、開発チームはRDMA(Remote Direct Memory Access)技術を活用し、専用のプロトコルスタックを設計した。
2018年3月には、初期のプロトタイプが完成し、社内テストが開始された。このプロトタイプでは、4台の物理サーバを接続し、リソースプールとして動作させる実証実験が行われた。テスト結果は概ね良好であったが、ネットワーク障害時のフェイルオーバー処理に課題が残されていることが判明した。
この課題に対処するため、開発チームは障害検知機構の再設計を行った。具体的には、各サーバが相互に監視し合い、一定時間内に応答がない場合に自動的にリソースの再配置を行う仕組みが実装された。この改良により、単一サーバの障害が全体のサービス停止につながるリスクが大幅に低減された。
技術仕様
NCAの中核となる技術要素は、リソース抽象化層、分散スケジューラ、ネットワークファブリックの三つである。
リソース抽象化層は、各物理サーバのCPU、メモリ、ストレージを論理的なリソースとして扱うためのソフトウェア層である。この層により、アプリケーションは物理的なサーバの配置を意識することなく、必要なリソースを要求できる。リソース抽象化層は、Linux カーネルの拡張モジュールとして実装されており、既存のカーネル機能との互換性が保たれている。
分散スケジューラは、リソースプール全体の利用状況を監視し、新たなワークロードを最適なサーバに配置する役割を担う。スケジューリングのアルゴリズムは、各サーバの現在の負荷、ネットワークの帯域幅、ストレージのアクセス速度などの要素を総合的に評価する。この評価は約5秒ごとに更新され、リソース配置の最適化が継続的に行われる。
ネットワークファブリックは、サーバ間の高速通信を実現する専用のネットワーク層である。NCAでは、40Gbps以上の帯域幅を持つネットワーク接続が推奨されており、遅延は1ミリ秒未満であることが求められる。この要件を満たすため、多くの実装ではInfiniBandやRoCE(RDMA over Converged Ethernet)といった低遅延ネットワーク技術が採用されている。
標準化と普及
VectorScale Systems社は、2019年5月にNCAの仕様書初版を公開した。同社は技術の普及を促進するため、仕様書をオープンソース化し、誰でも実装できるようにした。仕様書には、プロトコルの詳細、API定義、リファレンス実装のソースコードが含まれている。
仕様の公開後、複数の企業やオープンソースプロジェクトがNCAの実装に取り組んだ。2020年には、欧州のクラウドプロバイダであるCloudNordic社が、NCAに準拠した商用クラウドサービスの提供を開始した。同社のサービスでは、顧客が必要に応じてリソースを柔軟に増減できることが特徴として挙げられた。
また、2021年には日本国内でも採用例が報告された。東京に本社を置くデータセンター運営会社のネクストデータ株式会社が、自社のプライベートクラウド基盤にNCAを導入し、リソース利用効率が約25パーセント向上したという結果を発表した。
技術的な制約
NCAの導入にあたっては、いくつかの技術的な制約が存在する。
最も大きな制約は、ネットワーク環境への依存度が高いことである。NCAは、サーバ間での頻繁なデータ転送を前提としているため、ネットワークの帯域幅や遅延が性能に直接的な影響を与える。このため、一般的なギガビットイーサネット環境では、十分な性能を発揮できない場合がある。
また、すべての種類のワークロードがNCAに適しているわけではない。特に、リアルタイム性が重視されるアプリケーションや、データベースのように一貫性の保証が厳格に求められるシステムでは、サーバ間通信による遅延が問題となる可能性がある。このため、導入前には、対象となるワークロードの特性を十分に評価する必要がある。
さらに、NCAを運用するには、分散システムに関する専門知識が求められる。障害発生時の切り分けや、性能問題のトラブルシューティングには、従来のサーバ管理とは異なるスキルセットが必要となる。
関連技術との比較
NCAと類似した目的を持つ技術として、コンテナオーケストレーションツールのKubernetesがある。Kubernetesもまた、複数のサーバをクラスタとして管理し、アプリケーションを柔軟に配置する機能を提供する。しかし、Kubernetesはアプリケーションレベルでのリソース管理を行うのに対し、NCAはより低レイヤーでの統合を実現している点で異なる。
また、VMwareのvSphereやMicrosoft Hyper-Vといった既存の仮想化プラットフォームも、複数のサーバを統合管理する機能を持つ。これらの製品は、仮想マシンの配置や移動を自動化する機能を提供するが、サーバ間でのメモリやストレージの共有は限定的である。NCAは、これらの製品よりも深いレベルでのリソース統合を目指している。
今後の展望
NCAの開発元であるVectorScale Systems社は、2022年に大手クラウドプロバイダに買収された。この買収により、NCAの開発リソースは拡大し、より大規模な環境での実装が進められている。
技術面では、異なるデータセンター間でのリソース共有を可能にする広域分散型のNCAが研究されている。現在のNCAは、同一データセンター内のサーバを対象としているが、将来的には地理的に離れた複数のデータセンターをまたいだリソースプールの構築が検討されている。
また、エッジコンピューティング環境への応用も模索されている。通信基地局や工場などに設置された小規模なサーバ群を、NCAによって統合管理することで、リソースの有効活用が期待されている。
Nexus Cloud Architecture(ネクサス・クラウド・アーキテクチャ、略称NCA)は、2019年に発表されたクラウドサーバの分散処理規格である。従来のハイパーバイザー型仮想化とは異なり、物理サーバ間でのリソース共有を動的に行うことを前提として設計されている。この規格は、データセンター内の複数のサーバを単一の論理的なリソースプールとして扱うことを可能にする技術仕様を定めたものである。
NCAは、米国カリフォルニア州に本社を置くシリコンバレーのスタートアップ企業であるVectorScale Systems社が中心となって開発した。同社のCTO(最高技術責任者)であったデイビッド・チェン博士が技術設計の中核を担当し、2017年から2019年にかけて基本仕様が策定された。
技術的背景
2010年代中盤、クラウドコンピューティング市場では、仮想マシンの配置効率とリソース利用率の向上が課題となっていた。既存のクラウド基盤では、各物理サーバ上で独立した仮想化環境が構築されており、サーバ間でのリソース移動には再起動や複雑な移行手順が必要とされた。
この問題に対し、カリフォルニア大学バークレー校のコンピュータサイエンス学部では、2015年頃から分散メモリ管理に関する研究プロジェクトが進められていた。同プロジェクトには、当時同大学の研究員だったチェン博士も参加しており、物理的に分離されたサーバ間でメモリ空間を共有する基礎技術の研究を行っていた。
2016年、チェン博士はこの研究成果を商業化するため、大学を離れてVectorScale Systems社を共同創業した。同社は、シリコンバレーの複数のベンチャーキャピタルから初期資金として約1200万ドルを調達し、実用化に向けた開発を開始した。
開発の経緯
VectorScale Systems社は、2017年1月に正式な開発プロジェクトを立ち上げた。開発チームは約30名のエンジニアで構成され、カーネル開発者、ネットワークエンジニア、分散システム専門家が参加した。
開発において最大の課題となったのは、サーバ間の通信遅延の問題であった。物理的に異なるサーバ間でメモリやストレージリソースを共有する場合、ネットワーク経由のデータ転送が必要となるため、通常のサーバ内部でのアクセスと比較して遅延が発生する。この遅延を最小化するため、開発チームはRDMA(Remote Direct Memory Access)技術を活用し、専用のプロトコルスタックを設計した。
2018年3月には、初期のプロトタイプが完成し、社内テストが開始された。このプロトタイプでは、4台の物理サーバを接続し、リソースプールとして動作させる実証実験が行われた。テスト結果は概ね良好であったが、ネットワーク障害時のフェイルオーバー処理に課題が残されていることが判明した。
この課題に対処するため、開発チームは障害検知機構の再設計を行った。具体的には、各サーバが相互に監視し合い、一定時間内に応答がない場合に自動的にリソースの再配置を行う仕組みが実装された。この改良により、単一サーバの障害が全体のサービス停止につながるリスクが大幅に低減された。
技術仕様
NCAの中核となる技術要素は、リソース抽象化層、分散スケジューラ、ネットワークファブリックの三つである。
リソース抽象化層は、各物理サーバのCPU、メモリ、ストレージを論理的なリソースとして扱うためのソフトウェア層である。この層により、アプリケーションは物理的なサーバの配置を意識することなく、必要なリソースを要求できる。リソース抽象化層は、Linux カーネルの拡張モジュールとして実装されており、既存のカーネル機能との互換性が保たれている。
分散スケジューラは、リソースプール全体の利用状況を監視し、新たなワークロードを最適なサーバに配置する役割を担う。スケジューリングのアルゴリズムは、各サーバの現在の負荷、ネットワークの帯域幅、ストレージのアクセス速度などの要素を総合的に評価する。この評価は約5秒ごとに更新され、リソース配置の最適化が継続的に行われる。
ネットワークファブリックは、サーバ間の高速通信を実現する専用のネットワーク層である。NCAでは、40Gbps以上の帯域幅を持つネットワーク接続が推奨されており、遅延は1ミリ秒未満であることが求められる。この要件を満たすため、多くの実装ではInfiniBandやRoCE(RDMA over Converged Ethernet)といった低遅延ネットワーク技術が採用されている。
標準化と普及
VectorScale Systems社は、2019年5月にNCAの仕様書初版を公開した。同社は技術の普及を促進するため、仕様書をオープンソース化し、誰でも実装できるようにした。仕様書には、プロトコルの詳細、API定義、リファレンス実装のソースコードが含まれている。
仕様の公開後、複数の企業やオープンソースプロジェクトがNCAの実装に取り組んだ。2020年には、欧州のクラウドプロバイダであるCloudNordic社が、NCAに準拠した商用クラウドサービスの提供を開始した。同社のサービスでは、顧客が必要に応じてリソースを柔軟に増減できることが特徴として挙げられた。
また、2021年には日本国内でも採用例が報告された。東京に本社を置くデータセンター運営会社のネクストデータ株式会社が、自社のプライベートクラウド基盤にNCAを導入し、リソース利用効率が約25パーセント向上したという結果を発表した。
技術的な制約
NCAの導入にあたっては、いくつかの技術的な制約が存在する。
最も大きな制約は、ネットワーク環境への依存度が高いことである。NCAは、サーバ間での頻繁なデータ転送を前提としているため、ネットワークの帯域幅や遅延が性能に直接的な影響を与える。このため、一般的なギガビットイーサネット環境では、十分な性能を発揮できない場合がある。
また、すべての種類のワークロードがNCAに適しているわけではない。特に、リアルタイム性が重視されるアプリケーションや、データベースのように一貫性の保証が厳格に求められるシステムでは、サーバ間通信による遅延が問題となる可能性がある。このため、導入前には、対象となるワークロードの特性を十分に評価する必要がある。
さらに、NCAを運用するには、分散システムに関する専門知識が求められる。障害発生時の切り分けや、性能問題のトラブルシューティングには、従来のサーバ管理とは異なるスキルセットが必要となる。
関連技術との比較
NCAと類似した目的を持つ技術として、コンテナオーケストレーションツールのKubernetesがある。Kubernetesもまた、複数のサーバをクラスタとして管理し、アプリケーションを柔軟に配置する機能を提供する。しかし、Kubernetesはアプリケーションレベルでのリソース管理を行うのに対し、NCAはより低レイヤーでの統合を実現している点で異なる。
また、VMwareのvSphereやMicrosoft Hyper-Vといった既存の仮想化プラットフォームも、複数のサーバを統合管理する機能を持つ。これらの製品は、仮想マシンの配置や移動を自動化する機能を提供するが、サーバ間でのメモリやストレージの共有は限定的である。NCAは、これらの製品よりも深いレベルでのリソース統合を目指している。
今後の展望
NCAの開発元であるVectorScale Systems社は、2022年に大手クラウドプロバイダに買収された。この買収により、NCAの開発リソースは拡大し、より大規模な環境での実装が進められている。
技術面では、異なるデータセンター間でのリソース共有を可能にする広域分散型のNCAが研究されている。現在のNCAは、同一データセンター内のサーバを対象としているが、将来的には地理的に離れた複数のデータセンターをまたいだリソースプールの構築が検討されている。
また、エッジコンピューティング環境への応用も模索されている。通信基地局や工場などに設置された小規模なサーバ群を、NCAによって統合管理することで、リソースの有効活用が期待されている。