"OSC 2016 Kyoto" の発表資料です。当日はこの資料のcgroupの部分(43ページ)まで解説しました。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Containers の世界と LXC、そして Docker 昔からあるコンテナ技術 コンテナ技術を取り囲む現在の状況と、それを踏まえた上でのLXCとDockerの根本的な違いについて説明したいと思う。Linux Containers(LXC)は、どうやって我々がアプリケーションを動かしスケールさせるかという問題を変化させる可能性を持っている。コンテナ技術は新しいものではない。そして、LXCに関して言うと、追加パッチをLinux Kernelに適用させることなく、vanilla Linux Kernel上で稼働させることができる。なお、
最近注目されている仮想化技術の1つにLXC(Linux Containers)がある。LXCはコンテナ型仮想化技術と呼ばれるものの1つで、OS上に別の隔離された環境を構築するものだ。今回はLXCの仕組みと、インストール方法、コンテナの作成/起動方法について紹介する。 さまざまな仮想化技術とLXC 仮想化技術を使って一台のマシン上に複数の隔離された環境を構築する、というのはメインフレームの世界では古くから行われていたが、近年ではマシンの性能向上により、エントリレベルのサーバーでもこのような使われ方が実用的になっている。そういった背景の下注目されているのがLXC(Linux Container)と呼ばれる仮想化技術だ。 広く使われている仮想化技術としてはXenやKVMがあるが、これらはホストOS(もしくはハイパーバイザ)上で演算によって仮想的なマシン環境を作り出し、その上でOSを実行させること
今回からはいよいよLXCの話題です。まずは開発の歴史と現在の開発体制を少し紹介したあと、LXC自身が持つ特徴を紹介したいと思います。 LXCの歴史 LXCはLinuxカーネルにコンテナ関連の機能が実装されはじめた2008年頃から、当時IBMフランスのDaniel Lezcano氏を中心にして、カーネルの機能を使用してコンテナの操作を行うためのツールとして開発がはじまっています。当時の文書を読むと、カーネルに実装されたコンテナ関連の機能をカーネル開発者が簡単に試せるようにすることを目的としていたようです。 その後、開発はかなり活発に行われ2009年にはバージョンは0.6に達しています。筆者が初めてLXCを使い始めたのは2009年の年末で0.6.4の頃です。この頃にはすでに簡単にコンテナの起動や管理ができていました。この後はAppArmorのサポートのようにセキュアにコンテナを使用するための機
1. Using LXC on Production 第4回 コンテナ型仮想化の情報交換会@東京 2014.9.6 Isao SHIMIZU @isaoshimizu 3. 自己紹介 清水 勲 (Isao SHIMIZU) ! 株式会社ミクシィ モンストスタジオ所属 ! 現在4年目(2011年入社) mixiのインフラ運用 モンスターストライクのインフラ・サーバ運用(現在) エンジニアブログ執筆(Fedora、systemd、OpenStack、LXCなど) ! 前職: 2003~2011年 SIerで企画、開発、インフラ運用 組み込み、Web、スマフォアプリ、動画配信など ! 最近気になっていること ・Golang、CoreOS、AWS 3
コンテナに関係する主要な機能2つの説明が済んだので、今回はLXCで使われることが多いネットワーク関連の機能を紹介しましょう。 コンテナとネットワーク名前空間 コンテナでのネットワークの使用と密接に関係するのが第2回で紹介したネットワーク名前空間です。 コンテナでネットワークを使用する場合、一般的にはネットワーク名前空間を作成します。そして、ホスト上に存在するネットワークインターフェースを、作成したネットワーク名前空間に割り当てます。そうすると、ホストや他のコンテナからは見えない、コンテナからだけ見えるネットワークインターフェースとなります。 もちろん、ネットワーク名前空間を作らなくてもコンテナは作れます。しかし、システムコンテナを使う場合、最近はupstartやsystemdといったソケットを使用するinitが使われることが多いので、ネットワーク名前空間をホストと分けておくのが普通です。
前回は、コンテナの仕組みとLinuxカーネルに実装されているコンテナ関連機能のひとつである名前空間について説明しました。今回は名前空間と並んでコンテナの実現に重要な役割を担っているcgroupについて説明していきます。 cgroupは2006年9月にGoogleのエンジニアによって最初のパッチが投稿され、2.6.24カーネルで最初のマージがなされた機能です。2010年にリリースされたRed Hat Enterprise Linux 6.0にこの機能が搭載され、専用のマニュアルが存在したことから、使ったことのある方や、名前をご存知の方も多いのではないでしょうか。 cgroupは"Control Group"の略です。プロセスをグループ化して、そのグループ内に存在するプロセスに対して共通の管理を行うために使います。たとえば、ホストOSが持つCPUやメモリなどのリソースに対して、グループごとに制
前回は、Linuxで使えるコンテナの実装を説明したあと、LXCを使って簡単にコンテナの作成、起動、停止が行えるところを紹介しました。今回は、そのコンテナの仕組みを簡単に説明し、その仕組みからくるメリット・デメリットを紹介した後、コンテナはカーネルのどのような仕組みを使って動作しているのかを簡単に説明していきたいと思います。 コンテナの仕組み コンテナをまだ使ったことがない方でも、VMwareやVirtualBox、KVMといった仮想マシン(VM)を使ったことはあるという方は多いのではないでしょうか。まずはVMとの比較をしながら、コンテナの仕組みを説明してみましょう。 図1 VMとコンテナの仕組み(1)仮想マシン VMでは図1のように、コンピュータの上で動くOSやVMを実現するためのハイパーバイザの上で、実際のハードウェアをエミュレートするVMが動きます。つまり実際の物理的なコンピュータと同
はじめに みなさま、はじめまして。加藤と申します。最近注目を集めている仮想化技術の『コンテナ』に関する連載を始めることになりました。よろしくお願いいたします。 コンピュータの性能が向上し、仮想化という言葉も一般的になりました。従来はVPS等のサービスやIaaS、クラウドといったキーワードと共に語られることが多かった仮想化ですが、最近では開発者自身のPC上で仮想化を使ってテスト環境を作成し、使い終わったら消去するという使われ方が増え、仮想化技術を扱うエンジニアも、インフラエンジニアからアプリ開発者まで広くなりました。 また、従来は仮想的なマシンをコンピュータ上で実現するVMware、Hyper-V、KVMといった技術が話題になることが多かったことに対し、最近ではImmutable Infrastructureといったキーワードと共に『コンテナ』が話題になることが増えました。『コンテナ』とは
(2014-07-06 追記してます) (2014-05-11 追記してます) (2014-04-24 追記してます) ついにリリースされましたね.Ubuntu の新しい LTS.これを目標に LXC 1.0 の開発は進められてきたわけで,きっと特に苦労する事もなく一般ユーザでのコンテナの作成と実行が出来るのだろうなあと思って試してみました.結論から言うと出来ました.なので特にこのブログエントリを読む事なく作る事が出来るのでお急ぎの方はこの後読まずにさっさとやってしまいましょう :-D 過去,Ubuntu 上で 一般ユーザでの lxc コンテナの実行 - TenForwardの日記 LXCの非特権コンテナ 〜 Ubuntu Trusty 編 - TenForwardの日記 と 2 度ほどためしていますが,徐々に簡単になって,ついに完成型になりました. まず Ubuntu 14.04 LTS
Docker はただ LXC を再発明しているわけではないというお話。DotCloud のファウンダーによる stackoverflow の質問への回答。 LXC はネームスペースやコントロールグループ等の Linux カーネルケーパビリティ機能を利用し、プロセスを他のプロセスからサンドボックス化し、それらプロセスへのリソースの割当てをコントロールしている。Docker はこのローレベルのカーネル機能を軸に、以下のような機能を提供している。 LXC に対し Docker が提供している機能 どんなマシンへもポータブルデプロイ可能 Docker はアプリケーションをビルドするためのフォーマットが定義されており、その全ての依存関係を (Docker がインストールされている全てのマシンで動作する) 単一のオブジェクトに入れ、それはどこで実行してもアプリケーション実行環境が同一になります。LXC
4/12 に大阪でコンテナに関する仮想化の勉強会を開催し,『Linux コンテナ入門』というお題で発表してきました. 前日はDocker Meetup Tokyo #2で,最終の新幹線に飛び乗り,翌日午前から準備をして (前日,私がいない間に準備してくれて助かった!!),午後から勉強会ということで,アラフィフ予備軍のおっさんにはちょっと強行軍だったのですが,年間を通じて最もコンテナ分の濃い二日間になり,非常に楽しく,ためになる時間を過ごすことができました. この勉強会はは広く「コンテナに少しでもかすれば良い」という考えで開催しています.私がどちらかというとベースとなる仕組みの勉強ばかりなので,実際の応用事例とかも聞きたい,自分が使ってないコンテナ技術についても聞きたいと思っているからです.自分が聞きたい話を聞くために勉強会を開く,という考えですね.プログラムについても仕組みから徐々に応用に
この文書について この文書は、連載記事「LXC 1.0: Blog post series」の一つである以下の記事を翻訳したものです。連載の目次や注意点はこちらを参照してください。 https://www.stgraber.org/2013/12/20/lxc-1-0-your-first-ubuntu-container/ この文書のライセンスは原文と同じく、Creative Commons BY-NC-SA 2.5のもとに提供されています。 LXCとはなんぞや? ほとんどの人はその問いに対する答えを既に知っていることでしょう。まとめますと: LXCはLinuxカーネルの隔離機能に対するユーザー空間のインターフェースです(訳注1)。強力なAPIとシンプルなツールを用いて、Linuxユーザーは簡単にシステムやアプリケーションのコンテナーを作成・管理できます。 私は二人いるLXCのアップスト
2月21日、Linux向けの仮想化ソフトウェア「LXC(Linux Containers) 1.0」がリリースされた。プロジェクトのWebサイトよりダウンロードできる。 LXCはLinuxシステム上に複数の隔離されたOS環境(コンテナ)を構築するためのソフトウェア。APIやツールが提供され、簡単にアプリケーションコンテナの作成や管理が行える。 LXC 1.0は「重要なマイルストーンリリース」という位置付けで、また業務用途として利用できる品質を持つ初めての「プロダクションリリース」になるという。今回のリリースの特徴としてはコンテナセキュリティの強化や、一貫性のあるAPIおよびドキュメント、ツールセットなどの提供がある。 LXC 1.0では非特権コンテナが完全にサポートされたほか、APIも「安定版」となった。luaやPython 3、Go、Ruby向けの公式APIバインディングも提供される。バ
最近Dockerをいろいろ触ってみていて以下の様な記事を書いたりしました。 Dockerで立てたコンテナにsshで接続する - $shibayu36->blog; serfとDockerでクラスタを組んでみる - $shibayu36->blog; 本番環境のBlue-Green Deploymentの仕組みのプロトタイプを作っていた - $shibayu36->blog; Docker, Mesos, Sensu等を利用したBlue-Green Deploymentの仕組み - $shibayu36->blog; 社内用Docker Registryを立てる - $shibayu36->blog; docker commitでCMDやENVなどを指定する - $shibayu36->blog; docker inspectでDockerコンテナの情報を取得する - $shibayu36-
サーバアプリケーションの配置はますます複雑になっています。いくつかのPerlスクリプトをコピーするだけでインストールが完了する時代は終わりました。今日、ソフトウエアは多くの種類の要求を抱えています。 インストールするソフトウエアやライブラリの依存物("Python >= 2.6.3とDjango 1.2に依存する") 実行するサービスへの依存("MySQL 5.5とRabbitMQのキュー"が必要) 特定のOSに対する依存("64-bit Ubuntu Linux 12.04でビルドとテストをした") リソースの要件: 利用可能なメモリの最少量("1GBのメモリが必要") 特定のポートへのバインド("80と443を使う") 例えば、比較的シンプルなアプリケーションの配置を考えてみましょう。Wordpressです。典型的なWordpressのインストールでは、 Apache 2 PHP 5
先月公開した第288回では、Ubuntuのサービスオーケストレーションツールである「Juju」を使ってAmazon Web Service上のUbuntuインスタンスを作成したり、スケールする方法を紹介しました。今回はAmazon Web Serviceではなく、LXCを用いて「ローカルにデプロイする方法」を紹介しましょう。 Juju on LXC LXC(Linux Containers)は第226回でも紹介した仮想化ソフトウェアです。Linuxカーネルの機能を使っているため、Linuxカーネルが動く環境であれば、どのホストやゲストでも動かすことができます。たとえば、現在スマートフォンやタブレット向けに開発している「Ubuntu Touch」は、Ubuntu用にカスタマイズしたLinuxカーネルとUbuntu環境を動かしつつ、その中でLXCを使ってAndroidの仮想マシンとAndroi
機能やサービスごと、もしくはサイトごとについつい、いくつものVPSを借りてしまってはいませんか? 僕がそうなんです。環境はお互いに独立しておいたほうが後々良いという考えのもと、さくらのVPSをサービスごとに借りてしまい、いつのまにか請求額が高くなっているというのは、よくあることです。ありますよね? 会社でもつい借りまくって毎月の請求が7万とかになってて悲しんでいます。 今回、個人的に借りていた3台のVPSを1台に集約したいと思いました。 初代の「さくらのVPS512」というプランが3つで2940円掛かっていましたが、「さくらのVPS 石狩リージョン 2G v3」の初期費用無料、月額1480円に節約したいと思います。 最近できたConoHaなど、別にさくらのVPSに限らず他社のKVMなVPSでもいいと思います。 CloudCore CV01はちょっと割高に感じるので、さくらかConoHa、そ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く