VMwareの最近のブログ記事

前回、MacBookの中に、「快適な仮想空間」を作ったところまで書きましたが、ホストOSであるLeopardを中心にするのが、最大の目標です。まずは、私が使っているものの中で、どうしてもWindowsでしか動かせないものを挙げてみます。

  • JDK1.4をベースとするもの(e.g. WebLogic 8.1)
  • Internet Explorer
  • 一部のMS Office文書
  • Adobe Acrobat(PDF Writer)
Office文書に関しては、ほとんどのものは、Office for Macで問題なく使えるのですが、以下のものについては、Windows版Officeでないと、正しく扱えないようです。

  • VBAマクロが含まれているもの
  • 複雑な描画を含むExcelワークシート
PDF Writerについては、MacOSXのプレビュー機能で事足りることがほとんどですが、WebページのハイパーリンクをPDFにそのまま引き継ぎたいような場合には、Acrobatが有用なので、そのまま使いたいところです。それも、Mac版のAcrobatを新たに購入すれば、解決できそうですが。。。

こうやって考えてみると、Windowsがないと困る場面というのは、意外と少ないですね。私の場合は、過去の資産と、Windowsでのみ使用可能な機能を積極的に利用しているものに集約されるので、VMware上のゲストOSとしてWindowsが動くようになっていれば、まったく問題ないです。私の作業の主体も、どんどんLeopardに比重が移ってきています。

今回の移行は、ここ最近のインターネット技術、ハードウェア性能、仮想マシン技術などの向上によって、実現することができたと思います。それと同時に、IT環境の中でのOSの位置づけが、かなり変わって来たことを、強く感じましたし、今後もその流れは止まらないかもしれないですね。

とりあえず、Windows環境を、仮想マシンとして移行する作業が完了し、私のMacBook(Core2Duo 2.4GHz + 4GBメモリ)の上では、3つのOSが同居することとなりました。
  • ホストOS: MacOSX Leopard
  • 仮想マシンA: ゲストOS=WindowsXP、メモリ: 1.25GB
  • 仮想マシンB: ゲストOS=Ubuntu Linux、メモリ: 384MB
これは、まるで3台のマシンをひとりで占有していると錯覚するような、楽しい環境ですが、快適に操作するためには、少しコツがいります。

キーボード/マウスショートカットのコンフリクトに関する問題を解決する。

デフォルトの設定では、VMware Fusionの仮想マシンを実行している場合でも、Leopard側で設定されているショートカットキーが、ゲストOS側の操作よりも優先されます。例えば、ゲストOSがWindowsの場合、control + クリックは、連続しない項目を複数選択ですが、MacOSXでは、マウス右クリックです。 そのままでは、[control + クリック]で、Explorerで連続しない複数ファイルを選択することができません。これを回避したい場合は、以下の通り設定しておくといいでしょう。

  • Expose、Spacesなどのショートカットキーを、commandキーとの併押下などに変更する。
  • VMware Fusionの環境設定で、「Mac OS マウスショートカットを有効にする」をOFFにする。

Spacesをうまく活用する。

VMware Fusion専用の操作スペースを用意することで、MacOSXとゲストOSの画面を、ワンタッチキー操作で行き来することができるようになります。まるで、一昔前のディスプレイ切換え装置を使っているようなイメージです。 ここまでの環境が作れただけでも、十分に移行した価値ありですね。あと、驚くべきは、ゲストOSのパフォーマンスです。旧PC(Centrino 1,4GHz + 2GBメモリ)にくらべて、JavaアプリケーションのAntビルドの所要時間が、30%から50%くらい速くなりました。 次回は、「Macでできることは、できるだけMacでやる」をテーマに、書いてみたいと思います。

