SlideShare a Scribd company logo
1 of 17
Download to read offline
2011/07/10
Version 1.2      オープンクラウド・キャンパス



              LXCで始めるケチケチ仮想化生活?!
               ~Hadoop on LXCにチャレンジ!




                           中井悦司
                      Twitter @enakai00
LXCで始めるケチケチ仮想化生活?!


自己紹介
 中井悦司(なかいえつじ)
    – Twitter @enakai00

 日々の仕事
   – Senior Solution Architect
     and Cloud Evangelist at Red Hat K.K.
     企業システムでオープンソースの活用を希望される
     お客様を全力でご支援させていただきます。                   好評発売中

 昔とった杵柄
    – 素粒子論の研究(超弦理論とか)
    – 予備校講師(物理担当)
    – インフラエンジニア(Unix/Linux専門)




2                                                   Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


本日のお題

 サーバ仮想化とLinuxコンテナ
 LXCの基礎知識
 Hadoop on LXCにチャレンジ!




       Supported by at+link
    本日のデモ環境は at+link よりご提供いただいています。

3                                     Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!




             サーバ仮想化とLinuxコンテナ




4                               Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


よくあるサーバ仮想化の分類
基本的には「物理マシン」と同等の「仮想マシン」を複数
                                      ハードウェアによる仮想化
作り出す技術です。
                                   (物理マシンにハイパーバイザを内蔵)

                                      ゲスト   ゲスト     ゲスト     ゲスト
                                       OS    OS      OS      OS
                非仮想化環境                仮想     仮想      仮想      仮想
                                     マシン    マシン     マシン     マシン

                     OS               ハイパーバイザ(ファームウェア)

                                               物理マシン
                 物理マシン
                                       Power Systems, Virtage など




         ソフトウェアによる仮想化                  ソフトウェアによる仮想化
     (物理マシン上にハイパーバイザを導入)           (ホスト OS にハイパーバイザ機能を追加)

        ゲスト    ゲスト    ゲスト    ゲスト      ゲスト    ゲスト    ゲスト
         OS     OS     OS     OS       OS     OS     OS
         仮想     仮想     仮想     仮想      仮想     仮想      仮想
        マシン    マシン    マシン    マシン     マシン    マシン     マシン
          ハイパーバイザ(ソフトウェア)               ハイパーバイザ
                                      (カーネルモジュール)
                 物理マシン
                                                ホスト OS
          VMware vSphere, Xen など
                                               物理マシン

                                              Linux KVM
5                                                                  Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


