The smallest Skype for Business front-end server

There were some reasons that took me a week on this project:
– I have few resources on my personal lab (specially storage);
– take my knowledge on OS, Skype4B deployment to the limit.

 If I already ‘get on the nerves’ of customers and colleagues when I request and deploy servers with less then 100GB of HDD,  I can imagine Microsoft with the minimum requirements of 72GB of free disk space (not including the OS?).

My current standard uses a Windows 2012 server with a total of 55GB split between 3 HDD. The Operating System (Drive C) and Skype for Business Front-End (Drive D) take around 36 GB.
skype4b-win2012-size

How much smaller can you have the same Front-end server?  around 18GB (*)
skype4b-win2012r2core-size
(*)not counting the space for IIS logs, Windows Fabric traces and the Page file

The answer for this the same for the question: Can I deploy Skype for Business on a Windows 2012 R2 server core?
Here’s some good reasons to use the Windows server core edition as Microsoft describes:
– less disk space and ram consumption;
– Reduced attack surface (no GUI and less OS vulnerabilities).

In fact the core edition has 98% of the installation prerequisites for Skype for Business Server 2015. On this post I will enumerate the challenges you face if trying to do these. Some are real challenges, others are just glitches of the main Skype4B setup.

Windows Identity Foundation 3.5 (WIF)

This is one prerequisite that you will get an error, and Microsoft KB clarifies that you will not be able to install without installing 4GB of the minimal server interface. All this to get 7 small outdated files that are supposed to be included on the .Net framework 4.5 (included natively on Windows 2012 R2 Server).
In fact that is even described on the OS package:
Microsoft-Windows-Identity-Foundation-Package~31bf3856ad364e35~amd64~~6.3.9600.16384.mum: “Windows Identity Foundation (WIF) 3.5 is a set of .NET Framework classes that can be used for implementing claims-based identity in your .NET 3.5 and 4.0 applications. WIF 3.5 has been superseded by WIF classes that are provided as part of .NET 4.5. It is recommended that you use .NET 4.5 for supporting claims-based identity in your applications.

NOTE: bootstrapper.exe doesn’t validate if WIF is installed on the prerequisites stage. You will only get an installation failure at the package MicrosoftIdentityExtensions.msi.

The workaround is about being able to ‘add-package’  above 😉

IIS Management console

This is a ‘strange prerequisite’. Why do you need the IIS management console snap-in (MMC) to install/run a Skype4B ?
missing-iis-mmc
MMC support is only available installing the  minimal server interface or you will get an error when trying to install it: Add-WindowsFeature Web-Mgmt-Console.
Workaround: just provide the key that bootstrapper looks for by adding the REG_DWORD  value ‘ManagementConsole‘ to the ‘HKLM\SOFTWARE\Microsoft\InetStp\Components‘ key. You can even set to zero (not installed) since it only checks for its existence.

Media Foundation

This is a little more ‘ridiculous’. You can install media foundation on windows core:
dism.exe /online /enable-feature /featurename:ServerMediaFoundation /all
but even it appears as installed on the get-windowsfeatures, the bootstrapper will report missing
missing-mediafoundataion

The reason is that it’s checking for a different installed component: ‘Server-Gui-Shell‘ which is another additional extra to the  minimal server interface

Workaround: add the REG_DWORD value ‘Server-Gui-Shell’ (must be 1) to the ‘HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Server\ServerLevels‘ key.

The last ‘twist’

By this moment you managed to install all the Skype4B front-end components. You managed to start the main service (RTCSRV) but the ones who rely on audio (ex: RTCAVMCU, RTCCAA) and remote data access (ex: RTCDATAMCU). The reason is that 7 required dll’s are only included on the Windows server standard edition:
– DirectX11 and real-time media handlers;
– Remote Access handling.

Workaround: as soon as you get a copy of the missing 7 dll files, you manage to start the remaining Skype4B services and you now have a fully operational Front-end server!

Conclusion

From the description above, the big reason that Microsoft doesn’t support Skype4B on a Windows server core is 7 dll files that are not able to be separated from the install edition.

Off course by now, you can see that this is an option for functional testing in LAB or demos. Microsoft will never support this, even if there is a way to install all the missing parts using the several windows setup command lines available.

The other no-go would be the administration/operations team: There will be a ‘revolution’ if people find out that there was no Windows GUI to manage a server (although you can manage servers remotely with a full GUI ‘management server’.

As a last comment: using the ‘MS-approved’ Windows server, I will let you know that it’s possible to run using a Windows 2012 R2 with a little less than 30GB of HDD.
skype4b-win2012r2-size
…but there’s still room to squeeze a little more 😉

Advertisements

2 thoughts on “The smallest Skype for Business front-end server

  1. soder 12/12/2016 / 09:07

    Dnot forget, if very low free disk space, CLS logging will start complaining, and you have to configure network share for CLS logging.

    • LuisR 12/12/2016 / 09:47

      That’s why I create a 3rd volume (not visible or accountable for this exercise) for non-permanent/spool data (pagefile, temp and CLS logging are some of those categories).

      Some volume size dependens on the final server cpu/ram size and additional apps (ex: SCCM, antivirus, backup agents,…)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s