Macへの移行を決断した、最も大きな「物理的」きっかけは、VMware Fusionが普通に動いているのを見て、今まで使っていたPCの環境を、そのまま移行できそうだと感じたことです。それによって、「それまで行っていた仕事を、そのまま継続できる環境を維持する。」という、最も重要な要件は満たされると確信しました。
実際の移行作業は、VMware社から提供されている、VMware Converterという移行ツールを使って行いました。VMware Converterは、大きく分けると以下の3パターンの環境から、VMwareの仮想マシンに変換することができます。


  • 動作している物理マシンを丸ごと

  • VirtualPC などの他の形式の仮想マシン

  • Symantec Ghostなどで作られた、フルバックアップイメージ
VMware Converterを使用することで、ふつうなら上記のいずれかで簡単に、仮想マシンを作成することができます。ところが、私の場合は、ちょっとの事前準備が足りず、ストレートには行うことができなかったのです。そのときの反省を踏まえ、実際にやってみたことを、簡単にまとめてみました。

元のPCで使用していたVMware仮想マシンの切り出し
以前の投稿 で書きましたが、Ubuntu Linux + Oracle XEという組合せの仮想マシンを使っていました。それはそのままMacBookにコピーし、VMware Fusionで単純に開くだけで、すぐに起動することができました。VMware Toolsのアップデートを促すメッセージが出るので、ヘルプドキュメントの「VMware Tools のインストールとアップデート」に従って実行すれば移行完了です。これは簡単ですね。実はそもそも、この仮想マシンを作っておいたのは、Macへの移行を簡単にするための布石だったので、その狙いはみごとにヒットしました。

動作中のPC環境を丸ごと移行する方法にチャレンジ
まずは、移行元のPCに、VMware Converterをインストールし、起動します。
あとは、VMware Converter 3.0 User's Manual のP.31 [VMware Converterによるマシンのインポート]にしたがって操作していきます。

手順1:ソースの選択
[ソースとして物理マシンを選択する]が、このパターンに該当します。

手順2:新規仮想マシンのデスティネーションの選択
[ソース マシンとしてWorkstation仮想マシンをインポートする]で出力先などの設定を行います。

インポート タスク作成の終了
ここまでたどり着けば、あとはそのまま終わるまで放置します。かなり時間がかかるので、金曜日の夜に実施することをお奨めします!

私は、出力先として、とりあえず手持ちの2.5inのUSB外付けHDDを使用したのですが、何度やっても途中でエラーが発生して、最初の週末は、移行を断念しました。そのHDDへの書き込み処理が遅延したことが原因だったようです。後日、弊社の別のメンバーが、もっと性能がいいHDDを購入し、それを使ったところ、何の問題もなく成功したようです。私も事前に用意しておけばよかったと反省しています。

Workaround
私は、普段のバックアップは、Norton Save & Restore を使っていました。次の週末に仕切り直しで、そのバックアップイメージからコンバートすることでようやく、Windows環境の移行が完了しました。初回起動時には、以下の2つのことをやる必要があるので、注意してください。
WindowsやOfficeのライセンス認証を行うことが要求される。
VMware Toolsのインストールを促すメッセージが出るのでインストールする。

とりあえず、元のPCの中身がほぼそっくり復元することができ、物理的な要件である、業務に支障なしの状態を作れたので、第一段階終了です。
次回は、「Macでできることは、できるだけMacでやる。」というテーマで行ったことを書いてみたいと思います。

これまで、仕事で必須だったこともあり、WindowsXPのNotePCを使っていたのですが、プライベートでは、99年にPowerMac G4(PCI)を購入して以来、ずっとMacユーザでした。いつかは仕事でも、Macを使いたいと思い、VirtualPC + Windowsの環境を試してみては、CPUのエミュレーションが必要なPowerPCの上ではまともなパフォーマンスが出るはずもなく、あきらめの日々を送っていました。

そんな中で、ようやくIntelプロセッサー搭載のMacの登場によって、私の目論みが、現実化してきました。半年ほど前に、Apple Store, Ginzaにて、iMacのParallels Desktopの上で動いているWindowsXPを見たときに、「これは行けるぞ」と思いました。さらに、弊社内でも昨年末にMacBookを購入した人(hisama2)がおり、VMware Fusionの上でスムーズに動いているWindowsXPを見せてもらったことが、後押ししました。そして、ようやく2週間ほど前に、MacBookへの移行を決行しました。

