アーキテクチャをスマートに。

株式会社ネオジニア代表。ITアーキテクトとしてのお仕事や考えていることなどをたまに綴っています。(記事の内容は個人の見解に基づくものであり、所属組織を代表するものではありません)

VMwareとParallelsの比較

MacVM使いたい場合に VMware Fusion 7.0 と Parallels Desktop 10 でどちらが良いか調査しました。

経緯および背景

もともとLinuxVirtualBox を使用しておりMacでも同じように使おうとしたところ USB が使用できなかったため*1、有償ソフトウェアの導入が必要と判断。

VMの主な利用目的および背景

  • 開発環境として使う。(Macに近い使い勝手が望ましい)
  • 検証環境として使う。(より素の状態に近い方が望ましい)
  • 基本的にはゲストOSをフルスクリーンにした状態で使う。UnityやCoherenceモードはあまり使わないと思う。
  • Ubuntu + VirtualBox環境からの移行。VMware は昔使ってたことあるので少しは分かる。
  • よく使うアプリはWebブラウザ、VisualStudio、MS Office、Remmina、Vimあたりかな。
  • ファイル操作はLinuxコマンドラインでやるときもある。全く苦にならない。(ファイル共有機能などが無くてもなんとでもする)
  • ホストは MacBook Pro 13インチ Retinaモデル。メモリ 8GB、SSD 256GB、Yosemite

以下、それぞれ無料評価版を2日ほど試用してみた結果、感じたことや特徴などを書き出してみる。

Parallels Desktop 10

  • UIがカッコいい。スマホチックというか視覚的で今風なデザイン。
  • 価格は Amazon で 6,627円(1台ライセンス)。無料評価期間は15日。
  • Windowsゲストの場合、共有機能や連携機能が手厚い。(後述)
  • MacWindows間のシームレスな統合を目指している感じ。
  • Linuxゲストの場合、デフォルトではコマンドキー単発押下がゲストOSに伝達されなかった。*2


Windowsゲストとの共有・連携機能について

ParallesでWindowsゲストを作成すると、ゲストOSツールをインストールするところまでウイザードでやってくれて、以下の様な連携機能がデフォルトで有効になります。

  • アプリケーションショートカットがMac,Windows双方に作成され、OSをまたいでアプリケーションを起動できるようになります。具体的には、Mac側ではDockにアプリケーションフォルダが新規追加され、Windows側のスタートメニューの内容が自動展開されます。Windows側にはスタートメニューに項目が追加され、Macのアプリケーションフォルダの内容が自動展開されます。
  • MacのステータスバーにWindowsの通知領域が表示されるようになります。
  • ショートカットキーが自動変換されます。例えば Cmd+C, Cmd+V などが Ctrl+C, Cmd+V などに変換されてゲストOSに伝達されます。
  • ファイル共有についてもホームディレクトリ、外部ストレージ、クラウド・ストレージなどが自動的に共有されます。

こられは設定画面にて個別にOn/Offすることが出来るので、余計な連携機能が逆に気持ち悪いって人はOffにすればいいと思います。
ただ、Macのホームディレクトリに「Applications (Parallels)」というディレクトリが作成され*3、余計な連携機能をOffにしてもディレクトリは削除されないまま残ります。個人的にはこれはちょっとマイナス評価。

VMware Fusion 7.0

  • デザインは業務的で一般的なMacアプリケーションな感じ。
  • McAfeeをインストールしてくるようにオススメしてくるのが若干ウザイ。
  • 価格は 10,593円(3台までインストール可能)。無料評価期間は30日。
  • Windowsゲストの場合、MacのステータスバーにWindowsスタートメニューが自動表示される機能がある。
  • Parallelsに比べるとWindowsに特化した機能は少なく、どちらかと言うとより汎用的な感じ

Retinaディスプレイ対応

