ConVirt2:各VLAN用の qemu-ifup qemu-ifdown

前回の記事で /etc/qemu-ifup, qemu-ifdown を作る必要があると書いたが、あの内容だと br0 のネットワークにしかつながらない。
各インタフェースに対応させるためには、以下のようにインタフェース用にifup,ifdown を用意する必要がある模様。

[br1.10 (eth1のVLAN ID 10 のブリッジIF) の場合]

◯/etc/qemu-ifup-br1.10

#!/bin/sh

BR=br1.10
echo "Bringing up $1 for bridged mode..."
ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to $BR..."
brctl addif $BR $1

◯/etc/qemu-ifdown-br1.10

#!/bin/sh

BR=br1.10
echo "Removing $1 to $BR..."
brctl delif $BR $1
echo "Shutting down $1..."
ifconfig $1 down

ConVirt 2 KVM /Xen 管理ツール

会社の仮想環境をVMware server ベースから KVMベースに移す前振りとして自宅の環境もKVMベースに移行中。
CentOSに標準で付いてくる libvirt + virtsh, virt-manager はシンプルなので自宅で使うのには良いのだけど、会社のようにある程度台数があると結構手間。(VMware server でもその辺面倒だった)
あと運用上 WebUI のほうがありがたい。
というわけでPrivateCloud 系のソフトなども含めていろいろ調べていたけどなかなか自分にあったものがなく悩んでいた。
そんなか見つけたのが ConVirt
convirture という会社が開発している Xen,KVMの管理ツールでもともとは XenMan という名前だったらしい。
ver 1系は Xで動くアプリだったのが 2系からWebアプリになってjquery など使った今風のUIになっている。

ConVirt 2 の管理サーバ ConVirt Management Server (CMS) は VM の形で提供されている。
なのでインストールは結構手軽だと思う。
私は CMSVM自体は libvirt で管理するようにしてみた。ConVirt自体は libvirt を使っていないようで、libvirtに登録されているVMは管理画面からは表示されない。またVMのイメージや登録情報などは ホストサーバの /var/cache/convirt 以下に置かれている。

インストールは以下のような感じ。

ホストOS: CentOS 5.6 x86_64

1. ホストOSにKVMをインストールし、virt-manager で管理できるようにしておく
2. convirtureのサイトにあるインストール手順確認
3. Using Appliance with KVM の "Download the appliance disk image here" から CMSVM をダウンロード
4. CMS VM を解凍して c2_appliance.disk.xm を /var/lib/libvirt/images/ にコピー
5. virt-manager から新しく VMを作成、ディスクイメージとして上記を選択(diskの種別は IDE)
6. 起動。
7. virt-manager のコンソールからログイン cms/convirt
8. cms起動
cd ~/convirt
./convirt-ctl start
9. cmsサーバの IPを確認して http://:8081/ へブラウザでアクセス
admin/admin でログイン

以上でとりあえずCMS起動まで出来た。
なおVMでなく自分でインストールすることもできるようです。RHEL系はこちら

CMSに管理すべきホストサーバを追加するのはここKVMの場合は ssh 経由で管理するのでホストサーバの rootのパスワードを登録する。

実際にゲストOSを起動する場合はホストサーバに /etc/qemu-ifup, qemu-ifdown が必要。
検索して見つけたこちらのサイトスクリプトをそのまま使わせてもらいました。

qemu-ifup

#!/bin/sh

echo "Bringing up $1 for bridged mode..."
ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
brctl addif br0 $1

qemu-ifdown

#!/bin/sh

echo "Removing $1 to br0..."
brctl delif br0 $1
echo "Shutting down $1..."
ifconfig $1 down

これで実際にゲストOSを起動してCentOSのインストールまで出来ました。

まだ触り始めたばかりだけど自分が欲しかったものにかなり近い感じなのでしばらくこれを使ってみる予定。既存の lib-virt ともとくにバッティングしないみたいなのでそういった意味でも評価しやすいと感じます。

RaLink RT2860 on CentOS 5.6 その2

とりあえず無線で接続できたので、念のため再起動してみたら無線APに接続出来ていない。
ログインして wpa_supplicant を起動し、 ifup ra0 すれば問題なく接続できるので rcスクリプトの起動順を見たら

