9.3. Oracle VM VirtualBox デスクトッププロバイダ

9.3.1. Windows 7 のオーディオドライバが自動的にインストールされないのはなぜですか
9.3.2. Oracle VM VirtualBox のインストールが「インストール後スクリプトが正常に完了しませんでした」というエラーで失敗します
9.3.3. デスクトッププロバイダに Oracle VM VirtualBox ホストを追加しようとすると、エラーが発生します
9.3.4. すべての Oracle VM VirtualBox リリースが Oracle VDI 互換ですか
9.3.5. Oracle VM VirtualBox でホストされるデスクトップが表示されるのに起動しません
9.3.6. My Oracle VM VirtualBox デスクトップの時間が大幅に遅れます
9.3.7. Oracle VM VirtualBox の高可用性要件は何ですか
9.3.8. VirtualBox ユーザーのパスワードを変更するには、どのようにしますか
9.3.9. Internet Explorer でテキストがぼやけます
9.3.10. デスクトッププロバイダにストレージを追加するときに、クリティカルアラートが表示されます
9.3.11. デスクトッププロバイダからストレージを削除できません
9.3.12. ストレージを追加しようとすると「クラスタを停止できません」というエラーで失敗します

9.3.1. Windows 7 のオーディオドライバが自動的にインストールされないのはなぜですか

