ESXi5.5でMac OS Xを動かす

自宅でMac OS Xが使いたくなったので、仮想化環境に入れてみる。

元々はCentOS上で動いていたKVMMacを動かしたかったが、

手順が面倒なことと、大半のパッチ配布サイトが死んでいたためESXiを使うことにした。

 

KVMをやめてESXiを再び使うことにしたのには、いくつか理由があるが、ざっくり言うと「不便だったから」。SnapshotやCloneの使い勝手、KVMのサードパティ製ツールの力不足感、ドキュメントの豊富さ、どれを取っても一歩以上劣っている気がしてならない。

仮想化はその上で動かすOSやシステムを目的としているため、そこの管理コストがあがるのは自分の目的としてはアンマッチでした。

 

さて、本題のMacOSX on ESXi。

バージョンはESXi 5.5。

Macは10.6のSnowLeopard。

ESXi 5 Mac OS X Unlockerは、最新の1.3.0だとダメだったので1.2.0を使用。

 

ESXiのインストール

ESXiはUSBメモリにインストール。

stratchconfigの設定がされていないと書き込み可能メディアがなくて続きの作業がダメかもしれないので、一応確認。

※自分の場合ローカルのDatastoreつないだら、勝手に設定されていた。

他は特筆することなし。デフォルト。

 

Mac OS X Unlockerのインストール

最新の1.3.0の場合、インストーラを叩いた瞬間にSuccessのメッセージが出るが何も起きなかった。

最初Successのメッセージを信じてやってみたがどうも上手く動いている気がせず、1.2.0を入れてみたらインストール時に色々と表示が出るためそこで動いていなかったことが分かった。

 

導入方法は以下通り。

  1. ダウンロードページからUnlockerをダウンロード。今回は1.2.0。

  2. 古いバージョンは右側のPrevious Versionsからダウンロード可能。

  3. ダウンロードしたZipファイルを解凍し、ディレクトリごとESXiのDatastoreにアップロード
  4. SSHでESXiホストにログイン(ESXiのSSH有効にしていない場合は設定する)
  5. Unlockerを置いたディレクトリに移動する
  6. cd /vmfs/volumes/[Datastore名]/unlock-all-v120/esxi
  7. すべてのファイルに実行権限を付与
  8. chmod 744 *
  9. sh install.sh
  10. 何か色々とインストールしているメッセージが出る(1.3.0は数行のメッセージしか出なかった!)
  11. インストール完了後、ESXiを再起動。

この辺りの手順は、下記の動画が結構まとまってて分かりやすかった。

下手に英文で説明されるより、コマンドやら手順を見た方が楽だった。

 


How to Unlock ESXi Host and install MAC OS X Lion ...

 

仮想マシンの作成

仮想マシンを作成する(いつも通り)。

注意点としては、上記でUnlockerを入れる前に作った仮想マシンだと、インストールに失敗する(と思われる)こと。

Unlockerの導入失敗のときと同じく、VMWAREのロゴとAppleのリンゴマークが交互に出て先に進まなくなる。

Unlockerの導入失敗時と区別が付かないが、自分の場合Unlockerを入れる前に仮想マシンを作っていたため、Unlockerの導入に失敗したのかとしばらく勘違いしていた。

怪しい時には消して最初から。

 

MacOSXの導入に関しては、特に問題なく進行。

起動するところまで確認。

※インストール先ディスクの作り方だけ注意。上のメニューからディスク作らないと、導入先ディスクの一覧に何も出てこない。

 

SnowLeopard以降へのアップデートが可能かは現在試し中。 

 

追記:2014/06/02(月)

MacOSX 10.9.3 Marvericksへのアップデートできました。

BackWPupプラグインのエラー

WordPressでブログを作成しているが、バックアップに良いものはないかと探してみたところ、「http://wordpress.org/extend/plugins/backwpup/:Title=BackWPup」というプラグインが良さそうだった。

