なんとかinstall battle

KVM上の仮想マシンクラスタにHadoop環境を構築する話。

KVM

参考

!

  • KVMでは、NAT、ブリッジ接続、ホストオンリーの三種のネットワーク構成が可能
  • 仮想OSにホストOS以外からもオープンなIPアドレスを割り当てたい → ブリッジ接続
  • ブリッジ接続は、ホスト Linux 上に仮想的な L2 スイッチを構成するネットワーク構成
  • ブリッジ接続の場合ホストOSはネットワークに繋がらない?
  • ホストOSをネットワークにつなげるためには、一枚のNICにIPアドレスを複数もたせる必要がある(http://kajuhome.com/tips/tips_01_001.shtml
  • IPアドレスエイリアスで可能
  • ifcfg-br0:0として設定。ifcfg-eth0:0でなはい。
# vi /etc/sysconfig/network-scripts/ifcfg-br0:0
# ifup br0:0

参考:
http://pentan.info/server/linux/nic_sub_ip.html

  • NetworkManagerは切る
  • ブリッジ接続時は、NM使えません
# service NetworkManager stop
# chkconfig NetworkManager off

!



KVMのストレージ設定

  • KVMのデフォルトだとルート領域に仮想マシンイメージが作成される
  • ルート領域が小っさい
  • 仮想マシンのイメージの格納先を/var/lib/libvirt/imagesから、/home/kvm/imagesに変更
  • kvmストレージの設定を変更する
/etc/libvirt/storage/default.xml をコピーして修正
cp default.xml disk1.xml
  • uuidの確認
# ls -l /dev/disk/by-uuid/ | grep sda1
lrwxrwxrwx 1 root 10  4月 15 16:00 2013 **************************************** -> ../../sda1
  • 修正
<pool type='dir'>
  <name>disk1</name>
  <uuid>*****************************************</uuid>
  <capacity unit='bytes'>0</capacity>
  <allocation unit='bytes'>0</allocation>
  <available unit='bytes'>0</available>
  <source>
  </source>
  <target>
    <path>/home/kvm/images</path>
    <permissions>
      <mode>0755</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>
  • 定義を読み込む
# virsh pool-define /etc/libvirt/storage/disk1.xml 
プール disk1 が /etc/libvirt/storage/disk1.xml から定義されました
  • virshコマンドでディスクを起動させる
# virsh pool-start disk1
プール disk1 が起動されました

# virsh pool-list
名前               状態     自動起動
-----------------------------------------
default              動作中  はい (yes)
disk1                動作中  いいえ (no)
  • 自動起動をONに
# virsh pool-autostart disk1
プール disk1 が自動起動としてマークされました

# virsh pool-list
名前               状態     自動起動
-----------------------------------------
default              動作中  はい (yes)
disk1                動作中  はい (yes)


!




OSインストール

KVMホスト
OS CentOS 6.2 x86_64
メモリ 16GB
コア 8
HDD 500GB
KVMゲスト
OS CentOS 6.4 x86_64
メモリ 2048MB
コア 1
HDD 60GB~40GB

を×5台

  • virt-manager !!!
  • KVM仮想マシンマネージャーのTOPでは、デフォで仮想マシンのCPU使用率とかディスクI/O ネットワークI/Oが見られる
  • ファイルフォーマットの選択
    • qcow2 ・・・スナップショットや差分イメージを利用する場合はこちら
    • raw ・・・ 利用しないならこっち。仮想マシンが利用するディスク領域を先に確保する。パフォーマンスならqcow2よりも良い。
    • qed ・・・qcow2同様スナップショットとれる。性能もqcow2よりもいいらしい?
  • さくらインターネット研究所の"KVMを使う"シリーズ、大変おもしろい。タネンバウム本で”分散システム ~原理とパラダイム~”は分散システム研究者なら必携の一冊。

参考:


!


"IBM/KVMの仮想ネットワーク接続状態を表示するスクリプト"

  • ありがたや

tapinfo ・・・ タップの情報

# python tapinfo.py 
Domain           Tap          MAC Address        Network      Bridge      
------------------------------------------------------------------------------
gabriel          vnet4        52:54:00:02:87:14               br0         
------------------------------------------------------------------------------
uriel            vnet2        52:54:00:87:75:41               br0         
------------------------------------------------------------------------------
raphael          vnet3        52:54:00:88:dd:95               br0         
------------------------------------------------------------------------------
jesus            vnet1        52:54:00:79:05:94               br0         
------------------------------------------------------------------------------
michael          vnet0        52:54:00:cc:87:99               br0   

brinfo ・・・ ブリッジの情報

$ sudo python brinfo.py 
Bridge       Netowrk      Device       Domain           MAC Address       
------------------------------------------------------------------------------
br0                       em1                                             
                          vnet0        michael          52:54:00:cc:87:99 
                          vnet1        jesus            52:54:00:79:05:94 
                          vnet2        uriel            52:54:00:87:75:41 
                          vnet3        raphael          52:54:00:88:dd:95 
                          vnet4        gabriel          52:54:00:02:87:14 

!





Hadoop完全分散環境構築(本題)

つづく

© karahiyo