私にとっての移行に関する基本要件は、以下の通りです。

  • それまで行っていた仕事を、そのまま継続できる環境を維持する。
  • Macでできることは、できるだけMacでやる。

そのため、以下の方針を取りました。

  • ソフトウェア開発環境
    Macでは動かないもの(JDK1.4.xWebLogic ServerOracle XEなど)があるので、これまで使用していたPCの内容を、丸ごとVMWare 仮想マシンに変換する。

  • メール
    これまで使用していたEudoraが販売終了なので、これを期に、Mac上のApple Mailに移行する。

  • MS Office
    メールをMacに移行するので、Office for Macの使用が中心になるが、互換性の問題を考慮し、Windows版のOfficeも使えるようにしておく。

  • Skype
    Mac版を使用する。

  • モバイル環境
    Macで高速通信ができるEMOBILEに乗り換える。

現在は、移行が完了し、快適な環境で作業できるようになっていますが、実際の移行作業は思うように進まず、試行錯誤を繰り返す結果となりました。もしも、同じようなことをやってみようと考えている方がいるならば、少しでもお役に立てばと思い、私がやったことについて、次回から書いてみたいと思います。

前回、 いくつか、書き漏れていた点があるので、追記します。

  • runlevelについて
    Ubuntuのデフォルトのrunlevelは、2になっているようです。

    $ /sbin/runlevel
    N 2
    

    なので、ブート時には、/etc/rc2.dのスクリプトが実行されます。

  • Oracle XEの手動起動/停止
    [起動]
    $ sudo /etc/init.d/oracle-xe start
    
    [停止]
    $ sudo /etc/init.d/oracle-xe stop
    
    [状態確認]
    $ sudo /etc/init.d/oracle-xe status
    

  • 必要なswap容量
    こちらに書かれていますので、ご参照ください。
    今回使用した仮想マシンでは、以下の設定になっていますので、memesizeが384MBの場合はOKです。

    $ swapon -s
    Filename                                Type            Size    Used    Priority
    /dev/sda5                               partition       915664  54012   -1
    

    memsizeをあまり大きく設定してしまうと、制限に引っかかることになりますので、注意してください。

前回VMware Playerで、Ubuntu Japanese Teamが用意しているVMware用仮想マシンを簡単に動かす方法について書きましたが、それだけだとあまり意味がないので、Oracle XEをインストールしてみました。私はふだん、1台のNote PC(Windows/XP)で、開発系の作業とメールやドキュメントの読み書きなどを行っています。そこに、Oracle XEをインストールして使っていたのですが、MS OfficeやEclipseなどと同時に動かすと、仮想メモリがかなりパンパンな状態になります。それを回避しようというのも、目的の1つです。
それが可能だと思ったのは、VMware Playerが使用する物理メモリの容量は、vmxファイルに設定する、memsizeというプロパティで制限をかけられるし、仮想メモリのswap領域も、VMware Playerの中で閉じるので、ホストOSであるWindows XP側のリソース消費量は減るであろうという、単純な発想です。

以下、試してみた結果について、説明します。

仮想マシンの準備

Linuxが使えるようになるまでの手順については、Ubuntu VMware Playerで、お手軽にLinux環境を手に入れようで説明していますので、よろしければ参考にしてください。
今回試した環境では、2GBのRAMが搭載されているPCで、仮想マシンのメモリーサイズは384MBに設定しました。

memsize = "384"

インストール

