By Ron Grattopp …..Of course there will be lots of goodness coming in Windows Server “8” (WS8 for the rest of this post), in fact, we consider it transformational, that is, with WS8 our server technology is making a paradigm shift of sorts away from the traditional focus on an individual physical server OS to one that is the foundation of a more flexible, virtualized, cloud-oriented infrastructure. Understand that I’m NOT saying WS8 is cloud-based, we have Azure that provides that capability, but rather our server platform going forward will be focused on providing value around all-up efficiency, operational agility, and automation along with significant enhancements and integration of virtualization – this is why you’ll see lots of buzz and seeming focus on “private cloud” since the things I just called out are part an parcel of enabling that kind of infrastructure. I hope that you realize, however, that all of things were are doing to enable cloud also make life better for every one of our customers even if a private cloud isn’t on your horizon. For instance, one of the key improvements we are making in WS8 is around something known as the “Server Core install” (hence the title of this post, and which I’ll refer to simply as Core for the rest of the post). Before I go on, I want to give a shout out to this Windows Server blog, which goes into way more detail around Core, but I suspected that many SMB partners might miss it because of title around private cloud. (And let remind you up front that WS8 is still in “beta” so everything I mention here comes with the standard disclaimer that it could change or be different in the actual RTM version of the code.)
The Server Core install actually was launched back in the original Windows Server 2008. Prior to that Windows Server was installed as a “monolithic” OS, in which most of the OS components were installed by default – even those features you didn’t want (you would have to go in after the install to lockdown or disable any functionality you didn’t want –having the knowledge and skill to do this was a major partner value-add back in the day). And it included the GUI components as a part of every install. So Server Core install was implemented as way to install a minimal (non-GUI-based) OS that provided just enough platform for the admin to then load “roles” (i.e. Hyper-V, DNS, etc) allowing that server to provide the desired functionality with minimal foundation OS footprint which, of course, reduced security attack exposure as well as patching needs, not to mention that it significantly reduced install time and with reduced patching there were fewer reboots and improved uptime. This was great, and very successful for those businesses that could use it, but adoption was hindered because of 3 key Core install limitations in version 1: only about half of the server roles ran on Core (and key workloads like SQL were not supported on Core), Core did not support use of PowerShell, and finally, there was no conversion from Core install to Full server mode (you basically had to re-install from scratch if you needed to change). Windows Server 2008 R2 Core added one additional role as well as support for PowerShell, still the fact that you couldn’t migrate between the modes without re-installing was problematic for many IT shops.
Which brings me to the reason for this post. WS8 has made great strides in eliminating the barriers to adoption for Server Core, in fact, in WS8, Server Core is now the recommended deployment configuration (as well as the default). Of course, this recommendation wouldn’t be the case if we hadn’t fixed that last major stumblingblock above as well as improved on the list of supported roles, and we have done that as well as significantly enhanced PowerShell.
I have lifted the following table from the blog post referenced above as a quick visual to show you how Core has evolved:
Windows Server 2008
Windows Server 2008 R2
Windows Server “8”
13 roles and SQL Server 2012 support
Command line scripting only
PowerShell + 230 cmdlets
PowerShell + greater than 2,430 cmdlets and Server Manager support
Mutually exclusive: install in Server Core mode or in Full Server mode only
Ability to add/remove roles to move between Server with a GUI Minimal Server Interface Server Core as well as a features on demand capability
So let’s drill down on the WS8 Server Core improvements for a minutes.
First, without going into the full list of roles, let me highlight a couple of key one for SMBs: in addition to AD, DHCP, DNS, File/Storage services, Print/Document services, Hyper-V, and Web servers, WS8 adds support for the WSUS and RRAS (Routing and Remote Access Server) roles and potentially even more importantly will support SQL 2012 running on Server Core (a huge boost for security and even availability).
As mentioned above, IT can transition between Server Core and Server Graphical Shell at any time, with a single command and a single reboot. Accordingly, installation and removal of server GUI components is available from the command line, PowerShell, and within Server Manager. Also, as you see in the table above, there are now over 2,300 PowerShell cmdlets to enable command-line and remote management of all server roles. And, there are enhancements to Core itself to increase application compatibility; for example, the full .NET Framework 4.5 is now available out of the box on Core.
Here’s some interesting notes. Because (in WS8) you can freely switch between these options at any time later, you might want to initially install the Server with a GUI option, use the graphical tools to configure the server, and then later switch to the Core option. Another option would be to start with a Server with a GUI installation and then remove Server Graphical Shell, resulting in the “Minimal Server Interface” (which is new in WS8). This is similar to a Server with a GUI installation, but Internet Explorer 10, Windows Explorer, the desktop, and the Start screen are not installed; however, Microsoft Management Console (MMC), Server Manager, and a subset of Control Panel are still present.
Here’s another fact about WS8 that my be valuable: in previous versions of Windows, even if a server role or feature was disabled, the binary files for it were still present on the disk, consuming space. In WS8, not only can you disable a role or feature, but you can also completely remove its files (a state called “disabled with payload removed”). Of course, to reinstall a role or feature that is disabled with payload removed, you must have access to an installation source.
So, to recap, from an architectural perspective, the Server Core component in WS8 has been updated and streamlined so as to serve as a minimal common base install for all Windows Server editions, and, it is now possible to go from a Server Core machine with a command-prompt-only user interface to Server with a GUI and the complete Windows desktop. Moreover, it is just as easy to do the reverse transition. Either transition can be accomplished in only a few minutes and requires (at most) a single reboot. Here’s another graphic I lifted from the other blog to give you a visual perspective.
If this is interesting to you, I would encourage you to read the more comprehensive blog linked above, especially if you want more info on the Minimal Server Interface (MSI) which I only briefly mentioned here but I suspect will be a very popular option in SMB IT shops that aren’t highly virtualized and/or don’t have the management tools such as System Center or the expertise to rely solely on PowerShell. And here’s another good blog on the MSI. And while I’m encouraging you to find out more about Windows Server “8” let me also point out this blog that might be useful, Where to Find Previous Windows Server “8” Posts.
In closing, I hope you see that our advancements in Server Core for WS8 are not just beneficial to those intending to deploy private cloud solutions but indeed should be compelling reasons (IMHO) for SMB/partner IT shops to consider moving to Windows Server “8” (currently in beta) to support easier and quicker deployments of their servers as well as benefits such as reduced security attack surface, reduced maintenance/patching and reboots, and optimized disk and memory runtime requirements that will increase your operational efficiency and uptime.