Mark Russinovich talks Windows Server 2008, Hyper-V and Windows Vista

image

Mark Russinovich is the founder of SysInternals the software company that was acquired by Microsoft recently.  He's been made a Technical Fellow (the highest technical role at Microsoft) and is now working on the Kernel of Windows, so he knows his way around Windows Server 2008, Windows Vista and Windows 7 pretty well.

I just finished watching this great Channel 9 video recorded before Christmas where Mark delves into the guts of Server 2008, Virtualization featuring Hyper-V and Windows Vista.  You can see the video yourself here.

As he was talking I made some rough notes using OneNote and I thought it would be useful if I shared them with you.  He also did some whiteboard diagrams which I captured in powerpoint for you.

Here are my notes (apologies for bad english - these are notes :-))

  • Kernel
    • Numa hardware
      • Main benefit found in the Big data center
      • Memory is closer to one core than the other for performance
      • OS is aware of having memory closer to one core depending on which app is running on that core
      • In Server 2003 the scheduler was starting to become aware. Tried to keep thread on the ideal node - the idea being that the cache will be warm
      • Numa system - keep thread close to the node where the memory will be localised hopefully for that thread
  • Vista kernel is a snapshot of what the Server kernel has become
  • Vista SP1 will be very close to that of the Server 2008 kernel
  • Prioritised memory, IO
  • Transaction registry and NTFS - rollback capability
    • Plugs into SQL and can span across multiple resources
  • IO
    • Scalability improvements in completion ports - minimises number of context switches on network workloads
  • Server Core
    • 1.2 GB size
    • Cuts off a lot of stuff you might not want in a server - using dependency layers to figure out how to slice off or break dependencies in a graceful way
  • MinWin
    • Not related to Server Core
    • Name used in earlier dev of Server Core - mentioned at WinHEC which caused the confusion
    • Carves out majority of code to leave smallest components of Windows
    • Smallest testable version of Windows
    • Making sure that MinWin has no dependencies in Windows and can run completely independently
      • e.g. No windowing (GDI etc)
  • Hyper-V architecture
    • Very small hypervisor
    • Root partition contains the root OS and device drivers in the root talk direct to the hardware
    • In child partitions device drivers talk via the Virtual Bus to the root parition device drivers which in turn talk directly to the hardware
    • What about performance? We ensured that this is very high performance
    • Surface area is a small as possible with thin Hyper-V and virtual bus to allow us to be confident that child partitions are rock solid and malicious apps can't get access to the hypervisor
    • Native drivers on root can be used
  • Virtualisation Scenarios
    • Possibility of having role based software in a partition e.g. Management, AV or Telephony
  • Application Virtualisation Architecture
    • A.k.a. Softgrid
    • Part of MDOP
    • Virtualised apps e.g. Office will write to a virtualised version of the registry and file system
    • Apps and their virtualised registry and file systems can be moved easily from one pc to another which provides rapid provisioning
  • Kernel changes
    • Enhancements in Server 2008 and Vista
      • Security
        • service hardening has evolved a little bit from Vista into Server 2008 - least privileges
      • New networking protocol in SMB 2 which requires Vista and Server 2008 to work
        • Overcomes limitations of original SMB protocol which was developed 15 years ago e.g. It assumes certain data transmission characteristics which don't make sense any more like small buffers - 60k packet size
        • WAN optimisation where there is latency between hosts - batching now takes place to reduce the number of round trips required
      • Transactional File System and Transactional Registry
        • Used by Windows Update to apply patches, so the update is protected in a transaction. When it makes some changes to files and registry these are recorded by the transactions which provides guarantees that even if there is power interruption the files and registry will not be corrupted by the update being only partially written.
        • Changes go into a log and when the transaction is committed all the changes are applied in one go rather than incrementally.

Here are the whiteboard diagrams he used to explain Server Virtualization and Application Virtualization:

image

Figure 1 - Where Hyper-V sits relative to the OS

 

image

Figure 2 - How child partitions use the Virtual Bus to provide communication between device drivers and the physical hardware

 

image

Figure 3 - How Application Virtualization works compared to standard app install (regular office)