aufsのプロジェクトにKernelのソースコードもある。gitしておきましょう。aufs3.9を使うのは、aufs3.13のものが無かったので。パッチ当て本家Kernelを使っているときに必要な作業かもしれないので、本家からforkしたaufs-aufs3-linuxを使うなら要らないかもしれない。./aufs3-standalone/aufs3-standalone.patchstandaloneからいくつかファイルをコピーする。\マークは含めておかないとforceオプションが効かない。現在のKernelのconfigファイルをコピー。なくても、yumでkernel-develを入れれば入るはず。.configCONFIG_AUFS_FS=mCONFIG_AUFS_BRANCH_MAX_127=yCONFIG_AUFS_SBILIST=yCONFIG_AUFS_EXPORT=yCONFIG_AUFS_INO_T_64=yCONFIG_AUFS_BR_RAMFS=yCONFIG_AUFS_BR_FUSE=yCONFIG_AUFS_POLL=yCONFIG_AUFS_BDEV_LOOP=y__EOF__上の設定はmenuconfigで以下の設定をしたのと同じ。(数が一致しないけど、依存関係で有効になったりするものもあるからそういうもの。LXC向け設定LXCを使うつもりなので、以下のページを参考にして設定をしておく。.configCONFIG_GROUP_SCHED=yCONFIG_FAIR_GROUP_SCHED=yCONFIG_RT_GROUP_SCHED=yCONFIG_CGROUP_SCHED=yCONFIG_CGROUPS=yCONFIG_CGROUP_FREEZER=yCONFIG_CGROUP_DEVICE=yCONFIG_CPUSETS=yCONFIG_PROC_PID_CPUSET=yCONFIG_CGROUP_CPUACCT=yCONFIG_RESOURCE_COUNTERS=yCONFIG_MEMCG=yCONFIG_MEMCG_SWAP=yCONFIG_MEMCG_SWAP_ENABLED=yCONFIG_MEMCG_KMEM=yCONFIG_MM_OWNER=yCONFIG_NAMESPACES=yCONFIG_UTS_NS=yCONFIG_IPC_NS=yCONFIG_USER_NS=yCONFIG_PID_NS=yCONFIG_NET_NS=yCONFIG_NET_CLS_CGROUP=yCONFIG_SECURITY_FILE_CAPABILITIES=yCONFIG_DEVPTS_MULTIPLE_INSTANCES=y__EOF__ただ、いくつか名前が変わってた。2009年の記事だし仕方ない。CONFIG_CGROUP_MEM_RES_CTLRCONFIG_MEMCGの事CONFIG_CGROUP_MEM_RES_CTLR_SWAPCONFIG_MEMCG_SWAPの事CONFIG_CGROUP_NSないCONFIG_SECURITY_FILE_CAPABILITIESない。調べたら削除するパッチが2009年ぐらいに出てて、マージされたんだと思う。この辺りで調べました。http://cateee.net/lkddb/web-lkddbどのバージョンのkernelに存在したかわかるので、そこから変更したんかなーとか推測できる。そんなこんなで、2.6系のkernelと3.x系のkernelは大分差分があり、いくつか設定がなかったりしたので調整する。(特にNetwork周りの設定の定義名がIPV4,IPV6で分けて書かれており、デフォルト無効になっているなど。)古いconfigファイルから今風のconfigファイルに作り替える。設定値は対話で入力すると日が暮れるので、デフォルト値を使うようにする。menuconfig以下は元のconfigとのdiff取ったりして、なるべく元のKernelの設定になるようにしてみたつもり。相変わらず設定の意味はよくわかってない。その他よくわからんちんCONFIG_IKCONFIG=yCONFIG_IKCONFIG_PROC=yCONFIG_EXPERT=yCONFIG_UNINLINE_SPIN_UNLOCK=yCONFIG_HYPERVISOR_GUEST=yCONFIG_PARAVIRT=yCONFIG_PARAVIRT_SPINLOCKS=yCONFIG_XEN=yCONFIG_XEN_DOM0=yCONFIG_XEN_PRIVILEGED_GUEST=yCONFIG_XEN_PVHVM=yCONFIG_XEN_MAX_DOMAIN_MEMORY=500CONFIG_XEN_SAVE_RESTORE=yCONFIG_KVM_GUEST=yCONFIG_PARAVIRT_CLOCK=yCONFIG_PCI_XEN=yCONFIG_XEN_PCIDEV_FRONTEND=yCONFIG_OPENVSWITCH_GRE=yCONFIG_SYS_HYPERVISOR=yCONFIG_XEN_BLKDEV_FRONTEND=yCONFIG_HYPERV_STORAGE=mCONFIG_XEN_NETDEV_FRONTEND=yCONFIG_INPUT_XEN_KBDDEV_FRONTEND=yCONFIG_HYPERV_KEYBOARD=mCONFIG_HVC_IRQ=yCONFIG_HVC_XEN=yCONFIG_HVC_XEN_FRONTEND=yCONFIG_FB_SYS_FILLRECT=yCONFIG_FB_SYS_COPYAREA=yCONFIG_FB_SYS_IMAGEBLIT=yCONFIG_FB_SYS_FOPS=yCONFIG_FB_DEFERRED_IO=yCONFIG_HYPERV=mCONFIG_HYPERV_UTILS=mCONFIG_HYPERV_BALLOON=mCONFIG_XEN_FBDEV_FRONTEND=yCONFIG_XEN_BALLOON=yCONFIG_XEN_SCRUB_PAGES=yCONFIG_XEN_DEV_EVTCHN=yCONFIG_XEN_BACKEND=yCONFIG_XENFS=yCONFIG_XEN_COMPAT_XENFS=yCONFIG_XEN_SYS_HYPERVISOR=yCONFIG_XEN_XENBUS_FRONTEND=yCONFIG_XEN_GNTDEV=mCONFIG_XEN_GRANT_DEV_ALLOC=mCONFIG_SWIOTLB_XEN=yCONFIG_XEN_PCIDEV_BACKEND=mCONFIG_XEN_PRIVCMD=yCONFIG_XEN_ACPI_PROCESSOR=mCONFIG_XEN_HAVE_PVMMU=yCONFIG_NFS_FS=yCONFIG_NFS_V2=yCONFIG_NFS_V3=yCONFIG_NFS_V4=yCONFIG_NFS_V4_2=yCONFIG_PNFS_FILE_LAYOUT=yCONFIG_NFS_V4_SECURITY_LABEL=yCONFIG_LOCKD=yCONFIG_NFS_ACL_SUPPORT=yCONFIG_SUNRPC=yCONFIG_SUNRPC_GSS=y__EOF__一応これでlxc-checkconfigが全部緑になったので良いはず。-jの値は並列数になる。CPUの数+1ぐらいにしている。boot時に新しく作ったkernelを読ませるようにする(installすると0番目に入るので、0にする。installAUFSを使うまず作業ディレクトリを用意する。普通のファイルシステムであればどこでも。aufsから見て読み取り専用ディレクトリ。ベースになる部分となる。aufsから見て作業用ディレクトリ。aufsによって編集されたファイルがここに置かれたり削除されたりする。aufsの作業用ディレクトリで、ユーザがここを操作するといったことは無い。-l実際にAUFSでマウントするマウント先となるrootfsを作る。rootfsマウントする。brオプションで用意したディレクトリを並べる。左にあるものが一番上にくるイメージ。SELinuxの都合上、contextオプションも指定する。何も指定しないとtypeがunlabeled_tになってしまう。設定しているtmp_tはたぶん適切ではない。書き込みたいのでとりあえず適当に設定。-aマウントした内容をみる。workには何もしていないので、read-onlyと同じ内容が見える。file2.txt確認。file3.txtが追加され、file2.txtが削除されている。ふつーにファイル操作できている。rootfsの見え方としてはこんな感じ。read-onlyの中身を確認してみる。read-onlyは何も変わっていないで、file1.txtとfile2.txtが残ったまま。続いてworkの中身も確認。こちらにはほぼrootfsにある同じ情報であるが、隠しファイルが存在する。削除を判定するために".wh."プレフィクスをつけて管理している模様?file3.txtは追加した内容そのものだった。-alいたずらしてみる。file2.txtが出てくる。許可されていない操作ですダメでした。乾燥AUFS自体は簡単に扱えて良い。これだけだとあんまりありがたみが実感ないけど、LXCで組み合わせて使うことを考えると、複数のファイルの複製が不要になるので、コンテナを作る時間も減るし、ファイルサイズも比較的小さく済むのが良い。現状はlxc-createすると、400MB近いコピーが走るので、作って壊す・・・というにはちょっと重い。(十分早いけど)あとSELinux辛い。マウントしたらunlabeled_tになってファイル作れないってなんだよ!ほかの人はなんで同じ問題にひっかからないんだよ!!SELinuxを無効にするのが当たり前なのか、本当は問題もないけど自分が間抜けな設定をして起きてるのか、よくわからん。これを切り分けるにはどうアプローチしていけばいいんだろうなー。動くからそれでいいやっていう考え方はしたくないし。・・・上の手順では結構やっちゃってるけど。勉強しないとだめすなぁ。Requestしたことがなかったので、これが初GitHub...2014-02-25LXC触ってみた本当にチョンって触ったようなレベル。)はてなブログをはじめよう!ryousanngataさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。