2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)

88
主主主主 主主主主主主 () 主主主主主主主主主主主主主主主主主主主主主主主主主主 28 主主主主主主主主主主主 主主主主主主 主主主主主主2016/11/30 BitVisor Summit 5 BitVisor 主主主主主主1

Transcript of 2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)

BitVisor

28 2016/11/30BitVisor Summit 5 BitVisor1

1

BitVisor Summit BitVisor BitVisor BitVisor Summit BitVisor OS2016/11/30BitVisor Summit 5 BitVisor2

BitVisor6BitVisor 2016Virtualize APIC accessAPICxHCI driver implementationTinyVisorBitVisorlwIPAlkanetBitVisor KVM & BitVisor Advent Calendar

2016/11/30BitVisor Summit 5 BitVisor3

672222016/11/30BitVisor Summit 5 BitVisor4

2016/11/30BitVisor Summit 5 BitVisor5

BitVisor 20062008 3BitVisor 0.22009 3BitVisor 1.0VMMIC2010 6BitVisor 1.1AHCIRealtek NIC...201110BitVisor 1.2Suspend/ResumeATA PiggybackTCB BIOS...2012 9BitVisor 1.3EPT/NPTADvisor2014 5BitVisor 1.4 UEFIMac20xxx2016/11/30BitVisor Summit 5 BitVisor6

2016/11/30BitVisor Summit 5 BitVisor7BitVisor 2.0

BitVisor iMacIPSJ-ONECANONCANONAXIES2016/11/30BitVisor Summit 5 BitVisor8

8

IPSJ-ONE

2016/11/30BitVisor Summit 5 BitVisor9

9

BitVisor: OS

Mac OS

OS2016/3/12IPSJ-ONE 2016 BitVisor: OS11

Windows

OS

11

2016/3/12IPSJ-ONE 2016 BitVisor: OS12

Mac OS

Windows

12

BitVisor 2016/3/12IPSJ-ONE 2016 BitVisor: OS13

BitVisorOSWindows

Windows

Mac OS

2016/3/12IPSJ-ONE 2016 BitVisor: OS14

BitVisor

2016/3/12IPSJ-ONE 2016 BitVisor: OS15

BitVisorWindows

2016/3/12IPSJ-ONE 2016 BitVisor: OS16

BitVisorBitVisor2016/3/12IPSJ-ONE 2016 BitVisor: OS17

Windows

, , , , 2015-010521 , 20151 Yushi Omote, Takahiro Shinagawa, Kazuhiko Kato. Improving Agility and Elasticity in Bare-metal Clouds. In Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2015), pp. 145-159, Mar 2015. Acceptance Ratio: 16.7%CANON in Campus Device + vThrii Seamless Provisioning2016/3/12IPSJ-ONE 2016 BitVisor: OS18

2016/3/12IPSJ-ONE 2016 BitVisor: OS19

2016/3/12IPSJ-ONE 2016 BitVisor: OS20

CANON

2016/11/30BitVisor Summit 5 BitVisor21

21

ECCS2016in Campus DevicevThrii

Educational Campuswide Computing System (ECCS)20163ECCS 2016

Apple iMac21.5Intel Core i5 2.8GHz 16GBSSD 256GBIntel Iris Pro Graphics 62001920 x 1080

2016/6/2123

ECCS 201631,341

848213

4811418

12112016/6/2124

(1)25166,0002016/6/2125

(2) OS X Windows

1OS X

OS X

CADWindows2016/6/2126

(1)

2016/6/2127

(2)

23:008:002016/6/2128

(3)

OSOS

CAD2016/6/2129

PCPC

2016/6/2130

OS2016/6/2131

OS

OSWindows2016/6/2132

OS

PCPCOSOS2016/6/2133

OS

PCVirtual Machine(VM)OS2016/6/2134

VM

VM

VM

OS

OS2016/6/2135

OS

ECCSECCS 2004OS X Windows iMac1,149Windows227

ECCS 2008OS X Parallels WindowsiMac1,176Windows ArdenceWindows186

ECCS 2012OS X Windows 7 iMac1,3212016/6/2136

ECCS2016(1)MacWindows

Mac OS X EI Capitan1

Windows Windows 10CADInventor Professional, 3ds max2016/6/2137

ECCS2016(2)SSD

OS

CAD2016/6/2138

ECCS2016(3)

1

OS

2016/6/2139

In Campus Device + vThrii-PIn Campus DeviceGUI

vThrii Seamless ProvisioningOS2016/6/2140

2016/6/2141

In Campus Device

vThrii Client (Hypervisor)vThrii Server

OSvThrii2016/6/2142

CPUVGAUSBStorageNetwork

OSOS XWindowsLinux

2016/6/2143

vThrii Seamless Provisioning(1) (2) (3) (4) (5) (6)

2016/6/2144

Mac OS

(1): 2016/6/2145vThrii

OSOS

OS

2016/6/2146

vThrii

Mac OS

(2): 2016/6/2147

SSD

OS

2016/6/2148

Mac OS

(3): 2016/6/2149vThrii

OS

2016/6/2150

Mac OS

(4): 2016/6/2151vThrii

OS

OFF2016/6/2152

Mac OS

(5): 2016/6/2153vThrii

2016/6/2154

Mac OS

(6): 2016/6/2155vThrii

OS

2016/6/2156

OS

iMac OS

1,341 iMac 302014/11/21BitVisor Summit 3 BitVisor57

