‘仮想化’ カテゴリーのアーカイブ

Xen: NAPTでサーバ公開の設定してみた

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

Xen 徹底攻略 第2版を読みながら、ブリッジ接続じゃない方法でDomain-Uを公開しようと思ったら、うまくいかなかった。というか、よくわからなかったというのが正しいか…。勘違いしている可能性が大。

ブリッジ接続にするとDomain-0と同様のネットワークに属している必要があるので、Domain-0のeth0にグローバルIPを与えるとDomain-U全部にもグローバルIPを与える必要があるんじゃないかと思った。グローバルIPはできれば1個で、というふうにうちの会社のネットワーク管理者に言われたので、NAPT(IPマスカレード)で公開するのがよいと思われたので、ブリッジじゃない接続にして仮想LANを設置すればいいのかなと思った。そこでXen本に従ってやってみたのだが、うまくいかず。本が悪いのか俺が悪いのかは定かではないが、繋がらないので前に進めない。

Domain-0でifconfigしてみたら、virbr0というのがあって、これにIPが192.168.122.1というのが振られている。こんな設定したことないのでこいつが何者さえかわかってなかったのであるが、ググってみたらどうもDomain-0内にある仮想ルータらしい。ということは、この仮想ルータに接続するようにDomain-Uのネットワーク設定を行って、Domain-0のiptablesでNAPTすればやりたいことはできそうであるなぁと思った。

Xenの標準設定の状態でvirbr0に接続するようにDomain-Uの設定を行って、Domain-Uからインターネットに向けてpingやtracerouteを行ってみたら、不達。virbr0からeth0に行けてない?xenbr0の存在がよくない?

/etc/xen/xend-config.sxpを編集して、NATにしてみた。こうしたら、xenbr0がなくなって、192.168.122.0のネットワークからインターネットにアクセスできるようになった。うーむ、この設定でいいのだろうか?別にxenbr0があってもできそうな気がするのだが…。

#(network-script network-bridge)
#(vif-script vif-bridge)
(network-script network-nat)
(vif-script vif-nat)

で、今の構成がこうなってる。まだDomain-0をインターネットに公開していないので、ローカルIPです。

xen ネットワーク図

外部からのアクセスをDomain-Uに中継するためにDomain-0でポートフォワーディングする必要があるわけですが、ネットワークエンジニア経験やサーバ構築経験はあるくせして、iptablesの設定ってほとんどやったことがない(ネットワークはシスコの機器ばっかりだったから、そっちのコマンドばっかり勉強してたからです!でももう忘れた…)。iptablesは自宅サーバの場合は出来合いのiptablesのシェルスクリプトを自分用にちょこっと改変して使ってたので、何やってるかはわかるけど、自分では書けないというか…。頭を抱えながらも、iptablesの説明をしてくれているページを見ながらNATの設定をやってみたら、外部からDomain-UのWWWサーバにアクセス出来た!!

iptablesは奥が深いので、ものすごい情報量。
もっと勉強しないとなぁ。

Domain-0にリバースプロキシ組めば、グローバルIP1つで色々と面白いことできるんじゃないかな〜!と思うのですが、リバースプロキシもやったことないので、勉強が必要です。サーバに詳しい人にまた聞いてみよう。


Linux:LVMでパーティションの容量を増やす

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

昨日書いた件の続き。XenにP2Vした開発用サーバのハードディスク容量を2倍にしたいというのが目的。昨日はそれをやったつもりが、うまくいかずにコケてしまい、カーネルパニックになって俺もパニックになったというところまででした。まぁ、仮想環境でよかったよ…。現行は未だにPで動いてるので、問題無し。

さて、P2Vをした後にハードディスクを追加してLVMで既存のパーティションの容量を増やす手順。参考にしたのは、SoftwareDesignの総集編DVDで「LVM」で検索したら出てきた2008年6月号の記事『システムトラブル一刀両断』の44ページのHDDの空き容量が無くなったときの【一刀両断】です。

