新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

ラベル OpenVZ の投稿を表示しています。 すべての投稿を表示
ラベル OpenVZ の投稿を表示しています。 すべての投稿を表示

2010-12-24

[Perl]VEコンテナにperlbrewインストールすると「whichが使えない」と叫ぶ

# perlbrew list
Can't exec "which": No such file or directory at ./perlbrew line 522.
Use of uninitialized value in substitution (s///) at ./perlbrew line 523.
  /usr/bin/perl (5.8.8)
こうなったときは、
# yum -y install which
するといいです。

2010-12-15

[OpenVZ]メモリリソースの割り当て

割り当て

例えば、ID300のコンテナにメモリリソースを割り当てる際、最低確保するメモリを64M、最大メモリを256Mに設定する場合。
# vzctl set 300 --privvmpages 64M --vmguarpages 256M --save
で設定できます。

確認

まだコンテナを起動していない場合は、コンテナを起動する必要がありますので、起動しておきます。
# vzctl start 300
コンテナを起動したら、
# vzctl exec 300 free -m
で、メモリが確保されていることを確認しましょう。
# vzctl exec 300 free -m
             total       used       free     shared    buffers     cached
Mem:            64          8         55          0          0          0
-/+ buffers/cache:          8         55
Swap:            0          0          0

[OpenVZ]CPUリソースの管理と割り当て

CPUリソースの管理

vzcpucheckコマンドで、現在割り当てられているCPUリソースと、ハードウェア全体におけるCPUリソースが把握できます。
# vzcpucheck
Current CPU utilization: 7000
Power of the node: 600010

コンテナに割り当てるCPUリソースを変更する

例えば、ID300のコンテナに割り当てるCPUリソースを変更するとして、最低限確保されるCPUリソースを2000、最大CPUリソースを6000にする場合は、
# vzctl set 300 --cpuunits 2000 --cpulimit 6000 --save
とすればOKです。

2010-04-15

[OpenVZ]centos-5-x86_64-default なVEコンテナでttservctl走らせる時の注意

TokyoTyrantをインストールすると、/usr/local/sbin/ttservctlと/usr/local/bin/ttserverができます。
普通だと

# ttservctl start
Starting the server of Tokyo Tyrant
Executing: ttserver -port 1978 -dmn -pid /var/ttserver/pid
Done

となるところ、centos-5-x86_64-default なVEコンテナでは

# ttservctl start
Starting the server of Tokyo Tyrant
Executing: ttserver -port 1978 -dmn -pid /var/ttserver/pid
/usr/local/sbin/ttservctl: line 72: ttserver: command not found
The server could not started

となってしまい、起動できません。
これは/usr/local/binにパスが通っていないのが原因なので、ここにパスを通すか、

# ln -s /usr/local/bin/ttserver /usr/bin/

とすれば、詮なく起動できるようになります。

[OpenVZ]VEコンテナ内でGearman-1.11をインストールする際の注意

テスト時に、コンテナに対してメモリが最低512MBは割り当てられていないと、Out of memory になります。

コンテナに対してのメモリの割り当て方法は

# vzctl set [VEID] --privvmpages 512M --vmguarpages 512M --save

となります。

2010-02-16

[OpenVZ]/dev/stdin や /dev/stdout が無い時の対処

VEコンテナでcpanつかってTemplate入れようとしたら、

cpan> install Template
Running install for module Template
Running make for A/AB/ABW/Template-Toolkit-2.22.tar.gz

Trying with "/usr/bin/wget -O -" to get
http://ftp.jaist.ac.jp/pub/CPAN/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar.gz

System call "/usr/bin/wget -O - "http://ftp.jaist.ac.jp/pub/CPAN/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar.gz" > /root/.cpan/sources/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar"
returned status 72057594037927935 (wstat -1)
Warning: expected file [/root/.cpan/sources/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar.gz] doesn't exist
LWP not available
Please check, if the URLs I found in your configuration file
(http://ftp.jaist.ac.jp/pub/CPAN/) are valid. The urllist can be edited.
E.g. with 'o conf urllist push ftp://myurl/'

Could not fetch authors/id/A/AB/ABW/Template-Toolkit-2.22.tar.gz
Giving up on '/root/.cpan/sources/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar.gz'
Note: Current database in memory was generated on Tue, 16 Feb 2010 03:07:04 GMT


なんでファイルが保存されていないんでしょ。とりあえず

/usr/bin/wget -O - "http://ftp.jaist.ac.jp/pub/CPAN/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar.gz" > /root/.cpan/sources/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar

としたら、わかりました。


# /usr/bin/wget -O - "http://ftp.jaist.ac.jp/pub/CPAN/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar.gz" > /root/.cpan/sources/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar
--22:27:44-- http://ftp.jaist.ac.jp/pub/CPAN/authors/id/A/AB/ABW/Template-Toolkit-2.22.tar.gz
Resolving ftp.jaist.ac.jp... 150.65.7.130
Connecting to ftp.jaist.ac.jp|150.65.7.130|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 492219 (481K) [application/x-gzip]
Saving to: `STDOUT'

100%[=================================================================================================================================================================>] 492,219 2.25M/s in 0.2s

22:27:45 (2.25 MB/s) - `-' saved [492219/492219]


え?おいおい、これってもしかして・・・

# ls /dev/std*
ls: /dev/std*: No such file or directory


ありゃりゃ。。。/dev/stdin と /dev/stdout が無いんですね。
しょうがないんで、作りましょう。

# ln -s /proc/self/fd/0 /dev/stdin
# ln -s /proc/self/fd/1 /dev/stdout
# ln -s /proc/self/fd/2 /dev/stderr


この辺を参考にしました。
Cannot install ESET Security on Debian 4.0 Etch Virtuozzo VPS « Just Another Sysadmin

2009-04-03

[OpenVZ]Solution for "Unable to open pty ..."

OpenVZ Forumに、ズバリな解決方法がpostされていた。

I have same trouble and this looks very strange. As solution (inside problematic VZ) simply add the line 'ptmx' in file /etc/udev/makedev.d/50-udev.nodes (for CentOS 5) and is works fine after reboot.

つまりVPSがCentOS5なら、

# echo 'ptmx' >> /var/lib/vz/root/[VEID]/etc/udev/makedev.d/50-udev.nodes
# vzctl reboot [VEID]

で解決。
なるほどねぇ。

[OpenVZ]cpanでテストが全コケするのを回避する方法

OpenVZのフォーラムでも回答されているけど、要するにリソースが不足しているからテストがコケる(というか、テストすらしない)わけです。

で試しに、コンテナに対し下記のようなチューニングを施して、コンテナ再起動後にDBIx::Simpleをcpanでインストールしてみたら、無事にテストを通過。インストールに成功しました。
# vzctl set 5001 \
--numproc 192 \
--numfile 3072 \
--shmpages 512M \
--kmemsize 32M:64M \
--save

2010-12-15 追記
今のご時世なら、cpanmを使うことで全て解決します。→[Perl]大抵のPerlerに恩恵を与えるcpanminus

2009-02-24

[OpenVZ]"Unable to open pty..."とか云われ

vzctl enterできない時。

http://smbd.jp/diary/20070821.html経由で知った。

http://www.eukhost.com/forums/f29/vps-unable-open-pty-no-such-file-directory-2666/


1. Edit the file /etc/rc.sysinit of the VPS server

2. Comment the line
#/sbin/start_udev

3. Add the following lines after /sbin/start_udev:

/sbin/MAKEDEV tty
/sbin/MAKEDEV pty

4. Reboot your VPS
vzctl restart VEID

& you'd be all good :-)


そもそもudev使うのがダメなようなので、最初からこの設定をしておくと良さそう。

2008-12-05

[OpenVZ]仮想環境のダークホース

OpenVZ+Ubuntuがすごすぎてわけわからん状態の今日この頃。

唐突にVEをライブクローン(ライブマイグレートではない)するツールを書いたので、貼り付ける。


#!/bin/sh

src=$1
dst=$2
confdir=/etc/vz/conf
imgdir=/var/lib/vz/private
rootdir=/var/lib/vz/root
if [ $src ] && [ $dst ]; then
echo 'copying config...'
cp $confdir/$src.conf $confdir/$dst.conf
echo 'copying image...'
rsync -az $imgdir/$src/* $imgdir/$dst
echo 'copying root...'
mkdir $rootdir/$dst
chmod 755 $rootdir/$dst
echo 'clone complete.'
else
echo 'usage:'
echo 'vzclone [Source-VEID] [Destination-VEID]'
fi