「Anka Beta(Veertu)」リリース、「High Sierra」に対応

投稿者: | 2017-06-12

「macOS High Sierra」をゲストOSとして実行可能

Veertu Incより米国時間2017年6月8日、開発過程にある macOS(OS X)ベースの仮想環境構築ツール「Anka」の最新プレビュー版に相当する「Anka Public Beta」がリリースされ、現在Veertuによる公式ダウンロードページを通じて、英語版のバイナリパッケージが入手可能となっています(dmg)。

プライベートベータのステージをクリアし、この度パブリックベータが開始された ビジネスクラスの仮想化ソリューション「Anka」は、macOS、iOS開発者を主たる対象とした、再現可能な同じ開発環境を作成・配布するためのツールとして位置付けられています(事前構成されたVMテンプレートから、環境のオンデマンドインスタンスをプロビジョニング可能とし、ローカルビルド、テストの実行、及び生産性の向上等を支援します)。

構成ツールとして、Macのプライベートクラウドに隔離された仮想環境を構築、管理するための「Anka Build」、展開、実行するための「Anka Run」の2種のアプリケーションパッケージが提供されており、何れもCLI(コマンドラインインターフェイス)を通じて実行可能となっています(ウインドウマネージャにてGUIを制御)。また、「WWDC 2017(Worldwide Developers Conference 2017)」において発表され、現在ベータ版(Developer Beta)が提供されている Appleによる次世代デスクトップオペレーティングシステム「macOS High Sierra 10.13」を ゲストOSとして試験的にインストール実行可能となっており、ハイパーバイザ(Anka Hypervisor)における主な特徴として、以下の項目等が示されています。

  • Anka Buildは15MB、Anka Runは8MBの軽量なフットプリントにて、Macハードウェアにおいてネイティブアプリケーションとして実行可能。高速、且つレスポンシブなパフォーマンスを実現し、専用のレジストリに仮想マシンをプッシュ
  • 別途にカーネルエクステンション(.kext)を組み込む必要なく、「OS X Yosemite(OS X 10.10)」より実装された「hypervisor.framework」を通じて、ホストOSからmacOSゲストに対して リソーススケジューリング、電源管理(パワーマネジメント)等を提供可能(カーネルレベルでの強制的な介入がないため、ネイティブアプリケーションと同じアプローチにて仮想化リソースの管理を行う事が可能)
  • 特許出願中とされる「INSTANT START(インスタントスタート)」テクノロジによって、仮想マシンを1秒未満で起動可能
  • 仮想マシンにおけるディスクパフォーマンス、ネットワークパフォーマンスを向上させるための パラバーチャライゼーション(準仮想化)ドライバを提供(インストールプロセスは、Parallels Desktop、VMware Fusion、VirtualBoxのように自動化されておらず、マニュアルで行う必要がある)
  • サンドボックスモデル(Sandbox)は採用しておらず、デスクトップ版(Veertu Desktop)において、同モデルによる制限から実装が遅れていた ブリッジネットワーク、USB機能をサポート(macOSゲストに対して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(ターミナル)」を通じたコマンドラインでの操作を基本としているため、現時点でGUIのクライアントアプリケーションは存在せず、コンソールはVNCクライアント(ankaview)を使用しています。また、デスクトップ仮想化ソフトウェア「Veertu Desktop」と同様に「hypervisor.framework」を仮想化レイヤとして使用しているため、ホストOSにおけるシステム要件は「OS X Yosemite(OS X 10.10)」以降(「macOS Sierra 10.12」推奨)となっています。

macOSゲスト(High Siera Beta)のインストール手順

「macOS High Siera Beta(ゲストOS)」をインストールする場合の手順は、以下の通りとなっています。

  1. 「anka create-disk」コマンドを実行し、仮想ディスクを作成(完了メッセージと共にディスクIDを出力)
  2. 仮想マシンに割り当てるメモリ(RAM)容量、CPUカウント、仮想マシン名を設定(仮想ディスク作成時に出力されたディスクIDを”–image-id”に設定)
  3. 仮想マシン設定の完了後に、「anka view」コマンドにて コンソールのVNCクライアント(ankaview)を起動し、macOSゲストの設定を開始(殆どの設定は、ホストOSから引き継がれる)
  4. 仮想マシン、及びmacOSゲストの設定が終了すると、「High Siera Beta(ゲストOS)」のデスクトップが表示されるので、このタイミングで「System Preferences(システム環境設定)」>「Security & Privacy(セキュリティとプライバシー)」>「General(全般)」を開き、Veertuによる機能拡張を許可
  5. 仮想マシンをシャットラウンした後に、コマンドライン(-anka run highsiera ls -l)を通じて準仮想化ドライバ等の検証を実施

シャットダウンは、「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)ドライバを有効化するための追加のセットアップを行う必要があります。設定のステップは以下の通りとなります。

  1. Veertu公式サイトより、「Anka Beta」をダウンロードしてインストール
  2. Apple Developer Programから「Install macOS 10.13 Beta.app」をダウンロード
  3. 仮想マシンを作成した後に、Ankaの自動インストール機能を使用して「macOS High Sierra Beta」をゲストOSとしてインストール(「Terminal(ターミナル)」を通じて「anka create-disk –size 40G –app ~/Desktop/Install\ macOS\ 10.13\ Beta.app/」コマンドを実行)
  4. 上記のプロセスが正常に完了したことを確認(disk created successfully at: diskid.ank)した後に、「anka create」コマンド(anka create –image-id diskid –ram-size 2G –cpu-count 2 hisierra)を実行
  5. 「anka view hisierra」コマンドを実行して、「macOS High Siera Beta(ゲストOS)」のセットアップを完了
  6. 「System Preferences(システム環境設定)」>「Security & Privacy(セキュリティとプライバシー」において、Veertu Incによる拡張機能を許可
  7. 仮想マシンを起動した後に、「macOS High Siera Beta(ゲストOS)」における「Terminal(ターミナル、/Aplications/Utilities/Terminal.app)」を通じて、以下のコマンドを実行
  8. cd /Library/Filesystems/osxfuse.fs/Contents/Extensions
    sudo ln -ls 10.9 10.13
  9. 仮想マシン(macOSゲスト)を再起動
  10. 「anka view hisierra」コマンドを実行して、コンソールウインドウに移動
  11. 「System Preferences(システム環境設定)」>「Security & Privacy(セキュリティとプライバシー)」に移動して、Benjamin Fleischer氏による「osxfuse extension」を許可(共有ファイルシステム機能に向けて、サードパーティによるosxfuseを使用しているため)
  12. 仮想マシンを停止した後に、再起動
  13. セットアップを確認するために、macOS(ホストOS)から以下のコマンドを実行
  14. anka run hisierra ls -l

カレントフォルダの内容が表示されている場合には、当該の仮想マシンはAnka PVドライバ、ゲストアドオンにて完全に構成されており、すぐに使用する事が可能となっています。

「hypervisor.framework」、特権の分離について

「OS X Yosemite(OS X 10.10)」より実装された「hypervisor.framework」は、リソーススケジューリング、及び電源管理(パワーマネジメント)を行うためのAPIを提供しているため、同フレームワークを使用する仮想化ソフトウェアでは、(これらの機能を実装するために)別途にカーネルエクステンション(.kext)を追加する必要はありません。また、カーネルレベルでの強制的な介入も発生しないので、他のネイティブアプリケーションと同じ方法で、仮想化リソースの管理を行う事が可能となっています。

また、動作するアプリケーション、ツール、デーモンの機能が不適切に利用されないようにするために、必要に応じて特権の分離を行っています(特権が必要な場面になると、特権ヘルパーを利用してダイアログを表示し、ユーザに同意を求めるようにしています)。