ここまではなんとか順調にきたんですが、ESXi からの移行、Debian と Windows XP は失敗しました。
Debian のほうはブートせず。/boot とかは見えてるのでディスクの情報自体は見えてると思うんですがねぇ。残しとく理由もあまりない VM だったので、そのディスクを CentOS のほうでマウントして必要な情報を抜き出すことで対応しました。
Windows XP のほうはなんと予想通りの青画面がでましたw こちらにいたってはもっと使ってない(DDNS の更新ソフトが Windows しかない、とかの理由)のでとりあえずこのままお蔵入りさせました。
メインの CentOS が移行できたのでよしとしますね。
2012年12月22日土曜日
Step 5 改 : VMware の VM を KVM に
Step 5 改です。おさらいですが Step 5 改 は
では実際に作業。もともと ESXi 上で VM を停止した上でイメージファイルをコピーしておきます。Virtual Machine Manager を起動して、必要なら Edit > Connection Details で Storage Pool を作っておきます。
いろいろ調べていたら物理ディスクを KVM に見せられると。これなら通過できそう。この件についても書いてる方たくさんおられますが、私は
そして起動したところ、LV のほうは無事通過!だけどべたでデバイスをマウントしてた(/dev/sdc2) ほうが相変わらずだめって言われる。・・・ということは単に /etc/fstab に指定を残したままにしちゃったのが原因か?
この状態になると single user mode になりますが、read only でマウントされちゃうのでそこでは訂正できず。なので OS のインストールに使った ISO イメージをコピーし、デバイスの追加で Storage を選び、タイプのところを IDE CD-ROM にして"Select managed..." のほうでコピーした ISO ファイルを指定。Boot Options のところで "Enable boot menu" をオンにして、起動して F12 を押すと起動メニューが出るのでそこで DVD/CD-ROM を選ぶ。
ここで Rescue を選んで進むと /mnt/sysimage だったかにマウントした状態で起動してくれるので、その中の etc/fstab を編集し、/dev/sdc2 をコメントアウトしてもう一度起動すると・・・。
起動したー!
怪我の功名って感じもしますが、結局のところ KVM のマシンからホストマシンにあるディスク2つ(=RAID 1のメンバー=LV)がそのまま見えててマウントもできました。
で、もともと VM たちは bridge 接続してたので、その設定を。これも(ほんと便利ですね)いろんなところで解説されてますが、今回参考にさせていただいたのはこちら。ややはまったのは、ifcfg-eth0 や ifcfg-br0 を修正していたら、NetworkManager が勝手に(?)まだ出来てない状態のものを読み込んだのかつながらなくなってしまったことですね。なので NetworkManager の停止等は先にやっておいたほうがよさそうです。
さてそれが終わったら KVM の VM の設定のところでネットワークの Source Device に "Host device eth0 (Bridge 'br0')" というのが出てくるのでそれを選択して起動。
おおお、見事にホストOS以外のマシンからも直接アクセスできました!この時点でこの VM については ESXi で動いていた状態に完全に戻ったのでいろんなサービスにもアクセスできます。あとのステップは徐々に行えばよいと。すばらしい。
これ以外の VM も同じようにすればいけるのではと期待できます。おそらく Debian のやつは同じように問題なく、Windows XP はもしかすると青画面が出るような予感もしますが・・・。うまくいっても activation をもう一度迫られて、OEM 版なので失敗してお蔵入りになるかもですね。そうだ、あまっている Vista のライセ (ry
- ESXi 上で動いていた VM たちを KVM にコンバート
では実際に作業。もともと ESXi 上で VM を停止した上でイメージファイルをコピーしておきます。Virtual Machine Manager を起動して、必要なら Edit > Connection Details で Storage Pool を作っておきます。
# qemu-img convert <esxi_image_name>.vmdk -O raw <kvm_image_name>.img新規VMを作るときにその img ファイルをインポートする。起動。おおお、ちゃんと起動するじゃん!・・・失敗した。この VM は今度はディスクをマウントしないので、今まであった LV を探しにいってないといわれて失敗してる。どうしようか。
いろいろ調べていたら物理ディスクを KVM に見せられると。これなら通過できそう。この件についても書いてる方たくさんおられますが、私は
# virsh edit <vm_name>でデバイスの情報を書き込みました。
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sdc'/>
<target dev='vdb' bus='virtio'/>
</disk>
のような感じで。恒久的に運用するんだったら、source のところはちゃんと /dev/disk/by-id/... のように書いたほうがいいですね。/dev/sd. はディスク抜き差しすると変わるので。そして起動したところ、LV のほうは無事通過!だけどべたでデバイスをマウントしてた(/dev/sdc2) ほうが相変わらずだめって言われる。・・・ということは単に /etc/fstab に指定を残したままにしちゃったのが原因か?
この状態になると single user mode になりますが、read only でマウントされちゃうのでそこでは訂正できず。なので OS のインストールに使った ISO イメージをコピーし、デバイスの追加で Storage を選び、タイプのところを IDE CD-ROM にして"Select managed..." のほうでコピーした ISO ファイルを指定。Boot Options のところで "Enable boot menu" をオンにして、起動して F12 を押すと起動メニューが出るのでそこで DVD/CD-ROM を選ぶ。
ここで Rescue を選んで進むと /mnt/sysimage だったかにマウントした状態で起動してくれるので、その中の etc/fstab を編集し、/dev/sdc2 をコメントアウトしてもう一度起動すると・・・。
起動したー!
怪我の功名って感じもしますが、結局のところ KVM のマシンからホストマシンにあるディスク2つ(=RAID 1のメンバー=LV)がそのまま見えててマウントもできました。
で、もともと VM たちは bridge 接続してたので、その設定を。これも(ほんと便利ですね)いろんなところで解説されてますが、今回参考にさせていただいたのはこちら。ややはまったのは、ifcfg-eth0 や ifcfg-br0 を修正していたら、NetworkManager が勝手に(?)まだ出来てない状態のものを読み込んだのかつながらなくなってしまったことですね。なので NetworkManager の停止等は先にやっておいたほうがよさそうです。
# service NetworkManager stop # chkconfig NetworkManager off # service network restart # chkconfig network onそれからてっきり br0 は各VMごとに作るのかと誤解していてそのままだとホストはどうなるんじゃい!とか思ってましたが、基本 eth0 のアドレスの設定とかを br0 に持っていけばいいようですね。そこらへんの原理はあまりしっかり理解しませんでしたが。
さてそれが終わったら KVM の VM の設定のところでネットワークの Source Device に "Host device eth0 (Bridge 'br0')" というのが出てくるのでそれを選択して起動。
おおお、見事にホストOS以外のマシンからも直接アクセスできました!この時点でこの VM については ESXi で動いていた状態に完全に戻ったのでいろんなサービスにもアクセスできます。あとのステップは徐々に行えばよいと。すばらしい。
これ以外の VM も同じようにすればいけるのではと期待できます。おそらく Debian のやつは同じように問題なく、Windows XP はもしかすると青画面が出るような予感もしますが・・・。うまくいっても activation をもう一度迫られて、OEM 版なので失敗してお蔵入りになるかもですね。そうだ、あまっている Vista のライセ (ry
ラベル:
CentOS,
KVM,
Linux,
VMware ESXi,
自宅サーバー
2012年12月21日金曜日
VMware ESXi サーバーの HDD を外す
早速インストールに移る前に。
調べ方。まず vSphere Client を起動して、構成を開く。そこでディスクを選ぶと「物理 LUN およびデータストア マッピング ファイル」というところになにやらIDっぽいものが出るのでそれをメモ。サーバーにログインして、/dev/disk に移動し、ls -l の出力で先ほどの ID を引くとリンクの指し先が
上では省略してますが、最後のほうにシリアルNoもでてきます。
外すHDDを特定するこれ大事なんですよね。Linux からみえてた /dev/sdd と /dev/sde を特定しなければ。Linux 上からも見えてたのかも知れないんですが、何せ ESXi の RDM が噛んでいるので。
調べ方。まず vSphere Client を起動して、構成を開く。そこでディスクを選ぶと「物理 LUN およびデータストア マッピング ファイル」というところになにやらIDっぽいものが出るのでそれをメモ。サーバーにログインして、/dev/disk に移動し、ls -l の出力で先ほどの ID を引くとリンクの指し先が
t10.ATA_____WDC_WD20EARX2D....のような感じになっているのできっとこれに違いない。今回はこれで調べてみたら外すべき 2TB HDD x 2 は同じ型番(WD20EARS)で残すほうは違う型番(WD20EARX)だったのでラッキー。(ちゃんとメモっておけと)
上では省略してますが、最後のほうにシリアルNoもでてきます。
移行計画
自宅サーバーを VMware ESXi から Linux に移行するという計画はひとつ前に書いたとおりですが、手順は以下のように進めます。
これが終わると、サーバーは約 6TB の領域が RAID 1 で確保され、開発機は 1.5TB RAID 1 + 2.0TB RAID 0 になります。開発機は少なくなる感じですが、どうせファイルの大部分はファイルサーバーにあるし、ソースコード等はチェックインする先がサーバーなので少なくても特に問題ないと。
RAID 5 にしたほうが容量稼げるのになぜか?という質問に対しては、基本 HDD を信用してない(=壊れるのが当たり前)というスタンスなので、なるべくシンプルな冗長性を取りたいのです。RAID 1 なら1台壊れても普通のディスクですからね。
- CentOS が使っているディスク領域を空ける(3.5TB 中 1.5TB 空きに)
- その ext4 ファイルシステムを 1.5TB 以下に縮小し、LVのサイズも縮める
- 2TB 余ったので 2TB HDD x 2 (RAID 1) を VG から抜く
- 3で余った HDD を RAID 1 にし、新たな VG/LV を作り、CentOS の / や /boot 等をコピー
- SSD (ESXi) を外し HDD から起動
- 4で余っている領域をもともとある 1.5TB の VG に追加
- 開発機の RAID 5 上にあるデータを移動し、RAID 5 を解除
- 7で空いた 2.5TB HDD x 3 のうち2本をサーバーにつけ、RAID 1 で VG に追加
- もともと VG に入っている 1.5TB の HDD を抜き、新たに 2TB と交換
- 開発機に 2.5TB、1.5TB、1.0TB を集め、1.5TB RAID1 + 2.0TB RAID0 にする
これが終わると、サーバーは約 6TB の領域が RAID 1 で確保され、開発機は 1.5TB RAID 1 + 2.0TB RAID 0 になります。開発機は少なくなる感じですが、どうせファイルの大部分はファイルサーバーにあるし、ソースコード等はチェックインする先がサーバーなので少なくても特に問題ないと。
RAID 5 にしたほうが容量稼げるのになぜか?という質問に対しては、基本 HDD を信用してない(=壊れるのが当たり前)というスタンスなので、なるべくシンプルな冗長性を取りたいのです。RAID 1 なら1台壊れても普通のディスクですからね。
ラベル:
CentOS,
KVM,
Linux,
VMware ESXi,
自宅サーバー
はじめました
とか書く必要もないぐらい、適当に主にIT技術についていろいろやったことを書き連ねるだけのブログです。説明にもあるとおり基本備忘録なので書いてある情報を信じるも信じないもご自分の責任でお願いいたします。
で、早速。これから書く予定の年末の課題についてですw
仕事でいわゆる continuous integration をやっているのですが、その実行環境として管理が楽なので Linux (RHEL5/6) を使っていたのですが、Pure Java にもかかわらず実は Windows で実行しないと起きない問題とかあって、Windows (2008 Server) でも動かしたほうがいいって話になりまして。それで超絶高い(値段が、ですよ)マシンを借りて実行したんですが、えええ、そんなに遅いの?と驚きの遅さでした。他のマシンでも試した結果、I/Oが遅いマシンは Windows だと話にならない遅さになるという結論に。最終的にうちの環境での最速の Windows 環境は、なんと Linux の KVM 上の VM で作った Windows が最も速いという結果になりました。KVM を通して I/O したほうがいろいろキャッシュも利いて Windows というか NTFS というかの欠点を補ってくれるってことなんでしょうかね。もちろんその Linux 上で実行するのが1.5倍ぐらい速いんですけど。
で、ここまで調べた結果、私は「おいおい、やっぱ Linux 優秀じゃねーか」派となりました。そして自宅サーバーの VMware ESXi (たぶん4.0)もいろいろ面倒なのでやめて、Linux にした後 ESXi で動いていた VM を KVM に移行しちゃえばいいじゃないかと。動いてる VM も CentOS 以外はそれほど使ってないので。
自宅サーバーの現状は
M/B : Intel DQ45CB
CPU : Core2 Quad Q9450
RAM : 6GB
Storage : 80GB SSD, 2TB HDDx3, 1.5TB HDD
作ったのいつだったかな・・・。2008年8月発売のCPUがついてるってことはその年末あたりかな。となると4年ぐらいたってますかね。これに VMware ESXi が入っていて、その上で CentOS, Debian, Windows XP の VM が動いています。これらの VM のイメージは SSD 上にあって、残りの HDD たちは CentOS に Raw Device Mapping で見せています。CentOS はその HDD を RAID 1 (と残り500GB)にして大事なファイルを保護しているという状態。
それとは別に開発機があって、こちらは
M/B : ASRock Z68 Pro3
CPU : Core i7 2600K
RAM : 8GB
Storage : 240GB SSD, 2.5TB HDDx3, 1TB HDD
ぶっちゃけるともともと 2.5TB の HDD はサーバーのほうにつける予定だったんです。でも ESXi 経由の RDM では認識されなかったので仕方なく開発機のほうにつけてます。マザボに RAID がついてるので調子にのって RAID 5 を構成してます。
とりあえず現状を記述したところでこの記事はまず閉じときますか。
で、早速。これから書く予定の年末の課題についてですw
仕事でいわゆる continuous integration をやっているのですが、その実行環境として管理が楽なので Linux (RHEL5/6) を使っていたのですが、Pure Java にもかかわらず実は Windows で実行しないと起きない問題とかあって、Windows (2008 Server) でも動かしたほうがいいって話になりまして。それで超絶高い(値段が、ですよ)マシンを借りて実行したんですが、えええ、そんなに遅いの?と驚きの遅さでした。他のマシンでも試した結果、I/Oが遅いマシンは Windows だと話にならない遅さになるという結論に。最終的にうちの環境での最速の Windows 環境は、なんと Linux の KVM 上の VM で作った Windows が最も速いという結果になりました。KVM を通して I/O したほうがいろいろキャッシュも利いて Windows というか NTFS というかの欠点を補ってくれるってことなんでしょうかね。もちろんその Linux 上で実行するのが1.5倍ぐらい速いんですけど。
で、ここまで調べた結果、私は「おいおい、やっぱ Linux 優秀じゃねーか」派となりました。そして自宅サーバーの VMware ESXi (たぶん4.0)もいろいろ面倒なのでやめて、Linux にした後 ESXi で動いていた VM を KVM に移行しちゃえばいいじゃないかと。動いてる VM も CentOS 以外はそれほど使ってないので。
自宅サーバーの現状は
M/B : Intel DQ45CB
CPU : Core2 Quad Q9450
RAM : 6GB
Storage : 80GB SSD, 2TB HDDx3, 1.5TB HDD
作ったのいつだったかな・・・。2008年8月発売のCPUがついてるってことはその年末あたりかな。となると4年ぐらいたってますかね。これに VMware ESXi が入っていて、その上で CentOS, Debian, Windows XP の VM が動いています。これらの VM のイメージは SSD 上にあって、残りの HDD たちは CentOS に Raw Device Mapping で見せています。CentOS はその HDD を RAID 1 (と残り500GB)にして大事なファイルを保護しているという状態。
それとは別に開発機があって、こちらは
M/B : ASRock Z68 Pro3
CPU : Core i7 2600K
RAM : 8GB
Storage : 240GB SSD, 2.5TB HDDx3, 1TB HDD
ぶっちゃけるともともと 2.5TB の HDD はサーバーのほうにつける予定だったんです。でも ESXi 経由の RDM では認識されなかったので仕方なく開発機のほうにつけてます。マザボに RAID がついてるので調子にのって RAID 5 を構成してます。
とりあえず現状を記述したところでこの記事はまず閉じときますか。
ラベル:
CentOS,
KVM,
Linux,
VMware ESXi,
自宅サーバー
登録:
投稿 (Atom)