基本的なUbuntuへのインストールの手順は、Installing Oracle Database XE on Debian, Ubuntu, and Kubuntuの、[Update (March 2006)]という見出しがついたコメントの部分で説明されています。ここでは、それをベースに試してみた手順を簡単にまとめてみました。

  • /etc/apt/sources.listに、以下の行を追加する。

    deb http://oss.oracle.com/debian unstable main non-free

  • aptのキーをダウンロードしてインポートする。

    $ wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle  -O- | sudo apt-key add -

  • 現在ローカルにあるパッケージのリストを更新する。

    $ sudo apt-get update
    ....
    取得:6 http://oss.oracle.com unstable Release [2126B]
    ....
    

  • パッケージのダウンロードとインストールを実行する。
    $ sudo apt-get install oracle-xe-universal
    ....
    以下のパッケージが新たにインストールされます:
      libaio oracle-xe-universal
    ....
    oracle-xe-universal (10.2.0.1-1.1) を設定しています ...
    Executing Post-install steps...
    -e You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.
    ....
    

注意
今回は、問題なくインストールが行えたのですが、過去に、スワップ領域不足で失敗することがありました。でも、仮想マシンのハードディスクイメージのパーティション構成を変更することはできません。その場合は、Linuxのスワップ処理を最適化するためのヒントで説明されている、スワップファイルの作成を試してみてください。

