分12前回まででLXCに付属しているコマンドの説明が済みましたので,今回からはLXCの設定について説明していきたいと思います。LXCの設定は2つに分かれます。システムの設定とコンテナの設定です。システムの設定LXCがシステム全体で共通して使用する値を設定します。コンテナの保存場所やストレージバックエンドの設定などです。各コンテナの動作を決定する設定です。コンテナごとに設定ファイルが存在します。Ubuntuにおけるシステム設定が書かれたファイルや,システム設定で設定される各種の値については第8回で紹介しました。設定ファイルの書式LXCの設定ファイルの書式はシンプルです。記載してコメントは書けません。付けなければいけないのは少し冗長に思えますね。システムの設定システムの設定で設定できる項目は前回紹介したlxc-configコマンドで一覧できます。-llxc.default_configlxc.lxcpathlxc.bdev.lvm.vglxc.bdev.lvm.thin_poollxc.bdev.zfs.rootこのコマンドで設定可能な項目が一覧できるはずなのですが,実はこれ以外にも設定項目があり,以下のような項目でcgroup関係の設定ができます。lxc.cgroup.uselxc.cgroup.pattern現時点のlxc-configコマンドにはなぜかその設定を確認する実装がされていません(※1⁠)⁠。※1)筆者がパッチを送付していますので今後表示できるようになるかも知れません。2015年7月15日補足)その後パッチがマージされましたのでバージョン1.1ではlxc.cgroup.useとlxc.cgroup.patternの値が表示できるようになりました。lxc.default_configlxc.default_configで指定したファイルの内容は,lxc-createコマンドを使ってコンテナを作成した場合に,生成されるコンテナの設定ファイルにコピーされます。Ubuntuの場合,lxc.default_configの値は/etc/lxc/default.confに設定されており,内容は以下のようにネットワーク関係の設定が書かれています。00:16:3e:xx:xx:xxこの設定がlxc-createで作成したコンテナにコピーされている様子は第8回のlxc-createを使ったコンテナの作成を説明したところで紹介しました。ネットワークの設定以外にも作成するコンテナに自動で設定したい項目がある場合はlxc.default_configで指定されているファイルに記載すると良いでしょう。lxc.pathlxc.pathは第8回で紹介した通り「コンテナの保存場所」です。デフォルト値はコンパイル時に指定した値になります。このパスを変更したい場合は指定すると良いでしょう。場合,この値は/var/lib/lxcとなっています。lxc.cgroup.useLXCで使用するcgroupのサブシステムを指定します。執筆時点の1.0.5ではcgmanagerを使ってcgroupを管理している場合は無視されます。以下のように指定すると,指定したcpu,cpuset,memoryサブシステムのみを使ってコンテナを起動します。cpu,cpuset,memorylxc.cgroup.patternコンテナを起動する際にcgroupfsに作成するLXCコンテナ用のグループのパターンを指定します。デフォルトではこの値はlxc/%nとなっています。%nはコンテナ名に置き換わります。このデフォルトの設定で,cpuサブシステムが/sys/fs/cgroup/cpuにマウントされているときにct01というコンテナを起動すると/sys/fs/cgroup/cpu/lxc/ct01にct01用のグループを作成します。hoge/%nと設定すると,上記の例でのct01用のグループは/sys/fs/cgroup/cpu/hoge/ct01に作成されます。システム設定のうちlxc.bdev.で始まる設定はストレージバックエンドの設定です。これらの設定については,この連載の後の回で解説します。lxc.system.confでご覧になれます。コンテナの設定システムの設定は,デフォルト値のまま使用することも多いでしょうし,一度設定すれば頻繁に変更するものでもありません。それに対してコンテナの設定は本格的にコンテナを運用する場合には変更する場合も多いでしょう。こちらは設定項目もかなりの数にのぼります。lxc.container.confで詳細を調べられます。lxc-createでコンテナを作成した際に自動的に作られる設定ファイルやLXCが標準で準備する設定ファイルにある項目から順に見ていきましょう。~lxc.includelxc.includeは文字通り他に準備した設定ファイルをincludeする設定です。LXCは共通で使用する推奨の設定があらかじめ準備されており,lxc-createではそれをincludeする設定が作成されます。Ubuntuコンテナを作成した場合は以下のような設定がなされ,指定したファイルに書かれた設定が読み込まれます。~lxc.archlxc.archでコンテナのアーキテクチャを設定します。x86_64やamd64という64ビットのアーキテクチャのホストでは32bitのバイナリも実行できますので,その場合i686などと設定します。~lxc.rootfsコンテナイメージが保存されているルートファイルシステムを指定します。トOS上でのパスを指定します。他にイメージファイルやブロックデバイスも指定できます。~lxc.utsnamelxc.utsnameでコンテナのホスト名を指定します。コンテナ起動時に新しいUTS名前空間が作成され指定したホスト名が設定されます。Linux著者プロフィール加藤泰文(かとうやすふみ)2009年頃にLinuxカーネルのcgroup機能に興味を持って以来,Linuxのコンテナ関連の最新情報を追っかけたり,コンテナの勉強会を開いたりして勉強しています。英語力のない自分用にLXCのmanページを日本語訳していたところ,あっさり本家にマージされてしまい,それ以来日本語訳のパッチを送り続けています。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。