TL;DR
- ハード・パーティショニングが可能なx86系 仮想サーバー環境として、Oracle Linux KVMが追加された(2019年10月)
- Xenベース+独自管理ツールのOracle VM Server for x86とは異なり、KVMはVMware vSphereに次ぐデファクトなので導入ハードルは低い
- oVirtをベースにした仮想環境管理ツールOracle Linux Virtualization Managerも2019年6月にリリースされた
仮想環境におけるOracleライセンス問題
みなさんも、ご存じのように仮想サーバー環境でOracle製品を利用するときは悩ましいライセンス問題がつきまとう。
Oracle製品を仮想サーバー環境で使用するときは、ゲストOSに割り当てたコア数とは関係なく、サーバーの全プロセッサがカウント対象になる。
ライセンスの詳細は、日本オラクル社もしくは代理店に問い合わせてほしい。
- サーバー仮想化ソフトウェア( Oracle VM 、VMware、Hyper-Vなど)を使用した場合のライセンスカウントはどのようになりますか?
- Oracleライセンス購入ガイド - ライセンスカウントの具体例
- VMware環境における Oracleライセンス監査の実態と対策(前編)
いまどきのIntel Xeon/AMD EPYCプロセッサは、最低でも8物理コア程度は搭載している。課金単位がプロセッサのStandard Editionならば問題ないが、コア数単位のEnterprise Editionでは深刻な問題だ。
さらにクラスタ構成の仮想サーバー環境では、クラスタを構成する全物理サーバーのコア数が対象になる。また近年の仮想サーバーソフトウェアはクラスター越しにライブマイグレーションできるので、その場合にはライブマイグレーション可能なすべての物理サーバーが対象になる。
そのためネットワークを分離し、ライブマイグレーションの範囲を狭めることで、ライセンスの最適化を計るなどの涙ぐましい努力が必要だ。
オンプレミスにおける解決策
オンプレミスにおける解決策としては以下の選択肢がある。クラウドも解決策の一つだが、話が広がるので言及しない。
- Oracle ExadataやOracle Database Applianceでキャパシティ・オン・デマンド(CoD)を利用する
- Oracle VM Server for x86などのハード・パーティショニングが認められる仮想サーバーソフトを使用する
- できるだけコア数の少ない物理サーバーを使用する(仮想化不使用)
この中では1がベストプラクティスだと思うが、それぞれの事情で選択できないこともある。また2は製品がマイナーで選択肢としてリスクがともなう。
Oracle Linux KVMのハード・パーティショニング対応
このような状況下でOracle Linux KVMがハード・パーティショニング・テクノロジーとして認められた。このパーティショニングは、DBのパーティショニングではなく、サーバーのCPU分割機能のことを指している。
KVMはLinux仮想化のデファクトだ。また仮想環境管理ツールのOracle Linux Virtualization Managerは、OSSのoVirtベースで将来性がある(oVirtはKVM版vCenterと考えるとわかりやすい)。Oracle VM Serverよりは、心理的な導入ハードルは低いだろう。詳しくは以下のドキュメントを読んでほしい。
- Partitioning(サーバーのCPU分割機能)を適用した場合、ライセンスはどのようにカウントしますか?
- Oracle Partitioning Policy
- Hard Partitioning with Oracle Linux KVM 特にコレ
- Announcing Oracle Linux Virtualization Manager
- oVirt公式サイト
なお、ハード・パーティショニングを有効にするにはOracle Linux Virtualization Managerとolvm-vmcontrol
による設定が必要だ。コアを固定するのでライブマイグレーションはできないが、その代わりライセンスの最適化が図れる。olvm-vmcontrol
は「Unbreakable Linux Network」もしくはoVirtリポジトリから入手できる。またサポートが必要なときは「Oracle Linux Premier Support」が対応している。
- Oracle Linux 8:oVirt 4.4リポジトリ
- Oracle Linux 7:oVirt 4.3リポジトリ
Oracle Linux KVM補足
Oracle Linux KVMとは、Oracle LinuxにKVM系のパッケージをセットアップしたものを指し、個別の製品では無い。
Oracle Cloud InfrastructureにおけるKVM
KVMを利用するケースはオンプレミスの方が多いだろう。しかしOracle Cloud Infrastructureでも利用できる。おもなユースケースとして以下のことが考えられる。
- オンプレミスの仮想サーバで稼働するゲストVMの移行先として
- 仮想マシンイメージ提供のアプライアンス製品を利用するため
- 開発環境などCPU使用率が低いサーバの集約率を上げるため。Computeでは最低1-OCPU(2CPUスレッド)がミニマムなのでVMではコスト高になる
- Oracle製品をCompute(BM)でBYOLで使用し、ハード・パーティショニングでコア数を制限したいとき
Oracle Linux KVMの使用方法
Oracle Cloud InfrastructureでKVMを使用するときは以下の方法がある。
- Oracle Linuxイメージでインスタンスを作成し、その後にKVMに必要なパッケージをインストールする。つまりオンプレミスと同じ方法
- OCI Provided ImangeもしくはMarketplaceのOracle Linux KVM Imageを使用する
Oracle Linux KVM Imageでは、oci-kvmなどの独自ユーティリティや必要なパッケージやデフォルトインストールされている。ただしoci-kvmは、非Oracle Linux Virtualization Manager環境用のツールだ。
OCI環境におけるKVMは、通常より制限事項があって深いので詳しくは以下のページを参考のこと。
- Getting Started: Oracle Linux KVM Image for Oracle Cloud Infrastructure
- Deploy and Manage Oracle Linux KVM in Oracle Cloud Infrastructure
- Deploy and Manage Oracle Linux KVM and Oracle Linux Virtualization Manager in Oracle Cloud Infrastructure
- Oracle Community: Oracle Linux KVM and Oracle Linux Virtualization Manager
- virt-v2v: automated migration from VMware to Oracle Linux KVM
おわりに
Oracle Linux Blogでは「Top 5 Reasons to Build your Virtualization with Oracle Linux KVM」として次の理由を挙げている。100%の同意はできないが、最後の2つは際立つ特徴と言えるだろう。
- Accelerated deployment with ready to go VMs with Oracle software
- Increased performance and security
- Simplified, easy management of the full stack
- Improved licensing costs through hard partitioning
- Lower licensing and support costs while increasing benefits