2013/12/21

OS X と 仮想SSD

SSD 標準搭載の MacBook Air がでた 10.8 Lion あたりから、OS X ではHFS Plusファイルシステムへの SSD に対するサポートがはいってきている。

具体的には、OS X がSSDに インストールされている場合、遅延再配置(hfs_relocate)と Hot File Adaptive Clustirng が無効になる。
二つの機能の概要については...、まあ、こちらのページを参照して欲しい。
(...まさか、未だに自分の原稿が上位でヒットするとは思わなかったよ。)

いずれの機能も HDDの特性を加味してディスク上のデータ配置を置き換えることで IO性能を上げるものであるが、しかし SSDの場合 再配置してもIO性能が上がらないし、むしろ書き込み回数を増やして不利益になるからだ。

OSXがSSDと認識しているかどうかは 「diskutil info」コマンドで確認できる。
[valkyrie:~] shiro% diskutil info disk0s2
   Device Identifier:        disk0s2
   Device Node:              /dev/disk0s2
   Part of Whole:            disk0
   Device / Media Name:      Macinosh HD

   Volume Name:              Macinosh HD
   Escaped with Unicode:     Macinosh%FF%FE%20HD

   Mounted:                  Yes
   Mount Point:              /
   Escaped with Unicode:     /

   File System Personality:  Journaled HFS+
   Type (Bundle):            hfs
   Name (User Visible):      Mac OS Extended (Journaled)
   Journal:                  Journal size 73728 KB at offset 0x1bf2000
   Owners:                   Enabled

   Partition Type:           Apple_HFS
   OS Can Be Installed:      Yes
   Recovery Disk:            disk0s3
   Media Type:               Generic
   Protocol:                 SATA
   SMART Status:             Verified
   Volume UUID:              A95E84F4-7013-38C7-BB33-BB8DB8E8ED69

   Total Size:               959.3 GB (959337365504 Bytes) (exactly 1873705792 512-Byte-Units)
   Volume Free Space:        478.1 GB (478122086400 Bytes) (exactly 933832200 512-Byte-Units)
   Device Block Size:        512 Bytes

   Read-Only Media:          No
   Read-Only Volume:         No
   Ejectable:                No

   Whole:                    No
   Internal:                 Yes
   Solid State:              Yes
最下行の Solid State のフラグが Yes ならばSSD上であるとOS Xが判断していると言うことだ。
(余談だが、SSD だからといってルートフォルダに  .hotfiles.btree ファイルがないとは限らない。初期状態からSSDで出荷された Mac ならその通りだが、HDD搭載の Macから換装したりなどすると、以前の  .hotfiles.btree ファイルが残る。使われてはいないが、どうもアクセスはされるみたいで更新日付は適宜アップデートされてしまう。消しても問題ないとは思うのだが、さすがに失敗したときのリスクが怖いので試していない。)

さて、仮想環境上の OS X はどうであろうか?

とりあえず手元の Fusion 6 で仮想マシンを作ってみたところ、仮想ディスクはすべて SATA接続のディスクとして作成される。

SATA接続のディスクから OS Xを起動すると、SSD上の仮想マシンはちゃんと「SSD」が接続されたように振る舞う。図は、Mountain Lion を搭載した仮想マシンだが、Solid State が YES になってるのがわかる。

Fusion 6 で動作する Mountain Lion の仮想マシン

ただし、以前の Fusion で作成した仮想マシンは 仮想SATA接続ではなく仮想SCSI(lsilogic)接続になっており、こちらはSSDと認識されていない。仮想SATA接続は仮想ハードウェアバージョン10からのサポートで、Fusion 6からしか使えないからだ。

以前作った仮想マシンについては、以下の手順で仮想SATA接続に変更できる。

まず、仮想マシンをちゃんとシャットダウンして、スナップショットをすべて削除する。

次に、設定パネルの互換性タブから仮想ハードウェアバージョンを10にあげる。

仮想ハードウェアバージョンを10にする

これにより仮想SATA接続の仮想ディスクが利用可能になる。

最後に、仮想ディスクを選択してバスタイプをSATA接続に変更する。

バスタイプをSATAに変更

スナップショットを削除していないとバスタイプの変更ができないので注意だ。

