• 検索結果がありません。

Evalution of Linux Container(LXC) on Embedded Linux 株式会社富士通コンピュータテクノロジーズ町田裕樹 1201ka01 Copyright 2013 FUJITSU COMPUTER TECHLONOGIES LIMITED

N/A
N/A
Protected

Academic year: 2021

シェア "Evalution of Linux Container(LXC) on Embedded Linux 株式会社富士通コンピュータテクノロジーズ町田裕樹 1201ka01 Copyright 2013 FUJITSU COMPUTER TECHLONOGIES LIMITED"

Copied!
18
0
0

読み込み中.... (全文を見る)

全文

(1)

Evalution of Linux Container(LXC)

on Embedded Linux

2013.3.8

株式会社富士通コンピュータテクノロジーズ

町田裕樹

(2)

Linux Container(LXC)の概要

Linux Container(LXC)

コンテナ型仮想化

ユーザランド

LXCを評価

評価環境

準備

アプリケーションコンテナ

システムコンテナ

目次

(3)

Linux Container(LXC)

コンテナ型仮想化

ユーザランド

(4)

Linux Container(LXC)とは

複数のユーザ空間(コンテナ)を持つことができる

軽量でセキュアな仮想環境を実現できる

リソース分割、割り当て、制御が可能

プロセス: 各ユーザ空間で独立して実行可能

デバイス: Cgroupsによりアクセス制限可能

Linux Container(LXC)

物理マシン

カーネル

ユーザ空間1

ユーザ空間2

ユーザ空間N

・・・・・

(5)

関係するカーネルサブシステム

Cgroups

リソースの制御をする

(CPU,メモリ,ブロックIO,デバイス)

Namespace

リソースを独立した空間で利用可能にする

(PID,ネットワーク,仮想端末 etc…)

コンテナの種類

アプリケーションコンテナ

コンテナ上でアプリケーションを実行可能

システムコンテナ

OSを丸ごとコンテナ上で実行することが可能

カーネルをホストOSと共有する

※Windowsを動かすことができない

コンテナ型仮想化

-bash-3.2# lxc-checkconfig --- 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 namespace: required 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

(6)

LXCを扱うためのツール

http://sourceforge.net/projects/lxc/files/latest/download

ユーザランド

-bash-3.2# ls /usr/bin/lxc-*

lxc-attach lxc-console lxc-info lxc-ps lxc-stop lxc-cgroup lxc-create lxc-kill lxc-restart lxc-unfreeze lxc-checkconfig lxc-destroy lxc-ls lxc-setcap lxc-unshare lxc-checkpoint lxc-execute lxc-monitor lxc-setuid lxc-version lxc-clone lxc-freeze lxc-netstat lxc-start lxc-wait

(7)

評価環境

準備

アプリケーションコンテナ

システムコンテナ

LXCを評価

(8)

評価環境

Embedded Linux(LTSI Kernel 3.4 + Yocto 1.3)

カーネル

ユーザランド(レシピをFreescale SDKから移植)

QEMU(x86)上で評価

-bash-3.2# uname -a

Linux qemux86 3.4.32 #2 SMP PREEMPT Wed Feb 27 15:28:38 JST 2013 i686 GNU/Linux

-bash-3.2# lxc-version lxc version: 0.8.0-rc1

(9)

準備(1/2)

Cgroupsファイルシステムのマウント

-bash-3.2# mount -t cgroup none /sys/fs/cgroup -bash-3.2# ls /sys/fs/cgroup cgroup.clone_children devices.deny cgroup.event_control devices.list cgroup.procs memory.failcnt cpu.rt_period_us memory.force_empty cpu.rt_runtime_us memory.limit_in_bytes cpu.shares memory.max_usage_in_bytes cpuacct.stat memory.memsw.failcnt cpuacct.usage memory.memsw.limit_in_bytes cpuacct.usage_percpu memory.memsw.max_usage_in_bytes cpuset.cpu_exclusive memory.memsw.usage_in_bytes cpuset.cpus memory.move_charge_at_immigrate cpuset.mem_exclusive memory.oom_control cpuset.mem_hardwall memory.soft_limit_in_bytes cpuset.memory_migrate memory.stat cpuset.memory_pressure memory.swappiness cpuset.memory_pressure_enabled memory.usage_in_bytes cpuset.memory_spread_page memory.use_hierarchy cpuset.memory_spread_slab net_cls.classid cpuset.mems notify_on_release cpuset.sched_load_balance release_agent cpuset.sched_relax_domain_level tasks devices.allow

(10)

準備(2/2)

独立した仮想端末を割り当てる

/etc/fstabの/dev/pts行を下記のように変更する。

Multiple /dev/ptsに対応するために下記のコマンドを実行する。

none /dev/pts devpts gid=5,mode=620,newinstance,ptmxmode=0666 0 0

rm -f /dev/ptmx

(11)

コンテナ上でbashを動かしてみる

ホストのrootfsのマウント(評価のため)

※ホストとは別のrootfsを利用することもできます

コンテナの作成

構成ファイルの編集

アプリケーションコンテナ(1/2)

-bash-3.2# lxc-create -n app_bash 'app_bash' created

