「 2010年01月 」一覧

カーネルパニック


カーネルパニック on Hyper-V(CentOS)

Hyper-Vの環境で、kernel 2.6.18-164.11.1.el5を使用すると
どうもカーネルパニックしてしまうようだ。
switchroot 後失敗しているらしい。自力で再コンパイルしてまで最新カーネルに追従したいとも
思えないため、yumでインストールできる程度でなんとか出来ないか思案中。

一つ手前の、2.6.18-164.10.1.el5では問題なかった。
また、このバージョンでLinux用統合サービスをインストールしてうまくいっていることも確認できているため、
ここで止めておくのが無難そう。

実験

試しに、すでにインストール済みのCentOS環境に統合サービスをインストール。
この状態で起動できるものを用意しておく。

そこに、XenServerからの移行のためにddで作成したイメージを用いて
強引にVolGroup00にだけ書き戻しをやってみる。

結果、/bootは最初からあるものを使用し、/以下は書き戻されたものを使用する
という状態をつくることができた。

また、以前の手順のうち、MBRの再設定手順を省くことができたため、移行作業を簡単化できそうな感じである。

INIT: Id “co” respawning too fast: disabled for 5 minutes

このエラーが通知された。よって以前の手順のうち、これを修正する箇所から再開すればよさそう。