コンテナ型仮想化とは
 OSの内部は、物理リソースを管理するカーネル空間とユーザプロセス(アプリケーション)
  を実行するユーザ空間に分かれます。

 コンテナ型仮想化は、カーネルの機能により、複数のユーザ空間を作り出すことで、ユーザ
  プロセスから見えるリソースを分割します。リソースによって分割方法は異なります。(以
  下はLXCの例)
    – プロセスリスト、ホストネーム、OSユーザ、ネットワーク、ファイルシステム、コンソールなど
        ⇒ コンテナごとに異なる内容が見える
    – CPU、メモリ、デバイス(/dev/*)
        ⇒ 物理マシン全体の情報が見えるが、cgroupsでコンテナごとに利用範囲を制限
                                                              コンテナ型仮想化
                      非仮想化環境
                                                  ユーザ空間                ユーザ空間
                                          ユーザ空間
                      ユーザプロセス


                                ユーザプロセス
            ユーザプロセス




                                                  ユーザプロセス


                                                            ユーザプロセス




                                                                        ユーザプロセス


                                                                                  ユーザプロセス
                                                                                            ・・・
       OS
                                          ・・・


                          カーネル空間
                                                                      カーネル空間
                            物理マシン
                                                                      物理マシン

6                                                                                                 Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


LXC(Linux コンテナ)の特徴

 Linuxカーネル(メインラインカーネル)がネイティブに持つ機能を利用して実現します。
    – RHEL6.0/6.1では、デフォルト・カーネルで利用可能(Technical Preview)


 コンテナを操作するツールは用意が必要です。
    – RHEL6.0/6.1には含まれていないので、
     sourceforgeからLXCツールをダウンロードして
     使用します。(http://lxc.sourceforge.net/)


※ libvirtからもLXCを操作することができますが、完成
 度はあと一歩。(libvirtチームにて鋭意開発中)

 KVMの仮想マシン上などでも利用できます。
    – クラウドから借り出したVM環境をさらにLXCで分
      割することも可能です。




7                                                        Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!




                     LXCの基礎知識




8                               Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


LXCのリソース分割 (1/4) ~ プロセステーブル

 各コンテナのプロセスは、同じLinuxカーネルで実行されます。                                                  ユーザ空間                    ユーザ空間

    – Linux以外のOSをコンテナで実行することはできません。




                                                                                                             ユーザプロセス
                                                                                       ユーザプロセス

                                                                                                 ユーザプロセス




                                                                                                                       ユーザプロセス
                                                                                                                                 ・・・
 プロセステーブルはコンテナごとに独立しているので、他のコンテ
  ナのプロセスは見えません。
    – コンテナ外部にあたるホストLinux上では全てのプロセスが見えます。                                                                   カーネル空間
                                                                                                           物理マシン
    – ホストLinux上のプロセステーブルでは、コンテナに属するプロセスに
      は、コンテナ名ラベルが付与されます。

    ホストLinuxのプロセステーブル (コンテナ内部ではそのコンテナに属するプロセスしか見えない)
     # lxc-ps -ef
     CONTAINER UID       PID   PPID   C STIME TTY         TIME CMD
                root       1      0   0 Jun03 ?       00:00:00 /sbin/init
                root       2      0   0 Jun03 ?       00:00:00 [kthreadd]
     ...
                root   10258     1    0   10:30   ?   00:00:00   lxc-start -n 005 -d
     005        root   10266 10258    0   10:30   ?   00:00:00   /sbin/init
                root   10268     1    0   10:30   ?   00:00:00   lxc-start -n 006 -d
     006        root   10278 10268    0   10:30   ?   00:00:00   /sbin/init
     006        root   10801 10278    0   10:30   ?   00:00:00   /sbin/rsyslogd -c 4
     ...
     005        root   10989 10266    0 10:30 ?       00:00:00 crond
     005        root   11027 10266    0 10:30 pts/4   00:00:00 /sbin/agetty /dev/console 38400 vt100-nav
     ...
                root   14452 12337    0 14:20 pts/3   00:00:00 lxc-start -n 003
     003        root   14455 14452    0 14:20 ?       00:00:00 /sbin/init
     003        root   14626 14455    0 14:20 ?       00:00:00 /sbin/rsyslogd -c 4
9                                                                                                                 Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


LXCのリソース分割 (2/4) ~ ファイルシステム




                                                                                                 ファイルシステムをマウント
                                # ls -l /lxc/rootfs/
                                合計 28
 コンテナごとに特定ディレクトリに




                                                                                                   コンテナごとのルート
                                drwxr-xr-x   2 root root   4096   5月   28   13:53   2011   001
  chrootします。                    drwxr-xr-x   2 root root   4096   5月   28   15:13   2011   002
                                dr-xr-xr-x. 23 root root   4096   5月   30   12:41   2011   003
     – 昔ながらのchroot jailと同じです。   dr-xr-xr-x. 24 root root   4096   5月   31   13:13   2011   004
                                dr-xr-xr-x. 24 root root   4096   5月   31   13:13   2011   005
     – コンテナごとのルートファイルシステ        dr-xr-xr-x. 24 root root   4096   5月   31   13:13   2011   006
       ムを任意のディレクトリにマウントし        dr-xr-xr-x. 23 root root   4096   5月   30   12:41   2011   007
       ておきます。                   # ls -l /lxc/rootfs/003
                                合計 104
 コンテナで特定デーモンだけを動か              dr-xr-xr-x. 2 root root 4096 5月 25 20:24 2011 bin
                                drwxr-xr-x. 2 root root 4096 5月 25 20:22 2011 boot
  す場合                           drwxr-xr-x. 2 root root 4096 7月 14 20:45 2010 cgroup
                                drwxr-xr-x. 2 root root 4096 5月 25 20:22 2011 dev
     ⇒ 昔ながらのchroot jail風の使い方    drwxr-xr-x. 57 root root 4096 6月 4 14:20 2011 etc
                                drwxr-xr-x. 3 root root 4096 5月 29 05:35 2011 home
     – デーモンの稼働に必要なファイルだけ        dr-xr-xr-x. 8 root root 4096 5月 25 20:24 2011 lib
       があればOKです。                dr-xr-xr-x. 7 root root 12288 5月 25 20:24 2011 lib64
                                drwx------. 12 root root 16384 5月 25 20:22 2011 lost+found
                                drwxr-xr-x. 2 root root 4096 12月 4 22:33 2009 media
 コンテナでゲストOSをまるごと動か             drwxr-xr-x. 2 root root 4096 12月 4 22:33 2009 mnt
  す場合                           drwxr-xr-x. 5 root root 4096 5月 31 11:48 2011 opt
                                drwxr-xr-x. 2 root root 4096 5月 25 20:22 2011 proc
     ⇒ サーバ仮想化風の使い方              dr-xr-x---. 5 root root 4096 5月 31 13:01 2011 root
                                dr-xr-xr-x. 2 root root 4096 5月 25 20:25 2011 sbin
     – ゲストOSのルートファイルシステムを       drwxr-xr-x. 2 root root 4096 5月 25 20:23 2011 selinux
       まるごとマウントします。             drwxr-xr-x. 2 root root 4096 12月 4 22:33 2009 srv
                                drwxr-xr-x. 2 root root 4096 5月 25 20:22 2011 sys
     – KVMのゲストOSイメージファイルを       drwxrwxrwt. 2 root root 4096 6月 4 14:18 2011 tmp
       loopマウントして利用するなどもあり      drwxr-xr-x. 14 root root 4096 5月 29 05:33 2011 usr
                                drwxr-xr-x. 17 root root 4096 5月 25 20:23 2011 var
       です。

10                                                                                     Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


LXCのリソース分割 (3/4) ~ ネットワーク
 各コンテナには、仮想NIC(veth)をアサインして、ホストOSの物理NICにブリッジ接続し
  ます。
     – vethはLinuxカーネルが標準で提供する機能です。2つのvethのペアを(クロスケーブルで直結した
       かのように)接続して、同じサーバ上のプロセス間で擬似的なネットワーク通信を実現します。

 LXCではvethペアの一方をコンテナ内部に見せて、もう一方を仮想ブリッジに接続すること
  で、コンテナ内部と外部ネットワークを接続します。
     – コンテナ内部ではデバイス名をeth0に書き換えています。
     ※ KVMの仮想ネットワーク環境と似ていますが、KVMではTAPデバイスを使用する点が異なります。
                                        LXCでの実際のvethの使い方
        vethの基本的なイメージ                (コンテナ内部と物理NICをブリッジ接続)

        プロセス A   プロセス B
                                               コンテナ内部    コンテナ内部
                                                 eth0     eth0
                                      仮想ブリッジ
                                               (vethY)   (vethZ)
         veth0    veth1

                                                vethX
         eth0                 eth0       br0
                                                         vethW



             外部ネットワーク            外部ネットワーク

11                                                          Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


LXC のリソース分割 (4/4) ~ CPU / メモリ / デバイス
 CPU/メモリ/デバイス(/dev/*)は、全てのコンテナから物理サーバ全体のリソースが見
  えます。
     – Control Groups (cgroups)を利用して、各コンテナで実際に利用できるCPU/メモリ/デバイスを設
       定します。
     – cgroupsの説明はこちらを参照: http://d.hatena.ne.jp/enakai00/20110605/1307240161

 次のような設定が可能です。
     – コンテナが使用するCPUコア(cpuset.cpus)
      ⇒ CPUコアの番号を指定。

     – CPUの優先順位 (cpu.shares)
      ⇒ 2~262144を指定。値に比例した実行時間が与えられる。

     – メモリ使用量の上限 (memory. limit_in_bytes, memory. memsw.limit_in_bytes)
      ⇒ 物理メモリ、および、物理メモリ+Swapの上限を指定。

     – IOの優先順位 (blkio.weight)
      ⇒ 100~1000 を指定。値に比例したIO処理時間が与えられる。

     – ネットワーク帯域の指定 (net_cls.classid)
      ⇒ 送出パケットに「クラスラベル」を付与する。クラスラベルに対応する帯域はtcコマンドによる設定が必要。

     – アクセスを許可するデバイス (devices.deny, devices.allow)
      ⇒ Major, Minor番号でアクセスを許可するデバイスを指定。

12                                                                        Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


コンテナ設定ファイルの例
                         # cat /lxc/conf/001.conf
                         # network configuration
                         lxc.utsname = 001
                         lxc.network.type = veth
                         lxc.network.name = eth0
         ネットワーク構成        lxc.network.flags = up
                         lxc.network.link = br0
                         lxc.network.ipv4 = 192.168.122.101/24

                         # file system configuration
                         lxc.rootfs = /lxc/rootfs/001
                         lxc.mount.entry=/dev /lxc/rootfs/001/dev/ none bind 0 0
 ルートファイルシステムと            lxc.mount.entry=devpts /lxc/rootfs/001/dev/pts devpts
特殊ファイルシステムの指定            gid=5,mode=620,newinstance,ptmxmode=0666 0 0
                         lxc.mount.entry=proc /lxc/rootfs/001/proc proc nodev,noexec,nosuid 0 0
                         lxc.mount.entry=sysfs /lxc/rootfs/001/sys sysfs defaults 0 0
                         lxc.mount.entry=none /lxc/rootfs/001/proc/sys/fs/binfmt_misc binfmt_misc defaults   0 0

                         # resource allocations
            cgroupsによる   lxc.cgroup.cpuset.cpus = 0
                         lxc.cgroup.cpu.shares = 512
     CPU/Memory配分の指定     lxc.cgroup.memory.limit_in_bytes = 268435456
                         lxc.cgroup.memory.memsw.limit_in_bytes = 536870912

                         # device access list
                         lxc.cgroup.devices.deny = a *:* rwm
                         lxc.cgroup.devices.allow = c 1:11 rwm
                         lxc.cgroup.devices.allow = c 1:3 rwm
                         lxc.cgroup.devices.allow = c 1:5 rwm
         cgroupsによる      lxc.cgroup.devices.allow = c 5:1 rwm
     デバイスアクセスの制限         lxc.cgroup.devices.allow = c 5:0 rwm
                         lxc.cgroup.devices.allow = c 4:* rwm
                         lxc.cgroup.devices.allow = c 1:9 rwm
                         lxc.cgroup.devices.allow = c 1:8 rwm
                         lxc.cgroup.devices.allow = c 5:2 rwm
                         lxc.cgroup.devices.allow = c 136:* rwm
13                       lxc.cgroup.devices.allow = c 254:0 rwm                                 Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


なにはともあれ動かしてみる
 コンテナ操作の基本コマンド
      – コンテナ作成 # lxc-create -n <コンテナ名> -f <コンテナ設定ファイル>
      – コンテナ開始 # lxc-start -n <コンテナ名> [-d]
      – コンテナ停止 # lxc-stop -n <コンテナ名>
      – コンテナ削除 # lxc-destroy -n <コンテナ名>
      ※ 詳細手順はこちらを参照 http://d.hatena.ne.jp/enakai00/20110529/1306658627

 コンテナ実行時の注意点
      – コンテナでゲストOSを起動すると、おもむろ
        に/sbin/initが実行されて、ユーザ空間の起
        動シーケンスが始まります。
        (/etc/rc.sysinitなど、物理環境を操作する
        設定ファイルは事前に修正が必要です。)
      – コンテナを安全に(お行儀よく)停止する時
        は、ゲストOSでpoweroffを実行します。
      – メモリ使用量の上限に達するとコンテナ内の
        プロセスが強制停止します。最悪、コンテナ
        全体が停止するので、コンテナのメモリ使用
        量には注意を払って下さい。
      ※ ホストOSで次のコマンドによりコンテナのメモリ使用量が分かります。
        # lxc-cgroup -n <コンテナ名> memory.usage_in_bytes       (物理メモリ使用量)
        # lxc-cgroup -n <コンテナ名> memory.memsw.usage_in_bytes (物理メモリ+Swap使用量)

14                                                                        Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!




             Hadoop on LXCにチャレンジ!




15                                  Open Cloud Campus
LXCで始めるケチケチ仮想化生活?!


Hodoop on LXC (on KVM)

 実機デモをご覧下さい・・・・。
     – KVMゲストの上でLXCを使ってHadoopクラスタを構成します。

 LXCを使えば、Amazon EC2のVMを1 個だけ借りて、Hadoopクラスタを構成することもで
  きるはずです (*)。
     – 性能面では考慮が必要ですが、機能検証などには利用できるかも?
     – OpenStackなどオープンソースのクラウドソフトウェアも LXC への対応をすすめています。

(*)【AWS発表】 Red Hat Enterprise LinuxをAmazon EC
   上で時間課金で利用可能に http://bit.ly/ivDH7i




16                                                  Open Cloud Campus
オープンクラウド・キャンパス



 みなさんもLXCで
ケチケチ仮想化生活を
始めてみてください!




         中井悦司
    Twitter @enakai00

More Related Content

What's hot

CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdfYasunori Goto
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門VirtualTech Japan Inc.
 
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会Yushiro Furukawa
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfNEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfYasunori Goto
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化Hideki Saito
 
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)Takeshi HASEGAWA
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)VirtualTech Japan Inc.
 
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方Toru Makabe
 
プログラマ目線から見たRDMAのメリットと その応用例について
プログラマ目線から見たRDMAのメリットとその応用例についてプログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットと その応用例についてMasanori Itoh
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす Akihiro Suda
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)NTT DATA Technology & Innovation
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダTakuya ASADA
 
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57Preferred Networks
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観Yamato Tanaka
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要Etsuji Nakai
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM ShapeBlue
 

What's hot (20)

CXL_説明_公開用.pdf
CXL_説明_公開用.pdfCXL_説明_公開用.pdf
CXL_説明_公開用.pdf
 
OpenStack入門 2016/06/27
OpenStack入門 2016/06/27OpenStack入門 2016/06/27
OpenStack入門 2016/06/27
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
 
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfNEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化
 
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
 
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
 
プログラマ目線から見たRDMAのメリットと その応用例について
プログラマ目線から見たRDMAのメリットとその応用例についてプログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットと その応用例について
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM
 

Similar to Lxc で始めるケチケチ仮想化生活?!

Try andstudy cloud
Try andstudy cloudTry andstudy cloud
Try andstudy cloudEtsuji Nakai
 
#ljstudy KVM勉強会
#ljstudy KVM勉強会#ljstudy KVM勉強会
#ljstudy KVM勉強会Etsuji Nakai
 
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Kazuhisa Hara
 
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)Takeshi HASEGAWA
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティKuniyasu Suzaki
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presenKouhei Maeda
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみようGIG inc.
 
Jenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCIJenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCIshigeyuki azuchi
 
IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0Etsuji Nakai
 
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月VirtualTech Japan Inc.
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点Kuniyasu Suzaki
 
コンテナって何?
コンテナって何?コンテナって何?
コンテナって何?Hiroyuki Numao
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)axsh co., LTD.
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれDNA Data Bank of Japan center
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理junichi anno
 
20120609 cod ws2012概要
20120609 cod ws2012概要20120609 cod ws2012概要
20120609 cod ws2012概要Osamu Takazoe
 

Similar to Lxc で始めるケチケチ仮想化生活?! (20)

Try andstudy cloud
Try andstudy cloudTry andstudy cloud
Try andstudy cloud
 
#ljstudy KVM勉強会
#ljstudy KVM勉強会#ljstudy KVM勉強会
#ljstudy KVM勉強会
 
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124
 
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
 
Osc2009 Do Xen Hara
Osc2009 Do Xen HaraOsc2009 Do Xen Hara
Osc2009 Do Xen Hara
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみよう
 
Jenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCIJenkinsとamazon ecsで コンテナCI
Jenkinsとamazon ecsで コンテナCI
 
IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0
 
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
GMOインターネットにおけるOpenStack Swiftのサービス化とその利用事例のご紹介 - OpenStack最新情報セミナー 2015年2月
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
 
コンテナって何?
コンテナって何?コンテナって何?
コンテナって何?
 
openQRM V5.1 Update
openQRM V5.1 UpdateopenQRM V5.1 Update
openQRM V5.1 Update
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
 
LXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoyaLXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoya
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理
 
Xen Nic
Xen NicXen Nic
Xen Nic
 
20120609 cod ws2012概要
20120609 cod ws2012概要20120609 cod ws2012概要
20120609 cod ws2012概要
 

More from Etsuji Nakai

「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考えるEtsuji Nakai
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Etsuji Nakai
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowEtsuji Nakai
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスEtsuji Nakai
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモEtsuji Nakai
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English LearningEtsuji Nakai
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎Etsuji Nakai
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門Etsuji Nakai
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2Etsuji Nakai
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersEtsuji Nakai
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterEtsuji Nakai
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginnersEtsuji Nakai
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQNEtsuji Nakai
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかEtsuji Nakai
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜Etsuji Nakai
 

More from Etsuji Nakai (20)

PRML11.2-11.3
PRML11.2-11.3PRML11.2-11.3
PRML11.2-11.3
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlow
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービス
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English Learning
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application Developers
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with Jupyter
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginners
 
Life with jupyter
Life with jupyterLife with jupyter
Life with jupyter
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
PRML7.2
PRML7.2PRML7.2
PRML7.2
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
 

Recently uploaded

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 

Recently uploaded (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

Lxc で始めるケチケチ仮想化生活?!

  • 1. 2011/07/10 Version 1.2 オープンクラウド・キャンパス LXCで始めるケチケチ仮想化生活?! ~Hadoop on LXCにチャレンジ! 中井悦司 Twitter @enakai00
  • 2. LXCで始めるケチケチ仮想化生活?! 自己紹介  中井悦司(なかいえつじ) – Twitter @enakai00  日々の仕事 – Senior Solution Architect and Cloud Evangelist at Red Hat K.K. 企業システムでオープンソースの活用を希望される お客様を全力でご支援させていただきます。 好評発売中  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門) 2 Open Cloud Campus
  • 3. LXCで始めるケチケチ仮想化生活?! 本日のお題  サーバ仮想化とLinuxコンテナ  LXCの基礎知識  Hadoop on LXCにチャレンジ! Supported by at+link 本日のデモ環境は at+link よりご提供いただいています。 3 Open Cloud Campus
  • 4. LXCで始めるケチケチ仮想化生活?! サーバ仮想化とLinuxコンテナ 4 Open Cloud Campus
  • 5. LXCで始めるケチケチ仮想化生活?! よくあるサーバ仮想化の分類 基本的には「物理マシン」と同等の「仮想マシン」を複数 ハードウェアによる仮想化 作り出す技術です。 (物理マシンにハイパーバイザを内蔵) ゲスト ゲスト ゲスト ゲスト OS OS OS OS 非仮想化環境 仮想 仮想 仮想 仮想 マシン マシン マシン マシン OS ハイパーバイザ(ファームウェア) 物理マシン 物理マシン Power Systems, Virtage など ソフトウェアによる仮想化 ソフトウェアによる仮想化 (物理マシン上にハイパーバイザを導入) (ホスト OS にハイパーバイザ機能を追加) ゲスト ゲスト ゲスト ゲスト ゲスト ゲスト ゲスト OS OS OS OS OS OS OS 仮想 仮想 仮想 仮想 仮想 仮想 仮想 マシン マシン マシン マシン マシン マシン マシン ハイパーバイザ(ソフトウェア) ハイパーバイザ (カーネルモジュール) 物理マシン ホスト OS VMware vSphere, Xen など 物理マシン Linux KVM 5 Open Cloud Campus
  • 6. LXCで始めるケチケチ仮想化生活?! コンテナ型仮想化とは  OSの内部は、物理リソースを管理するカーネル空間とユーザプロセス(アプリケーション) を実行するユーザ空間に分かれます。  コンテナ型仮想化は、カーネルの機能により、複数のユーザ空間を作り出すことで、ユーザ プロセスから見えるリソースを分割します。リソースによって分割方法は異なります。(以 下はLXCの例) – プロセスリスト、ホストネーム、OSユーザ、ネットワーク、ファイルシステム、コンソールなど ⇒ コンテナごとに異なる内容が見える – CPU、メモリ、デバイス(/dev/*) ⇒ 物理マシン全体の情報が見えるが、cgroupsでコンテナごとに利用範囲を制限 コンテナ型仮想化 非仮想化環境 ユーザ空間 ユーザ空間 ユーザ空間 ユーザプロセス ユーザプロセス ユーザプロセス ユーザプロセス ユーザプロセス ユーザプロセス ユーザプロセス ・・・ OS ・・・ カーネル空間 カーネル空間 物理マシン 物理マシン 6 Open Cloud Campus
  • 7. LXCで始めるケチケチ仮想化生活?! LXC(Linux コンテナ)の特徴  Linuxカーネル(メインラインカーネル)がネイティブに持つ機能を利用して実現します。 – RHEL6.0/6.1では、デフォルト・カーネルで利用可能(Technical Preview)  コンテナを操作するツールは用意が必要です。 – RHEL6.0/6.1には含まれていないので、 sourceforgeからLXCツールをダウンロードして 使用します。(http://lxc.sourceforge.net/) ※ libvirtからもLXCを操作することができますが、完成 度はあと一歩。(libvirtチームにて鋭意開発中)  KVMの仮想マシン上などでも利用できます。 – クラウドから借り出したVM環境をさらにLXCで分 割することも可能です。 7 Open Cloud Campus
  • 8. LXCで始めるケチケチ仮想化生活?! LXCの基礎知識 8 Open Cloud Campus
  • 9. LXCで始めるケチケチ仮想化生活?! LXCのリソース分割 (1/4) ~ プロセステーブル  各コンテナのプロセスは、同じLinuxカーネルで実行されます。 ユーザ空間 ユーザ空間 – Linux以外のOSをコンテナで実行することはできません。 ユーザプロセス ユーザプロセス ユーザプロセス ユーザプロセス ・・・  プロセステーブルはコンテナごとに独立しているので、他のコンテ ナのプロセスは見えません。 – コンテナ外部にあたるホストLinux上では全てのプロセスが見えます。 カーネル空間 物理マシン – ホストLinux上のプロセステーブルでは、コンテナに属するプロセスに は、コンテナ名ラベルが付与されます。 ホストLinuxのプロセステーブル (コンテナ内部ではそのコンテナに属するプロセスしか見えない) # lxc-ps -ef CONTAINER UID PID PPID C STIME TTY TIME CMD root 1 0 0 Jun03 ? 00:00:00 /sbin/init root 2 0 0 Jun03 ? 00:00:00 [kthreadd] ... root 10258 1 0 10:30 ? 00:00:00 lxc-start -n 005 -d 005 root 10266 10258 0 10:30 ? 00:00:00 /sbin/init root 10268 1 0 10:30 ? 00:00:00 lxc-start -n 006 -d 006 root 10278 10268 0 10:30 ? 00:00:00 /sbin/init 006 root 10801 10278 0 10:30 ? 00:00:00 /sbin/rsyslogd -c 4 ... 005 root 10989 10266 0 10:30 ? 00:00:00 crond 005 root 11027 10266 0 10:30 pts/4 00:00:00 /sbin/agetty /dev/console 38400 vt100-nav ... root 14452 12337 0 14:20 pts/3 00:00:00 lxc-start -n 003 003 root 14455 14452 0 14:20 ? 00:00:00 /sbin/init 003 root 14626 14455 0 14:20 ? 00:00:00 /sbin/rsyslogd -c 4 9 Open Cloud Campus
  • 10. LXCで始めるケチケチ仮想化生活?! LXCのリソース分割 (2/4) ~ ファイルシステム ファイルシステムをマウント # ls -l /lxc/rootfs/ 合計 28  コンテナごとに特定ディレクトリに コンテナごとのルート drwxr-xr-x 2 root root 4096 5月 28 13:53 2011 001 chrootします。 drwxr-xr-x 2 root root 4096 5月 28 15:13 2011 002 dr-xr-xr-x. 23 root root 4096 5月 30 12:41 2011 003 – 昔ながらのchroot jailと同じです。 dr-xr-xr-x. 24 root root 4096 5月 31 13:13 2011 004 dr-xr-xr-x. 24 root root 4096 5月 31 13:13 2011 005 – コンテナごとのルートファイルシステ dr-xr-xr-x. 24 root root 4096 5月 31 13:13 2011 006 ムを任意のディレクトリにマウントし dr-xr-xr-x. 23 root root 4096 5月 30 12:41 2011 007 ておきます。 # ls -l /lxc/rootfs/003 合計 104  コンテナで特定デーモンだけを動か dr-xr-xr-x. 2 root root 4096 5月 25 20:24 2011 bin drwxr-xr-x. 2 root root 4096 5月 25 20:22 2011 boot す場合 drwxr-xr-x. 2 root root 4096 7月 14 20:45 2010 cgroup drwxr-xr-x. 2 root root 4096 5月 25 20:22 2011 dev ⇒ 昔ながらのchroot jail風の使い方 drwxr-xr-x. 57 root root 4096 6月 4 14:20 2011 etc drwxr-xr-x. 3 root root 4096 5月 29 05:35 2011 home – デーモンの稼働に必要なファイルだけ dr-xr-xr-x. 8 root root 4096 5月 25 20:24 2011 lib があればOKです。 dr-xr-xr-x. 7 root root 12288 5月 25 20:24 2011 lib64 drwx------. 12 root root 16384 5月 25 20:22 2011 lost+found drwxr-xr-x. 2 root root 4096 12月 4 22:33 2009 media  コンテナでゲストOSをまるごと動か drwxr-xr-x. 2 root root 4096 12月 4 22:33 2009 mnt す場合 drwxr-xr-x. 5 root root 4096 5月 31 11:48 2011 opt drwxr-xr-x. 2 root root 4096 5月 25 20:22 2011 proc ⇒ サーバ仮想化風の使い方 dr-xr-x---. 5 root root 4096 5月 31 13:01 2011 root dr-xr-xr-x. 2 root root 4096 5月 25 20:25 2011 sbin – ゲストOSのルートファイルシステムを drwxr-xr-x. 2 root root 4096 5月 25 20:23 2011 selinux まるごとマウントします。 drwxr-xr-x. 2 root root 4096 12月 4 22:33 2009 srv drwxr-xr-x. 2 root root 4096 5月 25 20:22 2011 sys – KVMのゲストOSイメージファイルを drwxrwxrwt. 2 root root 4096 6月 4 14:18 2011 tmp loopマウントして利用するなどもあり drwxr-xr-x. 14 root root 4096 5月 29 05:33 2011 usr drwxr-xr-x. 17 root root 4096 5月 25 20:23 2011 var です。 10 Open Cloud Campus
  • 11. LXCで始めるケチケチ仮想化生活?! LXCのリソース分割 (3/4) ~ ネットワーク  各コンテナには、仮想NIC(veth)をアサインして、ホストOSの物理NICにブリッジ接続し ます。 – vethはLinuxカーネルが標準で提供する機能です。2つのvethのペアを(クロスケーブルで直結した かのように)接続して、同じサーバ上のプロセス間で擬似的なネットワーク通信を実現します。  LXCではvethペアの一方をコンテナ内部に見せて、もう一方を仮想ブリッジに接続すること で、コンテナ内部と外部ネットワークを接続します。 – コンテナ内部ではデバイス名をeth0に書き換えています。 ※ KVMの仮想ネットワーク環境と似ていますが、KVMではTAPデバイスを使用する点が異なります。 LXCでの実際のvethの使い方 vethの基本的なイメージ (コンテナ内部と物理NICをブリッジ接続) プロセス A プロセス B コンテナ内部 コンテナ内部 eth0 eth0 仮想ブリッジ (vethY) (vethZ) veth0 veth1 vethX eth0 eth0 br0 vethW 外部ネットワーク 外部ネットワーク 11 Open Cloud Campus
  • 12. LXCで始めるケチケチ仮想化生活?! LXC のリソース分割 (4/4) ~ CPU / メモリ / デバイス  CPU/メモリ/デバイス(/dev/*)は、全てのコンテナから物理サーバ全体のリソースが見 えます。 – Control Groups (cgroups)を利用して、各コンテナで実際に利用できるCPU/メモリ/デバイスを設 定します。 – cgroupsの説明はこちらを参照: http://d.hatena.ne.jp/enakai00/20110605/1307240161  次のような設定が可能です。 – コンテナが使用するCPUコア(cpuset.cpus) ⇒ CPUコアの番号を指定。 – CPUの優先順位 (cpu.shares) ⇒ 2~262144を指定。値に比例した実行時間が与えられる。 – メモリ使用量の上限 (memory. limit_in_bytes, memory. memsw.limit_in_bytes)  ⇒ 物理メモリ、および、物理メモリ+Swapの上限を指定。 – IOの優先順位 (blkio.weight) ⇒ 100~1000 を指定。値に比例したIO処理時間が与えられる。 – ネットワーク帯域の指定 (net_cls.classid)  ⇒ 送出パケットに「クラスラベル」を付与する。クラスラベルに対応する帯域はtcコマンドによる設定が必要。 – アクセスを許可するデバイス (devices.deny, devices.allow)  ⇒ Major, Minor番号でアクセスを許可するデバイスを指定。 12 Open Cloud Campus
  • 13. LXCで始めるケチケチ仮想化生活?! コンテナ設定ファイルの例 # cat /lxc/conf/001.conf # network configuration lxc.utsname = 001 lxc.network.type = veth lxc.network.name = eth0 ネットワーク構成 lxc.network.flags = up lxc.network.link = br0 lxc.network.ipv4 = 192.168.122.101/24 # file system configuration lxc.rootfs = /lxc/rootfs/001 lxc.mount.entry=/dev /lxc/rootfs/001/dev/ none bind 0 0 ルートファイルシステムと lxc.mount.entry=devpts /lxc/rootfs/001/dev/pts devpts 特殊ファイルシステムの指定 gid=5,mode=620,newinstance,ptmxmode=0666 0 0 lxc.mount.entry=proc /lxc/rootfs/001/proc proc nodev,noexec,nosuid 0 0 lxc.mount.entry=sysfs /lxc/rootfs/001/sys sysfs defaults 0 0 lxc.mount.entry=none /lxc/rootfs/001/proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0 # resource allocations cgroupsによる lxc.cgroup.cpuset.cpus = 0 lxc.cgroup.cpu.shares = 512 CPU/Memory配分の指定 lxc.cgroup.memory.limit_in_bytes = 268435456 lxc.cgroup.memory.memsw.limit_in_bytes = 536870912 # device access list lxc.cgroup.devices.deny = a *:* rwm lxc.cgroup.devices.allow = c 1:11 rwm lxc.cgroup.devices.allow = c 1:3 rwm lxc.cgroup.devices.allow = c 1:5 rwm cgroupsによる lxc.cgroup.devices.allow = c 5:1 rwm デバイスアクセスの制限 lxc.cgroup.devices.allow = c 5:0 rwm lxc.cgroup.devices.allow = c 4:* rwm lxc.cgroup.devices.allow = c 1:9 rwm lxc.cgroup.devices.allow = c 1:8 rwm lxc.cgroup.devices.allow = c 5:2 rwm lxc.cgroup.devices.allow = c 136:* rwm 13 lxc.cgroup.devices.allow = c 254:0 rwm Open Cloud Campus
  • 14. LXCで始めるケチケチ仮想化生活?! なにはともあれ動かしてみる  コンテナ操作の基本コマンド – コンテナ作成 # lxc-create -n <コンテナ名> -f <コンテナ設定ファイル> – コンテナ開始 # lxc-start -n <コンテナ名> [-d] – コンテナ停止 # lxc-stop -n <コンテナ名> – コンテナ削除 # lxc-destroy -n <コンテナ名> ※ 詳細手順はこちらを参照 http://d.hatena.ne.jp/enakai00/20110529/1306658627  コンテナ実行時の注意点 – コンテナでゲストOSを起動すると、おもむろ に/sbin/initが実行されて、ユーザ空間の起 動シーケンスが始まります。 (/etc/rc.sysinitなど、物理環境を操作する 設定ファイルは事前に修正が必要です。) – コンテナを安全に(お行儀よく)停止する時 は、ゲストOSでpoweroffを実行します。 – メモリ使用量の上限に達するとコンテナ内の プロセスが強制停止します。最悪、コンテナ 全体が停止するので、コンテナのメモリ使用 量には注意を払って下さい。  ※ ホストOSで次のコマンドによりコンテナのメモリ使用量が分かります。 # lxc-cgroup -n <コンテナ名> memory.usage_in_bytes (物理メモリ使用量) # lxc-cgroup -n <コンテナ名> memory.memsw.usage_in_bytes (物理メモリ+Swap使用量) 14 Open Cloud Campus
  • 15. LXCで始めるケチケチ仮想化生活?! Hadoop on LXCにチャレンジ! 15 Open Cloud Campus
  • 16. LXCで始めるケチケチ仮想化生活?! Hodoop on LXC (on KVM)  実機デモをご覧下さい・・・・。 – KVMゲストの上でLXCを使ってHadoopクラスタを構成します。  LXCを使えば、Amazon EC2のVMを1 個だけ借りて、Hadoopクラスタを構成することもで きるはずです (*)。 – 性能面では考慮が必要ですが、機能検証などには利用できるかも? – OpenStackなどオープンソースのクラウドソフトウェアも LXC への対応をすすめています。 (*)【AWS発表】 Red Hat Enterprise LinuxをAmazon EC 上で時間課金で利用可能に http://bit.ly/ivDH7i 16 Open Cloud Campus