SlideShare a Scribd company logo
LXC 再入門。

まえだこうへい mkouhei@debian.or.jp
     a.k.a. mkouhei


       2012 年 7 月 26 日




                         .   .   .   .   .   .
再入門?




       .   .   .   .   .   .
2009 年 12 月の
東京エリア Debian 勉強会の
ネタの焼き直しです



            .   .   .   .   .   .
自己紹介

 まえだこうへい
 ▶   Debian JP Project Leader(2011, 2012) / CouchDB JP
 ▶   勤務先:渋谷の会社
 ▶   Python 関連の Debian パッケージのメンテナンスなど
 ▶   職場で使用している OpenStack の構築・運用で必要な、
     周辺ツールの開発、構築とか
 ▶   執筆
       ▶   Git によるバージョン管理 (オーム社)
       ▶   KVM 徹底入門 (翔泳社)
       ▶   ゆったリラックス! CouchDB があるところ (@IT) #5
       ▶   知って見るみる KVM(@IT)
 ▶   今日は (一応)lxc JP として呼ばれたようです

                                   .   .   .   .   .     .
宣伝。
Google group で lxc JP 1
流量の少ない緩いやりとり
をしてます:)



 1
     https://groups.google.com/group/lxc-jp/about?hl=ja
                                        .   .    .   .    .   .
LXC とは?


  ▶   Linux Containers のこと
        ▶   コンテナを稼働させるホスト自体のカーネルの機能
        ▶   LXC を管理するための lxc-* コマンドラインツール
  ▶   LXC で使えるコンテナ
        ▶   システムコンテナ:いわゆる OS の仮想化
        ▶   アプリケーションコンテナ:特定のプロセスの分離
  ▶   para,full-virtualization とは違うのでホストカーネル上で
      動くものしかコンテナでは使えない
  ▶   他のコンテナ技術:OpenVZ, Linux-VServer,Solaris
      Containers, FreeBSD jail



                               .   .   .   .   .   .
導入




     .   .   .   .   .   .
パッケージインストール




 libvirt を使わなければ Squeeze でも OK
  $ sudo apt-get install lxc iproute debootstrap




                                                   .   .   .   .   .   .
kernel option 確認
   $ lxc-checkconfig
   Kernel config /proc/config.gz not found, looking in other places...
   Found kernel config file /boot/config-3.0.0-1-amd64
   --- Namespaces ---
   Namespaces: enabled
   Utsname namespace: enabled
   Ipc namespace: enabled
   Pid namespace: enabled
   User namespace: enabled
   Network namespace: enabled
   Multiple /dev/pts instances: enabled
   --- Control groups ---
   Cgroup: enabled
   Cgroup clone_children flag: enabled
   Cgroup device: enabled
   Cgroup sched: enabled
   Cgroup cpu account: enabled
   Cgroup memory controller: enabled
   Cgroup cpuset: enabled

   --- Misc ---
   Veth pair device: enabled
   Macvlan: enabled
   Vlan: enabled
   File capabilities: enabled
   Note : Before booting a new kernel, you can check its configuration
                                                 .    .    .    .     .   .
足りなければ、カーネルリ
ビルドしる




        .   .   .   .   .   .
確認する




 即席コンテナで稼働確認
 $ sudo lxc-execute -n hoge -f -- /bin/bash
 # lxc-info -n hoge
 state:   RUNNING
 pid:      4520
 $ sudo lxc-stop -n hoge <-別のシェルで実行。




                                              .   .   .   .   .   .
システムコンテナを使う



 1.   ネットワークの設定
 2.   cgroup ファイルシステムのマウント
 3.   コンテナの rootfs 作成
 4.   コンテナのファイルの微調整
 5.   コンテナの起動
 簡単に Debian 環境を増やせて、すぐ起動できるのが良いで
 すね!




                         .   .   .   .   .   .
lxc のライフサイクル




 他の仮想マシンのライフサイクルと大差ない。
                                                                          lxc-freeze
                                                                                            FROZEN
                                                          RUNNING        lxc-unfreeze
                                                                           lxc-stop
                                                  error
                           lxc-start   STARTING           ABORTING
    lxc-create                                                                              STOPPING
                 STOPPED
   lxc-destroy




                                                            .        .        .         .       .      .