iMacWindows Wake on Lan

iMac OS

Windows ACPI Windows 2014/11/21BitVisor Summit 3 BitVisor58

ECCS2012Windows Mac OS

OFF

2014/11/21BitVisor Summit 3 BitVisor59

vThriivThriiOFF

OSWindows OS X 2014/11/21BitVisor Summit 3 BitVisor60

vThrii BitVisorvThrii BitVisor BitVisor 2006OS20091.0SCOPEJST A-STEP2016/6/2161

BitVisorBitVisor

BitVisor

Windows OS X2016/6/2162

33: 40GB4: 70GB5: 100GB23:008:001OS X12016/6/2163

(1): (Nested)vThrii OSVMware

OS

2016/6/2164

(2):

ATA/AHCI NVMe

Intel 2016/6/2165

ECCS 2016 In Campus Device vThrii iMac 1,341OS

312016/6/2166

2016/11/30BitVisor Summit 5 BitVisor67

ASCII.jp 4/26, 5/18, 6/28

2016/11/30BitVisor Summit 5 BitVisor68

ITS

2016/11/30BitVisor Summit 5 BitVisor69

ACM SAC 2016

2016/3/15BitVisor 2016 70

2016/3/15BitVisor 2016 71

2016/3/15BitVisor 2016 721 static int aac_rx_deliver_message(struct fib * fib)2 {3 ...4 for(;;) {5 Index = rx_readl(dev, MUnit.InboundQueue);6 if (unlikely(Index == 0xFFFFFFFFL))7 Index = rx_readl(dev, MUnit.InboundQueue);8 if (likely(Index != 0xFFFFFFFFL))9 break;10 ...11 }12 device = dev->base + Index;13 addr = fib->hw_fib_pa;14 writel((u32)(addr & 0xffffffff), device);15 ...16 }Example of unreliable code. An index variable received from the hardware in line 5 or 7 is used for pointer arithmetic in line 12 only if it is not equal to 0xFFFFFFFF (aacraid in Linux 4.0; rx.c).

BitVisor I/OOS2016/3/15BitVisor 2016 73BitVisorOS

DriverAll FaultsCritical FaultsTestsTimeLinuxAdaptec RAID 580532301:12Marvell 88SE812300301:56NVIDIA GT 610103104:33WindowsAdaptec RAID 580522303:00Marvell 88SE812311300:33NVIDIA GT 6102522111:20

2016/3/15BitVisor 2016 74

2016/3/15BitVisor 2016 75

IaaS IaaS

1Amazon EC2

2

2016/3/15BitVisor 2016 76

IaaSIaaSIaaSIaaSAmazonEC276

OS

2016/3/15BitVisor 2016 77

OSOS77

OSOS

2016/3/15BitVisor 2016 78

OSOS78

OSReadWrite

OS

OS

122016/3/15BitVisor 2016 79

OSOS

79

NIC(Network Interface Card) EEPROMZ97NIC ` BitVisor

OS

NIC(I218-V)

CPU

Z97

BitVisorReadWrite

EEPROM2016/3/15BitVisor 2016 80

IntelI218-VEEPROMNICBitVisorI218-VZ97BitVisorNICEEPROMBitVisor80

EEPROMethtool NICEEPROMMAC$ ethtool E eth1 magic 0x15a18086 offset 0x05 value 0xf3Cannot set EEPROM data: Operation not permitted

BitVisor$ ethtool E eth1 magic 0x15a18086 offset 0x05 value 0xf3d0 50 99 2f 51 f2 01 08 ff ff

d0 50 99 2f 51 00 01 08 ff ff

MAC2016/3/15BitVisor 2016 81

NICEEPROMNICethtoolNICEEPROMMACMACNICMACf200BitVisorMAC81

NetperfTCP1

NoneOn BitVisorOn KVMLAN Cable

NoneABA: ServerA: Client2016/3/15BitVisor 2016 82

NetperfLANBitVisorKVMABABitVisorKVMAclientServerA6TCP11082

102016/3/15BitVisor 2016 83

KVM20BitVisor1EEPROM83

ACM SAC 2016Satoru Takekoshi,Takahiro Shinagawa, Kazuhiko Kato.Testing Device Drivers against Hardware Failures in Real Environments.In Proceedings of the 31st ACM Symposium On Applied Computing (ACM SAC 2016), Apr 2016.

2016/11/30BitVisor Summit 5 BitVisor84

20162016/11/30BitVisor Summit 5 BitVisor85EuroSys 10IEEE S&P 2010SOSP 11EuroSys 10SOSP 11NDSS 11IEEE S&P 12IEEE S&P 13

87(13) 108(14)136(15)169(16)

BitVisorUSB 3.0xHCINICMarvell, BroadcomLAN, RAID, ...OSEFIMac, Nested Virtualization, MMConfig, ...Config, APIEPT, , Preemption TimerVM, 2016/11/30BitVisor Summit 5 BitVisor86

BitVisor IPSJ-ONECANONAXIESACM SAC 2016 VEE 2009 1692016/11/30BitVisor Summit 5 BitVisor87

BitVisor BitVisor http://www.bitvisor.org/[email protected], [email protected]@bitvisor.org, [email protected]://bitbucket.org/bitvisor/bitvisorhttp://sourceforge.net/projects/bitvisor/

2016/11/30BitVisor Summit 5 BitVisor88