Veertu Incより米国時間2017年6月8日、開発過程にある macOS(OS X)ベースの仮想環境構築ツール「Anka」の最新プレビュー版に相当する「Anka Public Beta」がリリースされ、現在Veertuによる公式ダウンロードページを通じて、英語版のバイナリーパッケージが入手可能となっています。
Table of Contents
「macOS High Sierra」をゲストOSとして実行可能
プライベートベータのステージをクリアし、パブリックベータへと移行した ビジネスクラスの仮想化ソリューション「Anka」は、macOS、iOS開発者を主たる対象とした、再現可能な同一の開発環境を作成、配布するためのツールとして位置付けられています(事前に構成されたVMテンプレートから、オンデマンドインスタンスをプロビジョニング可能とし、ローカルビルド、テストの実行、及び生産性の向上等を支援します)。
構成ツールとして、Macのプライベートクラウドに隔離された仮想環境を構築、管理するための「Anka Build」、展開、実行するための「Anka Run」の2種のアプリケーションパッケージが提供されており、何れもCLI(コマンドラインインターフェイス)を通じて実行可能となっています(ウインドウマネージャーにてGUIを制御します)。また、「WWDC 2017(Worldwide Developers Conference 2017)」において発表され、現在ベータ版(Developer Beta)が提供されている Appleによる次世代デスクトップオペレーティングシステム「macOS High Sierra(macOS 10.13)」を ゲストOSとして試験的にインストールして実行する事が可能となっており、ハイパーバイザー(Anka Hypervisor)における主な特徴として、以下の項目等が示されています。
- 「Anka Build」は15MB、「Anka Run」は8MBの軽量なフットプリントにて、ホストコンピューター(Mac)においてネイティブアプリケーションとして実行可能。高速、且つレスポンシブなパフォーマンスを実現し、専用のレジストリーに仮想マシンをプッシュ
- 別途にカーネルエクステンション(.kext)を組み込む必要なく、「OS X Yosemite(OS X 10.10)」より実装された「hypervisor.framework」を通じて、ホストOSからmacOS(ゲストOS)に対して リソーススケジューリング、電源管理(パワーマネジメント)等を提供可能(カーネルレベルでの強制的な介入がないため、ネイティブアプリケーションと同じアプローチにて仮想化リソースの管理を行う事が可能)
- 特許出願中とされる「INSTANT START(インスタントスタート)」テクノロジーによって、仮想マシンを1秒未満で起動可能
- 仮想マシンにおけるディスクパフォーマンス、ネットワークパフォーマンスを向上させるための パラバーチャライゼーション(準仮想化)ドライバーを提供(インストールプロセスは、Parallels Desktop、VMware Fusion、VirtualBoxのように自動化されておらず、手動で行う必要がある)
- サンドボックスモデル(Sandbox)は採用しておらず、デスクトップ版(Veertu Desktop)において、同モデルによる制限から実装が遅れていた ブリッジネットワーク、USB機能をサポート(macOS(ゲストOS)に対してiOSデバイスを接続可能とする、USBパススルーに対応)
- 「Anka controller」パッケージに含まれるDockerfileを使用して、DockerコンテナーにAnka Controllerをセットアップする事が可能。Anka BuildノードをAnka Controllerクラウドに登録し、以前にインストールしたAnkaレジストリーと通信する事ができるようにコントローラーを構成する事によって、プライベートなmacOSインスタンス、及びテストクラウドが構築される(コマンドラインにてJenkinsを使用する場合には、JenkinsマスターサーバーにAnka Jenkinsプラグインをインストールして、Ankaクラウドにおいてジョブを実行する)
- コードベースとして、FreeBSDのbhyveからポートされたxhyveハイパーバイザー、及びEDK IIを使用
「Terminal(ターミナル、/Applications/Utilities/Terminal.app)」を通じたコマンドラインでの操作を基本としているため、現時点でGUIのクライアントアプリケーションは存在せず、コンソールはVNCクライアント(ankaview)を使用しています。また、デスクトップ仮想化ソフトウェア「Veertu Desktop」と同様に「hypervisor.framework」を仮想化レイヤーとして使用しているため、ホストOSにおけるシステム要件は「OS X Yosemite(OS X 10.10)」以降(「macOS Sierra(macOS 10.12)」推奨)となっています。
macOSゲスト(High Siera Beta)のインストール手順
「macOS High Siera Beta(ゲストOS)」をインストールする場合の手順は、以下の通りとなっています。
- 「anka create-disk」コマンドを実行し、仮想ディスクを作成(完了メッセージと共にディスクIDを出力)
- 仮想マシンに割り当てるメモリー(RAM)容量、CPUカウント、仮想マシン名を設定(仮想ディスク作成時に出力されたディスクIDを”–image-id”に設定)
- 仮想マシン設定の完了後に、「anka view」コマンドにて コンソールのVNCクライアント(ankaview)を起動し、macOS(ゲストOS)の設定を開始(殆どの設定は、ホストOSから引き継がれる)
- 仮想マシン、及びmacOS(ゲストOS)の設定が終了すると、「macOS High Siera Beta(ゲストOS)」のデスクトップが表示されるので、このタイミングで「System Preferences(システム環境設定)」>「Security & Privacy(セキュリティとプライバシー)」>「General(全般)」を開き、Veertuによる機能拡張を許可
- 仮想マシンをシャットダウンした後に、コマンドライン(-anka run highsiera ls -l)を通じて準仮想化ドライバー等の検証を実施
シャットダウンは、「macOS High Siera Beta(ゲストOS)」のAppleメニュー>「Shut Down…(システム終了)」から実行可能な他、コマンドラインを通じて仮想マシンの起動(-anka start vmname)、終了(-anka stop vmname)、ステータスの確認(-anka list)を制御する事が可能となっています。
尚、ゲストOS、ホストOS間における共有フォルダーを作成する場合には、別途にライブラリー(osxfuse)をインストールし、再起動後に「System Preferences(システム環境設定)」を通じて、アプリケーションの使用許可を設定する必要があります。
Anka PV(準仮想化ドライバー)のインストール
「macOS High Sierra Beta」では、サードパーティによる署名済みドライバーの自動インストール、ロードを防止するために、それらは ユーザーによって明示的に有効化される必要があります。そのため、Ankaの自動インストール機能を使用して仮想マシンを作成するだけでは不十分となっており、仮想マシンの作成後に Anka PV(Paravirtualization)ドライバーを有効化するための追加のセットアップを行う必要があります。設定のステップは以下の通りとなります。
- Veertuの公式サイトより、「Anka Beta」をダウンロードしてインストール
- Apple Developer Programから「Install macOS 10.13 Beta.app」をダウンロード
- 仮想マシンを作成した後に、Ankaの自動インストール機能を使用して「macOS High Sierra Beta」をゲストOSとしてインストール(「Terminal(ターミナル)」を通じて「anka create-disk –size 40G –app ~/Desktop/Install\ macOS\ 10.13\ Beta.app/」コマンドを実行)
- 上記のプロセスが正常に完了したことを確認(disk created successfully at: diskid.ank)した後に、「anka create」コマンド(anka create –image-id diskid –ram-size 2G –cpu-count 2 hisierra)を実行
- 「anka view hisierra」コマンドを実行して、「macOS High Siera Beta(ゲストOS)」のセットアップを完了
- 「System Preferences(システム環境設定)」>「Security & Privacy(セキュリティとプライバシー」において、Veertu Incによる拡張機能を許可
- 仮想マシンを起動した後に、「macOS High Siera Beta(ゲストOS)」における「Terminal(ターミナル、/Aplications/Utilities/Terminal.app)」を通じて、以下のコマンドを実行
- 仮想マシン(macOS(ゲストOS))を再起動
- 「anka view hisierra」コマンドを実行して、コンソールウインドウに移動
- 「System Preferences(システム環境設定)」>「Security & Privacy(セキュリティとプライバシー)」に移動して、Benjamin Fleischer氏による「osxfuse extension」を許可(共有ファイルシステム機能に向けて、サードパーティによるosxfuseを使用しているため)
- 仮想マシンを停止した後に、再起動
- セットアップを確認するために、macOS(ホストOS)から以下のコマンドを実行
cd /Library/Filesystems/osxfuse.fs/Contents/Extensions
sudo ln -ls 10.9 10.13
anka run hisierra ls -l
カレントフォルダーの内容が表示されている場合には、当該の仮想マシンはAnka PVドライバー、ゲストアドオンにて完全に構成されており、すぐに使用する事が可能となっています。
「hypervisor.framework」、特権の分離について
「OS X Yosemite(OS X 10.10)」より実装された「hypervisor.framework」は、リソーススケジューリング、及び電源管理(パワーマネジメント)を行うためのAPIを提供しているため、同フレームワークを使用する仮想化ソフトウェアでは、(これらの機能を実装するために)別途にカーネルエクステンション(.kext)を追加する必要はありません。また、カーネルレベルでの強制的な介入も発生しないので、他のネイティブアプリケーションと同じ方法で、仮想化リソースの管理を行う事が可能となっています。
また、動作するアプリケーション、ツール、デーモンの機能が不適切に利用されないようにするために、必要に応じて特権の分離を行っています(特権が必要な場面になると、特権ヘルパーを利用してダイアログを表示し、ユーザーに同意を求めるようにしています)。