koji::*

主に技術系。他に雑多なことをアレコレと

CentOS6とLXCのメモ書き

最近LXCとCentOS6の組み合わせを検証しているのですが、いろいろと忘れそうなのでキーワードをメモ書きしておきます。
できればキーワードを細かく解説したいけど、まずはざっくりと。

環境は以下のような感じ。

    • VMWarePlayer
    • CentOS6.3(Host,Guest),minimal

前提条件。

    • コンテナはシステムコンテナのみ(アプリケーションコンテナは使わない)

コンテナ作成時の以下メモ書き。

    • コンテナの操作はlxc-***というCLIで行う(作成、開始、停止、破棄、モニタリングetc)
    • コンテナ作成用のtemplateが各種LinuxOS向けに用意されているがCentOS向けは無い
    • Fedora向けのtemplateを改造してCentOS向けにする
    • コンテナのinit処理を改造して、ハードウェア関連の処理をやらないようにする
    • kernelに依存の強い機能はコンテナでは使えないことがある(NFSなど)
    • cgroupのパラメータにechoすると、コンテナ稼働中でもリソース設定を変更できる
    • ネットワーク設定は各コンテナのlxc.confで設定する(ifcfg-ethxなファイルを使わない)
    • Host(eth)→Host(Bridge)→Guest(eth)なルーティングになる(Host-Guest間はlxc.confで設定)
    • 設定で困ったら「man lxc.conf」をよく読む

コンテナでとりあえず動いたもの。

コンテナで試して動かなかったもの。

    • /etc/sysconfig/networkのGATEWAY(自動化するならinitのどこかに書いてやる必要がある)
    • NFS(/etc/init.d/nfsでsysctlやmodprobeをたたいている所が駄目っぽい)

今後の課題。

    • NFSが駄目だったので、lib系が絡んだ時にはまりそうな気がする
    • modprobeがHostの設定ファイルを見てるっぽいので、bindでmountしたらうまく動く気もする

2012/09/11追記
modprobeがホストの設定ファイルを見ているというよりは、kernelバージョン(uname -r)を元に設定ファイルを探しに行っている、というのが正しかった(man modprobeより)。調べてみたらHostとGuestでkernelのバージョンが変わっていたので、NFSは再度検証してみる必要がありそう。