自動的に取ったバックアップファイルをDropBoxなどのストレージにアップロードしてくれる。
バックアップ対象、周期、圧縮形式などの指定も十分。

早速入れて見たが、動作せず。エラー解消にトライ。

1.Dropboxの設定ができない

解説サイトだとFTPでのアップロード設定の下にDropbox等の設定があると書いてあるが、見当たらない。
設定画面の「Save Changes」の上に「curl-phpが入ってないよ」といった感じのエラーが赤字で表示されている。(エラーメッセージは残念ながら覚えていません)
Ubuntuなのでサクッとapt-getで入れてApacheを再起動(notリロード)したところエラーが消え、下の方に各種クラウド・ストレージの設定が表示された。httpでAPI叩くからCurlが必要だった模様。

2.ジョブ実行が0%のまま進まない

ジョブの実行をしても進捗バーが0%のままで、かつメッセージが表示されるらしい画面が真っ黒。原因は/etc/hostsの記述ミスのようだ。以前IPアドレスを変えてから書き換え忘れていて正しく名前解決が出来ていなかった。
直したところ、ジョブ実行後すぐにメッセージは表示され数十秒でDropboxへの同期もされた。

3.その他

上記の実行前に既にやっていたので必要な作業かは分からないが、ローカルへのバックアップ用にフォルダを作成し自分とapacheが書き込みできる権限を与えておいた。上記1,2で解決しない場合は試してみると良いかも。


さて、これで自動的に別ストレージへのバックアップも出来るようになったので、一安心。ここ最近バックアップに関してはホット(肝は冷める)な話題があったので。


ちなみにバックアップファイルのサイズだが、今のところコンテンツは多くはないが圧縮された状態で11MB弱。Dropboxの空き容量と相談しつつ世代数を管理するのが良いだろう。(世代数を超えたら自動的Dropbox上の古いのを削除してくれるかは今のところ不明。)

WASのnodeagentのプロセス名の落とし穴

WebSphere Application Serverのプロセス名のおかしな仕様を発見したのでメモ。

プロセスの確認の際に、DeploymentManager/NodeAgent/APサーバのプロセス名の末尾はそれぞれ「dmgr」「nodeagent」「APサーバ名」だと思っていたが、"$"を末尾につけるとNodeAgentだけ引っかからない。
よく調べてみるとNodeAgentだけ末尾が"nodeagent "(最後が半角スペース1文字)なのだ。つまりgrepするとこうなる

 # ps -ef | grep "nodeagent $"

プロセスの起動有無をスクリプトなどで確認している場合は注意が必要。

WASのバージョンはV8.0とV6.1の両方で確認。恐らく他のバージョンでも同じだと思われる。(WASはこの辺のものが古くから放置されている気がする…)
OSはCentOS V6.0。

Windows7 / 2008 でインターネット時刻設定(NTP)のバグ

Windows7 / 2008でNTPの設定をする際に、
レジストリに書きこむタイミングがおかしいことを発見した。


タスクバーの日付表示を右クリック>[日付と時刻の調整]から
[インターネット時刻]タブ>[設定の変更]を行う。


サーバの項目にサーバ名(IPアドレス)を入力するした際、
「OK」や「キャンセル」を選択する前に、レジストリに値が書き込まれる。

>w32tm /dumpreg /subkey:Parameters

上記のコマンドをうちながら、入力・OK・キャンセルをしてみると
レジストリの書き込みのタイミングがOKを選択したときでなく
テキストボックスへの書き込みをした瞬間であることが分かる。


ちなみに、テキストボックスへの入力後
キャンセルボタンを押しても、値は元に戻らない。

物理サーバ新調&既存サーバの仮想化

サーバを新調したため、旧サーバを移行しました。

ざっくりと現在の構成でもメモ。


■H/W

  • HP ProLiant ML110 G6
  • 2 CPUs * 2.925 GHz
  • Intel Core i3
  • 2GB Mem

