Virtualization Techniques to Enable Transparent Access to Peripheral Devices Across Networks
Total Page:16
File Type:pdf, Size:1020Kb
VIRTUALIZATION TECHNIQUES TO ENABLE TRANSPARENT ACCESS TO PERIPHERAL DEVICES ACROSS NETWORKS By NINAD HARI GHODKE A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE UNIVERSITY OF FLORIDA 2004 Copyright 2004 by Ninad Hari Ghodke ACKNOWLEDGMENTS I would like to acknowledge Dr Renato Figueiredo for his direction and advice in this work and his patience in helping me write this thesis. I thank Dr Richard Newman and Dr Jose Fortes for serving on my committee and reviewing my work. I am grateful to all my friends and colleagues in the ACIS lab for their encouragement and help. Finally I would thank my family, for where and what I am now. This effort was sponsored by the National Science Foundation under grants EIA-0224442, ACI-0219925 and NSF Middleware Initiative (NMI) collaborative grant ANI-0301108. I also acknowledge a gift from VMware Corporation and a SUR grant from IBM. Any opinions, findings and conclusions or recommenda- tions expressed in this material are those of the author and do not necessarily reflect the views of NSF, IBM, or VMware. I would like to thank Peter Dinda at Northwestern University for providing access to resources. iii TABLE OF CONTENTS page ACKNOWLEDGMENTS ............................. iii LIST OF TABLES ................................. vi LIST OF FIGURES ................................ vii ABSTRACT .................................... viii CHAPTER 1 INTRODUCTION .............................. 1 2 APPLICATIONS ............................... 4 2.1 Network Computing in Grid and Utility Computing Environments 5 2.2 Pervasive Computing ......................... 7 3 SYSTEM CALL MODIFICATION ..................... 9 3.1 Introduction .............................. 9 3.2 Implementation ............................ 9 3.2.1 Architecture .......................... 9 3.2.2 Tracing Thread ........................ 10 3.2.3 Remote Device Server ..................... 11 3.3 Handling of System Calls ....................... 11 3.3.1 The open() System Call .................... 12 3.3.2 The close() System Call .................... 13 3.3.3 The read() and write() System Calls ............. 13 3.3.4 The ioctl() System Call .................... 14 3.3.5 The getpid() System Call ................... 14 3.4 Related Work ............................. 14 3.4.1 Ufo Global File System .................... 15 3.4.2 Janus .............................. 15 3.4.3 User Mode Linux ....................... 15 3.5 Conclusions .............................. 16 4 INTERCEPTION OF ACCESSES TO ISO9660 IMAGE ......... 17 4.1 Introduction .............................. 17 4.2 Implementation and Architecture .................. 19 4.2.1 Architecture .......................... 19 iv 4.2.2 Implementation ........................ 22 4.2.3 Handling Media Changes ................... 23 4.2.4 Integration with Middleware ................. 24 4.3 Performance Measurements ...................... 24 4.3.1 Experimental Setup ...................... 25 4.3.2 Benchmarks .......................... 26 4.3.3 Results and Analysis ..................... 27 4.4 Related Work ............................. 30 4.5 Conclusion ............................... 31 5 KERNEL DEVICE DRIVER ........................ 32 5.1 Introduction .............................. 32 5.2 Implementation ............................ 33 5.2.1 Architecture .......................... 33 5.2.2 Device Driver ......................... 35 5.2.3 Sound Server .......................... 36 5.2.4 Quality of Audio output ................... 36 5.3 Applications of Remote Sound Transfer ............... 38 5.3.1 Interactive Applications in Network Computing ...... 38 5.3.2 Fair Use of DRM-Enabled Media ............... 39 5.4 Prevention of Illegal Copying ..................... 39 5.4.1 Inspection of Hardware .................... 40 5.4.2 Detection Through the Use of Special Instructions ..... 40 5.4.3 Detection Through Timing Analysis ............. 40 5.5 Discussion: Impact of Future Technologies ............. 41 5.6 Related Work ............................. 43 5.7 Conclusions .............................. 44 6 CONCLUSIONS AND FUTURE WORK .................. 46 6.1 Conclusion ............................... 46 6.2 Future Work .............................. 46 6.2.1 Virtualization Using Interposition of Libc .......... 47 6.2.2 Filtering Mechanisms for Remote Sound System ...... 47 6.2.3 Virtualization of Block Devices as USB Memory ...... 48 6.2.4 Sound Capture Mechanism for Remote Sound ....... 48 6.2.5 Applications Using Virtual Devices ............. 48 REFERENCES ................................... 49 BIOGRAPHICAL SKETCH ............................ 52 v LIST OF TABLES Table page 4–1 Configuration of test machines used for LAN and WAN testing .... 25 4–2 Overheard time in seconds for creating ISO images and their transfer . 27 4–3 Measured total execution times for LAN experiments .......... 28 4–4 Speedup of VIRT versus other configurations in LAN environment .. 28 4–5 Measured total execution times for WAN experiments ......... 29 4–6 Speedup of VIRT versus other configurations in WAN environment .. 29 4–7 Sensitivity analysis: Effects of buffer caching for LAN tests ...... 30 vi LIST OF FIGURES Figure page 1–1 Scenario using virtual devices ...................... 2 2–1 Setup of a VM-based network computing environment ......... 6 2–2 Setup of a VM-based pervasive computing environment ........ 7 3–1 Architecture and the control flow of system call tracing technique .. 10 4–1 Implementation of a Virtual Remote CD-ROM ............. 21 5–1 Implementation of the remote sound system .............. 34 5–2 Output resulting from playing a 130s sound sample .......... 37 vii Abstract of Thesis Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Master of Science VIRTUALIZATION TECHNIQUES TO ENABLE TRANSPARENT ACCESS TO PERIPHERAL DEVICES ACROSS NETWORKS By Ninad Hari Ghodke August 2004 Chair: Renato J Figueiredo Major Department: Computer and Information Science and Engineering We virtualized peripheral devices to allow them to be accessed over a network in a manner that is transparent to applications. The peripherals virtualized work in conjunction with middleware to achieve access, location, and migration transparencies. Such functionality is useful for virtual-machine based network- computing systems that support interactive applications, and for virtual-machine based solutions for ubiquitous computing. We tested three techniques for device virtualization. The first technique used system call interception and modification to perform remote operations on the device. This enables virtualization completely at the user-level, without the need for super-user access. The second technique consists of transparent interception of accesses from a guest operating system, to a virtualized device image file; and mapping of requests to device-specific actions by a user-level server. This solution relies on native host mechanisms Network File System (NFS) client for interception of accesses to an ISO-9660 image file, and a server that reads from the physical device using a generic SCSI interface for CD-ROM access. This solution can potentially be used viii to access devices other than CD-ROMs (e.g., USB memory or tape drives). A prototype based on the NFS protocol and the CD-burning package “cdrecord” has been implemented and tested on GNU/Linux and can be ported to other systems. The third technique is virtualization at the device driver layer. It has been implemented for the remote transfer of audio streams generated by a virtualized audio device for an Operating System running in a Virtual Machine. The audio stream when played in the guest O/S is intercepted by the VMM, which then writes to the host sound device driver in WAV/PCM format. The host sound driver in this case is the remote sound device driver, which transfers this stream to a remote sound server across the network, where it can then be played on the user’s workstation. This technique was developed for transfer of audio streams over the network in a transparent fashion for arbitrary, unmodified applications using a virtual sound card. Because the virtual device intercepts raw WAV/PCM audio packets produced by a guest’s device driver, it cannot distinguish DRM-enabled media from unprotected media; thus the remote sound system is unable to enforce DRM protection schemes. ix CHAPTER 1 INTRODUCTION Classic virtual machines (VMs) [1] create a number of different execution environments on a single computer, each of which exactly emulates the physical hardware of a computer. This gives the user the illusion of running on physical hardware, isolated from other VMs, all on a single physical machine. Virtual devices (in a similar vein) create an illusion of a device for an application, which may map to a physical device. This physical device may be located across a network, and may be a different type of device than the device presented to the application. The primary aim of virtual devices is to make devices attached to a server machine accessible across the network to another client machine in a transparent fashion. Applications using this device do not require any modifications, and are not aware that they are accessing a device attached to a different machine. The machine on which the application runs is the client, and the machine to which the device is attached is the server. The operating systems need not be the