Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
hbstyle 2017-1 仮想化技術のあれこれ
Search
h-otter
January 12, 2017
Technology
0
180
hbstyle 2017-1 仮想化技術のあれこれ
仮想化とはというところから、サーバー仮想化のCPU周りの技術を中心に話しました。
h-otter
January 12, 2017
Tweet
Share
More Decks by h-otter
See All by h-otter
CLIに自動更新機能を実装することで、 開発速度を爆上げした話
otter
0
200
Kubernetesのワーカーノードを自動修復するために必要だったこと
otter
0
180
透過 L2 BRIDGE NAT
otter
0
84
Other Decks in Technology
See All in Technology
推し書籍📚 / Books and a QA Engineer
ak1210
0
140
TLSから見るSREの未来
atpons
2
310
Data Engineering Study#30 LT資料
tetsuroito
1
200
LLM拡張解体新書/llm-extension-deep-dive
oracle4engineer
PRO
23
6.3k
助けて! XからWaylandに移行しないと新しいGNOMEが使えなくなっちゃう 2025-07-12
nobutomurata
2
200
マルチプロダクト環境におけるSREの役割 / SRE NEXT 2025 lunch session
sugamasao
1
730
ソフトウェアQAがハードウェアの人になったの
mineo_matsuya
3
200
大量配信システムにおけるSLOの実践:「見えない」信頼性をSLOで可視化
plaidtech
PRO
0
390
AWS 怖い話 WAF編 @fillz_noh #AWSStartup #AWSStartup_Kansai
fillznoh
0
130
VS CodeとGitHub Copilotで爆速開発!アップデートの波に乗るおさらい会 / Rapid Development with VS Code and GitHub Copilot: Catch the Latest Wave
yamachu
3
460
Digitization部 紹介資料
sansan33
PRO
1
4.5k
Rethinking Incident Response: Context-Aware AI in Practice
rrreeeyyy
2
940
Featured
See All Featured
Embracing the Ebb and Flow
colly
86
4.8k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
We Have a Design System, Now What?
morganepeng
53
7.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
BBQ
matthewcrist
89
9.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
340
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Practical Orchestrator
shlominoach
189
11k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Transcript
仮想化技術のあれこれ H-OTTER HBSTYLE
自己紹介
自己紹介 Twitter: @_h_otter_ MMA CTF 難しい… Heartbeatsでバイトしてます
資格 セキュリティスペシャリスト ネットワークスペシャリスト → 午後Ⅱで名前を書き忘れたらしい… 点数的には合格のはず (負け惜しみ)
• 競プロ • 自宅サーバ • CTF 高校時代は…
先日、成人しました
None
みんなリア充じゃん…
ICTSC トラコン 運営がわざと起こしたトラブルを直す 馬場さんや門馬さん、伊藤さんも参加 openstackなどの仮想化基盤を使うことも (つらい…)
ここから本題
仮想化ってなに? 『仮想化とは、サーバなどのハードウェアリソース(CPU、メモリ、HDD)を、物理的な構成にとら われずに、論理的に統合や分割することができる技術のこと。』 (ネットワークエンジニアとして, http://www.infraexpert.com/study/virtual.html) HDD: 2TB HDD: 1TB HDD:
5TB 容量を 仮想化 HDD: 2TB HDD: 1TB HDD: 5TB 仮想的なHDD: 8TB
仮想化ってなに? 『仮想化とは、サーバなどのハードウェアリソース(CPU、メモリ、HDD)を、物理的な構成にとら われずに、論理的に統合や分割することができる技術のこと。』 (ネットワークエンジニアとして, http://www.infraexpert.com/study/virtual.html) 帯域、 グローバルIPを 仮想化 仮想的なネットワーク グローバルIP:
/24 + /27 NTTコミュ IIJ RT01 RT03 RT02 100mbps GIP: /28 1gbps GIP: /24 100mbps GIP: /28 internet 1200mbps ※ 通信料がなるべく安価になるように流量を調整したりもする
仮想化ってなに? 『仮想化とは、サーバなどのハードウェアリソース(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 仮想的なサーバ
今回はサーバ仮想化
今日のために調べたのでガバガバかも… (心が折れない程度に)修正をお願いします :BOW:
user land ring3 最近のOS user modeとkernel modeが分かれている kernelはHDDなど外部I/Oの制御をうけもつ modeによって実行やアクセスできる領域は 決まっており、ring
[0-3]で表される I/O入力があった場合、kernel modeに移って 処理をする 利点は以下の通り アクセス権限を明確に分けることでセキュアに user landのアプリは細かい制御を気にせずに 開発を行える kernel land ring0 I/O 割り込み proc 1 proc2
サーバ仮想化の種類 準仮想化 完全仮想化 Type 1(「ネイティブ」または「ベアメタル」)ハイパーバイザ KVM Xen Hyper-V Type 2(「ホスト」)ハイパーバイザ
QEMU (KVM) Vmware workstation virtualbox
完全仮想化 (Xen) VMのkernelは物理ホスト上にインストールす るものと完全に同じものを使うことが可能 実はこの説明では不完全 (後述) VMM kernel land ring0
user land ring3 命令 VM Kernel Xen 参考: http://www.itmedia.co.jp/enterprise/articles/0701/12/news010.html Xen
準仮想化 (Xen) VMのkernelはXenのためににカスタマイズさ れたものをインストール 命令セットをいい具合に変えたもの Xenはring 1にVMのkernelを置き、その下に ハイパーバイザー(仮想化を管理するもの)を 置くことで実現 スーパーバイザー(kernel)の上位にいるからハ
イパーバイザー VMM kernel land ring0 user land ring3 VM kernel land ring1 命令 参考: http://www.itmedia.co.jp/enterprise/articles/0701/12/news010.html
仮想化の問題点 VMの命令がシステム全体を操作してしまう 例えばメモリはアドレスが同じところを書き換 えてしまったり… 違うOSなのに同じディスクを参照したり… 参考: http://www.fujitsu.com/downloads/JP/archive/imgjp/jmag/vol62-1/paper18.pdf VM1 VM2 memory
0xffff40a1を書き換えて! 0xffff40a1を書き換えて! 同じとこ書き換えるの?
user land ring3 QEMU それらの問題点を何とか潜り抜けて開発さ れたエミュレータ 全体を書き換えるような命令を正しく動くよう な命令に変換する もともと別のアーキテクチャを動かすための エミュレータだからできた技
VMM kernel land ring0 VM kernel QEMU Proc 命令セットの変換 命令 欠点: 遅い!!
VMX root operation mode VMX non-root operation mode VT-x 完全仮想化
(Xen) Intelの変態テクノロジー システム全体に影響がある命令を実行した 場合、VMX root operation mode に自動で切 り替わる ハイパーバイザーをVMX root operation mode に待たせておけば期待通りの処理がで きる VMM kernel land ring0 user land ring3 命令 VM Kernel Xen 参考: http://www.itmedia.co.jp/enterprise/articles/0701/12/news010.html Xen
VMX root operation mode VMX non-root operation mode KVM VT-xを前提に作られたハイパーバイザー
QEMUと一緒に使う 全体に影響を与えない命令はそのまま実行、 与える影響は/dev/kvmに書き込み、kvm module がいい感じに実行 構造がシンプルで、開発するのがkvm module のみなので神 kernelがハイパーバイザーになる VMM kernel land ring0 user land ring3 /dev/kvm kvm module 参考: http://www.fujitsu.com/downloads/JP/archive/imgjp/jmag/vol62-1/paper18.pdf QEMU linux kernel
ネイティブ型とホスト型 ネイティブ型 ハイパーバイザーがring 0にいる (Ex. Xen) ホスト型 ハイパーバイザーがring 3にいる (Ex.
QEMU) user land ring3 VMM kernel land ring0 VM kernel QEMU Proc 命令セットの変換 命令 VMM kernel land ring0 user land ring3 命令 VM Kernel Xen Xen
仮想化技術的なあれ H-OTTER MMA TECH:TALK 2017 #1