S10network
S12wpa_supplicant

と wpa_supplicant が network よりも後になっている。
どうもこの辺りの起動の順番の影響かなと調べてみたら CetOS の wiki に参考になる情報が書かれていた。

Enabling wpa_supplicant without NetworkManager

記事そのものは NetworkManager というツールを使わずに boot 時に無線LANを接続する方法が書かれていて、そのなかで rcスクリプトの起動順の問題も書かれている。

で具体的な修正は

  1. wpa_supplicant を off

>/sbin/chkconfig wpa_supplicant off

  1. ifcfg-ra0 の修正

# RaLink RT2860
DEVICE=ra0
BOOTPROTO=dhcp
ONBOOT=no
TYPE=Wireless
WPA=yes

起動時にON にするのをやめ、TYPE= と WPA= を追加

  1. /etc/sysconfig/network-scripts/ifup-wireless の末尾に以下のスクリプトを追加

if [ "$WPA" = "yes" -a -x /etc/init.d/wpa_supplicant ]; then
/sbin/service wpa_supplicant start
fi

  1. rc.local に以下を追加

/sbin/ifup ra0


以上で起動時に自動的に無線APに接続できるようになる。

RaLink RT2860 on CentOS 5.6

CentOS 5.6 x86_64 上で ZOTAC H67ITXーWiFi無線LANチップの設定をしたのでそのメモ。

参考にしたのはこちらのブログ
あともうひとつどこか参考にしたのだけどブックマークし忘れてしまった。

設定内容はWPA2/AES Preshared Key のアクセスポイントへの接続。

手順は以下のとおり


1. wpa_supplicant を yum でインストール

>yum install wpa_supplicant
>chkconfig wpa_supplicant on

2. ドライバ・firmware のダウンロード

Ralink社のサイトからLinux 用のドライバとFirmware をダウンロードする

2010_07_16_RT2860_Linux_STA_v2.4.0.0.tar.bz2
RT2860_Firmware_V26.zip

ちなみにドライバは tar.bz2 となっていたが中身は tar + gzip でした。



3. Firmware の zip を展開してrt2860.bin を /lib/firmware にコピー



4. ドライバを解凍してビルド

  ビルド前にos/linux/config.mk を修正

HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

>make
>make install

5. /etc/modprobe.conf

alias ra0 rt2860sta

6. /etc/Wireless/RT2860STA/RT2860STA.dat の修正

CountryCode=JP
SSID=xxx
AuthMode=WPA2PSK
EncrypType=AES
WPAPSK=<16進のキー>
HT_MpduDensity=0
HT_BW=0
HT_AutoBA=0

HT_*はよく分からない。参考サイト等のをまねしただけ。
wpa_passphraseコマンドで生成できる。



7. /etc/wpa_supplicant/wpa_supplicant.conf

network={
proto=WPA WPA2
key_mgmt=WPA-PSK
ssid="xxx"
scan_ssid=1
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=<16進のキー>
}

8. /etc/sysconfig/network-scripts/ifcfg-ra0

# RaLink RT2860
DEVICE=ra0
BOOTPROTO=dhcp
ONBOOT=yes


なおこの設定だと再起動時に無線LANの接続に失敗するので別途対応を考える。

ZOTAC H67ITXーWiFi H67ITXーCーE

ZOTAC H67ITXーWiFi

自宅仮想サーバ用に購入した Mini-ITX マザー。Sandy Bridge 対応。
特徴的なのが無線LANが付いていること。
それ以外にもUSB3.0,SATA 6.0Gbps,eSATA,HDMIなどなんでも付いている感じ。


NIC,WiFi の lspci での表記は以下のとおり


Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
Network controller: RaLink RT2860

NICの方はCentos5.6 x86_64 で普通に認識した。
WiFiのほうはサイトから Linux 用のドライバをインストールする必要があった。
(別途記述)

USB3.0やSATA6.0 についてはデバイスがないので不明。
videoのほうも問題なさそう。普通に GNOME が使えた。サーバで使うのであまり詳細は見てないけど。

Firmware のバージョンアップが DOSまたはWindowsからしかできないのでやり方を検討しておく必要がありそう。

はじめインストーラが途中で固まるなど手間取ったがインストール後は自分の使い方の範囲では問題なそうな感じ。