SlideShare una empresa de Scribd logo
1 de 25
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
お待ちしてます。 :)



           .   .   .   .   .   .

Más contenido relacionado

La actualidad más candente

パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapパケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapfurandon_pig
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダTakuya ASADA
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜Takuya ASADA
 
ラズパイ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.
 
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 floatTetsuyuki Kobayashi
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかたMasahito Zembutsu
 
Bhyve code reading
Bhyve code readingBhyve code reading
Bhyve code readingTakuya ASADA
 

La actualidad más candente (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 a 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 secondTaisuke Yamada
 
コンテナ情報交換会2
コンテナ情報交換会2コンテナ情報交換会2
コンテナ情報交換会2Masahide 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-08Nobuto 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
 
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.1Kotaro 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 a 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
 

Más de 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 lifeKouhei 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-presenKouhei Maeda
 

Más de 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
 

Último

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Último (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

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 . . . . . .