不用意にバスタイプを変更すると起動しなくなるOSもあるが、OS X のブートローダは結構柔軟性があり、SCSIからSATAへの変更程度なら問題なく起動してくれる。
ゲストOSの上の動作とはいえ、無用な書き換えを防ぐことでSSDを長持ちさせることができるのでやっておいたほうがいいし、そのために Fusion 6 にアップグレードするのも悪い話ではないだろう。


しかし、OS X の場合はこの方法を使っても、OS側がSSDを検出しない、SCSI/IDE接続のディスクをSSDかHDDか検出していない模様のため、あまり意味がない。


2013/12/11

[余談] WiFiルータ

vExpert な知人の間でアドベントカレンダーが回っているようだ。

話は聞いていたのだが11月末から12月冒頭、主に出張でばたばたしてたのですっかり出遅れてしまった。用意したネタはなきにしもあらずだが慌てて出す必要もないし、またじっくり確認してからにしようと思う。

で、その出張で公私ともに役に立ってるWiFiルータの話をちょっと載せておきたい。

その愛用品は Planex の MZK-RP150N という名の WiFiルータだ。個人的に使っているものは確か1年ほど前、博多駅近くのヨドバシで購入した。

出張用の旅行鞄には長らく初代の AirMacExpress が入っており、旅行先の宿で無線LANを利用するのに使っていた。が、この博多出張の折たまたま家に忘れてしまい、これが吸収を転々とするわりと長期にわたる出張だったためなきゃないで困るので、目の前にヨドバシがあるうちにと買いに行ったのだった。

AirMacExpress も購入当初はなんて小さな WiFi ルータだと思っていたが、MZK-RP150N のマッチ箱を二つ重ねた程度の小さな筐体は輪をかけて小さく、買ったときには技術革新にひどく驚いたものだ。

さて、小型の WiFiルータなら他にもたんとあるのに、わざわざこれを選んだ理由は「Ethernet が2ポートある」という点に他ならない。WiFiを抜きにしても、簡易的なNATルータとして利用可能なのだ。これは思いの外便利で、1IPアドレスしかとれないような会議室で結構役に立つ。ほかの多くは1ポート、上位ネットワークにつながるポートしかないのでこうしたことができない。

怪我の功名ではあるが、なかなかいいものを買ったと思っている。
後日 職場の機材で持ち運びの容易なWiFi ルータが必要になったときにこの MZK-150Nを提案し、何台と導入して便利に使っている。小さく、そこそこの性能があり、なにより安い(市価で2000円強)。


ただ、良いことがある一方、あまりよろしくない点もある。

一つは、デフォルトの設定がイケてないということだ。デフォルトではオートモードという設定になっており、外部(Internet)側ポートの接続状況に応じてNATルータ(ルータモード)かブリッジ(APモード)かを自動的に切り替えるようになっている。

確かに、NATルータとして振る舞ってほしい場合もあれば、有線と無線をつなぐ単なるブリッジでいい場合もある。そのために都度設定をするのは面倒といえばそうだ。
しかし、このモードの切り替えはどうも外部側ポートに割り当てられたIPアドレスで判断しているらしく、プライベートIPがついた場合はたいていブリッジになるようだ。

「らしく」というとおり切り替えの基準がいまいちはっきりしないのと、最近のビジネスホテルの部屋のポートは 10.x.x.x のプライベートアドレスが割り当てられることが多い、というかまっとうなグローバルアドレスがそんなぽんぽん割り当てられるはずもなく、従って意図せずにブリッジとして動作していることがある、ここがかえって厄介になっている。

またモードによって管理ページのIPアドレスが異なる(最終オクテットが .1, .249, .248 の3パターン)ため、設定をしたくても管理ページにたどり着くのが一苦労だったりもする。
このため、私物および職場で私の管轄下の機器についてはルータモードに固定しており、必ずNATルータとして振る舞うようにしている。

製品自体には今時の機器らしく、マニュアルは付属せず簡単な説明用紙がついているだけだ。この説明用紙が、初心者向けに優しく書いているのだが、詳しいことを知ろうとするとかえってわかりにくい。オートモードと相まって飼い慣らすまでが一苦労だ。
(オンラインで詳細マニュアルは存在する)