〆(´∀` )

XenServerのときに入れたツールを除去しておいたほうがよさそうである。

rpm -e xe-guest-utilities

Hyper-Vでやる場合にはXen用は不要なので。


linuxの統合サービス


CentOS5.4にて実験

XenServerから移行した環境で、
linux統合サービスをインストールするとどうもカーネルパニックを引き起こす。
LVMのボリュームを見つけられないような節がある・・・。

体調もよろしくないので、深追いはまた後日・・・。


Windowsサーバーを移行する(XenServerからHyper-Vへ)


ドメインサーバーを移行するための手順の覚え書きです*1
試す場合には自己責任でお願いします。

*1 : まだ未完。でもうまくいきそう

WindowsServer2003 on XenServerをHyper-Vへ移行する

準備

元マシンで”システム状態”のバックアップを作成

  • アクセサリ/バックアップ
  • 詳細モードで起動
    • システム状態のバックアップを作成する

仮想HDD(VHD)を作成

XenConvertをインストールして、
CドライブをVHDに変換します。

仮想マシンを作成

作成したVHDファイルを使用して、仮想マシンをHyper-Vで作成します。
そして起動させます。
→ おそらくここでエラー. ログイン状態まで持って行けません。

事前に作成したバックアップを使って、復元させます。
F8を押して、ディレクトリサービス復元モードで起動。

  • バックアップを起動
    • 復元モードでウィザードを開始
    • 復元する項目を展開していって、System Stateが左側のツリーで表示される状態にする
    • そして、そのSystem Stateにチェックをいれる。
    • 既存ファイルを置き換えるようにして、詳細モードを設定すること

左側のツリーでSystem Stateまで展開しないとチェックをいれられない点でちょっととまどいました。
このあと再起動すると、以前エラー終了した部分が通過できます。

しかしまだエラーが残っている模様
“スタートアップの最中、少なくとも1つのサービスまたはドライバにエラーが発生しました。”
と出る。
それでもしばらく放置しておくと、ログイン画面までは遷移できたので、少しずつは稼働できそうな予感。
ログインして、何がエラーとなっているのかを確認する。

ログインしてみた

大幅なハードウェア変更と警告されて、再起動を要求されるがキャンセル。
そして統合サービスツールをインストールする(インストール後再起動).

またライセンス認証を聞かれるが、キャンセルして継続。
今度はエラーとなったサービスもなく起動完了。

まだライセンス認証通してはいないが、うまくいきそうなところでいったん中断です。


XenServerからHyper-Vへ


XenServerの仮想マシンをHyper-Vへ移行する(XenServer2Hyper-V)

やっている人がいないのか、全く情報がなかった。
XenServerへ行き着いたが最後、ここが終着駅のような感じがしていました。

しかしやっと、XenServerからHyper-Vへ仮想マシンを移行することが出来ました。
その時の手順をここに記載しておこうと思います。

まともな手段とは言い難いため、試す人は自己責任でお願いします。

うまくいった、もっといい方法がある、という情報をお持ちの方は
教えていただけると幸いです。

手順

環境

  • CentOS5.3(x86_64)
  • ディスクパーティションはCentOSのデフォルトのまま
  • XenServer5.0 から Hyper-V 2.0 へ

通常カーネルのチェック

まず移行元のマシンにxenではない通常カーネルがインストールされているか確認する。
もし入っていない場合は、yum install kernelなどで通常カーネルをインストールする。

データ領域の抽出

LVMを使っているのでスナップショットをとる。
・・・しかし、ディスク全体をすでに使用中で割り当てられなかったので強引にやります。

/backupはNFSでマウントした別マシンの共有です。ここにいったんデータを書き出します。
本来はスナップショットをとって、それに対してこのddでのバックアップをとるのが正しいです。

移行先の準備

とりあえずデフォルトのまま CentOSをインストールしておきます。消しちゃうけど。
その後、CentOSのディスクを使ってrescueモードで起動。起動時の linux rescue とコマンド打てばOK

そして、ネットワーク有効にしておきます。
/mnt/sysimageにHDDの状態がマウントされる設定は無効にしておきます。

データを書き戻す

復元先である、/dev/hda1,/dev/mapper/VolGroup00-LogVol00が見えていることを確認してください。
もしなければ、ディスク内容がsysimageにマウントされる設定にして、
手動で、/mnt/sysimage をアンマウントさせてください。

これで、強引に現在のLVMの中身に書き戻しを行います。
いったんここで再起動します。

MBRの書き込み(Grub設定)

続いて、MBRの再設定を行います。
再度CentOSのレスキューモードで起動します。
今度は、sysimageにHDD内容がマウントされるようにします。

まず、XenServerの上で動いていたため、デバイスが /dev/xvdaとなっています。
このままだと、MBRの設定も出来ないので、修正します。

この中にデバイス名で、/dev/xvdaが記載されています。
これを今回のデバイスである /dev/hdaに変更します。*1
その後、MBRの書き込みを実行します。

そして、CentOSのディスクを取り出して、マシンを再起動します。
grubのメニューが立ち上がってくるので、通常カーネルを選択して起動させます。

起動したものの

各サービスが起動しはじめて、いい感じに起動完了しそうなのですが、
途中で進まなくなります。
そのときのエラーの様子はこのような感じに。

とりあえずシングルユーザーモードで起動します。
grubで起動パラメータを single を与えて起動させます。

そして、inittabを変更

そして次の記載がある行をコメントアウト、コメント解除します。

この部分を以下のように書き換えます。

起動パラメータも修正してしまいます。
vi /boot/grub/grub.conf

そして、再起動します。

うまくいけば、これでログイン可能なコンソール状態になります。

normal_startup.jpg

*1 : これを忘れると、”does not have any corresponding BIOS drive”というエラーになる。

*2 : VMwareでは有名な時刻ずれ対処の方法です. Hyper-Vでも有効そう


バックアップ/リストア方式


HyperVに移す前のバックアップ.
LVMでのバックアップにどうするか試行錯誤中

正しくないけど強引に、

dd if=/dev/mapper/VolGroup00-LogVol00 of=/backup/VolGroup00-LogVol00 bs=1m

これでバックアップがとられるはず。

これを相手先でリストアを試みる予定.

終わらないので寝。


うまくいかない・・・


V2V(XenServer to Hyper-V)

現在XenServerを使っているけど、これをHyper-Vのほうへ移行できないか考え中。
エクスポートしてきたデータは xvaだし、XenConvertつかってovfにしようとしても失敗でovfできず。
OVFからVMware経由してHyper-Vにもっていく計画は失敗でした。

途中でできたVHDファイルを一応マウントしてみたが失敗

V2Vその2

XenServerで動いているゲスト上で、
バックアップ/リストアの方法でやれないかを試した。結果は失敗。
g4l(Ghost for linux)を試したみたが、kernelイメージが不正ということで起動できず。
grubまでは立ち上がったんだけどなぁ。

ただ、これ(g4l)つかった瞬間に、XenServerのゲストOSが起動しなくなった。
ちょっと危険・・・。幸いにもExportしておいたデータがあったので助かった・・・。

Hyper-Vにて

CentOSを動かして2時間ほど放置していたら、時刻が10分くらいずれていた。
起動パラメータを変更して様子見・・・。

まとめ

どうやらXenServerに持って行った瞬間、次の移行先はなさそう。
ここが最終地となってしまうようだ。

追記(1/23)

ようやく出来ました。
→成功事例へ


VMwareブリッジもどきを使いたい


VMwareで使えていたブリッジタイプのネットワークが組みたい。
仮想マシンを色々と使っているとそう感じました。

Hyper-Vの標準状態で使えるネットワークのタイプは次の通り。

  • 外部
  • 内部
  • プライベート

外部は物理デバイスを接続するタイプ。直接、物理ネットワークにデータを流せる。
内部は、仮想マシンと、動かしているマシンの通信用。
プライベートは仮想マシン同士で通信できるくらいに限定されたもの。

仮想マシンから外部のWebを参照したりするには、外部タイプのネットワークデバイスを設定しておかなくてはいけない。
でも、この外部タイプは複数の仮想マシンから使用することは出来ない。

でどうするかというと、物理NICと仮想NIC(内部タイプ)とをブリッジ接続して、
VMwareのブリッジのような状況を作り出す。
“ネットワーク接続”を開いて、2つのアダプタを選択。
そして右クリックして、ブリッジ接続を選択する。

あとは、仮想PC内でIPを設定してあげるか、DHCPでIP割り当てられる設定であれば、
VMwareのときと同じような使用感の完成です。

仮想PCを増やすときには、追加した接続をブリッジに追加する必要がある。
これには、ブリッジデバイスのプロパティを開き、今追加した接続デバイスにチェックをいれて追加してあげればよい。


Hyper-V上CentOS5.4で統合サービスをインストール


Hyper-V環境でCentOSを使っている状況で、統合サービスをインストールするのを試してみました。
結論としては、ネットワークデバイスはVMBusが使用OK,マウス&キーボードのキャプチャはNGとなりました。

環境はこんな感じです

  • WindowsServer2008R2 Std(Hyper-V 2.0)
  • CentOS 5.4(x64)
    • ネットワークデバイスは、レガシーネットワークデバイスを追加。

CentOSでの準備

まっさらな状態でインストール。
最低限のため、Desktop環境(Gnomeら)もインストールしない。

そして、yum update で現時点での最新へ引き上げておく。

必要ツール類のインストール

yum install gcc kernel-devel make

依存関係でもっと複数のパッケージがインストールされたりもする。
インストール後は、再起動をしておく。

Server2008R2での準備作業

Linux用の統合サービスツールをダウンロード

“Linux Integration Components for Windows Server 2008 Hyper-V R2 – 日本語”をダウンロードする.
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=c299d675-bb9f-41cf-b5eb-74d0595ccc5c

ダウンロードしたファイルを展開すると、isoファイルが含まれているので、
これをisoイメージを置いておく場所などに移動しておく。
実際には、isoファイルをマウスらで選択できるので、ローカルコンピュータ上ならどこでも平気そう。

統合サービスツールをインストールする

WindowsServer2008R2上で作業する。
Hyper-V上でLinuxIC v2.isoをマウントする。
この後CentOS環境からもディスクのマウントを行う。

この先はCentOS内で作業する

mkdir -p /mnt/cdrom
mount -t iso9660 -o ro /dev/hdc /mnt/cdrom

必要ファイル類をいったんコピーする.

mkdir /usr/local/linux_ic_v2
cp -R /mnt/cdrom/* /usr/local/linux_ic_v2

ドライバ類をインストール開始.

cd /usr/local/linux_ic_v2
./setup.pl drivers

NETVSC_DRV: netvsc_open() ERROR! unable to open device…link is down.

と表示されているが、これはきっとレガシーネットワークデバイスのみ現在有効なためだろう。
インストールが終わったら、シャットダウンしておく。

shutdown -h now

マシン構成を変更する

統合サービスツールいれたので、レガシーネットワークデバイスを削除する。
そして、ふつうのネットワークデバイスを追加する。

設定を変更したら、仮想マシンを起動する。

ログインして、ネットワークデバイスの状況を確認してみると、
seth0というデバイスを使用する状況へと変わっています。

20100012_0038centos54_x64.jpg


RemoteApp試してみた


VMwareServerを併用してRemoteAppを試してみました。

準備

VMwareServerで、WindowsServer2008R2用の環境を準備
ふつうにインストールして、リモートデスクトップサービスを構築しておく。

RemoteAppを試すため、基本的なプログラム代表として、
“電卓”をRemoteApp用として試してみることにします。

設定、および確認

サーバーマネージャからたどって、リモートデスクトップの管理項目で、
RemoteApp追加で、電卓を指定する。
Rdpファイルを作成するようにして、これをクライアントPCに持って行く。

最新のリモートデスクトップ更新を適用されているクライアントPCで
上記のRDPファイルをダブルクリックして開く。
すると、アカウント情報を聞かれるので入力。
問題がなければその後Windows7系の電卓が起動する。

試したのは、Vistaクライアントででしたが、ウィンドウ枠が明らかに違うのでわかる。
でもクライアント側にインストールされてないアプリケーションをこのように使えるのはおもしろい技術だと思う。

追加

Maya 2009をこのRemoteAppで使えたら、便利になる!と思ったのですが、
やっぱりライセンス縛り系はこの方法使えませんでした。
フローティングライセンス運用しているネットワーク内ならば、もしかするとうまくいくのかもしれませんが。

同様にOffice系も動かないような気がします。試してないけど。。。


Vista SP2でHyperV管理ツールを(続3)


通常使用の Marvell Yukon 88E8056 では使用に耐えないという結論で終了のようだ。
このあたりはさすがIntel NICといったところかな。

と昨日結論づけたけど、これに進展あり。

実はWindowsUpdateの中にこのMarvell Yukon 用の新しいドライバが出てた。
これを適用した後でPCを再起動して、再チャレンジしてみたもののやっぱり接続を繰り返すのは変わらない。

状態が表示されて、切断されて、再接続試みて~の繰り返し.