2008年11月28日金曜日

vserver で ネットワークインターフェイスを追加

/etc/vservers/XXXX/interfaces に 0 とか1とかいうディレクトリができている.XXXXはvserverの名前.

このディレクトリの中にdev, ip, prefixというファイルがありそれぞれ eth0 とか xxx.xxx.xxx.xxx とか 24 とかいう値が入っている.prefixはnetmaskのビット数.

新しいネットワークインターフェイスを追加するには,連番のディレクトリを掘って,適切に値をいれてやればよい.

> mkdir 3
> echo eth0.1173 > 3/dev
> echo XXX.XXX.XXX.XXX > 3/ip
> echo 24 > 3/prefix
で vserverを再起動する.
> vserver ce5 stop
> vserver ce5 start
これで新しいネットワークデバイスが中からみえるようになる.

openvz vps にネットワークインターフェイス追加

> vzctl set 101 --ipadd xxx.xxx.xxx.xxx --save
とかやるだけ.いくらでも追加できるようだ.また,maskやらgatewayは指定しない.どうもホストで中継しているような...

追加しただけだとうまく動かないみたい.

> vzctl exec 101 servce network restart
として中のネットワークをリスタートしたり,
> service network restart
としてホストのネットワークをリスタートしたりする必要があるかも.

追加は簡単だが削除の仕方がわからない...とおもってマニュアルを見ると

> vzctl set 101 --ipdel xxx.xxx.xxx.xxx
とやるようだ.ipadd はIP Addressの略かと思っていたのだが IP add だったのね.びっくり.

vlan

linux で tag vlanを作る.

/etc/sysconfig/network-scripts/eth0.xxx というファイルを作る.これはeth0に作る場合. xxxはvlanタグ. 中身は.

DEVICE=eth0.xxx
IPADDR=yyy.yyy.yyy.yyy
NETMASK=255.255.255.0
BOOTPROTO=none
ONBOOT=yes
で,vconfig コマンドで vlanを作る.
> vconfig add eth0 xxx
ifup する.
> ifup eth0.xxx
意外に簡単だ.

これだけだと再起動のときにまたvconfig / ifupしなくてはならないようだ. /etc/sysconfig/networkに

VLAN=yes
を追加したらだいじょうぶになった.

2008年11月26日水曜日

openvz on centos5

ここに書かれた通りに導入.簡単.パケットのフォワーディングをいじっているのはなんなんだろう.この手順で入るのはカーネルだけなので,必要なツール類をyumで入れる.
yum install vzctl vzquota vzpkg
テンプレートという概念がある.テンプレートもパッケージで入れるものらしい. 残念ながらcentos5のテンプレートのパッケージは無いようだ. どこかに転がっていないかなあ.
> yum list | grep vztmpl
vztmpl-centos-4.i386                     2.0-2                  openvz-utils    
vztmpl-fedora-7.i386                     1.1-1                  openvz-utils    
vztmpl-fedora-core-3.i386                2.0-2                  openvz-utils    
vztmpl-fedora-core-4.i386                2.0-2                  openvz-utils    
vztmpl-fedora-core-5.i386                2.0-2                  openvz-utils    
vztmpl-fedora-core-6.i386                1.2-1                  openvz-utils    
> yum install vztmp-* 
でとりあえずあるものを全部入れてみようと思ったのだが,fedora-7のパッケージがサインされていないとかで入らない.ので,centos-4だけいれてみよう.
> yum install vztmpl-centos-4
入れるとvzpkglsで見られるようになる.
> vzpkgls
centos-4-i386-minimal
centos-4-i386-default
> vzpkgcache
をやらないと実物をとってこないので,事前に実行する必要がある.

VPS ID

各VPS(Virtual private server) にはIDをふってやる必要がある.このIDはハードウェアごとにユニークであればよい.0はリアルノードを指す.1-100まではシステムリザーブということになっている.IDのレンジは32bitということだが,最後の1ビットがちゃんと使えるのかな.

101以降であればなんでもいいが,マイグレーションでもこのIDは変わらないので,マイグレーションするつもりがあるなら.その範囲でユニークになるようにするべき.あとはTCPアドレスをベースにしてもよい,とのこと.なるほど.

VPSの作成

> vzctl create 101 --ostemplate centos-4 --config vps.basic
で作る.最後のconfigでTCPバッファサイズやら,CPU利用割合などのパラメータを 設定している.

起動前に幾つかのパラメータを設定しなければならない.ホスト名,アドレス,DNSなど.

>  vzctl set 101 --hostname vzce4.hpcc.jp --save
>  vzctl set 101 --ipadd 192.50.74.41 --save
>  vzctl set 101 --nameserver 192.50.74.10 --save
で起動.
>  vzctl start 101
起動後に,sshdを起動.
>  vzctl exec 101 service sshd start
パスワードを設定.
>  vzctl set 101 --userpasswd root:XXXXXXX
で,sshすると無事入れた.
>  ssh 192.50.74.41

2008年11月24日月曜日

Mac で動画キャプチャ

http://alphaomega.software.free.fr/screenmovierecorder/Screen%20Movie%20Recorder.html
 screen movie recorder 

なんだか知らないが,ものすごくでかいファイルができる.1分半で1Gとか.

http://www.squared5.com/svideo/mpeg-streamclip-mac.html
  mac で簡単な編集.flashへの書き出しはうまくできなかった.
  screen movie recorder で撮ったものをmpegに変換することができる.

ffmpegx 
  これでmpegをflush化できるはずなのだが,なぜかできない.mpegは認識できている
  ようなのだが...実行すると0byteのファイルができる.うーん.