また、後継機種らしい機器が出てきているためか、若干ながら入手が難しくなってきている。
こちらはEthernetが1ポートしかないため、私にとっての利点が失われてしまっている。

今後の入手可能性が不安なため、職場での機材増加に伴う追加購入の際、無理を言って予備機を用意してもらった。( 予備機もしまわれているわけではなく社内での検証などにも流用されている )

少々問題はあるが、とはいえ設定さえルータモードに固定してしまえば、あとは「差すだけ」というのはとても便利だ。

そろそろ私物のほうも予備を買っておこうか、と思うぐらいには気に入っている。

2013/11/06

Fusion での起動メニュー

さて、先の Fusion 6.0.2 で起動メニュー周りのことが書かれていたので一つ試してみた。

Fusion 6.0.2 にアップデート後、OS X をインストールした仮想マシンを起動、即座に Option を押しておいた。

Macの実機の場合、Optionを押して起動すると例の起動メニューが出てくる。

Fusion の場合、以下のブートメニューが出てきた。

Option を押しながら起動するとこのメニューが表示される 
先のメニューで BootManager を選ぶとこの画面になる

Fusion の仮想マシンにおける EFIの実装は VMwareオリジナルのため、Appleがおこなったようなグラフィカルな起動メニューという拡張ははいっていない。ただそれだと便利が悪いので実装したようだ。
(追記)なお、これは Fusion 6.0.1 でも動作する。別に 6.0.2 で新規という訳ではないようだ。


MountainLion や Mavericks のリカバリパーティションを起動する場合にはこれは便利だろう。

Fusion 6.0.2 release

11/5 (米国時間)に Fusion 6.0.2 がリリースされた。
メンテナンスリリースで、新機能は含まれないが様々な改善がなされている。

リリースノートはこちらにあるが、変更点は以下の模様。
  • メモリが不足している際に仮想マシンの起動に失敗する問題に対処
  • Windows 8.1 および WindowsServer 2012R2 の最終版の簡易インストールをサポート
  • Fusion の起動パフォーマンスの改善
  • いくつかの Linux で HGFS(ホストOSとゲストOSでのファイル共有)モジュールのビルドに失敗する問題に対処
  • OS X Mavericks サポートの強化
    • Finder タグに対応
    • OS X をゲストOSにした場合のドラッグ&ドロップの改善
    • メニューバーの取り扱いの改善
    • Unity モードでのマルチディスプレイの取り扱いの改善
    • OS X Mavericks をゲストOSにした場合のリカバリパーティションの取り扱いの改善
    • OS X をゲストOSに指定した場合の起動パーティションの選択の改善
    • リスタート後の仮想マシンのウィンドウ位置の復元の取り扱いの改善
    • "既存のPCをインポート"機能での、Mavericks のファイル共有機能との互換性の向上
  • 仮想マシンのインポートでの、Parallels Desktop 8 仮想マシンの検出の強化
  • 起動ボリュームが見つからない場合のメッセージの改善
  • 自動起動に指定していた仮想マシンの電源オンを止めた場合に生じる問題の修正
  • OS X をゲストOSとしてSATA仮想ディスクにインストールした場合に FileVault が有効にできるようになった
  • 特にゲストOSがBSOD(ブルースクリーン)やカーネルパニックの最中などに、仮想マシンの電源オフ中にハングする問題に対処
  • Ubuntu 13.10 で共有フォルダのカーネルモジュールがビルドできるように改善

朝一で適当に訳したので、少々間違いがあるかも知れないので原文も良く確認のこと。

2013/09/26

VMware Tools の細かいこと3つ

どうもこのページを見に来るのに VMware Tools と検索してる方が多いようなので、VMware Tools に関するどうでもいいこと3つばっかりを記載してみる。

● 「完了」インストール?

Windowsで VMware Tools をインストールするとき、「完了」というセットアップ種類を見かける。(図参照)


この「完了」とは何か引っかかるが、英語にすると分かる。そう、Complete の訳が「完了」になってしまっているのだ。
これは「完全」の方が正しいと思うのだが、何故か直らない訳の一つである。

● OSP とは?

ゲストOSの互換性リストなどを追いかけていると、時に VMware Tools について「OSP」という表現がなされることがある。

