「SAVACAN」担当のMKです。
今回のブログでは2023年11月にBroadcomに買収されたVMwareの動向と現在スペース・アイで自社構築している仮想環境について紹介したいと思います。
VMwareは、多くのIaaS、PaaS系サービスのクラウド基盤として採用されており、また各社からOEMライセンスをバンドルしたサーバー製品が販売されている世界的にもメジャーな仮想化ソリューション群を提供している企業になります。
それがBroadcomに買収され、その後の動向に注目があつまっていました。
そんな中、下記の変更発表があり、今まさに様々な混乱を引き起こしています。
・ライセンス形態の変更(永久ライセンスからサブスクリプションへの変更など)
・OEMの供給停止(その後、一部への供給再開)
ライセンス形態の変更により、一部のユーザーでは料金が20倍に跳ね上がった例もあったとか。
また、OEMの供給停止により、購入済のバンドル製品で保守サポートが受けられないユーザーや、バンドル製品を終売したメーカーもあるようです。
VMwareからの脱却を目指して別の仮想化ソリューションへの移行や、コンテナ化を検討する動きもあるようです。
弊社ではVMware製品の導入がないので直接的な影響はありませんが、一部利用している国内クラウドサービスでVMwareを採用していた様で、仮想マシンの月額料金が30%程度値上げされる旨の連絡がありました。
弊社ではVMwareの導入がないと言いましたが、実は15年以上前に弊社で初めて導入した仮想化基盤にはVMware ESXi 3.5を採用していました。無償で利用可能なライセンスがあり、検証を兼ねて採用したのが始まりになります。
それがVMware ESXi 5にて、無償ライセンスの制限が変更されて、仮想ホストあたり物理CPUを最大2個までとなりました。当時は今のようなコア数では無く物理CPU搭載数を増やす傾向が強く、将来的な需要を満たせない事を懸念し、OSS(オープンソースソフトウェア)での仮想化を模索・検討し、KVMを活用して構築したプライベートクラウドへ移行しました。
VMwareのライセンス変更でお困りの企業様や、クラウド化は昨今トラブルが多く不安という企業様は、KVMで構築したプライベートクラウドでの運用を検討してみてはいかがでしょうか。
現在では仮想環境といえばクラウドをイメージする方がほとんどだと思いますが、弊社では自社データセンター内のオンプレミス環境のシステムも多く扱っていますので、まだまだ自社製仮想環境が現役で活躍しています。
以降は弊社で採用しているKVMを使った仮想環境の構築手順について紹介します。
オンプレミス環境での仮想化環境をこれから導入検討したい方、ブリッジなどLinuxのネットワークを理解している方に向けたものとなっております。
ここで紹介する技術の概要
インストール手順の前に本記事で紹介する技術の概要を説明しておきます。
libvirt
libvirtはRedHatを中心に開発されている仮想化環境を管理するためのAPIを提供するオープンソースソフトウェアです。
サポートしている主な仮想化モジュールはXen、KVM、VirtualBox、VMware ESX、Hyper-Vなどになります。
管理コマンドとしてvirshが提供されています。
Cockpit
CockpitはLinuxを管理するWEBインターフェースを提供します。RedHatが開発を支援しています。
ネットワークや仮想マシンの管理機能も備えており、仮想ホストの管理インターフェイスとしても利用できます。
(virt-managerというGUI(X11)を備えた管理ツールもありますが、現在は非推奨となっています)
KVM
KVMは「Kernel-based Virtual Machine」の略称で、Linuxカーネルをハイパーバイザ化する仮想化モジュールになります。VirtIOを利用した準仮想化機能の提供にも対応しており、リソース効率の良い仮想化環境を構築できます。
この3つを使ってブラウザから仮想化を管理してみようという記事になっています!
インストールしてみる
では実際にlibvirt + KVM + Cockpitをインストールしてみましょう!
今回は必要最低限のパッケージでインストールしています。また、開発環境という事でIPアドレス制限は考慮しません。
実際の運用環境ではきちんと設定しましょう。
OSはAlmaLinux8.10で設定しました。
まずは関連パッケージをインストールします。
dnf -y install qemu-kvm libvirt libvirt-daemon* virt-install bridge-utils cockpit cockpit-machines
関連パッケージを起動し、自動起動も有効にします。
systemctl start libvirtd
systemctl start libvirt-guests
systemctl start cockpit.socket
systemctl enable libvirtd
systemctl enable libvirt-guests
systemctl enable cockpit
firewallにて、Cockpitで利用するポートを解放します。
(ルーター越しのアクセスが必要な環境では、ルーターにてCockpitが使用するTCPポート9090番を開放して下さい)
firewall-cmd --add-service=cockpit --zone=public --permanent
firewall-cmd --reload
仮想マシンがブリッジ接続できるようにネットワークを設定して変更を反映します。
vi /etc/sysconfig/network-scripts/ifcfg-eno1
DEVICE=eno1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=MACアドレスを設定します
BRIDGE=br1
vi /etc/sysconfig/network-scripts/ifcfg-br1
DEVICE="br1"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=[IPアドレスを設定します]
PREFIX=24
GATEWAY=[GWを設定します]
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System br1"
ここまでの設定でブラウザにて仮想ホストのCockpitへアクセスできるはずです!
以下のURLに接続して管理画面を確認してみましょう!
http://[ifcfg-br1に設定したIPアドレス]:9090
ログインできたら管理画面から仮想マシンを作成してみましょう。
仮想マシンの作成
[仮想マシン] 画面から [仮想マシンの作成] をクリックします。
[仮想マシンの新規作成] 画面で [名前] に任意の仮想マシン名を入力し、[インストールタイプ] と [インストールソース] にご利用の環境に合わせたインストールOSを指定します。
(インストールソースは事前に必要なメディアデータを仮想ホストの任意の位置へダウンロードしておきます)
指定ができたら[作成して実行する]をクリックします。
[仮想マシン] 画面に戻りますので [仮想マシン名] をクリックします。
仮想マシンのコンソールから[展開]をクリックするとコンソールが全画面で開きますのでOSをインストールします。
インストールが完了するとSSHにて仮想マシンにて設定したIPアドレスへ接続できるかと思います。
以上で仮想マシンの作成完了です!
仮想ホストサーバーにて確認
作成した仮想マシンのイメージはデフォルトでは以下のディレクトリに格納されています。
ls -al /var/lib/libvirt/images/test.qcow2
-rw------- 1 qemu qemu 10739318784 8月 2 17:21 /var/lib/libvirt/images/test.qcow2
libvirtを管理できるvirshコマンドでインストールした仮想マシンの一覧が確認できます。
先ほど作成した仮想マシンが「実行中」として表示されています。
「–all」オプションを付けると停止中の仮想マシンも一覧に表示されます。
virsh list --all
Id 名前 状態
---------------------
2 test 実行中
virshコマンドで仮想マシンの停止と起動ができます。
Cockpitでの操作がうまく反応しない場合などはvirshコマンドで強制的に操作する場合があります。
・停止
virsh shutdown test
・起動
virsh start test
仮想マシン設定のバックアップやマシンイメージのコピーなどvirshコマンドでできることは他にもたくさんあります。
Cockpitが対応していないKVMの深い領域の操作などはvirshコマンドで行う必要がでてきますので、別の機会に解説できればと思います。
スペース・アイでの活用事例
最後に弊社でのKVMでの仮想環境の活用事例も少しご紹介させて頂きます。
弊社では、Redhat系のOSで作った仮想ホストにて、Ubuntu、CentOS、Redhat、AlmaLinuxの仮想ゲストを運用することが多いです。
仮想環境内にリアルタイムでデータを同期するNASを構成したり、大量のメール配信サーバーを冗長構成で構築したりと様々な用途に利用しています。従来であれば大量の物理サーバーを用意し、設置、配線、通電テストと、運用までにたくさんの工程がありましたが仮想環境内に作業可能となり大幅なコストダウンにもつながります。
仮想ホストに複数のNICを搭載し、バックアップ用、データ同期用、LAN通信用などセグメントを分けてスループットを確保しつつセキュアでリソース効率の良い形でネットワークを設計構成する事が多いです。稀な用途としては、仮想ホスト内の通信は物理NICを介さず超高速なので、高スループットが要求される場合に一旦仮想ホスト内で完結させ、遅延が許容される経路で集約するなどする事もあります。
いいですね仮想化。
KVMによる仮想ホストの開発、運用については様々な用途で利用しており、10年以上の実績があります。
VMwareからの移行、既存環境のリプレイスや新規導入などでKVM仮想化をご検討の際は、是非一度ご相談ください。