この構成で23,000円程。激安。
せっかくなので、リンクをペタリ。
HP ProLiant ML110 G6 (Core i3-530/2GB/SATA160GB) 5100780-AVCN - NTT-X Store
2011/06/23現在 在庫○。
○〜△辺りを数日置きにさまよっている感じです。

標準のHDDが160GB * 1なので、2TBのHDDを1本買い足しました。
(最大2TB*4まで認識するようです)
オンボードRAIDでは0,1,1+0が対応。


■S/W

  • VMware ESXi 4.1.0
  • ゲストOS Ubuntu8.10
  • P2Vの移行 VMware vCenter Converter Standalone


■その他メモ

  • ESXi4.1はvCenter Converter 4.0.xからの移行には非対応
  • 最新版(4.3.0)からは可
  • vCenter Converterは、古いものを一度アンインストールしてから最新版を入れること。そうしないと、変換しようとしたときにエラーを吐く
  • 物理サーバの移行時は、不要ファイルは削除したほうが吉
  • メンテしないでほっといたら、Rail関連のファイル(tmp以下のsessions)が10GB以上溜まっていて、異常なほど時間がかかった
  • 仮想化のキモは、ディスクアクセスというのが最近の持論
  • CPUはある程度あればOK(デュアルコア以上が望ましくはある)
  • メモリはあるならあるだけ嬉しい
  • ホントはKVMにしたかったけど、うまくいかないからしばらくESXiで様子見
  • 頃合いを見てKVMに移行予定
  • ESXiが居心地よかったら、そのままかも

東方緋想天のネット対戦補助ツール「Sukima」

東方緋想天のネット対戦補助ツール
「Sukima」を作成しました。
ポート解放の手間や、難しいルータ設定をせずに対戦ができるようになります。
(ものによってはできないけど・・・)

ネット対戦など、UDPのポート解放を行うものには何でも使えたりはします。

説明・ダウンロードは以下から。
http://www.kokeodoshi.net/nhakobune/programs/sukima/

UbuntuでRAID1を組む (追記)

古いPCでUbuntuを動かそうとしたときにRAIDを組んだ。
Debianでの入れ方と差がなかったが、メモをしておく。
RAID1にしたが、RAID0やRAID5も出来る。(インストールメニューにはあることは確認)

(下のほうに参考サイトがあるので、見ながらどうぞ)


まず、インストール時にソフトウェアRAIDを組めると聞いたので、それの準備をする。
Ubuntuのイメージの入手。RAIDをやるためにAlternate-CDを使う。

  1. Ubuntu本家サイト に行く
  2. 左のメニューからGet Ubuntuを選ぶ
  3. Download Nowを選ぶ
  4. DesktopかServerかを選ぶ画面で右下に「Even more options」と言うメニューがあるので、そこの一番上の「Text based “alternate installer” installation disk」を選ぶ
  5. 上のメニューか、下にスクロールを行い「Complete Download Mirror List」のAsiaから適当な日本のミラーサイトを選ぶ
  6. beta版じゃないやつの一番新しいの辺りをクリック。(記事を書いたときは8.10が最新版)
  7. 「Alternate install CD」の自分に合う方を選び、DLする。大体700MBほど。(筆者の環境ではPC (Intel x86) alternate install CD)
  8. 下のファイルのリストにMD5SUMSというリンクがあり、そこにMD5の値があるので、DLしたイメージと比較をしてみるといい。(ミラーサイトによっては、何故かテキストで見られないものもある。ミラーサイトを変えればMD5の値が見られる)

入手したイメージをCDやDVDなどに焼く。
あとはインストールしたいPCに入れ、CDからブート。


インストール手順は他のLinuxUbuntuの入れ方と同じ。
違う点はパーティションを切るところの辺り。


