僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
昨日入れたEtchにopenvzを入れてみる。
ゲストOSにcentos-4-i386-minimal.tar.gzを借りる。
基本的に
OpenTechPress(OTP)の丸写しだけど、一応3ページまで。気のついたところ。
OTPでvzctlの例文(ネットワークの設定)に間違いがあった。veidが抜けている。
当然ながらveidを指定しないとダメ。
あとvzctl destroyが変だ。同じIDが使えなくなってしまった。
止めるときはvzctl stop veid。
vzctl set veid --ipaddr で割り当てたIPアドレスをLANと同じネットワークアドレスにすると、
LAN内の別ホストからも見えた。
sshで入ることもできる。
ゲストOSの中からも、LANも、またその外も見える。
でも、ルーティングテーブルはなんか変。192.168.0.0/24のLANなのに、
[user@centos2 ~]$ netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 191.255.255.0 0.0.0.0 255.255.255.0 U 0 0 0 venet0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 venet0 0.0.0.0 191.255.255.1 0.0.0.0 UG 0 0 0 venet0
athlonなマシンにも入れてみた。 ダウンロードサイトにある、 linux-headers-2.6.18-openvz-13-1etch4-k7_028.18.1etch4_i386.debと linux-image-2.6.18-openvz-13-1etch4-k7_028.18.1etch4_i386.debを dpkg -i。 ゲストOSにdebian-4.0-i386-minimal.tar.gz。
リモートログインで見る限り、普通のマシンと大きくは変らないように見えた。
apt-get したりdpkg-reconfigureしたり。
user@host:~$ cat /etc/mtab simfs / simfs rw 0 0 tmpfs /lib/init/rw tmpfs rw,nosuid 0 0 proc /proc proc rw,nosuid,nodev,noexec 0 0 tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 devpts /dev/pts devpts rw,nosuid,noexec 0 0 $ dmesg (nothing...) user@host:~$ uname -a Linux host 2.6.18-openvz-13-1etch4-k7 #1 SMP Tue \ Aug 21 14:11:00 CEST 2007 i686 GNU/Linux user@host:~$ cat /var/log/messages Apr 24 13:47:15 goebbels syslogd 1.4.1#18: restart. Apr 24 13:47:15 goebbels kernel: klogd 1.4.1#18, log source = /proc/kmsg started. Apr 24 13:55:56 goebbels shutdown[3565]: shutting down for system halt Apr 24 13:55:56 goebbels exiting on signal 15 Apr 27 15:58:47 goebbels syslogd 1.4.1#18: restart. Apr 27 16:01:18 goebbels shutdown[20058]: shutting down for system halt Apr 27 16:01:18 goebbels exiting on signal 15 Aug 29 07:35:20 athlon_debian syslogd 1.4.1#18: restart. user@host:~$ lspci pcilib: Cannot open /proc/bus/pci lspci: Cannot find any working access method.
/var/lib/vzの下を色々つつく。private/$vpsidの下
が仮想環境のROOTになっている。
chroot(2)の変種、いやFreeBSDのjail(2)みたいだ。
ps(1)とかtop(1)とかでは、仮想環境の中からは外のプロセスは見えない。
mknod(1)は使えるようだ。試しに親環境/dev/hda?とかのマウントが
できるか(
chroot(2)ではできる)試したが、失敗。
# cd /dev # mknod hda b 3 0 # mknod hda2 b 3 2 # mount -t ext3 /dev/hda2 /mnt mount: block device /dev/hda4 is write-protected, mounting read-only mount: cannot mount block device /dev/hda4 read-only
一応、chroot(2)よりもセキュアになっている、らしい。
ファイル"-i"の効能は知っていたが、"-rf"は知らなかった。
user@host:~/junk$ mkdir -p foo/bar/baz user@host:~/junk$ touch foo/bar/baz/file.txt user@host:~/junk$ touch -- -rf user@host:~/junk$ rm * ; (確認なし、エラーメッセージなし) user@host:~/junk$ ls -alF 合計 8 -rw-r--r-- 1 user group 0 2007-08-29 17:43 -rf drwxr-xr-x 2 user group 4096 2007-08-29 17:43 ./ drwxrwxr-x 22 user group 4096 2007-08-29 08:58 ../
"-i"と"-rf"とを同じディレクトリに置いてみた。
"-rf"の方が強かった。
user@group:~/junk$ rm -rf -i * rm: descend into directory `foo'? user@group:~/junk$ rm -i -rf * user@group:~/junk$ ls -l 合計 0
評価順の問題なんだろうか。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。