OSPは「OS Specific Package」の略で、VMware Tools が OS標準のパッケージシステムでインストールされることを指す。とくに Linux の場合、標準の VMware Tools だと tar.gz を展開、vmware-tools-distrib/ 以下の vmware-install.pl を実行するのだが、これだとOSのパッケージシステムの外でインストールされてしまう。パッケージシステムを利用することでその管理下にいれ、インストールやアップグレードをよりやりやすくしようというのが、OSPだ。

OSPについての詳細はマニュアル(osp-esxi-51-install-guide.pdf)があるので参照して欲しい。かいつまむと http://packages.vmware.com というサイトがあるのでそこをパッケージ配布サイトに登録、yum なり apt なりでいんすとーるをするというものだ 。

● VMware Tools をネットから取得する

先のOSPのインストール元の http://pacakges/vmware.com/tools には実は Windows 版を含む VMware Tools が用意されている。これは以前にも記載したとおりだ。

特定のバージョンの VMware Tools が必要な場合、ここから取得するという手もある。

2013/09/14

通常版 Fusion 6 と Fusion Professional 6 の違いをみる

VMware Fusion 6 の通常版と Fusion Professional 6 の違いは VMware 社のページに記載されているが、これだけだと分かりにくいこともあるだろうから、評価ライセンスを使って2つの主だった違いを確認してみた


● ネットワーク エディタ

Professional には、通常版の環境設定では存在しない「ネットワーク」の項目が存在する。これがネットワークエディタと呼ばれる部分だ。

通常版 Fusion 6 の設定パネル
Fusion Professioanl 6 の設定パネル
ネットワークエディタを選択するとネットワークの接続先に選択可能な一覧が表示される。この一番下「カスタム」のところにネットワークの追加が可能になっている。

ネットワークの設定(ネットワークエディタ) 
VMware Workstation のネットワークエディタと同じく、NATをかけて外部ネットワークへの接続を行うか、ネットワーク内で DHCPによるIPアドレスの配布を行うかが、配布するIPアドレスのレンジが指定可能となっている。


● 暗号化

通常版も Professional も仮想マシンの暗号化機能を持っている。有効にすると設定されたパスワードを知らないとその仮想マシンが起動できなくなる。
なお、パスワードは Keychain に登録可能で、二回目以降の入力を省くことができる。


暗号化された仮想マシンの設定変更にはパスワードの入力が必要 

Professional では、暗号化された仮想マシンに対して、さらなる操作の制限を加えることができる。
通常版 Fusion 6 での暗号化と制限
暗号化を行う以外の機能はない

Fusion Professional 6 での暗号化と制限
暗号化を有効にすると、制限機能が表示される

・制限
「制限」を有効にすると、仮想マシンの構成の編集ができなくなる。
これはメニューから設定項目が消えることで実現されている。
なお、制限された仮想マシンは暗号化されているため、.vmx ファイルを編集して直接設定を書き換えることもできない。
なお、Fusion 6 からは「分離」メニューによりホストOSとゲストOS間の ドラッグ&ドロップやコピー&ペーストの利用可否を設定することができる。

「分離」メニュー

あらかじめドラッグ&ドロップやコピー&ペーストを無効化しておけば、制限との合わせ技でホストとゲストのやりとりを禁じて安全性を高めることができる訳だ。

・パスワードの変更
「制限」を有効にした場合の仮想マシンの設定パネル
設定項目が極めて少なくなってるのが分かる

「暗号化パスワードを変更することをユーザに求める」を指定すると、仮想マシンの初回起動時にユーザにパスワードの変更を指示する。暗号化した仮想マシンを配布した場合、配布先の利用者ごとにパスワードを変えてもらうことができる訳だ。

・USBデバイス制限

「USBデバイスをこの仮想マシンに接続することを許可する」をチェックすると、ホストのMacに接続したUSBデバイスを、仮想マシンに接続させることができる。逆に言えば、このチェックをつけない限り、USBデバイスのリダイレクションは無効になる。

Fusion のレベルでは全部通すか全部禁止するかしかないが、ゲストOSが Windows ならば、グループポリシーを使ってUSBデバイスを制限することができるのでこれも併用するといい。

