OpenVZ コンテナ型仮想化の現状

Similar documents
install

6.2 基本的なネットワーク構成 6.2 基本的なネットワーク構成 このトピックではネットワークの基本的な設定ファイルやコマンドの使用法ついて出題されます 例題 NIC に設定されている IP アドレスを確認するコマンドを選択せよ A) traceroute B) route C) ifconfig

XenのNICを追加する

目次 1) コンソール使用について注意 ) 全体の流れ ) SSH キーの登録 ) Linux サーバーの作成... 4 Web サーバーへの Apache と WordPress インストール... 5 DB サーバーへの MariaDB インストール 設定..

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

目次 1 Raspberry Pi の初期設定... 2 System 設定... 3 Interfaces 設定... 4 Localisation 設定 無線 LAN の設定... 7 GUI での設定... 7 CUI での設定 PC の設定 Bonjo

Xen入門 ppt

Xen入門 ppt

$ ifconfig lo Link encap: inet : : inet6 : ::1/128 : UP LOOPBACK RUNNING MTU:65536 :1 RX :8 :0 :0 :0 :0 TX :8 :0 :0 :0 :0 (Collision

2 PC [1], [2], [3] 2.1 OS 2.1 ifconfig 2.1 lo ifconfig -a 2.1 enp1s0, enx0090cce7c734, lo 3 enp1s0 enx0090cce7c734 PC 2.1 (eth0, eth1) PC 14

nakayama15icm01_l7filter.pptx

$ ifconfig lo Link encap: inet : : inet6 : ::1/128 : UP LOOPBACK RUNNING MTU:65536 :1 RX :8 :0 :0 :0 :0 TX :8 :0 :0 :0 :0 (Collision

1. ライセンスファイルがある場合 2. ライセンスファイルはどこにあるの? 3. ライセンスサーバのライセンスファイルはどこ? 4. ライセンスファイルが無い場合 5. ハードウェアキーの ID( ドングル ID) 5a. ハードウェアキーの印字 刻印が読める場合 5b. コマンド等で ID を読

スライド 1

スライド 1

PRIMEQUEST 1000シリーズ かんたん構築ガイド(Linux/Oracle DB編)

3 ライセンスツールのインストールコードワードを登録する前に ライセンスツールのインストールが必要です ただし 既に別製品で同ツールをインストール済みの場合には 新たにインストールする必要はありません Linux の場合 1) マシン OS を立ち上げ システムに root でログインします 2)

Microsoft PowerPoint - APM-VE(install).pptx

平成22年度「技報」原稿の執筆について

2

このたびは シンプルVPN のお申し込みありがとうございます 本書ではセットアップ方法について解説しています INDEX 1 2 クラウド接続とは セットアップの手順 3 ニフティクラウドサーバーの準備 サーバーの作成 2.2 申請に利用するサーバー情報を確認 ク

VyattaでのPPPoEとNetwork emulator

PRIMERGY TX1320 M1 未サポートOS動作検証確認情報

PRIMERGY かんたん構築ガイド (Linux / KVM編)

Yoshida Shin (yy y ja jp) sakai dictoss( ) Debian Trivia Quiz

ubuntu server KVM セットアップ・ガイド

Dockerの商用サービスでの利用事例紹介

Contrail インストレーション

BIG-IP Virtual Edition デプロイ手順書 v11.x v13.x Ver. 1.3 株式会社ネットワールドインフラソリューション技術部ネットワークソリューショングループ

sato-FBSDW key

仮想ホスティングの運用 理想と現実

別紙 : 検証環境の構築手順 ( 章 ) 1. サーバ設定 1.1 IP アドレス設定 サーバは以下の 6 台を用いる pgpool-ii サーバ 2 台 DB サーバ 3 台 上位サーバ 1 台 OS は全サーバで CentOS 6.4 x86_64 とする pgpool-ii のサー

PowerPoint プレゼンテーション

拠点間 VPN オプション設定手手順書 お客客様環境お客様様宅環境のネットワーク構成を下図図に記入しておきます 接続方法 ( )PPPoE ( )Static ( )DHCP IP アドレス ( グローバル )... 接続の詳細情情報ユーーザ ID パスワード 接続の詳細情情報 IP アドレスネット

QNAP TurboNAS Container Station 設定手順書

Microsoft Word - nvsi_090196_r1_vaultdr_offline_rhel_dualpath.doc

Microsoft PowerPoint - Linux入門 ppt

Microsoft PowerPoint - set_up_bigip_ve_trial_mod.pptx[読み取り専用]

Red Hat Enterprise Linux 6 Portable SUSE Linux Enterprise Server 9 Portable SUSE Linux Enterprise Server 10 Portable SUSE Linux Enterprise Server 11 P

FUJITSU Server PRIMEQUEST 2000シリーズ かんたん構築ガイド(Linux/KVM編)

