UbuntuにKVM環境を構築する
Linuxで仮想マシン基盤を構築しようとしたとき、幾つかの選択肢がありますが、
KVM(Kernel-based Virtual Machine)は、Kernel2.6.30以降標準で利用可能です。
プロジェクトページ:KVM
余談ですが、KVM以前よりLinuxで仮想化を担ってきたXenについては、Kernel3.0
よりメインラインに加わったそうです。
SORCEFOGE.JP Managin:Linux 3.0がついにリリース、バージョン番号付けルールが変更に | OSDN Magazine
アーキテクチャ
KVMは、完全仮想化を提供するハイパーバイザで、仮想化支援機能を持つCPUで
動かすことが必須になります。
このため、Intel系ではIntel VT-x。AMD系ではAMD-V対応CPUである必要があります。
ここでは、以下のような構成でシステムを構築したいと思います。
KVM/QEMU | KVM基本構成KVM |
libvirt | 仮想環境管理用APIlibvirt: The virtualization API |
virt-manager | 仮想環境GUI管理ツールhttp://virt-manager.org/index.html |
なお、KVM自体の仕組みについては下記の記事が参考になるでしょう。
http://www.computerworld.jp/topics/602/%E4%BB%AE%E6%83%B3%E5%8C%96/111429/%E3%80%8CKVM%E3%80%8D%E2%80%95%E2%80%95Linux%E6%A8%99%E6%BA%96%E3%81%AE%E4%BB%AE%E6%83%B3%E5%8C%96%E6%A9%9F%E8%83%BD%E3%81%AE%E5%BE%97%E6%84%8F%E9%A0%98%E5%9F%9F%E3%82%92%E7%9F%A5%E3%82%8B
Linux標準の仮想化技術「KVM」の仕組み (1/2):知って見るみるKVM(1) - @IT
インストール手順
Ubuntuへのインストールは、すべてapt-getにて標準リポジトリからインストール
可能です。
■パッケージ情報・インストール済みソフトウェアの最新化
$ sudo apt-get update $ sudo apt-get upgrade
■KVM/QEMUのインストール
$ sudo apt-get install kvm kvm-pxe
■Network(Bridge)の設定
ここでは、eth0を利用したブリッジインタフェースを作成する手順です。
$ sudo vi /etc/network/interfaces -- # The primary network interface auto eth0 iface eth0 inet manual # The KVM Bridge network interface auto br0 iface br0 inet static address 192.168.xxx.ooo netmask 255.255.255.0 network 192.168.xxx.0 broadcast 192.168.xxx.255 gateway 192.168.xxx.254 dns-nameservers 192.168.xxx.254 bridge_ports eth0 -- $ sudo /etc/init.d/networking restart $ sudo ifconfig
■libvirtおよび、virt-managerのインストール
$ sudo apt-get install libvirt0 libvirt-bin virt-manager ※インストール後、管理ツールを利用するユーザをkvmと libvirtdグループに所属させる必要がある $ sudo /etc/init.d/libvirt-bin restart
以上。
Ubuntu 11.04でHDD Active Protection Systemを使う
若干毛色の違うエントリーですが、最近余剰なThinkPad X61を入手したので
Linux Desktopマシンとして利用しようと思い立ち、Ubuntu Desktop 11.04を
インストールしてみた。
ThinkPadを利用するからには"HDD Active Protection System"というLenovo(旧IBM)の
加速度センサーを用いた、振動(衝撃)によるHDD障害を防ぐ機能を使用したいと思い
Linuxで利用可能かどうか調べてみた結果、Kernelモジュールで対応できるようだ
インストール手順
いろいろと調べた結果、TP SMAPIというKernelモジュールを導入することにより
利用可能なようで、Tp smapi - ThinkWikiを参考に以下の手順でインストールを行ってみた。
# apt-get install hdapsd # lsmod | grep hdaps hdaps 14062 0 input_polldev 14007 1 hdaps # apt-get install tp-smapi-source # rmmod hdaps # modprobe -a hdaps tp_smapi # lsmod | grep hdaps hdaps 19207 0 thinkpad_ec 14450 2 tp_smapi,hdaps ※正常にKernelモジュールがロードされたことを確認 # dmesg [ 1257.149709] hdaps: inverting axis (3) readings. [ 1257.149712] hdaps: LENOVO ThinkPad X61 detected. [ 1257.151298] input: hdaps as /devices/platform/hdaps/input/input7 [ 1257.151380] hdaps: driver successfully loaded. [ 1382.830373] hdaps: driver unloaded. [ 1417.814238] thinkpad_ec: thinkpad_ec 0.40 loaded. [ 1417.816537] hdaps: LENOVO ThinkPad X61 detected, setting orientation 6 [ 1417.817672] hdaps: initial mode latch is 0x05 [ 1417.817816] hdaps: setting ec_rate=250, filter_order=2 [ 1417.818038] hdaps: device successfully initialized. [ 1417.820640] input: ThinkPad HDAPS joystick emulation as /devices/virtual/input/input8 [ 1417.822413] input: ThinkPad HDAPS accelerometer data as /devices/virtual/input/input9 [ 1417.824002] hdaps: driver successfully loaded. [ 1417.825902] tp_smapi 0.40 loading... [ 1417.827913] tp_smapi successfully loaded (smapi_port=0xb2). # vi /etc/modules ※下記3行を追記 # ThinkPad ActiveProtection tp_smapi hdaps # /etc/init.d/hdapsd start
以上。
実行可能なjarでlogbackが正常に動作しない
slf4j+logbackな環境で、コマンド実行するプログラムを書いた際、
ログ出力がうまくいかず、苦労したので備忘録に。。。
"URL [rsrc:logback.xml] is not of type file"ってなに?
eclipseで実行していたときには、正常にロギングされていたのだが、
いざ、jarに固めコマンドプロンプトから実行すると、下図のエラー
メッセージが表示され、正常に動作させることが出来なかった。
コンソール出力されたメッセージを追ってみると以下のような
エラーメッセージを発見。
21:01:57,765 |-ERROR in ch.qos.logback.core.joran.spi.Configuration WatchList@12558d6 - URL [rsrc:logback.xml] is not of type fileここから長い調査の旅が始まったのですが、結論を説明するとコレ。
[LOGBACK-150] Logback complains if logback.xml is in a jar - QOS.ch JIRA
logback 0.9.28の既知のバグの様で、設定ファイルであるlogback.xmlが
JARやWARなど、アーカイブされている場合に発生するようです。
回避策
さてここで、logback.xmlファイルの設置場所について
もう一度考えると「CLASSPATHが通してある場所」である。
カレントディレクトリがデフォルトでCLASSPATHに含まれている事を
前提としてjarからlogback.xmlを排除し、カレントディレクトリに
生のlogback.xmlを配置することで正常に動作させることが出来た。
検証プログラム
ライブラリ
slf4j-api-1.6.1.jar
logback-core-0.9.28.jar
logbacl-classic-0.9.28.jar
プロジェクト構成
App.java
package example.logback_test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class App { private static Logger logger = LoggerFactory.getLogger(App.class); public static void main( String[] args ) { logger.info("Hello slf4j+logback World!!"); System.out.println( "Hello slf4j+logback World!!" ); } }
logback.xml
System.out [%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level] %class - %msg%n logs/applog.%d{yyyy-MM}.log 1 UTF-8 [%-5level][%d{yyyy-MM-dd HH:mm:ss.SSS}] %class - %msg%n
今月の読本
以前、Vol.1を紹介しましたがVol.2が出ていたのでこちらも購入。
ITアーキテクトのやってはいけないVol.2 (日経BPムック)
- 作者: 日経SYSTEMS
- 出版社/メーカー: 日経BP社
- 発売日: 2010/11/17
- メディア: 雑誌
- 購入: 10人 クリック: 47回
- この商品を含むブログ (5件) を見る
手元に置いておくと、ふとしたときの参考になりそうです。
今月の読本
このところ、触手の働く雑誌・書籍にめぐり合えていなかったのですが、
今月はこの2冊の雑誌を購入してみました。
日経ソフトウエア
- 作者: 日経ソフトウエア
- 出版社/メーカー: 日経BP社
- 発売日: 2011/01/24
- メディア: 雑誌
- 購入: 10人 クリック: 82回
- この商品を含むブログ (5件) を見る
特集記事がかなり面白そう。
とくに「特集2」と「特集3」。
ソフトウェアエンジニア・インフラエンジニア関係なく抑えておくべき
ポイントではないでしょうか?
Software Design
Software Design (ソフトウェア デザイン) 2011年 02月号 [雑誌]
- 出版社/メーカー: 技術評論社
- 発売日: 2011/01/18
- メディア: 雑誌
- 購入: 6人 クリック: 91回
- この商品を含むブログ (248件) を見る
業務で実践できるかは別として、便利そうなコマンドが色々と
紹介されています。
ドキュメント管理については、個人的にはSubversionではなく
Gitのほうがよいのかなと最近思い始めていますが、、、
もっとも、自分自身Gitについては勉強不足なので
まずは理解を深めてみないとw
EclipseでPython
ご無沙汰しております。
先日、Solaris 11 Expressをインストールしてみたところ、
Pythonが標準で含まれていました。
XenやGentoo Linuxのemergeなどの制御スクリプトからJythonまで、
様々な分野でPythonが取り入れられている現状を垣間見ると
一技術者として学んでおく必要を感じております。
前置きが長くなりましたが、今回はWindowsクライアントにPythonの
開発環境を準備した際のメモを残したいと思います。
Python開発環境 Eclipse Plug-in PyDev
最近、Java,PHPの開発環境としてEclipseを使用することが多く、
Pythonの開発環境用Plug-inがないかと探したところ、PyDevを発見しました。
PyDevにはコード補完・シンタックスハイライト・定義へのジャンプ
リファクタリング機能・デバッグ機能等、便利な機能が用意されています。
右も左もわからない中での環境構築が、手間がかかりそうだったので
PleiadesのPython開発環境を利用することにしました。
Pleiades Python開発環境
いわずとしれたPleiadesですが、Python用の「Full All in One」を
選択することで、Pythonの実行環境も含め必要な環境が一通り準備可能です。
Pleiadesダウンロードサイト:Eclipse 日本語化 | MergeDoc Project
なお、2010年12/22現在では Eclipse 3.4.2 Ganymede SR2 32bit ベース のものが
Python開発環境の最新です。
ダウンロードしたZipファイルを展開し、適当なディレクトリに設置するだけで
開発環境を準備することが出来ました。
Windowsの環境変数を設定する。
上記の操作のみでも、開発環境として利用可能なのですが、
ライブラリのインストールなどが便利なように環境変数を設定します。
[設定する環境変数]
環境変数名 | 設定例 |
---|---|
PYTHONPATH | C:\Developments\python-dev\python\Lib\site-packages |
Path | C:\Developments\python-dev\python\ |
各々のPleiades展開先のパスを指定してください。
※Pathは既存の変数値に追記です。既存の変数値は消さないでください。
とりあえず、以上。
DebianにSun JDK6をインストールする
Debian 5.0.6にSun JDK6をインストールしてみた。
若干めんどくさかったのでメモ
インストール準備
Sun Java JDKはnon-freeとして管理されているため、
/etc/apt/source.listに設定を追加する
deb http://ftp.jp.debian.org/debian lenny main non-free追記後、"aptitude update"を実行。
また、"jdk-docs"をOracleよりダウンロードし、/tmpに設置しておく必要があるが、
インストールするJDKのアップデートバージョンにより必要となる ファイル名が異なるため、
インストール時のメッセージにあわせてファイルを準備する必要がある
This package is an installer package, it does not actually contain the JDK documentation. You will need to go download one of the archives: jdk-6u12-docs.zip jdk-6u12-docs-ja.zip (choose the non-update version if this is the first installation). Please visit http://java.sun.com/javase/downloads/ now and download. The file should be owned by root.root and be copied to /tmp.※該当のアップデートバージョンのjdk-docsを見つけられなかったため、
jdk-6u10-docs-ja.zipとjdk-6u22-docs.zipをリネームして利用。