パーティションを切るところで、複数台のHDDが認識されていることを確認する。
今回はRAID1(ミラーリング)をするため、2台のHDDのパーティションを同じように切る。
ガイドに任せて / とスワップに分けてもいいし、 /boot を区切ったりしてもいい。


ミラーリングしたいパーティションを選び、ミラーの元と先の両方を「RAIDの物理ボリュームとする」を選択。
一番上にRAIDに関するメニューが出るから、そこを選択。
MD(マルチディスク)デバイスを作成から、RAIDの設定をする。パーティションごとに設定をすることになる。
使いたいRAIDの種類を選ぶ。(今回はRAID1)
アクティブデバイスの数はRAIDを組むHDDの数?。スペアの数は動作しないで待機しているHDDっぽいので、アクティブを2つにしてスペアは0にする。
ここでアクティブを1個にすると、あとからコマンドなどでいろいろ設定し、HDDのデータコピーなどをしなくてはいけない。2個にしておけば、インストールで既にデータのコピーはされている。
スワップは(個人的に)RAIDにする必要はないと思うので、スワップ以外のRAID設定が済んだら完了。


MDの作成が終わったら、sdaとかの上にRAID0とかが出来ていると思うので、マウントポイントの設定をする。
パーティションを / とスワップだけにした場合は、RAID0に / を設定すればいい。

(必要かは分からないけど、両方のHDDの /boot もしくは / の起動フラグをオンにする必要があるようなないような)


あとは普通にインストール作業を進めるだけ。
英語のWarningで「インストール後に再起動しないといかんよ」(多分)みたいなこと言われるが、そのまま進めればOK。再起動するし。
インストール後、 dfコマンドなどで見たときに /dev/md0 などがあればOK。



次にGRUBの設定をする。

grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/menu.lst
grub> quit

GRUBはよく分からないから、解説サイトに従う。



とりあえず、ここまでの設定でRAIDが組めたようだ。
片方が破損しても起動するようになっているらしいが、BIOSで片方をとめてみると動かない。
が、BIOSのHDDからの起動で別の方のHDDを選べば普通に起動した。
生きている方のHDDをBIOSで選べばいいようだ。


HDDがクラッシュしたときに、HDDを追加したりRAIDアレイに参加させる方法は解説サイトに書いてある。
検証やらをしてみる余裕がなかったから試していないが、最低でも片方のクラッシュでデータの損失はないので、ひとまずは安心といったところか。


参考サイト
[ヅラド] Debian GNU/Linux etch で RAID 1 ミラーリングしてみる
http://www.linux.or.jp/JF/JFdocs/The-Software-RAID-HOWTO-4.html#ss4.4
有効なWikiNameではありません - tech.softagency.net



2009/04/16 追記

HDDを繋げる余裕があったため
追加したHDD2台をRAID1にする方法も試してみた。
(上記との違いは、インストール時にRAIDを設定するか、インストールしたUbuntuからの操作で(OSが入っていないHDDの)RAIDを設定するか)


追加したHDDをsdcとsddとする。
2つのHDDをフォーマットする。フォーマットの仕方は何でもいいが、筆者はGpartedを入れて使った。パーティションは切らなかったので、最大容量に設定してext3でフォーマット。(パーティションは同じサイズにする必要がある)


あとはコマンドで

$ mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sdc1 /dev/sdd1
    • level=raid1 はRAID1をやる、と言う意味。
    • raid-devices=2 /dev/sdc1 /dev/sdd1 はアクティブデバイスの数を2個にして、それは /dev/sdc1と/dev/sdd1である、ということ。

設定が出来たら確認を行う。

$ mdadm --detail /dev/md0

インストール時はHDDのミラーは既にされていたが、あとから設定した場合はミラーを作るのに多少時間がかかるようだ。

$ cat /proc/mdstat

で現在の状況と残り時間などが確認できる。



参考サイト
mdadm(8) ver.1.5 man page [日本語]