MASTER THESIS Guest OS Backward Compatibility for the Freebsd

Total Page:16

File Type:pdf, Size:1020Kb

MASTER THESIS Guest OS Backward Compatibility for the Freebsd University “Politehnica” of Bucharest Automatic Control and Computers Faculty, Computer Science and Engineering Department MASTER THESIS Guest OS Backward Compatibility for the FreeBSD Hypervisor Scientific Adviser: Author: As.dr.ing. Mihai Carabas Ionut - Alexandru Teaca Bucharest, 2017 Contents 1 Introduction 1 1.1 Motivation.......................................1 1.2 Objectives........................................2 1.3 Outline.........................................2 2 Background 4 2.1 Virtualization......................................4 2.2 Hardware devices....................................5 2.3 Overview of the bhyve hypervisor...........................6 3 Related Work9 4 The ATA/ATAPI Emulation 11 4.1 Overview........................................ 11 4.2 Hardware Resources.................................. 12 4.2.1 I/O ports description............................. 12 4.2.2 Interrupts.................................... 13 4.3 Data Transfer Protocols................................ 14 4.3.1 PIO command protocol............................ 14 4.3.2 DMA command protocol........................... 15 4.4 Command descriptions................................. 16 4.4.1 ATA commands................................ 17 4.4.2 ATA-ATAPI commands............................ 18 4.4.3 ATAPI commands............................... 18 4.5 Implementation Details................................ 19 4.5.1 Initialization.................................. 19 4.5.2 Software reset protocol............................. 20 4.5.3 Device addressing considerations....................... 20 4.5.4 Block device emulation............................ 21 5 The NE2000 Emulation 22 5.1 Overview........................................ 22 5.2 Hardware Resources.................................. 23 5.2.1 I/O ports description............................. 23 5.2.2 Interrupts.................................... 24 5.3 Packet Transfer Protocols............................... 24 5.3.1 Packet Ring Buffers.............................. 25 5.3.2 Packet Transfer Emulation.......................... 26 5.4 Implementation Details................................ 27 5.4.1 Initialization.................................. 27 5.4.2 Software Reset command........................... 28 5.4.3 Multithreading environment.......................... 29 i CONTENTS ii 6 Device Emulation Evaluation 30 6.1 ATA/ATAPI...................................... 30 6.1.1 Configuration.................................. 30 6.1.2 Results of ATA/ATAPI emulation...................... 32 6.1.3 Validation and Performance.......................... 34 6.2 NE2000......................................... 35 6.2.1 Configuration.................................. 35 6.2.2 Results of NE2000 emulation......................... 36 6.2.3 Validation and Performance.......................... 37 7 Conclusion and Further Work 40 List of Figures 2.1 Virtual Machine Monitor...............................5 2.2 Hosted Virtualization.................................6 2.3 bhyve structure.....................................7 2.4 VM state machine...................................7 2.5 bhyve device emulation................................8 4.1 ATA/ATAPI overview................................. 11 5.1 NE2000 overview.................................... 22 iii List of Tables 4.1 ATA Bus Master Register Offsets........................... 13 4.2 PCI Compatibility and PCI-Native Mode Bus Master Adapters Configuration Registers......................................... 13 4.3 Physical Region Descriptor Table Entry....................... 16 5.1 NE2000 NIC Register Offsets............................. 24 5.2 NE2000 Receive Ring Header............................. 26 6.1 Hardware configuration................................ 30 iv Chapter 1 Introduction The area of applications using software virtualization has been growing more and more in the last years, virtualization being fundamental for many technologies (for example, cloud computing). Nowadays the main issue is to support many different guest operating systems. There are many types of applications which run on legacy operating systems (FreeBSD 4, Windows XP) and nobody wants to change their setup or to upgrade the operating system. However, they need to migrate toward virtualized hosts. Hence, the solution to this problem is to enhance the hypervisors in order to support such operating systems. This subject is present in all hypervisors but we will focus on the FreeBSD Hypervisor (bhyve). This chapter starts with the motivation of this project which explains the reasoning to develop more device emulations in the bhyve hypervisor, continues with clear objectives regarding the features we implemented and ends with an outline that emphasizes the structure of the thesis. 1.1 Motivation We started by analyzing the key reasons why some older operating systems are not supported in bhyve and what are the critical parts which have to be implemented to improve that. We did this by comparing the FreeBSD 4.0 with the FreeBSD 8.0 release which is the last supported version of FreeBSD i386/amd64 and we noticed that the main differences consisted in the supported hardware devices. On a first sight, we observed some compatibility issues at the media storage devices like hard disks, floppy drives, and optical disc drives. The FreeBSD Hypervisor (bhyve) provides only the emulation of the Advanced Host Controller Interface (AHCI) used by the Serial ATA devices but the FreeBSD 4 has no drivers for that. The class of media storage devices is critical for any hypervisor because it allows to install and boot an operating system. We propose to implement the ATA(AT Attachment) Host Adapter Standard which is supported in the FreeBSD 4.0 release and many other operating systems. Another category of devices in which bhyve does not provide good support for the older op- erating systems are the network card devices. The bhyve hypervisor uses a virtio net device emulation but these operating systems do not have virtio device drivers and are not able to use this emulation. This class of devices is absolutely necessary for any hypervisor because almost all applications require network access. One of the best supported devices, especially in older operating systems, is the NE2000 device. We propose to implement the NE2000 device emulation which will allow a larger number of unmodified guest operating systems to run under bhyve. 1 CHAPTER 1. INTRODUCTION 2 Currently bhyve supports any version of FreeBSD i386/amd64 since the FreeBSD 8.0 release. The "Guest OS Backward Compatibility for the Free BSD Hypervisor" general project is aimed to support guest Operating Systems with older versions such as FreeBSD4/5. In order to help with that, we have implemented the ATA/ATAPI 6 emulation and the NE2000 device emulation. In this work we present two different types of emulations: a generic ATA/ATAPI drive controller which runs attached on both LPC the PCI(through a Host PCI Adapter) buses and the NE2000 device under both PCI and LPC attachments. 1.2 Objectives Analysing the motivation of this project presented in the previous section, we emphasize more precisely the objectives of this project. The main objectives are to implement two device emulations in the FreeBSD hypervisor in order to provide better compatibility with the older operating systems. We start with the first objective where we intend to emulate an ATA disk and an ATAPI cdrom in order to boot a virtual machine and install it to the emulated disk. In order to accomplish this objective there are several requirements to implement: • emulate the I/O ports accesses according to the ATA/ATAPI datasheet specification; • implement the ATA 6 standard and the ATA Packet commands (the ATAPI Packet is used to communicate with the ATAPI cdrom device); • implement the PIO4 and WDMA2 data transfer protocols working at transfer rates of more than 16.700MB/s; • work with both primary and secondary channels where each of them support master and slave drives at the same time; • configure and run the ATA/ATAPI emulation under both PCI and LPC attachments. The second objective is to emulate a NE2000 network card device in order to have Internet connectivity in the guest virtual machine. In order to accomplish this objective, there are several requirements to implement: • emulate the I/O ports accesses according to the NE2000 datasheet specification; • implement the PIO data transfer protocol; • implement the management of the Packet Ring Buffers used in the packets transfer; • find a solution to transfer the Ethernet frames between the NE2000 guest network driver and the host networking stack; • configure and run the NE2000 emulation under both PCI and LPC attachments. Besides these two objectives that are related with the device emulation development, we also intend to have a testing process that will help with the correctness validation and performance evaluation for the ATA/ATAPI and NE2000 implementations. 1.3 Outline The structure of this thesis is as follows. In Chapter 2 we give a short introduction to the background information that is necessary in the understanding of our work in the device em- ulation domain. We prezent some general concepts about virtualization, the hardware speci- fications and protocols related with the ATA/ATAPI and NE2000 devices and an overview of CHAPTER 1. INTRODUCTION 3 the bhyve hypervisor. It is the purpose of Chapter 3 to present the current situation regarding the ATA/ATAPI and NE2000 emulations in the bhyve hypervisor and other emulators
Recommended publications
  • Authentication Services in Mobile Ad-Hoc Networks
    Authentication Services in Mobile Ad-hoc Networks LOgiciels-Réseaux Willy Jiménez 08013 -LOR Hakima Chaouchi Maryline Laurent-Maknavicius _______________________________________________________________________________ Authentication Services in Mobile Ad-hoc Networks ABSTRACT The deployment of wireless ad hoc networks is useful for people when they desire to communicate even if they are not connected to any infrastructure, with the purpose of playing games, sharing internet connection, or exchange files. In some ad hoc scenarios, they might know each other, so they can establish trusted relationships. However, if the number or users and mobility increase then it is more complicated to trust all users and a security mechanism is required. Few researches has been done in this field to find security solutions for MANETs deployments; one of them proposes a framework where the traditional AAA services are distributed inside the network with the idea of allowing secure exchange of services that could be chargeable. Based on this framework, we evaluate technical solutions, focusing mainly on the Authentication service; in order to have real implementations. One possibility is using virtualization technology to offer a de-centralized authentication service. Another solution is the development of a secure version of a routing protocol that uses a de-centralized authentication service as a previous requirement to allow any node to join the ad hoc routing domain. Willy Jiménez Hakima Chaouchi Maryline Laurent-Maknavicius Etudiant Maître de Conférences
    [Show full text]
  • Institutionalizing Freebsd Isolated and Virtualized Hosts Using Bsdinstall(8), Zfs(8) and Nfsd(8)
    Institutionalizing FreeBSD Isolated and Virtualized Hosts Using bsdinstall(8), zfs(8) and nfsd(8) [email protected] @MichaelDexter BSDCan 2018 Jails and bhyve… FreeBSD’s had Isolation since 2000 and Virtualization since 2014 Why are they still strangers? Institutionalizing FreeBSD Isolated and Virtualized Hosts Using bsdinstall(8), zfs(8) and nfsd(8) Integrating as first-class features Institutionalizing FreeBSD Isolated and Virtualized Hosts Using bsdinstall(8), zfs(8) and nfsd(8) This example but this is not FreeBSD-exclusive Institutionalizing FreeBSD Isolated and Virtualized Hosts Using bsdinstall(8), zfs(8) and nfsd(8) jail(8) and bhyve(8) “guests” Application Binary Interface vs. Instructions Set Architecture Institutionalizing FreeBSD Isolated and Virtualized Hosts Using bsdinstall(8), zfs(8) and nfsd(8) The FreeBSD installer The best file system/volume manager available The Network File System Broad Motivations Virtualization! Containers! Docker! Zones! Droplets! More more more! My Motivations 2003: Jails to mitigate “RPM Hell” 2011: “bhyve sounds interesting...” 2017: Mitigating Regression Hell 2018: OpenZFS EVERYWHERE A Tale of Two Regressions Listen up. Regression One FreeBSD Commit r324161 “MFV r323796: fix memory leak in [ZFS] g_bio zone introduced in r320452” Bug: r320452: June 28th, 2017 Fix: r324162: October 1st, 2017 3,710 Commits and 3 Months Later June 28th through October 1st BUT July 27th, FreeNAS MFC Slips into FreeNAS 11.1 Released December 13th Fixed in FreeNAS January 18th 3 Months in FreeBSD HEAD 36 Days
    [Show full text]
  • Virtualization Technologies Overview Course: CS 490 by Mendel
    Virtualization technologies overview Course: CS 490 by Mendel Rosenblum Name Can boot USB GUI Live 3D Snaps Live an OS on mem acceleration hot of migration another ory runnin disk alloc g partition ation system as guest Bochs partially partially Yes No Container s Cooperati Yes[1] Yes No No ve Linux (supporte d through X11 over networkin g) Denali DOSBox Partial (the Yes No No host OS can provide DOSBox services with USB devices) DOSEMU No No No FreeVPS GXemul No No Hercules Hyper-V iCore Yes Yes No Yes No Virtual Accounts Imperas Yes Yes Yes Yes OVP (Eclipse) Tools Integrity Yes No Yes Yes No Yes (HP-UX Virtual (Integrity guests only, Machines Virtual Linux and Machine Windows 2K3 Manager in near future) (add-on) Jail No Yes partially Yes No No No KVM Yes [3] Yes Yes [4] Yes Supported Yes [5] with VMGL [6] Linux- VServer LynxSec ure Mac-on- Yes Yes No No Linux Mac-on- No No Mac OpenVZ Yes Yes Yes Yes No Yes (using Xvnc and/or XDMCP) Oracle Yes Yes Yes Yes Yes VM (manage d by Oracle VM Manager) OVPsim Yes Yes Yes Yes (Eclipse) Padded Yes Yes Yes Cell for x86 (Green Hills Software) Padded Yes Yes Yes No Cell for PowerPC (Green Hills Software) Parallels Yes, if Boot Yes Yes Yes DirectX 9 Desktop Camp is and for Mac installed OpenGL 2.0 Parallels No Yes Yes No partially Workstati on PearPC POWER Yes Yes No Yes No Yes (on Hypervis POWER 6- or (PHYP) based systems, requires PowerVM Enterprise Licensing) QEMU Yes Yes Yes [4] Some code Yes done [7]; Also supported with VMGL [6] QEMU w/ Yes Yes Yes Some code Yes kqemu done [7]; Also module supported
    [Show full text]
  • Thread Scheduling in Multi-Core Operating Systems Redha Gouicem
    Thread Scheduling in Multi-core Operating Systems Redha Gouicem To cite this version: Redha Gouicem. Thread Scheduling in Multi-core Operating Systems. Computer Science [cs]. Sor- bonne Université, 2020. English. tel-02977242 HAL Id: tel-02977242 https://hal.archives-ouvertes.fr/tel-02977242 Submitted on 24 Oct 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Ph.D thesis in Computer Science Thread Scheduling in Multi-core Operating Systems How to Understand, Improve and Fix your Scheduler Redha GOUICEM Sorbonne Université Laboratoire d’Informatique de Paris 6 Inria Whisper Team PH.D.DEFENSE: 23 October 2020, Paris, France JURYMEMBERS: Mr. Pascal Felber, Full Professor, Université de Neuchâtel Reviewer Mr. Vivien Quéma, Full Professor, Grenoble INP (ENSIMAG) Reviewer Mr. Rachid Guerraoui, Full Professor, École Polytechnique Fédérale de Lausanne Examiner Ms. Karine Heydemann, Associate Professor, Sorbonne Université Examiner Mr. Etienne Rivière, Full Professor, University of Louvain Examiner Mr. Gilles Muller, Senior Research Scientist, Inria Advisor Mr. Julien Sopena, Associate Professor, Sorbonne Université Advisor ABSTRACT In this thesis, we address the problem of schedulers for multi-core architectures from several perspectives: design (simplicity and correct- ness), performance improvement and the development of application- specific schedulers.
    [Show full text]
  • Linux Hardware Compatibility HOWTO
    Linux Hardware Compatibility HOWTO Steven Pritchard Southern Illinois Linux Users Group [email protected] 3.1.5 Copyright © 2001−2002 by Steven Pritchard Copyright © 1997−1999 by Patrick Reijnen 2002−03−28 This document attempts to list most of the hardware known to be either supported or unsupported under Linux. Linux Hardware Compatibility HOWTO Table of Contents 1. Introduction.....................................................................................................................................................1 1.1. Notes on binary−only drivers...........................................................................................................1 1.2. Notes on commercial drivers............................................................................................................1 1.3. System architectures.........................................................................................................................1 1.4. Related sources of information.........................................................................................................2 1.5. Known problems with this document...............................................................................................2 1.6. New versions of this document.........................................................................................................2 1.7. Feedback and corrections..................................................................................................................3 1.8. Acknowledgments.............................................................................................................................3
    [Show full text]
  • PC 98 System Design Guide
    APPENDIX B Device Identifiers This appendix lists CompatibleIDs for Plug and Play vendor IDs and device IDs. Note: For non-BIOS enumerated Industry Standard Architecture (ISA) devices, new vendor IDs must be registered by sending e-mail to [email protected]. Contents Plug and Play Vendor and Device IDs....................................................... 372 Generic Windows Device IDs................................................................ 373 Interrupt Controllers ...................................................................... 374 Timers...................................................................................... 374 DMA....................................................................................... 374 Keyboards.................................................................................. 374 Parallel Devices ........................................................................... 375 Serial Devices ............................................................................. 375 Disk Controllers........................................................................... 376 Display Adapters.......................................................................... 376 Peripheral Buses........................................................................... 377 Real-Time Clock, BIOS, and System Board Devices................................... 377 PCMCIA Controller Chip Sets........................................................... 378 Mouse.....................................................................................
    [Show full text]
  • Comparison of Platform Virtual Machines - Wikipedia
    Comparison of platform virtual machines - Wikipedia... http://en.wikipedia.org/wiki/Comparison_of_platform... Comparison of platform virtual machines From Wikipedia, the free encyclopedia The table below compares basic information about platform virtual machine (VM) packages. Contents 1 General Information 2 More details 3 Features 4 Other emulators 5 See also 6 References 7 External links General Information Name Creator Host CPU Guest CPU Bochs Kevin Lawton any x86, AMD64 CHARON-AXP Stromasys x86 (64 bit) DEC Alphaserver CHARON-VAX Stromasys x86, IA-64 VAX x86, x86-64, SPARC (portable: Contai ners (al so 'Zones') Sun Microsystems (Same as host) not tied to hardware) Dan Aloni helped by other Cooperati ve Li nux x86[1] (Same as parent) developers (1) Denal i University of Washington x86 x86 Peter Veenstra and Sjoerd with DOSBox any x86 community help DOSEMU Community Project x86, AMD64 x86 1 of 15 10/26/2009 12:50 PM Comparison of platform virtual machines - Wikipedia... http://en.wikipedia.org/wiki/Comparison_of_platform... FreeVPS PSoft (http://www.FreeVPS.com) x86, AMD64 compatible ARM, MIPS, M88K GXemul Anders Gavare any PowerPC, SuperH Written by Roger Bowler, Hercul es currently maintained by Jay any z/Architecture Maynard x64 + hardware-assisted Hyper-V Microsoft virtualization (Intel VT or x64,x86 AMD-V) OR1K, MIPS32, ARC600/ARC700, A (can use all OVP OVP Imperas [1] [2] Imperas OVP Tool s x86 (http://www.imperas.com) (http://www.ovpworld compliant models, u can write own to pu OVP APIs) i Core Vi rtual Accounts iCore Software
    [Show full text]
  • Foreign Library Interface by Daniel Adler Dia Applications That Can Run on a Multitude of Plat- Forms
    30 CONTRIBUTED RESEARCH ARTICLES Foreign Library Interface by Daniel Adler dia applications that can run on a multitude of plat- forms. Abstract We present an improved Foreign Function Interface (FFI) for R to call arbitary na- tive functions without the need for C wrapper Foreign function interfaces code. Further we discuss a dynamic linkage framework for binding standard C libraries to FFIs provide the backbone of a language to inter- R across platforms using a universal type infor- face with foreign code. Depending on the design of mation format. The package rdyncall comprises this service, it can largely unburden developers from the framework and an initial repository of cross- writing additional wrapper code. In this section, we platform bindings for standard libraries such as compare the built-in R FFI with that provided by (legacy and modern) OpenGL, the family of SDL rdyncall. We use a simple example that sketches the libraries and Expat. The package enables system- different work flow paths for making an R binding to level programming using the R language; sam- a function from a foreign C library. ple applications are given in the article. We out- line the underlying automation tool-chain that extracts cross-platform bindings from C headers, FFI of base R making the repository extendable and open for Suppose that we wish to invoke the C function sqrt library developers. of the Standard C Math library. The function is de- clared as follows in C: Introduction double sqrt(double x); We present an improved Foreign Function Interface The .C function from the base R FFI offers a call (FFI) for R that significantly reduces the amount of gate to C code with very strict conversion rules, and C wrapper code needed to interface with C.
    [Show full text]
  • Configuration Parameters
    Good news, everyone! User Documentation Version: 2020-01-01 M. Brutman ([email protected]) http://www.brutman.com/mTCP/ Table of Contents Introduction and Setup Introduction..............................................................................................................................................................8 What is mTCP?...................................................................................................................................................8 Features...............................................................................................................................................................8 Tested machines/environments...........................................................................................................................9 Licensing...........................................................................................................................................................10 Packaging..........................................................................................................................................................10 Binaries.....................................................................................................................................................................10 Documentation..........................................................................................................................................................11 Support and contact information.......................................................................................................................11
    [Show full text]
  • Download (4MB)
    Establishing trusted Machine-to-Machine communications in the Internet of Things through the use of behavioural tests Thesis submitted in accordance with the requirements of the University of Liverpool for the degree of Doctor in Philosophy by Valerio Selis April 2018 \Be less curious about people and more curious about ideas." Marie Curie Abstract Today, the Internet of Things (IoT) is one of the most important emerging technolo- gies. Applicable to several fields, it has the potential to strongly influence people's lives. \Things" are mostly embedded machines, and Machine-to-Machine (M2M) communica- tions are used to exchange information. The main aspect of this type of communication is that a \thing" needs a mechanism to uniquely identify other \things" without human intervention. For this purpose, trust plays a key role. Trust can be incorporated in the smartness of \things" by using mobile \agents". From the study of the IoT ecosystem, a new threat against M2M communications has been identified. This relates to the opportunity for an attacker to employ several forged IoT-embedded machines that can be used to launch attacks. Two \things-aware" detection mechanisms have been proposed and evaluated in this work for incorporation into IoT mobile trust agents. These new mechanisms are based on observing specific thing-related behaviour obtained by using a characterisation algorithm. The first mechanism uses a range of behaviours obtained from real embedded ma- chines, such as threshold values, to detect whether a target machine is forged. This detection mechanism is called machine emulation detection algorithm (MEDA). MEDA takes around 3 minutes to achieve a detection accuracy of 79.21%, with 44.55% of real embedded machines labelled as belonging to forged embedded machines.
    [Show full text]
  • Computer Architectures an Overview
    Computer Architectures An Overview PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 25 Feb 2012 22:35:32 UTC Contents Articles Microarchitecture 1 x86 7 PowerPC 23 IBM POWER 33 MIPS architecture 39 SPARC 57 ARM architecture 65 DEC Alpha 80 AlphaStation 92 AlphaServer 95 Very long instruction word 103 Instruction-level parallelism 107 Explicitly parallel instruction computing 108 References Article Sources and Contributors 111 Image Sources, Licenses and Contributors 113 Article Licenses License 114 Microarchitecture 1 Microarchitecture In computer engineering, microarchitecture (sometimes abbreviated to µarch or uarch), also called computer organization, is the way a given instruction set architecture (ISA) is implemented on a processor. A given ISA may be implemented with different microarchitectures.[1] Implementations might vary due to different goals of a given design or due to shifts in technology.[2] Computer architecture is the combination of microarchitecture and instruction set design. Relation to instruction set architecture The ISA is roughly the same as the programming model of a processor as seen by an assembly language programmer or compiler writer. The ISA includes the execution model, processor registers, address and data formats among other things. The Intel Core microarchitecture microarchitecture includes the constituent parts of the processor and how these interconnect and interoperate to implement the ISA. The microarchitecture of a machine is usually represented as (more or less detailed) diagrams that describe the interconnections of the various microarchitectural elements of the machine, which may be everything from single gates and registers, to complete arithmetic logic units (ALU)s and even larger elements.
    [Show full text]
  • Building a Virtualisation Appliance with Freebsd/Bhyve/Openzfs Jason Tubnor ICT Senior Security Lead Introduction
    Building a virtualisation appliance with FreeBSD/bhyve/OpenZFS Jason Tubnor ICT Senior Security Lead Introduction Building an virtualisation appliance for use within a NGO/NFP Australian Health Sector About Me Latrobe Community Health Service (LCHS) Background Problem Concept Production Reiteration About Me 26 years of IT experience Introduced to Open Source in the mid 90’s Discovered OpenBSD in 2000 A user and advocate of OpenBSD and FreeBSD Life outside of computers: Ultra endurance gravel cycling Latrobe Community Health Service (LCHS) Originally a Gippsland based NFP/NGO health service ICT manages 900+ users Servicing 51 sites across Victoria, Australia Covering ~230,000km2 Roughly the size of Laos in Aisa or Minnesota in USA “Better health, Better lifestyles, Stronger communities” Background First half of 2016 awarded contract to provide NDIS services Mid 2016 – deployment of initial infrastructure MPLS connection L3 switch gear ESXi host running a Windows Server 2016 for printing services Background – cont. Staff number grew We hit capacity constraints on the managed MPLS network An offloading guest was added to the ESXi host VPN traffic could be offloaded from the main network Using cheaply available ISP internet connection Problem Taking stock of the lessons learned in the first phase We needed to come up with a reproducible device Device required to be durable in harsh conditions Budget constraints/cost savings Licensing model Phase 2 was already being negotiated so a solution was required quickly Concept bhyve [FreeBSD] was working extremely well in testing Excellent hardware support Liberally licensed OpenZFS Simplistic Small footprint for a type 2 hypervisor Hardware discovery phase FreeBSD Required virtualisation components in CPU Concept – cont.
    [Show full text]