32 ビット Windows 7 には、Oracle VM VirtualBox でエミュレートされるオーディオハードウェア (AC'97) 用のドライバは付属していません。ただし、Windows Update を実行すると、適切なドライバが自動的に取得され、問題が解決するはずです。更新後、リブートすると、オーディオが動作するようになるはずです。

64 ビットバージョンの Windows 7 の場合は、Realtek AC'97 ドライバをダウンロードしてオーディオを有効にする必要があります。

ダウンロード手順については、http://www.realtek.com.tw/downloads を参照してください。

9.3.2. Oracle VM VirtualBox のインストールが「インストール後スクリプトが正常に完了しませんでした」というエラーで失敗します

Oracle VM VirtualBox をインストールしようとすると、コンソールに次のエラーが表示されることがあります:

## Executing postinstall script.
Configuring VirtualBox kernel modules...
VirtualBox Host kernel module unloaded.
devfsadm: driver failed to attach: vboxdrv
Warning: Driver (vboxdrv) successfully added to system but failed to attach
can't load module: No such device or address
## Aborting due to attach failure.
## Configuration failed. Aborting installation.
pkgadd: ERROR: postinstall script did not complete successfully

Installation of <SUNWvbox> partially failed.

このエラーは、通常、以前のリリースの VirtualBox がまだインストールされている場合に表示されます。VirtualBox を削除してみてください (./vb-install -u)。その後、次のパッケージが削除されていることを確認してください:

  • SUNWvbox

  • SUNWvboxkern

リブート後、インストールを再度試みてください。

9.3.3. デスクトッププロバイダに Oracle VM VirtualBox ホストを追加しようとすると、エラーが発生します

デスクトッププロバイダに Oracle VM VirtualBox ホストを追加しようとすると、エラーが発生することがあります。Oracle VDI Manager で、構成ウィザードの「ホストの指定」または「証明書の検証」の手順でエラーアラートが表示されることがあります。

「ホストの指定」の手順

ホストの詳細を入力すると、次のアクションが実行されます:

  • ホストのオペレーティングシステムが検証されます。

  • ホストの DNS 名 (DNS 名が使用されている場合) が解決されます。

  • ホストの SSL および SSH 証明書が取得されます。

すべてのホストは同じオペレーティングシステムを実行しなければならないため、オペレーティングシステムが一致しません」というメッセージが表示される場合は、そのデスクトッププロバイダにホストを追加できないことを意味します。ストレージタイプの可用性と使用方法が異なるため、Oracle VM VirtualBox デスクトッププロバイダで同じオペレーティングシステムを使用する必要があります。Oracle Solaris 仮想ホストと Oracle Linux 仮想ホストを混在させて使用する場合は、両者に別々のデスクトッププロバイダを作成する必要があります。

ホスト名の解決時またはホストへのアクセス時に、DNS エラーが原因でエラーが発生することがあります。これが起こった場合は、次を確認してください:

  • SSH ポートや SSL ポートを含め、入力したすべての情報が正しいことを確認します。

    VirtualBox のインストール時に SSL ポートを指定します。

  • Oracle VDI ホストで nslookup <hostname> コマンドを使用することによって、Oracle VDI ホストが該当するホストを解決できることを確認します。

  • 該当するホストが実行されていることと、SSH サービスが起動していることを確認します:

    # svcs svc:/network/ssh:default

    このサービスをオンラインにすることをお勧めします。サービスが「maintenance」と示された場合は、次を使用してリセットしてみてください:

    # svcadm clear <service_frmi>

「証明書の検証」の手順

「証明書の検証」のステップでのエラーは、VirtualBox Web サービスにアクセスできないこと、または VirtualBox Web サービスが実行されていない可能性があることを意味します。

次のコマンドを使用して、VirtualBox Web サービスがオンラインになっていることを確認します:

# svcs svc:/application/virtualbox/webservice:default

サービスが保守モードになっている場合は、次のコマンドを使用してサービスを削除し、再度ステータスを確認します:

# svcadm clear svc:/application/virtualbox/webservice:default

サービスがオフラインの場合は、次のコマンドを使用して有効にします:

# svcadm enable svc:/application/virtualbox/webservice:default

9.3.4. すべての Oracle VM VirtualBox リリースが Oracle VDI 互換ですか

いいえ。サポート対象の詳細は、「Oracle VM VirtualBox のシステム要件」を参照してください。

仮想マシンテンプレートをラップトップなどのローカルに作成する場合は、Oracle VM VirtualBox デスクトッププロバイダホストにインストールしているものと同じリリースを使用してください。これにより、正しいバージョンの Guest Additions が確実にインストールされ、仮想マシンの XML 構成ファイルの Oracle VDI へのインポートを妨げる可能性がある、それらのファイルとの非互換問題を回避できます。

9.3.5. Oracle VM VirtualBox でホストされるデスクトップが表示されるのに起動しません

まれに、デスクトップが Oracle VM VirtualBox ホストに登録されたままで電源切断されることがあります。構成は Oracle VDI データベースに保存されており、データはすべてストレージホストにあるため、2、3 分以上この状態にあるデスクトップは必要に応じて VirtualBox ホストから安全に削除できます。デスクトップを VirtualBox から手動で登録解除するときは、必ずデスクトップのディスクイメージも登録解除してください。

解決手順:

  1. VirtualBox のインストール時に指定したユーザー (通常は「root」) としてログインします。

  2. 仮想マシンの UUID を調べます:

    • VBoxManage list vms を実行します。

    • または、Oracle VDI Manager を使用して、「デスクトップのサマリー」タブに表示される ZFS ボリューム名を取得します。UUID は、スラッシュに続く文字列です (例: f3ced2bb-d072-4efc-83c9-5a487872919d)。

  3. VirtualBox ホストで仮想マシンを登録解除するには (このアクションでは Oracle VDI デスクトップは削除されません)、次を実行します:

    VBoxManage unregistervm <uuid> -delete
  4. VirtualBox ホストで仮想ディスクを登録解除するには (このアクションでは Oracle VDI デスクトップは削除されません)、次を実行します:

    VBoxManage unregisterimage disk <uuid>

9.3.6. My Oracle VM VirtualBox デスクトップの時間が大幅に遅れます

Windows では、ランダムアプリケーションによってタイマーの周波数をデフォルトの 100Hz (Oracle Solaris プラットフォームで非常に高い VM パフォーマンスを実現) からそれより高い任意の値 (通常は 1kHz) に変更できます。

一般に、VBox.log (~/.VirtualBox/Machines/VDA/<VMNAME>/Logs/VBox.log) で「PIT: mode=... (ch=0)」を含む最後の行を検索すると、現在のタイマー精度を正確に調べることができます。VM に割り当てられている CPU の数がデフォルト (1) のままであるかぎり、これはすべてのゲスト OS に有効です。これは Oracle VDI で使用されるほとんどの構成に対応しているはずです。

典型的な行は、PIT: mode=2 count=0x2ead (11949) - 99.85Hz (ch=0) および PIT: mode=2 count=0x4ad (1197) - 996.81Hz (ch=0) です。

高タイマー精度を要求するアプリケーションが 1 つだけであると仮定した場合、実行中のすべてのアプリケーションを 1 つずつ終了し、ログファイルでタイマー精度の低下を監視することで、そのアプリケーションを特定できます。これは即座にわかります。

また、通常、prstat の出力からも、どの VM プロセスがほかのプロセスより多くの CPU 時間を消費しているかがわかります。これにより、一部の VM だけで 1kHz のタイマー精度を使用する場合は、対象の数を減らすことができます。

通常、Oracle VM VirtualBox ホスト上の VM の数がサーバー内の (実) CPU コアの数を超えるまで、タイマー精度に起因するパフォーマンスの問題は発生しません。その理由は、CPU コアが完全にビジー状態になるような状況を VirtualBox ができるかぎり回避しようと試みるためです。このような VM が多数存在する場合は、相互にブロックされ、VM の時間が本来より大幅に遅れるという現象が顕著に現れます。

9.3.7. Oracle VM VirtualBox の高可用性要件は何ですか

Oracle VM VirtualBox 仮想化プラットフォームで高可用性を実現するには、少なくとも 2 台の VirtualBox ホストが必要です。1 台の VirtualBox サーバーが停止した場合は、既存のすべてのデスクトップセッションが終了します。その場合、使用可能なメモリーが十分存在するかぎり、ユーザーの要求に応じて、終了したセッションが残りの VirtualBox サーバー上で再起動されます。

Oracle VDI、Sun Ray Software、および MySQL で高可用性を実現するには、2 台の Oracle VDI ホストが必要です。このような冗長性をサポートするハードウェア構成の詳細は、「Oracle VDI Center およびホストについて」を参照してください。

9.3.8. VirtualBox ユーザーのパスワードを変更するには、どのようにしますか

Oracle VM VirtualBox ホストをデスクトッププロバイダに追加するとき、そのホストで VirtualBox を実行するユーザーのユーザー名とパスワードを指定します。これらの資格は、VirtualBox がインストールされたときに指定したものと同じ資格です。Oracle VDI は、SSH を使用して VirtualBox ホストにアクセスする場合と、VirtualBox Web サービスにアクセスする場合にこれらの資格を使用します。

VirtualBox ユーザーのパスワードを変更する前に、VirtualBox ホストの保守モードを有効にして、ユーザーの作業の中断を最小限に抑えることをお勧めします。

VirtualBox ユーザーのパスワードを変更するには、次の手順をすべて実行する必要があります:

  1. UNIX ユーザーのパスワードを変更します。

    1. VirtualBox ホストに root ユーザーまたは VirtualBox ユーザーとしてログインします。

    2. VirtualBox ユーザーのパスワードを変更します。

      パスワードの変更に関する組織の標準ポリシーに従ってください。

      たとえば、passwd コマンドを使用するには:

      # /usr/bin/passwd
      passwd: Changing password for root
      New Password:
      Re-enter new Password:
      passwd: password successfully changed for root
      
  2. VirtualBox Web サービスユーザーのパスワードを変更します。

    1. VirtualBox ホストに root ユーザーとしてログインします。

    2. 新しいパスワードのパスワードハッシュを生成します。

      VirtualBox コマンド行を使用してハッシュを生成できます。

       # VBoxManage internalcommands passwordhash <Password>

      例:

      # VBoxManage internalcommands passwordhash T0pSecr3t
      Password hash: bfd5bde76fcee3c2e6fc583cd0541569a1d35d551c19d99b36a0ee7628b4b114
      
    3. Web サービスユーザーのパスワードハッシュを変更します。

      VirtualBox Web サービスは、VBoxAuthSimple ライブラリを使用して Web サービスユーザーを認証します。ハッシュされたパスワードは、VirtualBox のグローバルな追加データ項目に格納されます。

      # VBoxManage setextradata global VBoxAuthSimple/users/<User> <PasswordHash>

      例:

      # VBoxManage setextradata global VBoxAuthSimple/users/root \
      bfd5bde76fcee3c2e6fc583cd0541569a1d35d551c19d99b36a0ee7628b4b114
      
    4. 格納されている VirtualBox Web サービスユーザーのパスワードハッシュが正しいことを確認します。

      # VBoxManage getextradata global VBoxAuthSimple/users/<User>

      例:

      # VBoxManage getextradata global VBoxAuthSimple/users/root
      Value: bfd5bde76fcee3c2e6fc583cd0541569a1d35d551c19d99b36a0ee7628b4b114
      
  3. Oracle VDI で VirtualBox ホストのパスワードを変更します。

    1. Oracle VDI Manager で、「デスクトッププロバイダ」に移動します。

    2. VirtualBox ホストを含むデスクトッププロバイダを選択します。

    3. ホスト」タブに移動し、ホストを選択して、「編集」をクリックします。

    4. 「パスワード」フィールドに新しいパスワードを入力し、「次へ」をクリックして、変更済みの詳細を確認します。

    または、vda provider-host-setprops コマンドを使用してパスワードを変更します。

9.3.9. Internet Explorer でテキストがぼやけます

Internet Explorer でテキストがぼやける場合、Oracle VM VirtualBox でその領域がほぼ全画面のビデオとして間違って解釈されている可能性があります。この問題は、Internet Explorer でブラウザウィンドウが再描画される方法に起因して発生します。

この問題を回避するには、Oracle VM VirtualBox でビデオとして検出および送信される領域を制限します。そのためには、次のコマンドを使用して、プールのプロパティーを構成します:

/opt/SUNWvda/sbin/vda pool-setprops -p limited-rca-detection=enabled <PoolName>

このプロパティーを有効にすると、800 x 600 より大きく、全画面より小さい画面領域は縮小されなくなります。

9.3.10. デスクトッププロバイダにストレージを追加するときに、クリティカルアラートが表示されます

Oracle VM VirtualBox デスクトッププロバイダを作成したとき、または既存のプロバイダにストレージを追加して、Oracle Linux プラットフォームで VirtualBox ホストを実行したときに、Oracle VDI Manager にクリティカルアラートが表示されることがあります。コマンド行に、プロバイダのステータスが critical として表示されます。このアラートの解除には長い時間がかかるため、エラーが発生したように見える場合があります。

このアラートは、構成されたストレージの使用の準備がまだできていないために表示されます。VirtualBox ホストが Oracle Linux プラットフォームで実行される場合、Oracle VDI は Oracle Cluster File System version 2 (OCFS2) を使用してストレージをフォーマットします。このクリティカルアラートは、ストレージのフォーマットにかかる時間と同じだけ表示されます。これは Sun ZFS および iSCSI ストレージタイプのみに影響し、ローカルファイルシステムおよびネットワークファイルシステムのストレージタイプは影響を受けません。

9.3.11. デスクトッププロバイダからストレージを削除できません

問題: Oracle VDI Manager の「ストレージ」タブの「削除」ボタンが無効になっているため、デスクトッププロバイダからストレージを削除できません。

解決方法: 最初にストレージの保守モードを有効にする必要があります。これにより、Oracle VDI はデスクトップを別のストレージホストに移行し、必要に応じて OCFS2 ファイルシステムのマウントを解除します。ストレージが保守モードになったら、削除できます。

ストレージがローカルストレージにあり、複数の仮想ホストが存在する場合、Oracle VDI は各ホストの空き領域とデスクトップ数を監視できるように、各仮想ホストのローカルストレージを自動的に作成します。ローカルストレージを削除する前に、すべてのローカルストレージの保守モードを有効にする必要があります。

9.3.12. ストレージを追加しようとすると「クラスタを停止できません」というエラーで失敗します

問題: Oracle Linux VirtualBox デスクトッププロバイダに iSCSI または Sun ZFS ストレージをはじめて追加しようとすると、次のエラーで失敗します: 「ハートビート領域がまだアクティブなため、クラスタを停止できません」 エラー。この問題は、実行中の Oracle Cluster File System version 2 (OCFS2) クラスタの停止が失敗することによって発生します。

解決方法: OCFS2 サービスを停止し、iSCSI ターゲットを切断してから、再度ストレージを追加します。

OCFS2 サービスを停止して iSCSI ターゲットを切断するには、デスクトッププロバイダの各仮想ホストで次の手順を実行します:

  1. root で仮想化ホストにログインします。

  2. OCFS2 サービスを停止します。

    # /etc/init.d/ocfs2 stop

    このコマンドは、すべての OCFS2 ファイルシステムのマウントを解除し、すべての OCFS2 アクティビティーを停止するはずです。

  3. OCFS2 ファイルシステムが /vdi/<mount> にマウントされていないことを確認します。

    mount コマンドを使用して、その場所に何かマウントされていないかを確認します。

    ファイルシステムのマウントが解除されない場合は、次のコマンドを使用してマウントの解除を試みます:

    # umount /vdi/<mount>
    

    OCFS2 ファイルシステムのマウントを解除できない場合は、デバイスがビジー状態であることが原因です。次のコマンドを使用して、マウントで実行されているすべてのプロセスを停止します:

    # fuser -k /vdi/<mount>
    
  4. O2CB クラスタサービスを停止します。

    # /etc/init.d/o2cb offline 
    # /etc/init.d/o2cb unload
  5. iSCSI ターゲットを切り離します。

    iscsiadm -m session コマンドを使用して、ホスト上の iSCSI ターゲットを一覧表示します。例:

    # iscsiadm -m session
    tcp: [1] 192.168.1.100:3260,1 iqn.1986-03.com.sun:vdi:j4c4iwosixizjpniicm9:y29qlvunnmdnes5jolyu
    

    この例では、セッション ID が角括弧内に表示され [1]、続いて iSCSI サーバーの IP アドレスとポート (192.168.1.100:3260)、iSCSI ターゲット名 (iqn.1986-03.com.sun:vdi:j4c4iwosixizjpniicm9:y29qlvunnmdnes5jolyu) の順に表示されます。

    iSCSI ターゲットからログアウトします。

    # iscsiadm -m node -T <targetname> -p <ip>:<port> --logout
    

    例:

    # iscsiadm -m node -T iqn.1986-03.com.sun:vdi:j4c4iwosixizjpniicm9:y29qlvunnmdnes5jolyu \
    -p 192.168.1.100:3260 --logout

    iSCSI ターゲットを削除します。

    # iscsiadm -m node -T <targetname> -p <ip>:<port> -o delete
    

    例:

    # iscsiadm -m node -T iqn.1986-03.com.sun:vdi:j4c4iwosixizjpniicm9:y29qlvunnmdnes5jolyu \
    -p 192.168.1.100:3260 -o delete