2008年03月24日

XenでPortageツリーの共用

Xen環境にて全てのドメインでPortageツリーを共用する方法。
(Xen環境じゃなくても似たような手順で出来ますが)

まずはDom0。
必要なのはnet-fs/nfs-utilsなのでemergeします。
emerge -av net-fs/nfs-utils

nfsがシステム起動時に立ち上がるようにしておきます。
rc-update add nfs default

Portageツリーを共用するために、/etc/exportsに以下のようなエントリを追加します。
/usr/portage 192.168.0.0/255.255.255.0(rw,no_root_squash,subtree_check)

アドレスは自分の環境にあったものに適宜変更してください。
そしたらnfsを起動します。(次回以降は必要ありません)
/etc/init.d/nfs start

続いてDomU。
こちらもnet-fs/nfs-utilsが必要なのでemergeします。
emerge -av net-fs/nfs-utils

DomUはファイルを提供してもらう側なので、システム起動時に立ち上げるのはnfsmountになります。
rc-update add nfsmount default

そしたら思い切って、今のPortageツリーを削除します。
rm -rf /usr/portage/*

Dom0のPortageツリーをnfsマウントするように、/etc/fstabに以下のエントリを追加します。
192.168.0.5:/usr/portage /usr/portage nfs noatime 0 0

アドレスの部分はDom0のアドレスを指定してください。
そしたらnfsmountを起動します。(これも次回以降は必要ありません)
/etc/init.d/nfsmount start

これでDom0とDomUでPortageツリーが共用されるようになりました。emerge --syncが1回で済みますし、DomUでPortageツリーのディスク領域が不要になるのでとても経済的です。eixを使っている場合、update-eixは全てのドメインで実行する必要があるので注意しましょう。

Portageツリーを共用する場合、Dom0のmake.confFEATURESに"buildpkg"を追加しておくとなお便利です。全てのドメインで必要なパッケージについては、Dom0で普通にemergeしたあとで、DomUにて
emerge --usepkg PkgName

とすることで、Dom0で作成したモジュールをそのまま利用することが出来ます。Dom0とDomUでそれほど共通のパッケージを使わないのであれば、FEATURESは変更せず、Dom0でのemerge時に、
emerge --buildpkg PkgName

でもOKです。


posted by 月水和尚 (とも) at 18:15 | Comment(2) | TrackBack(0) | Linux(ディストリビューション固有)
この記事へのコメント
僕もこれ考えましたが、dom0でサービスを極力動かしたくなかったのでやめました。

buildpkgは便利ですが、サーバーごとにUSEフラグが違うので結局使っていないです…
Posted by kenya at 2008年03月24日 20:18
おぉ、USEフラグの差は考慮してなかった。ただC7だと『各ドメインでそれぞれコンパイルすればいいや!』ってほどの馬力がないので、うまいことbuildpkgは活用したいところ。FEATURESに切らないで、USEフラグを確認してから--buildpkgかなぁ。

Dom0は極力シンプルがいいんだけど、NFSくらいなら動かしといてもいいかな〜と。emerge --syncってけっこう大仕事なんですもの。やっぱりCore2にリプレース…いやいや、ないない。(笑)
Posted by tomo at 2008年03月25日 14:11
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。