インストール後の設定

  • サービス起動時の設定オプションを指定する。
    インストールの最後に表示された指示メッセージに従って実行します。

    $ sudo /etc/init.d/oracle-xe configure

    設定する項目は、以下の通りです。

    • Oracle Application Expressのポート番号
      デフォルトは8080なので、Tomcatをいっしょに動かす場合には、変更しておきたいところです。
    • TNS Listnerのポート番号
      デフォルトの1521にしておくのが妥当ですね。
    • SYSとSYSTEMのパスワード
    • システムブート時に自動起動するかどうか
      /etc/rc2.dに、S20oracle-xeというシンポリックリンクが作られます。自動起動をやめたい時は、K20oracle-xeにリネームします。

  • その他知っておくと便利なこと

    いずれも、Oracle Database Express Edition Installation Guideにて説明されていることですが、簡単にまとめておきます。

    • クライアント環境変数の設定
      $ . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
      

      詳細は5.2 Setting the Oracle Database XE Client Environment Variablesを参照してください。

      注意
      実際には、このスクリプトにはバグがあるようで、以下のようなエラーメッセージが出ます。

      /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh: 114: [[: not found
      /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh: 114: [[: not found
      

      その回避策が、Bearded Magnum - Oracle-xe on Ubuntuで説明されていますので、よろしければ、お試しください。
      /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.shを、以下の通り修正します。

      108c108
      < if [[ -n "$LC_ALL" ]]; then
      ---
      > if [ -n "$LC_ALL" ]; then
      110c110
      < elif [[ -n "$LANG" ]]; then
      ---
      > elif [ -n "$LANG" ]; then
      

    • Oracle Application Expressを、ホストOS側のWebブラウザからも使用できるようにする。
      デフォルトでは、ローカルのWebブラウザからしか使用できないようになっていますが、ホストOS側から使えた方が、何かと便利なので、この設定は行っておいた方がいいと思います。

      $ sqlplus system
      ....
      パスワードを入力してください:
      
      
      Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
      に接続されました。
      SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
      
      PL/SQLプロシージャが正常に完了しました。
      

      詳細は、Oracle Database Express Edition Installation Guide4.4 Making Oracle Database XE Server Available to Remote Clientsを参照

以上で、セットアップは完了です。

今回の環境では、仮想マシンに384MBのRAMを割り当てていますが、その設定では、VMware Playerが、常時450MB程度のRAMを使用するようです。単独で動かす場合には、パフォーマンスの問題はないと思いますが、ホストOS側で、一緒に動かすアプリケーションによっては、たまに、レスポンスが遅くなることはあるようです。

今後、もう少し様子を見つつ使って行って、本当に問題がなさそうであれば、Windows側のOracleXEはアンインストールしようと考えています。

J2EE系の開発をしている場合、プロダクション環境はLinuxであることも多いと思います。そんなときに、自分で自由に使えるLinux環境があると、事前の確認作業などで、何かと役に立ちますので、VMware + Linuxという環境を作っておくこと自体は、おすすめします。

参考資料

普段仕事に使っているPCはWindowsXPだけど、手軽に動かせるLinux環境が欲しいと感じている人は多いと思います。今まで、MicrosoftのVirtualPC2007 + Fedora Core 5を使っていたのですが、動きが重たいのと、マウスが正しく認識されないという問題があり、乗換え先の1つの選択肢として、VMware Playerを試してみました。 たぶん、この手の情報は、ネット上にたくさんあると思いますが、とりあえず私がやったときの手順を、メモも兼ねて、書いておきます。

用意するもの

  • VMware Player
    ここからダウンロードして、インストールします。
  • 動かす仮想マシン環境
    VMware Playerは、実行のみが可能であるため、自分が実行したい仮想マシン環境を準備する必要があります。

    • Vmwareの製品版で作成する。
      VMware Workstationなどの製品版があれば、それを使って作成するのが基本です。
      でも、製品版を持っているのであれば、Vmware Playerを使う必要はないですよね。。。
    • すでに構成済みの仮想マシン環境を入手する。
      ここで紹介するのは、こちらの方法です。
      何のディストリビューションを使用するのかということにこだわりがなければ、Ubuntu Japanese Teamが用意しているVMware用仮想マシンを使うのが、最も簡単な方法だと思います。
      そこからダウンロードしたZIPファイル(ubuntu-ja-7.10-vmware-i386.zip)を、任意の場所に解凍します。 ZIPファイルが、約700MB、解凍後のファイルが約2.5GBなので、それに見合った空き容量が必要です。 さらに、その後、追加のパッケージをインストールしたりしていると10GB以上になる可能性があるので、できれば20GB以上の空き容量は確保しておいた方がいいと思います。

vmxファイルのカスタマイズ

解凍後のフォルダにあるUbuntu-7.10-Desktop.vmxは、そのままでも、ほとんどのPCで問題なく使用できると思いますが、環境によっては、事前に変更しておいた方がいいものがあります。

  • PCにCD-ROMドライブが接続されていない場合
    この初期設定では、PCにCD-ROMドライブが接続されていることが前提のようです。私のPCには、普段は接続していないので、「仮想デバイスide1:0に接続できません。一致するデバイスがホストに存在しません。仮想マシンをパワーオンする度に、この仮想デバイスに接続を試みますか」というメッセージが表示されました。これが出ないようにするには、vmxファイルの以下の行を編集しておきます。

    変更前 ide1:0.deviceType = "cdrom-raw"
    変更後 ide1:0.deviceType = "cdrom-image"
    

  • VMware Playerに割り当てるメモリ容量を増やしたい場合

    変更前 memsize = "256"
    変更後 memsize = "512"
    

  • DHCPから、複数のIPアドレスを取得できない場合
    以下の1行を追加し、ネットワークをNATモードにしておきます。

    ethernet0.connectionType = "nat"
    

VMware Player起動する。

解凍したファイルの中にある、Ubuntu-7.10-Desktop.vmxをダブルクリックすれば、起動されます。

起動すると、Ubuntu Linuxの初期設定を行うための画面が表示されます。 最初に出てくるのは、「言語の設定」画面です。

ubuntu-03.JPG

あとは、「言語の設定」→「タイムゾーン設定」→「キーボードレイアウト」→「あなたは、誰ですか?」という順に、画面の指示に従って、設定して行くと、ログイン画面が表示され、設定完了です。
但し、このままでは最小限のパッケージしかインストールされていないので、あとは、自分で必要なソフトウェアを追加していきましょう。

私は、とりあえず、Oracle Database 10g Express Edition (Oracle XE)をインストールしましたが、そこそこ快適に動いています。Oracleが使用する物理メモリが、VMwareによって制限されるため、Windows側のリソース消費という意味では、効率的かもしれません。
Oracle XEのインストール手順については、ちょっとだけ面倒な部分がありますが、それについてはまた後日、書きたいと思っています。