リソースの管理

 ▶     cgroup(Control Group) を使う
 ▶     UI として lxc-cgroup コマンドが用意されている
 ▶     cgroup ファイルシステム経由でリソース管理する
        cgroup   /sys/fs/cgroup   cgroup   defaults       0   0


 ▶     システムコンテナの rootfs はどこでも良い。Debian で
       は/var/lib/lxc 以下に置くのがデフォルト
 ▶     Debian では/etc/default/grub に下記を設定し、
       update-grub2 の実行が必要。2
        GRUB_CMDLINE_LINUX="cgroup_enable=memory"




  2
      http://wiki.debian.org/LXC                      .       .   .   .   .   .
libvirt の話



    ▶   Squeeze では使えない。
    ▶   Wheezy/Sid の libvirt(0.9.12) では一部機能制限があるが
        使える。
          ▶   一部:shutdown, reset, reboot ができない
          ▶   Upstream の 7/12 のコミット 97d7f02 で shutdown が一
              部制限付きで Fix されたので、0.9.14 からは使えるか
              も。3




    3
        Wheezy では使えない、ということですね….           .   .   .   .    .
domain XML のサンプル
  (test.xml)
  <domain type=’lxc’>
    <name>test</name>
    <memory>500000</memory>
    <os>
       <type>exe</type>
       <init>/sbin/init</init>
    </os>
    <vcpu>1</vcpu>
    <clock offset=’utc’/>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>destroy</on_crash>
    <devices>
       <emulator>/usr/lib/libvirt/libvirt_lxc</emulator>
       <filesystem type=’mount’>
         <source dir=’/var/lib/lxc/debian/rootfs’/>
         <target dir=’/’/>
       </filesystem>
       <interface type=’network’>
       <source network=’default’/>
       </interface>
       <console type=’pty’ />
    </devices>
  </domain>

                                                .    .     .   .   .   .
起動と確認




 $ sudo virsh --connect net-start default
 $ sudo virsh --connect lxc:/// define text.xml
 $ sudo virsh --connect lxc:/// start test
 $ sudo virsh --connect lxc:/// list
  Id Name                 State
 ----------------------------------
 5579 test                running




                                                  .   .   .   .   .   .
私の使い方




        .   .   .   .   .   .
現状




 ▶   常用としては、さくらの VPS で Debian Squeeze でカス
     タムビルドカーネル& lxc パッケージを使用
 ▶   ネットワークの設定は/etc/network/if-up.d/に NIC およ
     びブリッジの再設定を行うスクリプトを実行させて
     いる




                             .   .   .   .   .   .
私の悩み



 ▶   lxc コマンド群は、LXC を可動するホスト上でしか使え
     ない
 ▶   複数ホストノードを扱う場合は不便
 ▶   libvirt を使いたいが、XML 用意するのは面倒
 ▶   VirtManager とか使いたくない。コマンドラインでやり
     たい




                        .   .   .   .   .   .
そこで、ツール作った。




        .   .   .   .   .   .
開発の動機



 ▶     7/6 に@yssk22 に発表依頼されたので、2 年半前のネタ
       を焼き直しすることにした4
 ▶     実は 7/28 の pyfes で Git ネタ発表内容にもどうしようか
       悩んでいた
 ▶     libvirt 経由で LXC 管理なら OpenStack も、とか一瞬考
       えたが、妻子持ちの個人環境としては面倒




  4
      https://twitter.com/yssk22/status/221236629631803394.
                                         .    .   .   .       .
じゃあ、LXC と Git を両方か
ねてツール作るか!




            .   .   .   .   .   .
名前は iori「庵」




 ということで作ってみた。
 https://github.com/mkouhei/iori




                                   .   .   .   .   .   .
バグ出し
request-pull
お待ちしてます。 :)



           .   .   .   .   .   .

More Related Content

What's hot

Linux Namespaces
Linux NamespacesLinux Namespaces
Linux Namespaces
Masami Ichikawa
 
パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapパケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmap
furandon_pig
 
OpenvswitchでVPS
OpenvswitchでVPSOpenvswitchでVPS
OpenvswitchでVPS
Daisuke Nakajima
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
 
Hello, systemd
Hello, systemdHello, systemd
Hello, systemd
Emma Haruka Iwao
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜Takuya ASADA
 
Lxc on cloud
Lxc on cloudLxc on cloud
Lxc on cloud
Yukihiko SAWANOBORI
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
 
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!
Etsuji Nakai
 
RancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかRancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにか
Masataka Tsukamoto
 