Cumulus Linux MLAG と vsphere vds の LACP 接続検証

bitvisor_summit.pptx

Oracle Solaris 仮想環境とプロビジョン環境の構築

東京エリアDebian勉強会 debootstrapを有効活用してみよう

Portable Images Network Tool(PINT)Linux readmeバージョン1.0.0

Agenda IPv4 over IPv6 MAP MAP IPv4 over IPv6 MAP packet MAP Protocol MAP domain MAP domain ASAMAP ASAMAP 2

1

Helix Swarm2018.1アップグレード手順

スライド 1

IIJ Technical WEEK アプリ開発を楽にするRuby PaaS「MOGOK」について

PowerPoint プレゼンテーション

MAC root Linux 1 OS Linux 2.6 Linux Security Modules LSM [1] Security-Enhanced Linux SELinux [2] AppArmor[3] OS OS OS LSM LSM Performance Monitor LSMP

160311_icm2015-muramatsu-v2.pptx

PRIMERGY RX300 S6 SAS コントローラカード <RAID 5> フリーOS 動作確認情報

はじめに このドキュメントではftServerに関する障害調査を行う際に 必要となるログ データの取得方法を説明しています ログ データの取得には 初期解析用のデータの取得方法と 詳細な調査を行うときのデータ取得方法があります 特別な理由でOS 側のログが必要となった場合には RHELログの取得につ

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

PRIMERGY TX140 S1 未サポートOS動作検証確認情報

Mac OS X Server QuickTime Streaming Server 5.0 の管理(バージョン 10.3 以降用)

- 目次 - 1 改訂履歴 はじめに 事前準備 作業 PC の準備 BIG-IP Virtual Edition のメディア保存 Hyper - V へのアクセス BIG-IP Virtual Edition

PRIMERGY TX100 S3 未サポートOS動作検証確認情報

VMware VirtualCenter: Virtual Infrastructure Management Software

28 Docker Design and Implementation of Program Evaluation System Using Docker Virtualized Environment

Transcription:

海老澤健太郎 @ebiken パラレルス株式会社

本日の Topics コンテナ =OS 仮想化 とは何か? 仮想化方式の比較 OS 仮想化の特徴 OS 仮想化の利用例 OS 仮想化の実現方法 リソース空間の分離 リソース管理 namespace / cgroups OpenVZ のネットワーク ネットワークタイプ eth/veth/venet 性能比較 OpenVZ 設定方法 APPENDIX

コンテナ型仮想化のいろいろ OpenVZ Virtuozzo LXC (Linux Container) Linux-Vserver Solaris Zones FreeBSD Jails Google Container ( 独自 ) Facebook??

コンテナ =OS 仮想化 とは何か? 仮想マシン (VM) ハードウェア仮想化と何が違うのか?

ハードウェア仮想化 仮想マシン Virtual Machine(VM) ハードウェア環境を仮想化 異なる OS が共存可能 OS を起動 仮想ハードウェア経由 仮想化のレベル 物理サーバー毎の混在環境 仮想環境の起動 ネットワークアクセス OS 仮想化 コンテナ Container(CT) Virtual Environment (VE) OS 環境を仮想化 異なるディストリビューションが共存可能 ( カーネル共通 ) プロセスを起動 仮想化方式の比較 仮想インターフェース経由

OS 仮想化 =コンテナの特徴起動が早い (OSはブート済み) 高密度 ( カーネル メモリを共有 ) ハードウェア仮想化のオーバーヘッド無しコンテナ毎のリソース root / users / groups メモリ 設定ファイル IP アドレス プロセス ライブラリ

OS 仮想化の利用例 PaaS プラットフォーム App App App App App App ホスト Kernel 仮想 OS メモリ :2GB CPU:30% 仮想 OS メモリ :2GB CPU:10% 仮想 OS メモリ :4GB CPU:20%

OS 仮想化の利用例 GoodMail( 仮 ) - 某 Mail サービス ホスト CT-2 CT-1 ログイン 送受信 検索 etc. user2 user1 2 1

コンテナ =OS 仮想化 どうやって実現するの?

Isolation & Resource Control Adding Generic Process Containers to the Linux Kernel Paul B. Menage @ Google / Balbir Singh and Srivatsa Vaddagiri @ IBM (Namespace) Isolation Mechanism which adds an additional indirection or translation layer to the naming/visibility of some unix resource space (such as process ids, or network interfaces) for a specific set of processes. Typically the existence of isolation itself is invisible to the processes being isolated. Resource control Mechanism which can do either or both of: A. Tracking how much of a resource is being consumed by a set of processes B. imposing quantitative limits on that consumption, either absolutely, or just in times of contention.

