KVM(Kernel-based Virtual Machine) と StarWind VSAN

KVMは?

急速に変化し、進化する仮想化インフラの世界において、ベンダーは常に、より堅牢で信頼性が高く、運用しやすいもの、簡単に言えば、全体的な効率性を高めることを追求しています。 Kernel-based Virtual Machine (KVM) は、Linux をベアメタルハイパーバイザーに変換するオープンソースの仮想化技術であり、必要なコンポーネント(メモリマネージャー、プロセススケジューラ、入出力(I/O)スタックなど)をすべて Linux カーネルの一部として備えています。業界をリードする多くの製品と比較すると、KVMハイパーバイザーはユーザーに非常に高い柔軟性を提供し、改善の余地を多く残しているため、KVMベースの仮想インフラストラクチャへの移行は実際、非常に合理的なアイデアであるように思われます。

当初、カーネルベースの仮想マシンは、2006年にQumranetという企業によって開発・発表されました。KVMハイパーバイザーは2007年にLinuxに吸収され、2008年にはRed HatがQumranetを買収しました。Red Hat KVMは、Red Hatの他の技術と同様にオープンソースであるため、LinuxはIntel、HP、IBM、Suseを含むOpen Virtualization Allianceを立ち上げました。KVMソフトウェアは、QEMUと関連付けられることが多くあります。後者はハードウェアをエミュレートするが、KVMハイパーバイザーはホストシステムから必要なITリソースを割り当てます。したがって、Linux KVMは広範なLinuxファミリーの1つであるため、LinuxがKVMに提供できるものはすべて提供できると言える。しかし、カーネルベースの仮想マシンについて詳しく見ていきます。

KVMのコンポーネント

KVMハイパーバイザーは、2.6.20(かなり前のバージョン)以降のLinuxカーネル(オペレーティングシステム自体のコア)に組み込まれた完全な機能を持つ仮想化機能です。Linux KVMは、AMD 64およびIntel 64ハードウェア上で動作します。KVMのインストールは非常に簡単です。Windows Hyper-Vと同様に、カーネルから起動する必要があります。ただし、Windows上でKVMを実行することはできませんが、KVM上でWindowsを実行することは可能です。

KVMの主要コンポーネントには以下が含まれます。

  • ゲストシステムと連携して動作するハイパーバイザー用に開発された専用ドライバーであるVirtIOドライバーは、準仮想化の実行を可能にします。
  • KVMツールは、QEMUの代替となるよりスリムなソフトウェアであり、環境の生産要件に応じて選択されます。
  • QEMUは、ハードウェアコンポーネントをエミュレートし、仮想マシンを管理する独立したソフトウェアです。Red Hat KVMは、ハードウェアのエミュレートにこれを利用し、準仮想化により速度を向上させています。Linux KVMとQEMUは、単一のパッケージで一緒に提供されることが多く、密接に連携しています。
  • Kernel Extension は、ハードウェアと Linux KVM によって生成された仮想化されたハードウェアとの間の実際の変換レイヤーです。 これには、kernel.co 拡張、kvm-amd および kvm-intel モジュールが含まれ、これらは既存のプロセッサブランドに基づいて使用されます。
  • Libvirt は、仮想マシン(VM)を操作するための Linux KVM アプリケーションプログラミングインターフェース(API)です。他の同様のソフトウェアと同様に、仮想化リソースの監視と管理を可能にします。また、LibvirtにはVM Managerのグラフィカルユーザーインターフェース(GUI)も含まれています。

ほとんどのRed Hatディストリビューションと同様に、Linux KVMは非常にシンプルで無駄がなく、それが大規模なオープンソースコミュニティに指示れている理由です。次にKVMで何ができるのかを簡単に見てみましょう。

KVM の機能

まず、他のハイパーバイザーと同様に、KVM ハイパーバイザーは仮想化プロセスを可能にし、管理するために存在します。KVM ハイパーバイザーサーバーがホストする仮想リソースを使用して、ハードウェアを抽象化し、アプリケーションの実行を可能にします。Red Hat KVM は、ソフトウェアによるエミュレーション、またはハイパーバイザー制御の実行と実際のハードウェアリソースへの割り当てのいずれかにより、ゲストシステム用のハードウェアを提供します。

一般的な参考情報として、KVM 仮想化にはいくつかの種類があります。

  • 完全仮想化:ハードウェアがソフトウェアによって完全にエミュレートされ、実際の物理ハードウェアとのやり取りなしに仮想環境内で独立して動作する。この場合、対応するドライバは不要となる。ただし、パフォーマンスは犠牲になる。
  • 準仮想化:ゲストシステムがホストシステム(ハイパーバイザーサーバー)とある程度やり取りを行うことを意味する。つまり、特定のドライバが必要になる。
  • ハードウェア支援準仮想化:プロセスがハードウェアサポートをすでに統合している。その後、すべてがすでに揃っており、プロセッサと直接、仲介なしで動作するため、パフォーマンスが向上します。通常、このケースが望ましい動作です。

Linux KVM はハイパーバイザーに期待されるすべての基本的な標準機能を備えていますが、Red Hat ディストリビューションであるという独自性もあります。カーネルベースの仮想マシンを使用することで、Linux オープンソースコミュニティから評価されている独自の利点と好みが得られます。