Docker Machineを始めるには?
Docker Machineを始めるには?Docker Machineを始めるには?
Docker Machineを始めるには?
Masahito Zembutsu
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんやTakuya ASADA
 
Dockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかDockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんか
axsh co., LTD.
 
Mincs 日本語版
Mincs 日本語版Mincs 日本語版
Mincs 日本語版
Masami Hiramatsu
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
Saito5656
 
Tricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft floatTricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft float
Tetsuyuki Kobayashi
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
Masahito Zembutsu
 
Bhyve code reading
Bhyve code readingBhyve code reading
Bhyve code readingTakuya ASADA
 

What's hot (20)

Linux Namespaces
Linux NamespacesLinux Namespaces
Linux Namespaces
 
パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapパケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmap
 
OpenvswitchでVPS
OpenvswitchでVPSOpenvswitchでVPS
OpenvswitchでVPS
 
Free bsd jail入門
Free bsd jail入門Free bsd jail入門
Free bsd jail入門
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
Hello, systemd
Hello, systemdHello, systemd
Hello, systemd
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
 
Lxc on cloud
Lxc on cloudLxc on cloud
Lxc on cloud
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!
 
RancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかRancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにか
 
Docker Machineを始めるには?
Docker Machineを始めるには?Docker Machineを始めるには?
Docker Machineを始めるには?
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんや
 
Dockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんかDockerの改修を一緒にやりませんか
Dockerの改修を一緒にやりませんか
 
Mincs 日本語版
Mincs 日本語版Mincs 日本語版
Mincs 日本語版
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
 
Tricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft floatTricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft float
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
 
Open VZ
Open VZOpen VZ
Open VZ
 
Bhyve code reading
Bhyve code readingBhyve code reading
Bhyve code reading
 

Similar to Lxc cf201207-presen

Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門
Takenori Matsumoto
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
Taisuke Yamada
 
コンテナ情報交換会2
コンテナ情報交換会2コンテナ情報交換会2
コンテナ情報交換会2
Masahide Yamamoto
 
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Nobuto Murata
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
Kensuke Maeda
 
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
Preferred Networks
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
Etsuji Nakai
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
Masahito Zembutsu
 
20170124 linux basic_1
20170124 linux basic_120170124 linux basic_1
20170124 linux basic_1
YUSUKE MORIZUMI
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
Kotaro Noyama
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
Masahito Zembutsu
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 

Similar to Lxc cf201207-presen (20)

KVM+cgroup
KVM+cgroupKVM+cgroup
KVM+cgroup
 
Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
コンテナ情報交換会2
コンテナ情報交換会2コンテナ情報交換会2
コンテナ情報交換会2
 
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
 
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
20170124 linux basic_1
20170124 linux basic_120170124 linux basic_1
20170124 linux basic_1
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 

More from Kouhei Maeda

とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。
Kouhei Maeda
 
ldapvi & python-ldap で stress-free life
ldapvi & python-ldap で stress-free lifeldapvi & python-ldap で stress-free life
ldapvi & python-ldap で stress-free life
Kouhei Maeda
 
Git pyfes201207-presen
Git pyfes201207-presenGit pyfes201207-presen
Git pyfes201207-presenKouhei Maeda
 
Goodby Hatena, hello Sphinx
Goodby Hatena, hello SphinxGoodby Hatena, hello Sphinx
Goodby Hatena, hello SphinxKouhei Maeda
 
インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門
Kouhei Maeda
 
僕の疑問に答えてください。
僕の疑問に答えてください。僕の疑問に答えてください。
僕の疑問に答えてください。
Kouhei Maeda
 
Debian JP会長就任の挨拶
Debian JP会長就任の挨拶Debian JP会長就任の挨拶
Debian JP会長就任の挨拶Kouhei Maeda
 
Debianでできる簡単監視システム。
Debianでできる簡単監視システム。Debianでできる簡単監視システム。
Debianでできる簡単監視システム。
Kouhei Maeda
 
Debianでできる簡単監視システム
Debianでできる簡単監視システムDebianでできる簡単監視システム
Debianでできる簡単監視システムKouhei Maeda
 
CouchDB on Androidでスタンドアローンアプリ。
CouchDB on Androidでスタンドアローンアプリ。CouchDB on Androidでスタンドアローンアプリ。
CouchDB on Androidでスタンドアローンアプリ。Kouhei Maeda
 