-bash-3.2# lxc-ls app_bash

-bash-3.2# mount --bind / /var/lib/lxc/app_bash/rootfs

-bash-3.2# cat /var/lib/lxc/app_bash/config lxc.utsname = app_bash

lxc.rootfs = /var/lib/lxc/app_bash/rootfs

lxc.mount.entry=/dev /var/lib/lxc/app_bash/rootfs/dev/ none bind 0 0 lxc.mount.entry=/dev/pts /var/lib/lxc/app_bash/rootfs/dev/pts devpts gid=5,mode=620,newinstance,ptmxmode=0666 0 0

(12)

コンテナ上でbashを動かしてみる(続き)

コンテナの実行

コンテナの終了

※別の端末から実行する

コンテナの削除

アプリケーションコンテナ(2/2)

# lxc-execute -n app_bash /bin/bash

# lxc-stop -n app_bash

(13)

コンテナ上でLinuxを動かしてみる

コンテナの作成

rootfsの展開と配置

以下のパスに展開

システムコンテナ(1/4)

# lxc-create –n sys_elinux /var/lib/lxc/sys_elinux/rootfs

(14)

コンテナ上でLinuxを動かしてみる

構成ファイルの編集

システムコンテナ(2/4)

-bash-3.2# cat /var/lib/lxc/sys_elinux/config # network configuration

lxc.utsname = sys_elinux lxc.network.type = empty lxc.network.flags = up # file system configuration

lxc.rootfs = /var/lib/lxc/sys_elinux/rootfs

lxc.mount.entry=/dev /var/lib/lxc/sys_elinux/rootfs/dev none bind 0 0 lxc.mount.entry=devpts /var/lib/lxc/sys_elinux/rootfs/dev/pts devpts gid=5,mode=620,newinstance,ptmxmode=0666 0 0

lxc.mount.entry=proc /proc /var/lib/lxc/sys_elinux/rootfs/proc nodev,noexec,nosuid 0 0 lxc.mount.entry=sysfs /var/lib/lxc/sys_elinux/rootfs/sys sysfs defaults 0 0

(15)

コンテナ上でLinuxを動かしてみる

構成ファイルの編集(続き)

システムコンテナ(3/4)

## Devices #lxc.cgroup.devices.allow = a lxc.cgroup.devices.deny = a # /dev/null lxc.cgroup.devices.allow = c 1:3 rwm # /dev/zero lxc.cgroup.devices.allow = c 1:5 rwm # /dev/tty[1-4] consoles lxc.cgroup.devices.allow = c 5:1 rwm lxc.cgroup.devices.allow = c 5:0 rwm lxc.cgroup.devices.allow = c 4:0 rwm lxc.cgroup.devices.allow = c 4:1 rwm # /dev/{,u}random lxc.cgroup.devices.allow = c 1:9 rwm lxc.cgroup.devices.allow = c 1:8 rwm lxc.cgroup.devices.allow = c 136:* rwm lxc.cgroup.devices.allow = c 5:2 rwm # /dev/rtc lxc.cgroup.devices.allow = c 254:0 rwm

(16)

コンテナ上でLinuxを動かしてみる(続き)

コンテナの実行

コンテナの終了

※別の端末から実行する

コンテナの削除

システムコンテナ(4/4)

# lxc-start -n sys_elinux # lxc-stop -n sys_elinux # lxc-destroy -n sys_elinux

(17)

Linux Container(LXC)とは

複数のユーザ空間(コンテナ)を持つことができる

軽量でセキュアな仮想環境を実現できる

リソース分割、割り当て、制御が可能

プロセス: 各ユーザ空間で独立して実行可能

デバイス: Cgroupsによりアクセス制限可能

まとめ

物理マシン

カーネル

ユーザ空間1

ユーザ空間2

ユーザ空間N

・・・・・

(18)

参照

関連したドキュメント

11 福岡県 株式会社NIKUJILLE 4290001094736 見本市・展示会への出展を通じた高品質和牛の海外富裕層顧客獲得 12

2018年 5月 6月 9月21日 2019年 1月 2020年 12月 2021年 2月 4月 9月. 富士ゼロックスお客様価値創造センター内にSmart

この設定では、管理サーバ(Control Center)自体に更新された Windows 用の Dr.Web Agent のコンポ ーネントがダウンロードされませんので、当該 Control Center で管理される全ての Dr.Web

第14条 株主総会は、法令に別段の 定めがある場合を除き、取 締役会の決議によって、取 締役社長が招集し、議長と

< >内は、30cm角 角穴1ヶ所に必要量 セメント:2.5(5)<9>kg以上 砂 :4.5(9)<16>l以上 砂利 :6 (12)<21> l

BIGIグループ 株式会社ビームス BEAMS 株式会社アダストリア 株式会社ユナイテッドアローズ JUNグループ 株式会社シップス

新株予約権の目的たる株式の種類 子会社連動株式 *2 同左 新株予約権の目的たる株式の数 38,500株 *3 34,500株 *3 新株予約権の行使時の払込金額 1株当り

三洋電機株式会社 住友電気工業株式会社 ソニー株式会社 株式会社東芝 日本電気株式会社 パナソニック株式会社 株式会社日立製作所