—- Domain-0での作業 ここから —-

  1. /etc/xen/developのdisk部分を編集(開発用サーバなのでdevelopと命名)
    develop_hda.imgは物理サーバからddで取得したディスクイメージ。
    develop_hdb.imgは新しく増設する用の仮想ハードディスク。

    disk = [ "file:/var/lib/xen/images/develop_hda.img,hda,w", "file:/var/lib/xen/images/develop_hdb.img,hdb,w" ]
    
  2. 次に、実際にdevelop_hdb.imgを作る。増設する容量は40GBほど。
    dd if=/dev/zero of=/var/lib/xen/images/develop_hdb.img bs=1M count=40960
    
  3. そして、Domain-Uであるdevelopを起動する
    xm create develop
    

—- Domain-0での作業 ここまで —-

—- Domain-Uでの作業 ここから —-

  1. ちゃんと/dev/hdbを認識しているか確認する。
    fdisk -l
    
  2. 既存のボリュームグループを確認する。
    vgscan
    

    確認した結果、VolGroup00だったとする。

  3. 物理ボリュームを作成する。
    pvcreate /dev/hdb
    
  4. ボリュームグループに物理ボリュームを追加する。
    vgextend VolGroup00 /dev/hdb
    
  5. ボリュームグループが増えているか「Free PE / Size」を確認する。
    vgdisplay
    
  6. 論理ボリュームを拡張する。
    ****(数字)にはFree PE/ SizeのPEの値を入力する。

    lvextend --extents=+****(数字) /dev/VolGroup00/LogVol00
    
  7. ファイルシステムがext3のときは拡張する。
    resize2fs /dev/mapper/VolGroup00-LogVol00
    
  8. 実際に増えているかどうか確認する。
    df -h
    
  9. 再起動しても大丈夫かどうか確認する。
    shutdown -r now
    

—- Domain-Uでの作業 ここまで —-

今回は再起動しても大丈夫だった。hdbにしたからなのだろうか?
それとも前回は単なるオペレーションミスだったのだろうか?
まぁそうだろうなぁと思うけど。


Xen:Domain-Uのパーティションを増やしたら

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

XenでP2VしたDomain-UのCentOSはハードディスクが40GBしかないので、なんとか容量を増やす必要があった。メモリとかは画面からササッとできるのでいいのだが、ハードディスクの容量はそうはいかない。調べてみたところ、仮想の新しいハードディスクを準備して、それをDomain-UのCentOSでLVMのVolumeGroupに加えてもとのパーティションの容量を増やしてしまえばいい!みたいに書いてあったので、よくわからないままやってみたら、なんとなくできた。

dfコマンドで見ても、40GBだった/パーティションが80GBになっていたので、よっしゃー!と思っていたのだけれど、再起動したらカーネルパニック引き起こしてうんともすんとも言わなくなってしまった…。おぉぉ…。

VMをファイルで管理していたのでバックアップも取っておらず(40GBもあるし)、1CD Linuxで救済を試みるも、新規に加えたはずに/dev/xvdaを全く認識せず、このまま終了してしまった。

もとのハードディスクがhdaだから、容量アップ用のハードディスクもhdbにしたほうがよかったのだろうか?


Xen:p2vする方法(抽象的に書いてる)

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

昨日になるけど、Xenの完全仮想化でP2Vしてみた。前にCPUがIntel-VTがなくてショボーンだったサーバの件である。現在はCore2Duo E6600を積んで、性能はだいぶ上がったと思われる。まぁ何より完全仮想化できるようになったのが素晴らしい。無駄にメモリ8GB積んでいたのがようやく報われる。

ddコマンドで/dev/hdaを丸ごとsshでXenのサーバに転送して、
完全仮想化用の設定ファイルを修正したら、起動した。
完全仮想化用の設定ファイルは、一度CentOS5.4を完全仮想化したものをコピーして編集したのだが、uuidとMACアドレスを修正しただけで案外動いてくれる。