あいぽん落としたと聞いたので!
あいぽん落としたと聞いたので!あいぽん落としたと聞いたので!
あいぽん落としたと聞いたので!
Kouhei Maeda
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話Kouhei Maeda
 
S2s websrv201011-presen
S2s websrv201011-presenS2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
 

More from Kouhei Maeda (13)

とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。
 
ldapvi & python-ldap で stress-free life
ldapvi & python-ldap で stress-free lifeldapvi & python-ldap で stress-free life
ldapvi & python-ldap で stress-free life
 
Git pyfes201207-presen
Git pyfes201207-presenGit pyfes201207-presen
Git pyfes201207-presen
 
Goodby Hatena, hello Sphinx
Goodby Hatena, hello SphinxGoodby Hatena, hello Sphinx
Goodby Hatena, hello Sphinx
 
インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門
 
僕の疑問に答えてください。
僕の疑問に答えてください。僕の疑問に答えてください。
僕の疑問に答えてください。
 
Debian JP会長就任の挨拶
Debian JP会長就任の挨拶Debian JP会長就任の挨拶
Debian JP会長就任の挨拶
 
Debianでできる簡単監視システム。
Debianでできる簡単監視システム。Debianでできる簡単監視システム。
Debianでできる簡単監視システム。
 
Debianでできる簡単監視システム
Debianでできる簡単監視システムDebianでできる簡単監視システム
Debianでできる簡単監視システム
 
CouchDB on Androidでスタンドアローンアプリ。
CouchDB on Androidでスタンドアローンアプリ。CouchDB on Androidでスタンドアローンアプリ。
CouchDB on Androidでスタンドアローンアプリ。
 
あいぽん落としたと聞いたので!
あいぽん落としたと聞いたので!あいぽん落としたと聞いたので!
あいぽん落としたと聞いたので!
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話
 
S2s websrv201011-presen
S2s websrv201011-presenS2s websrv201011-presen
S2s websrv201011-presen
 

Recently uploaded

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 

Recently uploaded (16)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 