リソース空間の分離 & リソースの管理 リソース空間の分離 プロセスの集合を識別するための名前付けを実施 リソース空間を分割し 参照可能な範囲を規定 各プロセスは分離されている事を認識しない リソース管理 あるプロセスの集合が使用しているリソースを追跡 リソース使用量の制限 ( 絶対量 or 相対量 ) リソース空間 = プロセス ID ネットワークインターフェース メモリ CPU 等

リソース空間の分離 & リソースの管理 リソース空間の分離 プロセスの集合を識別するための名前付けを実施 リソース空間を分割し 参照可能な範囲を規定 各プロセスは分離されている事を認識しない リソース管理 namespace あるプロセスの集合が使用しているリソースを追跡 cgroups リソース使用量の制限 ( 絶対量 or 相対量 ) リソース空間 = プロセス ID ネットワークインターフェース メモリ CPU 等

namespace & cgroups namespace File system IPC Networking /proc /sys User UTS cgroups cpuset cpu cpuacct devices freezer blkio # cgroups = Control Groups

OPENVZ のネットワーク

OpenVZ のネットワークタイプ venet veth Layer Layer 3 (IP) Layer 2 (Ethernet) 受信 venet0 経由 Linux Bridge 経由 L2 アドレス (ARP 返信 ) 無し (*1) veth 毎 (*2) (*1) Proxy ARP により宛先インタフェースの MAC アドレスを返信 (*2) veth 毎に異なる MAC アドレスを返信

Logical Topology: venet CT100 A venet0:0 Kernel p2p1 ARP request : IP-B ARP request : IP-A ARP reply : MAC-p2p1 CT200 B C venet0:0 venet0:1 venet0 Proxy Arp ARP request : IP-C p2p2 ARP reply : MAC-p2p2

Logical Topology: veth CT100 A eth0 veth0 Kernel ARP request : IP-A Linux Bridge p2p1 ARP reply : MAC-A CT200 B eth0 veth1 br0 ARP request : IP-B ARP reply : MAC-B

ETH/VETH/VENET 性能比較

eth/veth/venet 性能比較 : 測定環境 Kernel CT100 venet0:0 venet0 p2p1 Host CT100 eth0 br0 veth1 p2p1 p2p1 Linux running pktgen Linux Bridge

OPENVZ, VETH/VENET 設定方法

OpenVZ, veth/venet 設定方法 Kernel OpenVZ インストール CT100 venet0:0 venet0 p2p1 CT 作成 venet 設定 CT100 eth0 br0 veth1 p2p1 Bridge 作成 Linux Bridge veth 設定

http://wiki.openvz.org/quick_installation OpenVZ, veth/venet 設定方法 1. OpenVZ Kernel のインストール # wget -P /etc/yum.repos.d/ http://download.openvz.org/openvz.repo # rpm --import http://download.openvz.org/rpm-gpg-key-openvz # yum install vzkernel OpenVZ インストール 2. /etc/sysctl.conf の設定 ( 追加 + 変更 ) net.ipv4.ip_forward = 1 net.ipv6.conf.default.forwarding = 1 net.ipv6.conf.all.forwarding = 1 net.ipv4.conf.default.proxy_arp = 0 CT 作成 パケットフォワーディング有効 プロキシ ARP 無効 venet 設定 net.ipv4.conf.all.rp_filter = 1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 送信元 IP 検証有効 マジック SysRq 有効 Bridge 作成 リダイレクト有効但し すべてではない veth 設定

http://wiki.openvz.org/quick_installation 3. SELinux 無効化 # vi /etc/sysconfig/selinux SELINUX=disabled 4. リブートし OpenVZ で起動された事を確認 # uname -s -r -p -o Linux 2.6.32-042stab063.2 x86_64 GNU/Linux OpenVZ, veth/venet 設定方法 OpenVZ インストール CT 作成 5. ツールをインストール # yum install vzctl vzquota 6. OpenVZ カーネルモジュールの開始 ( リブート時は自動 ) vzctl OpenVZ コンテナの制御 vzquota クォータ管理 venet 設定 Bridge 作成 # /sbin/service vz start veth 設定

http://wiki.openvz.org/quick_installation OpenVZ, veth/venet 設定方法 1. コンテナのテンプレートを取得 # pwd /vz/template/cache # wget http://download.openvz.org/template/precreated/centos-6- x86-devel.tar.gz 2. コンテナ作成 & メモリ設定 # vzctl create 100 --hostname ct100 --ostemplate centos-6-x86-devel # vzctl set 100 --ram 1024M --swap 1024M --save 3. IP アドレス nameserver 設定 (CT 内 venet 自動生成 ) # vzctl set 100 --ipadd 10.10.0.1 --nameserver 8.8.8.8 --save 4. コンテナ開始 # vzctl start 100 OpenVZ インストール CT 作成 venet 設定 Bridge 作成 veth 設定