特に、Linux KVM には以下の機能があります。

  • 自動 NUMA バランシング:その名の通り、NUMA ベースのホスト上で実行されるアプリケーションのパフォーマンスを向上させる機能です。
  • ディスク I/O スロットリング:指定の VM からホストに送信される I/O リクエストの数を制限して定義することができ、パフォーマンスの向上に役立ちます。
  • オーバーコミット:必要に応じて、ホストシステム上の利用可能なリソースよりも多くの仮想 CPU またはメモリリソースを KVM に割り当てることができます。
  • シンプロビジョニングにより、Red Hat KVMは柔軟なストレージの割り当てが可能になり、各VMに対して利用可能なストレージスペースを大幅に最適化できます。
  • 仮想CPUのホットアドは、ダウンタイムを発生させることなく、特定のVMに必要な処理リソースを増やすことができる優れた機能です。

Linux KVMは確かに優れたハイパーバイザーですが、既存のアルゴリズムと利用可能なリソースを管理することしかできません。フォールトトレランス、便利な高速なディザスタリカバリ、非常に高いアプリケーションの常時稼働率、または必要に応じて高可用性(HA)を実現する場合には、KVMでは対応できません。しかし、StarWind Virtual SANと組み合わせることで、KVMベースのハイパーコンバージドインフラストラクチャは、予算内で真の力を発揮し、企業向けROBO(Remote Office/Branch Office)、SMB、エッジに真の価値をもたらします。

Red Hat OpenShift(Linux KVM )と StarWind VSANについて

StarWind VSAN はネイティブハイパーバイザーコンポーネントとして動作するため、あらゆる環境に役立つ追加機能となります。 特に、カーネルベースの仮想マシンと KVM ハイパーバイザーを組み合わせた場合、その相乗効果は素晴らしいパフォーマンス結果につながります。

  • Linux KVM は従来の Linux パフォーマンスを備えているため、最も要求の厳しいアプリケーションのロードを仮想化できます。StarWind は、Linux KVM を使用して HA クラスターを構築するために、高可用性ブロックストレージを提供できます。
  • KVMハイパーバイザによってサポートされるライブマイグレーションは、VMを再配置しても安定した動作を保証し、StarWind iSCSIはブロックストレージ転送に最大の帯域幅を提供し、VMのマイグレーションを容易にします。
  • Linux KVMテクノロジーは柔軟性が高く、Linuxでサポートされているストレージを基本的にすべて利用でき、マルチパスI/Oを使用して必要な冗長性を提供します。同時に、StarWind VSANはVMの負荷に合わせてストレージを管理するため、ストレージのパフォーマンスは最高の状態に保たれ、高価なストレージを必要とせず、ランダムI/Oを回避できます。

Linux KVMハイパーバイザーはそれ自体でも強力な機能を備えていますが、StarWind VSANを使用すると、その主な機能が最大限に発揮されます。

Red Hat OpenShift 環境で StarWind vSAN を活用することは、特に物理 SAN などの高価な外部ストレージを用意せずに、サーバー内蔵ディスクを共有ストレージ化して高可用性(HA)を実現したい場合に非常に有効な手段です。主な活用方法と構成のポイントは:

1. 主な活用シナリオ

StarWind vSAN は、主に以下の 2 つのパターンで OpenShift と組み合わせて利用されます。

A. 仮想化基盤(vSphere/KVM)のストレージとして利用

OpenShift を VMware vSphere や KVM 上の仮想マシンとして構築する場合、StarWind vSAN が各ホストのローカルディスクをミラーリングし、**「共有データストア」**を提供します。

  • メリット: OpenShift 側からは標準的な vSphere 共有ストレージとして見えるため、ノードのライブマイグレーションや HA 機能がそのまま利用可能です。
  • 構成例: 2 台の物理サーバーで StarWind を構成し、iSCSI で共有ストレージを提供。その上に OpenShift ノードを展開します。

B. ベアメタル OpenShift の外部 iSCSI ストレージとして利用

OpenShift を物理サーバー(ベアメタル)に直接インストールする場合、StarWind vSAN をインストールした別のサーバー群から iSCSI ターゲットとしてボリュームを公開します。

メリット: 高価なハードウェア SAN を購入することなく、汎用サーバーでエンタープライズ級の冗長性を持ったストレージ基盤を構築できます。

2. OpenShift との連携方法(永続ボリュームの提供)

OpenShift 上のアプリケーション(Pod)がデータを保存するためには、StarWind 上の領域を Persistent Volume (PV) としてマウントする必要があります。

接続方法内容
vSphere CSI DrivervSphere 上に OpenShift を構築している場合。StarWind が提供するデータストア上の VMDK を自動で切り出し、Pod に割り当てます。
iSCSI CSI Driverベアメタル構成などで直接 StarWind を参照する場合。Kubernetes 標準の iSCSI プロバイダーを使用して LUN をマウントします。
OpenShift Data Foundation (ODF)StarWind を「下位ストレージ」として利用し、その上に ODF (Ceph) を重ねる構成。管理の一元化やオブジェクトストレージ機能が必要な場合に有効です。

3. 導入のメリット

シンプルな管理: Windows ベース、または Linux ベースの仮想アプライアンス(CVM)として動作するため、既存のインフラエンジニアが運用しやすい設計です。

低コストでの高可用性: 最小 2 ノードから構成でき、スイッチレス(直結)構成も可能なため、エッジ拠点やスモールスタートに最適です。

ハードウェアを選ばない: 特定のストレージ専用機に縛られず、汎用的な x86 サーバーと SSD/NVMe を活用して高い IOPS を実現できます。

関連トピックス:
カテゴリー: クラウド・仮想インフラ タグ: , , , , , パーマリンク

KVM(Kernel-based Virtual Machine) と StarWind VSAN への1件のコメント

  1. クライム のコメント:

    Oracle Linux KVM環境でのVirtual SAN(VSAN)のディプロイについて(@Note):
    https://note.com/climb_sales/n/n7ec0e3ba4273

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

この記事のトラックバック用URL