Lxc cf201207-presen

  • 1. LXC 再入門。 まえだこうへい mkouhei@debian.or.jp a.k.a. mkouhei 2012 年 7 月 26 日 . . . . . .
  • 2. 再入門? . . . . . .
  • 3. 2009 年 12 月の 東京エリア Debian 勉強会の ネタの焼き直しです . . . . . .
  • 4. 自己紹介 まえだこうへい ▶ Debian JP Project Leader(2011, 2012) / CouchDB JP ▶ 勤務先:渋谷の会社 ▶ Python 関連の Debian パッケージのメンテナンスなど ▶ 職場で使用している OpenStack の構築・運用で必要な、 周辺ツールの開発、構築とか ▶ 執筆 ▶ Git によるバージョン管理 (オーム社) ▶ KVM 徹底入門 (翔泳社) ▶ ゆったリラックス! CouchDB があるところ (@IT) #5 ▶ 知って見るみる KVM(@IT) ▶ 今日は (一応)lxc JP として呼ばれたようです . . . . . .
  • 5. 宣伝。 Google group で lxc JP 1 流量の少ない緩いやりとり をしてます:) 1 https://groups.google.com/group/lxc-jp/about?hl=ja . . . . . .
  • 6. LXC とは? ▶ Linux Containers のこと ▶ コンテナを稼働させるホスト自体のカーネルの機能 ▶ LXC を管理するための lxc-* コマンドラインツール ▶ LXC で使えるコンテナ ▶ システムコンテナ:いわゆる OS の仮想化 ▶ アプリケーションコンテナ:特定のプロセスの分離 ▶ para,full-virtualization とは違うのでホストカーネル上で 動くものしかコンテナでは使えない ▶ 他のコンテナ技術:OpenVZ, Linux-VServer,Solaris Containers, FreeBSD jail . . . . . .
  • 7. 導入 . . . . . .
  • 8. パッケージインストール libvirt を使わなければ Squeeze でも OK $ sudo apt-get install lxc iproute debootstrap . . . . . .
  • 9. kernel option 確認 $ lxc-checkconfig Kernel config /proc/config.gz not found, looking in other places... Found kernel config file /boot/config-3.0.0-1-amd64 --- Namespaces --- Namespaces: enabled Utsname namespace: enabled Ipc namespace: enabled Pid namespace: enabled User namespace: enabled Network namespace: enabled Multiple /dev/pts instances: enabled --- Control groups --- Cgroup: enabled Cgroup clone_children flag: enabled Cgroup device: enabled Cgroup sched: enabled Cgroup cpu account: enabled Cgroup memory controller: enabled Cgroup cpuset: enabled --- Misc --- Veth pair device: enabled Macvlan: enabled Vlan: enabled File capabilities: enabled Note : Before booting a new kernel, you can check its configuration . . . . . .
  • 11. 確認する 即席コンテナで稼働確認 $ sudo lxc-execute -n hoge -f -- /bin/bash # lxc-info -n hoge state: RUNNING pid: 4520 $ sudo lxc-stop -n hoge <-別のシェルで実行。 . . . . . .
  • 12. システムコンテナを使う 1. ネットワークの設定 2. cgroup ファイルシステムのマウント 3. コンテナの rootfs 作成 4. コンテナのファイルの微調整 5. コンテナの起動 簡単に Debian 環境を増やせて、すぐ起動できるのが良いで すね! . . . . . .
  • 13. lxc のライフサイクル 他の仮想マシンのライフサイクルと大差ない。 lxc-freeze FROZEN RUNNING lxc-unfreeze lxc-stop error lxc-start STARTING ABORTING lxc-create STOPPING STOPPED lxc-destroy . . . . . .
  • 14. リソースの管理 ▶ cgroup(Control Group) を使う ▶ UI として lxc-cgroup コマンドが用意されている ▶ cgroup ファイルシステム経由でリソース管理する cgroup /sys/fs/cgroup cgroup defaults 0 0 ▶ システムコンテナの rootfs はどこでも良い。Debian で は/var/lib/lxc 以下に置くのがデフォルト ▶ Debian では/etc/default/grub に下記を設定し、 update-grub2 の実行が必要。2 GRUB_CMDLINE_LINUX="cgroup_enable=memory" 2 http://wiki.debian.org/LXC . . . . . .
  • 15. libvirt の話 ▶ Squeeze では使えない。 ▶ Wheezy/Sid の libvirt(0.9.12) では一部機能制限があるが 使える。 ▶ 一部:shutdown, reset, reboot ができない ▶ Upstream の 7/12 のコミット 97d7f02 で shutdown が一 部制限付きで Fix されたので、0.9.14 からは使えるか も。3 3 Wheezy では使えない、ということですね…. . . . . .
  • 16. domain XML のサンプル (test.xml) <domain type=’lxc’> <name>test</name> <memory>500000</memory> <os> <type>exe</type> <init>/sbin/init</init> </os> <vcpu>1</vcpu> <clock offset=’utc’/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/lib/libvirt/libvirt_lxc</emulator> <filesystem type=’mount’> <source dir=’/var/lib/lxc/debian/rootfs’/> <target dir=’/’/> </filesystem> <interface type=’network’> <source network=’default’/> </interface> <console type=’pty’ /> </devices> </domain> . . . . . .
  • 17. 起動と確認 $ sudo virsh --connect net-start default $ sudo virsh --connect lxc:/// define text.xml $ sudo virsh --connect lxc:/// start test $ sudo virsh --connect lxc:/// list Id Name State ---------------------------------- 5579 test running . . . . . .
  • 18. 私の使い方 . . . . . .
  • 19. 現状 ▶ 常用としては、さくらの VPS で Debian Squeeze でカス タムビルドカーネル& lxc パッケージを使用 ▶ ネットワークの設定は/etc/network/if-up.d/に NIC およ びブリッジの再設定を行うスクリプトを実行させて いる . . . . . .
  • 20. 私の悩み ▶ lxc コマンド群は、LXC を可動するホスト上でしか使え ない ▶ 複数ホストノードを扱う場合は不便 ▶ libvirt を使いたいが、XML 用意するのは面倒 ▶ VirtManager とか使いたくない。コマンドラインでやり たい . . . . . .
  • 22. 開発の動機 ▶ 7/6 に@yssk22 に発表依頼されたので、2 年半前のネタ を焼き直しすることにした4 ▶ 実は 7/28 の pyfes で Git ネタ発表内容にもどうしようか 悩んでいた ▶ libvirt 経由で LXC 管理なら OpenStack も、とか一瞬考 えたが、妻子持ちの個人環境としては面倒 4 https://twitter.com/yssk22/status/221236629631803394. . . . . .
  • 23. じゃあ、LXC と Git を両方か ねてツール作るか! . . . . . .
  • 24. 名前は iori「庵」 ということで作ってみた。 https://github.com/mkouhei/iori . . . . . .