どちらもRetinaディスプレイに完全対応しており、ゲストOSの設定でRetina対応にするかどうか選択することが可能です。
Retina対応にすると解像度が大きくなり、文字やアイコンがめちゃめちゃ小さくなります。(笑
Windowsゲストの場合は、コントロールパネルで文字サイズを「大(150%)」にすると少しは見やすくなります。
Parallelsの場合はゲストOSツールが頑張ってくれて、自動的に文字サイズを199%*4にしてくれますので、Retina対応しない場合と同じ文字サイズで表示されますが、一部ツールバーなどのアイコンは小さいままだったりして若干の違和感は残ります。それでも十分実用レベルだと思います。

Parallelsでビデオの設定を「Retinaに最適」にした場合
f:id:architect-wat:20141101163403p:plain

文字はギザギザにならずクッキリで美しいです。ツールバーアイコンなどが小さいままですね。

例えばWeb開発でブラウザごとの表示結果を検証したい、といった用途では、影響が心配されるかも。ブラウザじゃなくてネイティブアプリでも同じですね。検証環境として使うなら考慮が必要でしょう。

パフォーマンス

ゲストOS上での使用感はどちらも十分で、WindowsLinuxともに体感的な差はありませんでした。

Unix Bench の結果を貼っておきます。
(ゲストOSの環境:CPU 1個、メモリ 1024MB、Ubuntu 14.04)

まずは VMware Fusion 7.0

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: ubuntu14: GNU/Linux
   OS: GNU/Linux -- 3.13.0-34-generic -- #60-Ubuntu SMP Wed Aug 13 15:45:27 UTC 2014
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Core(TM) i5-4278U CPU @ 2.60GHz (5200.1 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   20:36:48 up 0 min,  2 users,  load average: 0.57, 0.17, 0.06; runlevel 2

------------------------------------------------------------------------
Benchmark Run: 金 10月 31 2014 20:36:48 - 21:04:54
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       35624064.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     4461.3 MWIPS (9.7 s, 7 samples)
Execl Throughput                               2305.1 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        590396.2 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          171464.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1530166.8 KBps  (30.0 s, 2 samples)
Pipe Throughput                              900292.1 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 233198.9 lps   (10.0 s, 7 samples)
Process Creation                               9612.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   4313.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    406.1 lpm   (60.0 s, 2 samples)
System Call Overhead                         652278.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   35624064.0   3052.6
Double-Precision Whetstone                       55.0       4461.3    811.2
Execl Throughput                                 43.0       2305.1    536.1
File Copy 1024 bufsize 2000 maxblocks          3960.0     590396.2   1490.9
File Copy 256 bufsize 500 maxblocks            1655.0     171464.0   1036.0
File Copy 4096 bufsize 8000 maxblocks          5800.0    1530166.8   2638.2
Pipe Throughput                               12440.0     900292.1    723.7
Pipe-based Context Switching                   4000.0     233198.9    583.0
Process Creation                                126.0       9612.5    762.9
Shell Scripts (1 concurrent)                     42.4       4313.5   1017.3
Shell Scripts (8 concurrent)                      6.0        406.1    676.9
System Call Overhead                          15000.0     652278.1    434.9
                                                                   ========
System Benchmarks Index Score                                         947.2

続いて Parallels Desktop 10

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: ubuntu14: GNU/Linux
   OS: GNU/Linux -- 3.13.0-34-generic -- #60-Ubuntu SMP Wed Aug 13 15:45:27 UTC 2014
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Core(TM) i5-4278U CPU @ 2.60GHz (5200.0 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   21:07:34 up 0 min,  2 users,  load average: 2.82, 0.79, 0.27; runlevel 2

------------------------------------------------------------------------
Benchmark Run: 金 10月 31 2014 21:07:34 - 21:35:31
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       31147663.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     4019.0 MWIPS (9.5 s, 7 samples)
Execl Throughput                               2934.5 lps   (29.7 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        516153.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          157044.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1500118.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                              816192.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 214416.3 lps   (10.0 s, 7 samples)
Process Creation                              10081.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   6550.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    816.5 lpm   (60.0 s, 2 samples)
System Call Overhead                         557236.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   31147663.9   2669.0
Double-Precision Whetstone                       55.0       4019.0    730.7
Execl Throughput                                 43.0       2934.5    682.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     516153.5   1303.4
File Copy 256 bufsize 500 maxblocks            1655.0     157044.8    948.9
File Copy 4096 bufsize 8000 maxblocks          5800.0    1500118.9   2586.4
Pipe Throughput                               12440.0     816192.9    656.1
Pipe-based Context Switching                   4000.0     214416.3    536.0
Process Creation                                126.0      10081.5    800.1
Shell Scripts (1 concurrent)                     42.4       6550.3   1544.9
Shell Scripts (8 concurrent)                      6.0        816.5   1360.8
System Call Overhead                          15000.0     557236.7    371.5
                                                                   ========
System Benchmarks Index Score                                         994.5


ファイルコピーはVMwareの方が少し良いようで、Parallelsシェルスクリプトのスコアが少し良いようですが、ハッキリ入ってほとんど差はないレベルだと思います。
Windowsだとどうかわかりませんが、Parallelsの方が手厚いチューニングをしてるように思うので、ベンチの結果は良いかもしれませんね。実際にWindows 7 ゲストも試しましたが、体感的には全く差は感じませんでした。

余談

Parallels Tools を Linux ゲスト(Ubuntu 14.04)にインストールした場合、その VMVMwareに移行してくるとGUIログインのあとデスクトップが表示されずにフリーズしてしまう現象がありました。
Ctrl+Alt+F1などは効くので、コンソールログインして Parallels Tools をアンインストール すると、正常にログイン出来るようになりました。

結論

Parallelsはインタフェースが分かりやすく、ゲストOS作成支援機能や、ホストOSとの連携機能が豊富で、コンシューマ向けだという印象でした。
VMware Fusion はどちらかというと硬派で、素人向けではない感じです。 Virtual Boxがデベロッパー向けだとすると、Parallelsとの中間って感じですかね。

要するにParallelsの手厚いWindows向けの機能が必要かどうか、複数台にインストールするのかどうか、といったところが大きな判断基準だと思いました。

*1:USB3.0に対応していないのが原因かも

*2:ショートカットの設定で、システムショートカットの送信を「常に」にすると解決できた

*3:ここにWindowsスタートメニューの内容が展開される

*4:なんで200%じゃないんだろう