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
190
hbstyle 2017-1 仮想化技術のあれこれ
仮想化とはというところから、サーバー仮想化のCPU周りの技術を中心に話しました。
h-otter
January 12, 2017
Tweet
Share
More Decks by h-otter
See All by h-otter
CLIに自動更新機能を実装することで、 開発速度を爆上げした話
otter
0
210
Kubernetesのワーカーノードを自動修復するために必要だったこと
otter
0
180
透過 L2 BRIDGE NAT
otter
0
87
Other Decks in Technology
See All in Technology
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
260
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.6k
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
250
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
160
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
4
400
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
410
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
490
22nd ACRi Webinar - ChipTip Technology Eric-san's slide
nao_sumikawa
0
100
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
510
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
110
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
1.2k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
58
50k
Code Review Best Practice
trishagee
74
20k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
170
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Language of Interfaces
destraynor
162
26k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Facilitating Awesome Meetings
lara
57
6.8k
Utilizing Notion as your number one productivity tool
mfonobong
3
220
A Modern Web Designer's Workflow
chriscoyier
698
190k
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