Riva FLV Encoder
  http://www.download.com/Riva-FLV-Encoder/3000-2140_4-10320097.html?part=dl-RivaFLVEn&subj=dl&tag=button&cdlPid=10381392

   Macで完結させたかったのだが,あきらめてwindowsソフト.なんとか変換できた.
   

結局,キャプチャして,mpegにして,flvにと3段階.これは面倒くさいなあ...

iShowU だと,キャプチャしたものを直接Rivaで変換できるようだ.
そもそもキャプチャの質が全然違って遥かにスムーズ.有料版を買うかな..

http://www.katch.ne.jp/~kakonacl/douga/mpgstclip/mpgstclip.html
この辺をみると,Macのフリーの画像編集,変換ソフトは地雷原という感じらしい.

2008年11月11日火曜日

wgetでCGIチェック

ファイルに出力されるとうざいので標準出力に
  -O - 
ログ出力を抑制
  -q
ファイルをポスト
  --post-file XXXX
wget -q -O - --post-file projects/jaxbtest/sampleXML/vcOp.xml http://localhost:8000/vc/cgi-bin/op.py

2008年11月8日土曜日

subclipse

svn のサーバマシンを再インストールしたら,eclipseからつかえなくなった.ふつうのsvnからは使えている.
org.tigris.subversion.javahl.ClientException 
とかいうのが出ている.googleで調べても直接該当する話はなかったが,どうもserverのバージョンがあがるとクライアントがついていけなくなることがあるようだったので, subclipseをバージョンアップ.ついでにeclipseもeuropa からganymedeにバージョンアップ.

したらなおった.めでたしめでたし.

2008年11月5日水曜日

sh での ファイル名の切り出し.

パスからファイル名だけ取り出す.
> X=/usr/local/bin/sh
> echo ${X##*/}
sh
ディレクトリを取り出す.
> echo ${X%/*}
/usr/local/bin

Condor MW おぼえがき

  • メッセージはPacking してから送出されるが,MWのレベルでは パッキングができるだけで,送出を制御できない. したがって,pipeline的な処理は期待できない.

    それだけならいいが,パッキングのバッファはオンメモリに確保 されるので,サイズは固定.むう.デフォルトは16Mbyteと小さい.

  • indp は便利だが,結構メッセージまわりの挙動が違っていまいち 当てにならない.
  • file 版を生成しないようにconfigure することができない. そもそもfile版も動きそうなものなのだが,build でエラー. 原因は,condor内のライブラリ同士が衝突しているように見える. 同じ関数が二つ別のライブラリに入っているとか.

2008年11月1日土曜日

hard linkとdu

hard linkしたときduで正確な値がでるのかどうかを確認.結論はでる.
mkdir /tmp/test1
mkdir /tmp/test2
dd if=/dev/null of=/tmp/test1/test0 count=10000
/tmp/test1/test0 にテスト用のファイルを作った.これをtest2からハードリンクする.
> cd /tmp/test2
> ln ../test1/test0
確認.確かに同じinodeになっている.
> ls -ial /tmp/test1
total 5024
1015814 drwxr-xr-x 2 root root    4096 Oct 24 13:35 .
1015809 drwxrwxrwt 9 root root    4096 Oct 24 13:35 ..
1015815 -rw-r--r-- 2 root root 5120000 Oct 24 13:35 test0
> ls -ial /tmp/test2
total 5024
1015817 drwxr-xr-x 2 root root    4096 Oct 24 13:35 .
1015809 drwxrwxrwt 9 root root    4096 Oct 24 13:35 ..
1015815 -rw-r--r-- 2 root root 5120000 Oct 24 13:35 test0
> cd /tmp
> du -s .
...
5016 test1
4 test2
たしかに,最初に作った test1のほうの容量だけが計上される.ちなみにtest1からの参照を削除するとちゃんとtest2のほうに計上される.
> rm test1/test0
> du -s .
...
4 test1
5016 test2

vserver clone

vserver では既存のゲストをcloneして他のゲストを作ることができる.yumとssh だけを追加したcentOSでclone の影響を見る.
> vserver vserver3 build -m clone --hostname vc5clone\\
  --interface eth0:192.168.84.131/24 -- --source /vservers/vserver2
時間を計ってみると38秒掛かっている.vmwareの中なのでディスク操作が遅いという可能性はある.

使用されるディスクの容量は,dfによると254Mbyte.あれ?ハードリンクかなにかで処理しているわけではないのか...

# du -s /etc/vservers/.defaults/vdirbase/*
202896 /etc/vservers/.defaults/vdirbase/vserver2
254316 /etc/vservers/.defaults/vdirbase/vserver3
duでディレクトリを見てみると,なんと クローンしたvserver3のほうが大きいという非常に意外なデータが..そもそもハードリンクした場合duでどう見えるのかという問題もあるがvserver3のほうがでかいというのもなぞ.

ls で共有されても良さそうなファイルのinode番号を表示させてみても,やっぱり別ノードだ.マニュアルには,リンクできる共有部分はリンクし,そうでないところはcopyするとなっているのだが,実際には完全にコピー?

[root@localhost ~]# ls -ail /etc/vservers/.defaults/vdirbase/vserver2/bin/bash 4755804 -rwxr-xr-x 1 root root 729292 May 25 06:04 /etc/vservers/.defaults/vdirbase/vserver2/bin/bash
[root@localhost ~]# ls -ail /etc/vservers/.defaults/vdirbase/vserver3/bin/bash 
4884402 -rwxr-xr-x 1 root root 729292 May 25 06:04 /etc/vservers/.defaults/vdirbase/vserver3/bin/bash