<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.1" -->
<rss version="0.92">
<channel>
	<title>cuspy memo</title>
	<link>http://www.cuspy.org/blog</link>
	<description>2.5</description>
	<lastBuildDate>Sat, 27 Mar 2010 13:47:54 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>ja</language>
	
	<item>
		<title>qemu-kvm の block migration を試してみたよ。</title>
		<description><![CDATA[KVM で livemigration を行う際、ストレージは両方のホストからアクセス出来る必要がある(NFS や iSCSI などで)ってここに書いてあった。
http://www.linux-kvm.org/page/Migration
だから前回 iSCSIで試してみたのだけれど、なんと qemu-kvm 0.12 からブロックデバイスの migration が出来るようになったらしいので早速試してみた。

block migration するのは 10G の qcow イメージ、普通に debian をインストールして 844M 使用してある。

sayori:~# qemu-img info vda.qcow
image: vda.qcow
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 844M
cluster_size: 4096

これを sayori で起動。

sayori:~# qemu --enable-kvm -m 512 \
-drive file=vda.qcow,if=virtio,boot=on \
-net nic,macaddr=00:16:3E:00:FF:32,model=virtio

受け入れ側(wasabi)では、同じサイズのqcowイメージを用意してある必要があるのかな、と思ったら、単に touch するだけで良かった。

wasabi:~# touch vda.qcow
wasabi:~# qemu -enable-kvm -m 512 \
-drive [...]]]></description>
		<link>http://www.cuspy.org/blog/archives/917</link>
			</item>
	<item>
		<title>qemu-kvm の live migration を試してみたよ。</title>
		<description><![CDATA[QEMU/KVM の仮想環境(ゲスト)を止めずに別のホストに移す。
構成は以下ような感じ。


ホスト環境 sayori(192.168.1.12) で動作しているゲスト環境 guest(192.168.1.50)を別のホスト環境 wasabi(192.168.1.10) に live migration する。
ホストOS は debian lenny
ゲストOS も debian lenny
ゲストOS は PXE boot して、ルートファイルシステムはkujira(192.168.1.11)のiSCSIターゲットをマウントする。
qemu-kvm のバージョンは 0.12.3
sayori は Intel Core2 Duo で wasabi は AMD Opteron。ホストのCPUアーキテクチャは異なる。

この際、別ホストから guest へのTCPコネクションがどうなるか。と
guest 内で開きっぱなしのファイルがどうなるかを検証する。
rootfsの作成
iscsiターゲットのrootfsを作る。
debootstrapでお手軽サクサク。
パーティション切るとloopbackマウントがめんどいので切らない。

kujira:~# dd if=/dev/zero of=disk1.img seek=10G bs=1 count=0
kujira:~# mkfs.ext3 disk1.img
kujira:~# mkdir mnt
kujira:~# mount -t ext3 -o loop disk1.img mnt/
kujira:~# debootstrap lenny mnt/
kujira:~# echo [...]]]></description>
		<link>http://www.cuspy.org/blog/archives/877</link>
			</item>
	<item>
		<title>MALLOC_MMAP_THRESHOLD_ と MALLOC_MMAP_MAX_</title>
		<description><![CDATA[malloc(3) を呼んだ時、glibc はヒープ領域から指定したサイズのチャンクを確保するが、ヒープ領域が足りなかった場合 glibc は brk(2) を呼んでヒープ領域を拡張するか、Anonymous Memory と呼ばれる領域を mmap(2) して新たなヒープ領域を作成する。
この動作を制御する環境変数が MALLOC_MMAP_THRESHOLD_ らしいのでこれを試しているのだけれど、効かなくて困った。
しかたがないので glibc のソースを読んでいると mmap(2) を使用する最大サイズを指定する MALLOC_MMAP_MAX_ というのも見つけた、これはばっちり効いたのでこれを使おう。
1M を 3回 malloc するだけのコード

#include &#60;stdio .h&#62;
#include &#60;stdlib .h&#62;

int main(){
    int i;
    for(i=0;i&#60;3;i++){
        malloc(1*1024*1024);
    }
    return 0;
}


% strace [...]]]></description>
		<link>http://www.cuspy.org/blog/archives/866</link>
			</item>
	<item>
		<title>spamassassin と wanderlust</title>
		<description><![CDATA[spamassassin で

rewrite_header Subject ***SPAM***

などとやっている場合の偽陽性なメールに対して返信する時に
Re: ***SPAM*** ほにゃららについて
って件名のメールを送ってしまうのは失礼ではないか。
ということで、追加した wanderlust 向け elisp

(add-hook 'wl-draft-reply-hook
          (function
           (lambda ()
             (save-excursion
           [...]]]></description>
		<link>http://www.cuspy.org/blog/archives/858</link>
			</item>
	<item>
		<title>20100123 simple</title>
		<description><![CDATA[今日やったこと。
erl_interface の perl XS module Erlang-Interface-0.03 リリース。
http://search.cpan.org/~hamano/Erlang-Interface-0.03/
github にも push
http://github.com/hamano/perl-erlang-interface
Cのerl_interface に対応する低位インターフェースは用意できた。
あとは上位にオブジェクトインターフェースを用意したいのだけどノードのインスタンスを複数作るにはどうしたものか。
これを実装するにあたりooldaemonさんの記事が参考になった。
erl_interface メモ &#8211; cooldaemonの備忘録
あと自宅サーバーを復旧した。
wordpress 2.9.1 に upgrade、壊れたDBを修復した。
firefox が落ちる問題の調査。
uim か gtk の immodule が怪しいことは解った。
滅多に再現しないので得に進展なし。
以上。
追記:
firefoxがクラッシュする問題は、uim 1.5.6 以前の問題で 1.5.7 以降で修正されていることを @mnoguさんに教えてもらった。
http://bugs.freedesktop.org/show_bug.cgi?id=25139
]]></description>
		<link>http://www.cuspy.org/blog/archives/841</link>
			</item>
</channel>
</rss>

