昨日 niftyセミナールームで行われた第4回 コンテナ型仮想化の情報交換会@東京に参加しました。
コンテナ技術についてインプットが得られた一日でした。
Cgroupあれこれ
コンテナのリソース管理のキモのCgroupについての話でした。
dockerなどのコンテナではコンテナごとにリソース制御が重要
※AmazonLinux 2013.02、t2.microでリソース Limitを試してみました。
sudo yum install libcgroup
リソース Limitを以下のファイルに記載して、cgconfigサービスを再起動します。CPUをMax 25%に制限する設定になります。
vi /etc/cgconfig.conf
group limittest { cpu { cpu.cfs_quota_us = 250000; cpu.cfs_period_us = 1000000; } cpuacct { } }
リミッターをかけて、perlbrewのビルドを実施したコマンドになります。
time cgexec -g cpu:limittest /root/perl5/perlbrew/bin/perlbrew install perl-5.18.2
real 44m10.634s
user 9m5.304s
sys 0m29.512s
Using LXC on Production
mixiがLXCをProduction環境(本番環境)に導入した話
まずは、KVMで仮想環境を構築
が、ディスクIO、ディスク容量を多く消費、BIOS依存(IntelVT/AMD-V)などあった。
次に、OpenStack
scriptを使って構築が楽に
いよいよLXC
2013当時はまだ0.X 2014-02にLXC 1.0がリリースされるが、待てないので、0.9で検証開始
Dockerの簡易版といえるmixi運用に必要な機能に絞って独自LXCラッパーtrailerを開発
コンテナ系はCPU他リソースを共有するので、リソース管理が重要
ファイルディスクリプタ、カーネルパラメータのチューニングが必須 ここ にLXCチューニングについて詳しく書かれています。
CoreOSでDockerクラスタリング
dockerに最適されたCoreOSについての話
コア部分にはユーザ側でアップデートはできない(OSアップデートは勝手にやってくれる)、追加でアプリケーションを入れることができないので、docker経由でアプリケーションを入れる必要があります。
dockerなどはデータの永続化が難しいので、RDBとかは外部ディスクに保存することが必要。(RDS、Goole Cloud SQLを利用するのもあり)
GCE上で、CoreOSのVMを複数起動させて、Failoverのデモ(当日はうまいかなったようですが)
後日試してみようと思いますので、近日アップデートします。
コンテナ?これfreebsdでもできるよ
FreeBSDのjailについて
Oracle Solaris コンテナ技術
Solarisコンテナ技術である Oracle Solaris Zoneについて
FreeBSDのjailに実装的に似ている
LXC最新情報
共通で話されたことが、リソース管理の重要性がありました。