MMA Tech:Talk 2017-1 仮想化技術的なあれ

16
仮仮仮仮仮仮仮仮仮 H-OTTER MMA TECH:TALK 2017 #1

Transcript of MMA Tech:Talk 2017-1 仮想化技術的なあれ

Page 1: MMA Tech:Talk 2017-1 仮想化技術的なあれ

仮想化技術的なあれH-OTTERMMA TECH:TALK 2017 #1

Page 2: MMA Tech:Talk 2017-1 仮想化技術的なあれ

仮想化ってなに ?『仮想化とは、サーバなどのハードウェアリソース( CPU 、メモリ、 HDD )を、物理的な構成にとらわれずに、論理的に統合や分割することができる技術のこと。』 ( ネットワークエンジニアとして , http://www.infraexpert.com/study/virtual.html)

HDD: 2TBHDD: 1TB

HDD: 5TB

容量を仮想化HDD: 2TB

HDD: 1TB

HDD: 5TB

仮想的な HDD: 8TB

Page 3: MMA Tech:Talk 2017-1 仮想化技術的なあれ

仮想化ってなに ?『仮想化とは、サーバなどのハードウェアリソース( CPU 、メモリ、 HDD )を、物理的な構成にとらわれずに、論理的に統合や分割することができる技術のこと。』 ( ネットワークエンジニアとして , http://www.infraexpert.com/study/virtual.html)

帯域、グローバル IPを仮想化仮想的なネットワークグローバル IP: /24 + /27

NTT コミュ IIJ

RT01 RT03RT02

100mbpsGIP: /28

1gbpsGIP: /24

100mbpsGIP: /28

internet

1200mbps

※ 通信料がなるべく安価になるように流量を調整したりもする

Page 4: MMA Tech:Talk 2017-1 仮想化技術的なあれ

仮想化ってなに ?『仮想化とは、サーバなどのハードウェアリソース( CPU 、メモリ、 HDD )を、物理的な構成にとらわれずに、論理的に統合や分割することができる技術のこと。』 ( ネットワークエンジニアとして , http://www.infraexpert.com/study/virtual.html)

CPU, memory を仮想化

memory: 32GB

CPU: 3GHz * 8 core

SRV01

memory: 32GB

CPU: 3GHz * 8 core

SRV02

memory: 64GB

CPU: 3GHz * 16 core = 48GHz

仮想的なサーバ

Page 5: MMA Tech:Talk 2017-1 仮想化技術的なあれ

今回はサーバ仮想化

Page 6: MMA Tech:Talk 2017-1 仮想化技術的なあれ

今日のために調べたのでガバガバかも…( 心が折れない程度に ) 修正をお願いします :BOW:

Page 7: MMA Tech:Talk 2017-1 仮想化技術的なあれ

user landring3

最近の OSuser mode と kernel mode が分かれているkernel は HDD など外部 I/O の制御をうけもつmode によって実行やアクセスできる領域は決まっており、 ring [0-3] で表されるI/O 入力があった場合、 kernel mode に移って処理をする利点は以下の通り

アクセス権限を明確に分けることでセキュアにuser land のアプリは細かい制御を気にせずに開発を行える

kernel landring0

I/O 割り込み

proc 1

proc2

Page 8: MMA Tech:Talk 2017-1 仮想化技術的なあれ

サーバ仮想化の種類準仮想化完全仮想化Type 1 (「ネイティブ」または「ベアメタル」)ハイパーバイザ

KVMXenHyper-V

Type 2 (「ホスト」)ハイパーバイザQEMU (KVM)Vmware workstationvirtualbox

Page 9: MMA Tech:Talk 2017-1 仮想化技術的なあれ

完全仮想化 (Xen)VM の kernel は物理ホスト上にインストールするものと完全に同じものを使うことが可能実はこの説明では不完全 ( 後述 )

VMM kernel landring0

user landring3

命令

VM Kernel Xen

参考 : http://www.itmedia.co.jp/enterprise/articles/0701/12/news010.html

Xen

Page 10: MMA Tech:Talk 2017-1 仮想化技術的なあれ

準仮想化 (Xen)VM の kernel は Xen のためににカスタマイズされたものをインストール

命令セットをいい具合に変えたものXen は ring 1 に VM の kernel を置き、その下にハイパーバイザー ( 仮想化を管理するもの ) を置くことで実現

スーパーバイザー (kernel) の上位にいるからハイパーバイザー

VMM kernel landring0

user landring3

VM kernel landring1

命令

参考 : http://www.itmedia.co.jp/enterprise/articles/0701/12/news010.html

Page 11: MMA Tech:Talk 2017-1 仮想化技術的なあれ

仮想化の問題点VM の命令がシステム全体を操作してしまう例えばメモリはアドレスが同じところを書き換えてしまったり…違う OS なのに同じディスクを参照したり…

参考 : http://www.fujitsu.com/downloads/JP/archive/imgjp/jmag/vol62-1/paper18.pdf

VM1 VM2

memory

0xffff40a1 を書き換えて ! 0xffff40a1 を書き換えて !

同じとこ書き換えるの ?

Page 12: MMA Tech:Talk 2017-1 仮想化技術的なあれ

user landring3

QEMUそれらの問題点を何とか潜り抜けて開発されたエミュレータ全体を書き換えるような命令を正しく動くような命令に変換するもともと別のアーキテクチャを動かすためのエミュレータだからできた技

VMM kernel landring0

VM kernelQEMU Proc

命令セットの変換

命令欠点 : 遅い !!

Page 13: MMA Tech:Talk 2017-1 仮想化技術的なあれ

VMX root operation mode

VMX non-root operation mode

VT-x 完全仮想化 (Xen)Intel の変態テクノロジーシステム全体に影響がある命令を実行した場合、 VMX root operation mode に自動で切り替わるハイパーバイザーを VMX root operation mode に待たせておけば期待通りの処理ができる

VMM kernel landring0

user landring3命令

VM Kernel Xen

参考 : http://www.itmedia.co.jp/enterprise/articles/0701/12/news010.html

Xen

Page 14: MMA Tech:Talk 2017-1 仮想化技術的なあれ

VMX root operation mode

VMX non-root operation mode

KVMVT- xを前提に作られたハイパーバイザーQEMU と一緒に使う全体に影響を与えない命令はそのまま実行、与える影響は /dev/kvm に書き込み、kvm module がいい感じに実行構造がシンプルで、開発するのが kvm module のみなので神kernel がハイパーバイザーになる

VMM kernel landring0

user landring3

/dev/kvm kvm module

参考 : http://www.fujitsu.com/downloads/JP/archive/imgjp/jmag/vol62-1/paper18.pdf

QEMU

linux kernel

Page 15: MMA Tech:Talk 2017-1 仮想化技術的なあれ

ネイティブ型とホスト型ネイティブ型

ハイパーバイザーが ring 0 にいる (Ex. Xen)

ホスト型 ハイパーバイザーが ring 3 にいる (Ex. QEMU) user land

ring3

VMM kernel landring0

VM kernelQEMU Proc

命令セットの変換

命令VMM kernel land

ring0

user landring3命令

VM Kernel Xen

Xen

Page 16: MMA Tech:Talk 2017-1 仮想化技術的なあれ

仮想化技術的なあれH-OTTERMMA TECH:TALK 2017 #1