概要
前回は、既存のコンテナプラットフォーム上でコンテナとVMを統合管理することが出来るOCP-Virtについてご紹介しました。今回も同じようにプラットフォーム上でコンテナとVMを統合管理することが出来るSUSE Virtualization(以降、SUSE-Virt)についてご紹介します。
前回の記事はこちら
今回紹介するSUSE-Virtは、クラウドネイティブ環境向けに設計されたHCIソリューションとなります。
本記事では、SUSE-Virtの基本的な概要からアーキテクチャ、VMの移行ツール、他の仮想化基盤との比較について解説します。
前提情報
本記事では、現時点で以下のバージョンを対象としています。
harvester v 1.4.0
SUSE-Virt とは
SUSE-Virtは、ベアメタルサーバー上でKubernetesをベースとして構築されており、VMを簡易的に管理できるソリューションです。
HCIソリューションという枠組みのため、SANや外部の共有ストレージは不要となり、SUSE-Virtに備わっているストレージやネットワークの機能を利用することが可能です。
SUSE-Virtは以下の特徴を持っています。
- 構造がシンプル
- 従来のサーバー仮想化のシステム構成よりもシンプルで、必要なハードウェアの数も少なく済みます。
- オープンソースであり、無料で利用可能
- Kubernetes、KubeVirt、Longhorn、Grafana、PrometheusといったOSSで構成されており、無料で利用が可能です。
- スケールアウトが容易
- スモールスタートで始めて、必要に応じてサーバーを追加して拡張が可能です。将来の大規模なインフラ更改の必要がない点が特徴です。
- SUSE-Virtにストレージが内蔵しており、冗長性を提供
- SUSE-VirtはLonghorn によるストレージ管理を行っており、冗長性が担保されています。
SUSE-Virtが提供する機能としては下記が挙げられます。
- Linux および Windows VMの作成と管理
- Rancherとの統合によるインフラストラクチャの統合管理
SUSE-Virt アーキテクチャ
SUSE-Virtは、Kubernetes環境上でVMの作成・管理を可能にするOSSのKubeVirtを元にして開発されています。KubeVirt は動作する基盤としてKubernetesを使用し、KubernetesのAPIを拡張することで、Kubernetes環境上へのVMの構成を実現しています。VMを動作させる仕組みとしてはKVMを使用しています。
SUSE-Virtのコンポーネント
- KubeVirt:Kubernetes 上で KVM を使用して仮想化管理を提供
- Longhorn:分散ブロック ストレージとアクセス頻度に応じて、データを最適な場所に配置するティアリングを提供
- Kubernetes CNI:コンテナのネットワーク機能を抽象化し、IF仕様として切り出したもの
- Elemental for SUSE Linux Enterprise Micro 5.5:Kubernetes クラスターで OS メンテナンスを可能な限り排除するように設計された Linux ディストリビューション
ベアメタルノードにインストールされるように設計されています。各ノードにKubeVirt、Longhornがインストールされ、KVM を使用した仮想化管理と分散ブロック ストレージをそれぞれ提供します。その上に仮想マシンを構築します。
ネットワークコンポーネント
VM用に以下のネットワークが提供されます。
- Management network:デフォルトの管理ネットワークとしてCanalを使用しています。これは、クラスターから直接使用できる組み込みネットワークです。デフォルトでは、VM の管理ネットワーク IP はクラスター ノード内でのみアクセス可能です。
- VLAN:MultusおよびBridge CNI プラグインを活用して、カスタマイズされた L2 ブリッジ VLAN ネットワークを実装します。これにより、VM をホスト側のネットワークインターフェースに接続し、物理スイッチを使用して内部および外部ネットワークからアクセスできるようになります。
Image Source: https://docs.harvesterhci.io/v1.4/
VMの作成については、KubeVirtのアーキテクチャと同じです。流れとしては、VMを作成する際にvirt-apiを叩き、そのAPIはkubeletに問い合わせ、要求されたVirtual Machine Instances(VMI)をスケジューリングします。QEMU・libvirt はSUSE-VirtのVirtualMachineInstance(VMI)の中で実行しています。
Image Source: https://kubevirt.io/user-guide/architecture/
VMの移行ツールの紹介
SUSE-Virtでは、既存の利用している仮想化基盤からの移行を支援するためのアドオンが vm-import-controller として提供されています。vm-import-controllerは様々な仮想化基盤で稼働する VM を SUSE-Virt 上に移行するツールです。移行元として選択できる Provider は下記になります。
VMware vSphere
OpenStack
vm-import-controller は 以下の2つのCRDを提供します。
- 移行元の情報を定義する VmwareSource CRD, OpenstackSource CRD
- VMのインポート情報を定義する VirtualMachineImport CRD
このように、現行の仮想化基盤からの移行方式も用意されているため、SUSE-Virt への移行が簡単になっています。
その他仮想化基盤との比較
Red Hat OpenShift Virtualization (OCP-Virt)
OCP-Virtは、OpenShift に含まれる機能でありコンテナプラットフォーム上でVMを構成することを可能にするオペレーターです。OCP-Virtも同様にKubeVirtを利用して、コンテナとVMを既存のOpenShift上で同時に管理することが可能です。主な違いとしては、SUSE-VirtはRancherと並列に統合されますが、OCP-VirtはOpenShiftに内包されるプラットフォームになっている点が挙げられます。必要なノード数や対応プラットフォームも異なっています。詳細については、OCP-VirtとSUSE-Virtを詳しく比較した記事を投稿予定ですので、是非そちらを読んでみてください。
VMware vSphere (vSphere)
vSphereは、仮想化基盤といえば必ず名前が上がる製品であり、企業環境での広範な採用実績を持っています。幅広いハードウェアとの互換性、高度な機能(vMotion、Storage DRS、High Availabilityなど)、および堅牢なセキュリティを提供します。vSphereはサブスクリプションとして提供されますが、SUSE-Virtは無料で利用可能な点が異なります。前回のOCP-Virtでも取り上げたように、Sphereは仮想化に関しては非常に高い成熟度を持っていますが、SUSE-VirtはKubernetesネイティブな統合が簡単にできる点が強みとなります。
Proxmox Virtual Environment (Proxmox VE)
Proxmox VEは、KVMとLinux Containers (LXC) をサポートするオープンソースの仮想化基盤です。ビルトインのクラスタリング機能を備えており、簡単にハイアベイラビリティ環境を構築できます。クラスタリングが可能で高可用性を提供できる点はSUSE-Virtと類似していますが、Kubernetesネイティブであるか否かといった点が違いになります。
まとめ
SUSE-Virtの基本的な概要からアーキテクチャ、VMの移行ツール、他の仮想化基盤との比較について解説しました。
SUSE-VirtはKubernetesをベースに構築されたベアメタルサーバー上でVMを簡易的に管理できるHCIソリューションです。特徴として、構造がシンプルで、オープンソースで無料利用が可能、スケールアウトが容易、内蔵ストレージによる冗長性の提供が挙げられます。
参考文献
https://docs.harvesterhci.io/v1.4/
https://www.suse.com/ja-jp/products/rancher/virtualization/
https://kubevirt.io/user-guide/
https://www.infoq.com/jp/news/2021/07/suse-releases-harvester/