http://wiki.openvz.org/quick_installation 1. bridge-utils のインストール [host]# yum install bridge-utils 2. Bridge (vzbr0) の作成 [host]# cd /etc/sysconfig/network-scripts/ [host]# vi ifcfg-vzbr0 DEVICE="vzbr0" ONBOOT="yes" TYPE="Bridge" BOOTPROTO="static" NETMASK=255.255.255.0 IPADDR=10.10.0.10 OpenVZ, veth/venet 設定方法 OpenVZ インストール CT 作成 venet 設定 3. eth0 (*) の Bridge への参加 +IP コメントアウト [host]# vi ifcfg-eth0 #IPADDR=10.10.0.1 #NETMASK=255.255.255.0 BRIDGE="vzbr0" 4. [host]# service network restart (*) ホスト側物理 NIC Bridge 作成 veth 設定

http://wiki.openvz.org/quick_installation OpenVZ, veth/venet 設定方法 5. コンテナへの veth 追加 [host]# vzctl set 100 --netif_add eth0,,,,vzbr0 --save Configure veth devices: veth100.0 CT configuration saved to /etc/vz/conf/100.conf 6. コンテナへ入り eth0( ホストの veth100.0) 設定 [host]# vzctl enter 100 [CT]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="none" NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" IPADDR=10.10.0.110 NETMASK=255.255.240.0 [CT]# service network restart 7. Bridge (vzbr0) へ veth (veth100.0) を追加 [host]# brctl addif vzbr0 veth100.0 OpenVZ インストール CT 作成 venet 設定 Bridge 作成 veth 設定

ホストからの見え方 OpenVZ, veth/venet 設定方法 [host]# brctl show bridge name bridge id STP enabled interfaces vzbr0 8000.0018511d38b4 no eth0 veth100.0 [host]# ifconfig... snip... veth100.0 Link encap:ethernet HWaddr 00:18:51:1D:38:B4 inet6 addr: fe80::218:51ff:fe1d:38b4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:33 errors:0 dropped:0 overruns:0 frame:0 TX packets:51 errors:0 dropped:5 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2148 (2.0 KiB) TX bytes:3316 (3.2 KiB) vzbr0 Link encap:ethernet HWaddr 00:18:51:1D:38:B4 inet addr:10.10.0.10 Bcast:10.10.0.255 Mask:255.255.255.0 inet6 addr: fe80::218:51ff:fe1d:38b4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:248 errors:0 dropped:0 overruns:0 frame:0 TX packets:37 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:12624 (12.3 KiB) TX bytes:3046 (2.9 KiB)

コンテナからの見え方 OpenVZ, veth/venet 設定方法 [CT]# ifconfig eth0 Link encap:ethernet HWaddr 00:18:51:C2:FD:7B inet addr:10.10.0.110 Bcast:10.10.0.255 Mask:255.255.255.0 inet6 addr: fe80::218:51ff:fec2:fd7b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:55 errors:0 dropped:0 overruns:0 frame:0 TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3524 (3.4 KiB) TX bytes:2148 (2.0 KiB)... snip... venet0 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:127.0.0.1 P-t-P:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:98 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:168 (168.0 b) TX bytes:5064 (4.9 KiB) venet0:0 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.10.0.100 P-t-P:10.10.0.100 Bcast:10.10.0.255 Mask:255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1

APPENDIX

Kernel updates by OpenVZ Team OpenVZ の今後 http://openvz.livejournal.com/22369.html

仮想化プラットフォームによる性能比較 @ OpenVZ Wiki http://wiki.openvz.org/performance Benchmark Response Time Description Microbenchmark demonstrating latency issues of interactive applications in virtualized and loaded systems (netperf RR in various conditions). Network Throughput 10Gbit simple network throughput comparison using netperf test. LAMP vconsolidate-up vconsolidate-smp Microbenchmarks Linux Apache+MySql+PHP (LAMP) stack benchmark in multiple simultaneously running virtualization instances. UP configuration of Intel vconsolidate server consolidation benchmark (Java+Apache+MySQL workloads). SMP configuration of Intel vconsolidate server consolidation benchmark (Java+Apache+MySQL workloads). Various microbenchmarks like context switch, system call, etc. Plus Unixbench resuls.

参考資料一覧 OpenVZ Wiki - http://wiki.openvz.org/ CRIU - http://www.criu.org/ Linux Kernel Newbies / Kernel Changes - http://kernelnewbies.org/linuxchanges O Reilly, Linux Device Drivers (3 rd Edition) O Reilly, Understanding Linux Network Internals O Reilly, Understanding the Linux Kernel (3 rd Edition) Adding Generic Process Containers to the Linux Kernel, Paul B. Menage @ Google / Balbir Singh and Srivatsa Vaddagiri @ IBM 00