ハードディスクを丸ごとバックアップする方式なので、ハードディスク使用量が少なかったとしても、ハードディスク容量分の転送時間がかかる。今回のは、7GB程度しか使ってないサーバにも関わらず、元が40GBのハードディスクなので、結構時間かかった。Mondo Rescueで移動できたんならよかったのになぁ。Mondo RescueからXenへのP2Vは未だにやり方がわからんまま。7GBしか使ってないなら移動しなくてもいいんじゃないの?って思うかもしれないが、Subversionで大量のファイルを管理したいというような要望が出てきているので、40GB程度だとあっという間に使ってしまいそうだと判断してのこと。

Xen側の設定ファイルのMACアドレス設定を、元々のサーバのMACアドレスに変更しないと、NICが起動してくれない。まぁ、そりゃそうかって気がした。

完全仮想化したサーバの設定をどのように変更していったらいいかは、まだよくわかっていない。
とりあえず起動しただけでも、いちいち最初からクリーンインストールして設定していくよりも楽だから、ありがたい。タイミングをみて物理サーバを停止して仮想サーバにリプレースしないとなぁ〜。Subversion運用してるサーバだから、みんながコミットしないときに作業しないといかんというのがネックだ。来週の金曜日あたりに残業して片付けるかなぁ〜。


XenServer: Mondo Rescueでp2vにはintel-VT必須?

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

会社のサーバで仮想環境の構築をXenServerを使ってやっているのだけれど、物理サーバを仮想サーバに変換するためにMondo Rescueを使って移行しようとしたら、エラーが出た。

XenServer – HVM is required for this operation

Citrix XenServer/エラー「XenServer – HVM is required for this operation」によると、intel-VTがないから無理っぽいようなエラーらしい。

今回使おうとしていたサーバはDELL PowerEdge SC440で、CPUがPentium E2180という、デュアルコアだけどVTをサポートしていないタイプのCPUだったので、どうも無理っぽい。1年以上前の格安サーバだから仕方ないか。メモリだけは潤沢に8GBも積んだのだが。VTないのでできないと報告したら、ひょっとしたらCeleron E3200を買ってもらえるかもしれないことに。というか、やろうとしていることがVTいるんだから、買ってもらえないと前に進めないよ!


VMWare ServerでCentOS5.2

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

VMWare Server上にCentOS5.2をインストールしました。
当初、VMWare Playerを使おうかと思っていましたが、本を見てるとなんだかVMWare Serverのほうが簡単そうに思えたので、そっちにしました。実際、すごく簡単でした。

VMWare Serverのインストールは簡単なので簡略しますが、シリアルキーが必要なため、サイトにユーザ情報を登録しなければなりません。それが唯一の手間です。しかし、それさえやってしまえば、仮想OS領域を確保して、メモリを与えて、あとはその領域にインストールしたいOSをいれるだけです。

今回は、HDD20GB, メモリ512MBにしました。(コマンドラインかつ、テスト用のため)

インストールは、isoイメージから直接インストールができるので、CD-Rも要りません。仮想化って便利だ!ダウンロードしてからインストールするのも面倒だったので、ネットワークインストールにしました。

  1. http://ftp2.riken.jp/Linux/centos/5.2/isos/i386/CentOS-5.2-i386-netinstall.isoより、ネットワークインストール用isoイメージをダウンロードする。
  2. VMWare Server Consoleで、インストールする領域を選んで、その領域のCD-ROMを選択して、Use ISO imageより、さきほどダウンロードしたisoイメージを選択する。
  3. commandsの、start this virtual machineを実行してインストーラー起動。
  4. インストール元をネットワーク、httpを選択する。
  5. サーバのURL:ftp2.riken.jp
    パッケージのパス:Linux/centos/5.2/os/i386/
    を入力する
  6. 後はインストール作業。。。(省略)

ダウンロードしてから作業というのよりは、トータルでいえば時間かからないんじゃないかなと勝手に思っています。メディアがあるんならそれに越したことはないでしょう。

さて、それからはyumとpearコマンドを使って、開発環境を整えていくのみです。yumがすごく楽。


Get Adobe Flash playerPlugin by wpburn.com wordpress themes