・利用期限
「仮想マシンの期限切れ後」にチェックを入れ、右側の日時を入れるとその期限までしか利用できない仮想マシンを作ることができる。
また、「詳細...」ボタンを押すと以下のシートが現れ、期限切れ直前や期限切れ後のメッセージを用意したり、時間確認のサーバを用意できる。

Fusion Professional 6 では仮想マシンの利用期限を設定することもできる
利用期限のついた仮想マシンを実行する場合、ホストOSのユーザが時間を変えてしまう事は想定される事態だろう。そこで、ローカルの時間を信用せず、指定のウェブサーバに定期的に接続し、現在時間を確認することで期限の確認を行うわけだ。

なお、上記の各種制限のかかった仮想マシンを、通常版の Fusion6 で利用、「暗号化と制限」設定パネルを開くと、以下に見える。

Fusion Professioanl 6 で制限や有効期限を設定した仮想マシンは、
通常版の Fusion6 や Player, Workstation でも制限されたままになる
通常版の Fusion 6 や Player では制限を解除できない

単に暗号化だけなら通常版でも解除できるが、その他の制限がかかった場合、通常版の Fusion では制限も暗号化も解除できなくなる。

企業などで業務データやアプリケーションの入った仮想マシンを配信する場合、暗号化と適宜制限を加えることで、改竄を防止したり利用期限を制限することができるわけだ。ここらへんは、VMware ACEで培った技術が組み込まれている。
Windows を展開する場合はさらに Horizon Mirage でゲストOSの Windowsの管理を行えば利便性と制限を向上させることができる。


● フルクローンとリンククローン

Professional では、フルクローンとリンククローンのメニューが追加されており、仮想マシンのコピーを作成することができる。

通常版 Fusion 6 の仮想マシンメニュー
Fusion Professional 6  の仮想マシンメニュー
クローン項目が増えているのが分かる

フルクローンは完全なコピーで、まったく同じ内容の独立した仮想マシンを作成する。

これに対してリンククローンは、元となる仮想マシンからの差分だけを保有している。
元の仮想マシンがなくなると起動できなくなるが、差分だけのためフルクローンに比べ容量をとらない。

テストや開発時に、一時的に同じゲストOSの複数の仮想マシンが必要な場合、リンククローンは便利であろう。


2013/09/07

私だけかも知れないが

先の VMware Fusion 6 をインストールしてから寝ようとしたら、Fusion が起動時にクラッシュするようになった。

とりあえず調査すると、どうもライセンスファイルを読んでいるところで落ちている模様。
/Library/Preferences/VMware Fusion を確認したところ、「license.fusion.site.6.0.200610」というファイルができており、これを読んだ際に落ちていたようだ。通常のライセンスファイルなら license-fusion-<バージョン>-e<数値>-<年月>となるので、どうもおかしい。2006年10月に Fusion6があるはずないので、何らかのミスか、βテスト時に何かゴミができてしまったかだ。

これを削除したら無事起動するようになった。

私の環境だけかも知れないが、メモ代わりに記載しておく。

Fusion 6

VMware Fusion 6Fusion 6 Professional がリリースされた。

アップグレードの差異にはProfessional版か通常版かを要注意。Fusion 5 Professional から Fusion 6 通常版へのアップグレードもあり得るというか、できてしまうので。

なお、VMware Fusion Technology Preview 2013 のβテスターだった方はコミュニティを要確認。20% のディスカウントコードが出ている。

Fusion6 の新機能だが、ざっというと以下になる。

  • OS X 10.9 "Marbericks" サポート (ホスト&ゲスト)
  • Windows 8.1 サポート(ゲスト)
  • クローンサポート:フルクローンおよびリンククローン
  • バージョン10仮想マシンのサポート
    • より多くの仮想CPUとメモリを搭載した仮想マシンの作成
    • 2TBを越えるストレージの作成(ただし、仮想マシンのブートディスクは2TBまで)
リンククローンは元となる仮想マシンの指定のスナップショットからの「差分」仮想マシンを生み出す技術。うまく使うと同じゲストOSの仮想マシンを作るときのディスク消費量を格段に減らすことができる。

