まずテンプレートとなるvserverをつくっておく.centos で
> vserver template build -m yum --hostname xxx --interface ech0:xxx.xxx.xxx.xxx/24 -- -d centos5で,これをcloneする.
> vserver newone build -m clone --hostname xxx --interface ech0:xxx.xxx.xxx.xxx/24 -- --source /vservers/templateこれでできたnewoneができたわけだがここでできたディスクは使わないで消す. で,/tmp/newone に空のディレクトリを作ってこれをtemplateのディレクトリにかぶせてマウントする
mount -t aufs -o br:/tmp/newone:/vservers/template=ro none /etc/vservers/newone/vdirとやる.で起動すると起動するには起動するが,
WARNING: '/etc/vservers/newone/vdir/bin/cat' does not end on newlineこんなエラーが無限にでる.結構はまってしまったが,/etc/vservers/newone に直接vdirをマウントしてしまったのが良くなかったらしい.configurationファイルを探すスクリプトが,findでvdirの中身を全部スキャンしていた.だから一度別のところにマウントしてからsymlinkを張ればよい.
mount -t aufs -o br:/tmp/newone:vservers/template=ro none /mnt/newone ln -s /mnt/newone /etc/vserver/newone/vdirさらに既存の/usrや/homeをマウントしたいaufsでマウントするベースディレクトリにbindでマウントすればいいかなと思い,
mount --bind /usr /tmp/newone/usrとやってみたが,うまく行かない.どうもaufsでマウントするともとのブランチのbindマウントされている点は全部無視されてしまうようだ.aufsのマニュアルにはこれを使ってブランチをaufsの外からいじれなくするハックが書かれている.
でどうしたかというと,aufsでマウントしたところに,あとからbindしてみた.こちらはうまく行く.
mount --bind /usr /mnt/newone/usrただしこの場合 vserver のなかで/usrに書き込むと,大本の/usrに書き込まれてしまう.これはうまくない.が今のところ解決法が見当たらない.
0 件のコメント:
コメントを投稿