バージョン10仮想マシンは vSphere5.5 や VMware Workstation 10でもサポートされる最新の仮想マシン形式で、設定可能なCPU数やメモリ量が増えたほか、2TBを越える単一仮想ディスクイメージを作成可能なのが特徴。
ただし、ブートディスクは2TBまでの制限があるため、(WindowsをゲストOSにするなら)Cドライブは 2TB以下、Dドライブというかデータディスクは2TBを越えて8TBの設定が可能になる。(vSphere5.5では最大64TBまでの仮想ディスクを作成可能)

Marbericks も Windows8.1 もまだ出ていないため、急いでアップグレードする必要は無いのかも知れない。


もう一つ、密かに VMware Player Plus がリリースされている。
これはこれまで個人利用および非商用利用で無償で提供されてきた VMware Player の商利用をサポートした有償ライセンスに当たる。PlayerPlus の利用者は別途有償でサポートを購入することが可能になる。

Fusion 5 Professional にも VMware Player の商利用権がついていることを以前記載したが、この商利用権だけを単品購入できるようになったが、VMware Player Plus である。

なお、Fusion 6 Professional にも VMware Player Plus の権利がついている。つまり、Fusion 6 Professional を購入し Mac OS X を実行するコンピュータにそのライセンスを割り当てれば Fusion Professional が使える一方、Fusion 6 Professional を購入し Windows/Linux を実行するコンピュータにそのライセンスを割り当てれば VMware Player Plus として利用できる。


2013/07/15

vExpert 2013 受賞しました

出張が続いており、ブログを書くのもとんとご無沙汰してますが、一応、今年も vExpert を受賞しました。

秋口になれば一段落つくかなと、その頃には色々書くことが増えるかなとか思っております。


左が2012の、右が2013の記念品



2013/04/03

ViewClient for Mac の USBリダイレクトを停止させる

VMware ViewClient for Mac 1.7 から Mac でもUSBリダイレクト機能が利用できるようになった。ローカルのMacに接続したUSBデバイスを、リモートのデスクトップ仮想マシンに認識させ、利用することができるようになったのだ。

これは便利なのだが、ただ困ったことに 32111/tcp が閉じられているなど諸々の理由でUSBリダイレクションがうまくいかない場合、下記のエラーメッセージが頻発して操作性が悪くなる。

USBリダイレクトに失敗するとこのメッセージが何度も何度も出る

Windows 版と異なり、Mac 版の USBリダイレクションはそのままでは有効にならず、一度メニューからサービスを開始させる必要がある。


USBリダイレクトを使うには、まず「リモートデスクトップUSBサービス」を開始させる必要がある
これはデフォルトでは有効になって板に
開始させようとすると上記警告と、管理権限のパスワード入力が求められる
必要なのは最初の一度だけで、有効にしたら最後 次回以降の起動では必ず有効になる

ところが、標準メニューではこれを有効にすることはできても向こうに戻すことができない。これは不便だ。

なので、調べてみた。

この「リモートデスクトップUSBサービス」だが、二つの要素でできている。

まずはユーザランド側で、「vmware-usbarbitrator」と「vmware-view-usbd」という二つのプロセスが起動する。vmware-usbarbitrator は VMware Fusion にも搭載されているUSBの調停プロセスで、おそらく OS X からUSBデバイスを引き取るのに使われているのであろう。

もう一つはカーネル側で、「vmioplug.kext」という KEXT (カーネル拡張) 。これが USBの通信を引っ張り出して、usbarbitrator などに渡しているものと思われる。

そして、インストール(dmg からコピー)直後の ViewClient ではこの vmioplug.kext がコピーしたユーザの権限になっている。対して「リモートデスクトップUSBサービスを開始」を実行した後はこれが root:wheel に権限が書き換えられている。

セキュリティのため、OS X では root:wheel 、権限が 755 な kext 以外をカーネルにロードできないようになっている。カーネルは最高特権で動作するので、ここに一般ユーザで書けてしまうファイルを書き込むのは極めて危険であり、同等権限を要求することで安全性を揚げているのだ。( root:wheel のファイルを用意できる時点でそのシステムは落とされているから、それ以上厳しくしても意味がない )

なのでこの vmioplug.kext の権限を root:wheel でなくしてしまう、ロードできないようにすることで元に戻す、「リモートデスクトップUSBサービスを開始」を選択する前の状態に戻すことができる。

とりあえずはこれでしのげた。