SolarWinds Database on SQL Server for Linux

This post is some of my experiences with getting the SolarWinds Orion database running on a SQL Server hosted on a Linux-native system.

Please note that this is part of an early preview release offered by Microsoft and I was lucky enough to be selected to be part of the initial testing.

Since I’m setting up SolarWinds Orion nearly every day, I decided to try it against a SQL Server on Linux.

First things first:  This post has NOT been validated by SolarWinds Support, Product Management, or anything else.  What I’m writing about is purely from my own experiences.

Environment

I’ll start by going over a few things about the environment.  I’m running these two virtual machines on a Windows Server 2012 R2 Hyper-V host.  They are running side-by-side with 36 other VMs.

Orion Server (NOCORION01v)

  • 8 GB of RAM – 100% Reserved
  • 4 CPU’s – 50% Reserved
  • 4x Hard Drives @ 50 GB Each
  • Windows 2012 R2
  • See post about required Windows Features

Linux Server (NOCSQLL01v)

  • 8 GB of RAM – 100% Reserved
  • 8 CPU’s – 50% Reserved
  • 1x Hard Drive @ 50 GB
  • Redhat Enterprise Linux 7.2

Windows Installation:

Nothing special about the Windows Installation, except that I’ve configured the server as I configure most of my Orion Servers.

Linux O/S Installation:

Used wizard, kept it to minimal install.
Ran updates after first boot.
Followed instructions provided via Microsoft Preview for Installing SQL Server on Linux.

SQL Install:

  • First install failed after I provided the ‘sa’ password that normally use in my lab.
  • Removed, and re-installed.
  • Tried again with a different ‘sa’ password.  This time it took.  I guess it doesn’t like the “@” character.
  • Set reservation in DHCP and created host record in DNS.
  • Pinged around to verify DNS looked ok.

Verify Connectivity with SQL Management Studio

Opened SQL Server Management Studio.
Entered the IP address of the Linux server.
Selected SQL Server Authentication.
Used “sa” and my selected password.
Clicked Connect.
Connect to SQL Server on Linux by IP Address
Connect to SQL Server on Linux via IP Address
EUREKA!  I disconnected from that.
Reconnected with the DNS Name instead and that also worked!
Connect to SQL Server on Linux via DNS Name
Connect to SQL Server on Linux via DNS Name
Don’t like using the ‘sa’ account for everything, so I pre-built the “SolarWindsOrionDatabaseUser” account, set the password, and assigned it to the sysadmin group.

Get Software

Downloaded the latest copy of the following SolarWinds products directly from the website:

Each product offers a free 30 day trial, so I’m just running with that.

Analysis:

What I’ve found was particularly astonishing.  First off, the installation actually worked – and didn’t throw a single error!  Even for this early release, that’s very promising.

Node Management

When I opened the web console, I saw that the Orion Server was already added (via Windows Agent) and was recording information.

Orion Server Managed via Agent
Orion Server managed via Agent

Then I went about adding the Linux Server.  For this I cheated a little bit.  Since I’m a SolarWinds MVP (prior to becoming an employee), I have a few NFR licenses for various products.  One of these is SAM and I signed up for the SAM 6.3 Beta, which includes a Linux Agent.  You must be a current customer to sign up for Betas and Release Candidates.

Using the Add Node process, I deployed the agent to the Redhat server it was successful.

Linux Server via Agent
Linux Server managed via Agent

Application Management

I was then curious if AppInsight for SQL would recognize the server as running Microsoft SQL Server.  So, I added it using the “sa” credentials that I assigned earlier.

AppInsight for SQL... ... on Linux!
AppInsight for SQL… … on Linux!

Many of the metrics were not being returned.  I expected this because many of them are requested using WMI and there is no WMI on Linux.

But what surprised me was the number of metrics that WERE found.  This is just a sampling of the statistics that were returned:

Latches & Locks
Latches & Locks
Pages
Pages

Then I dug into the database itself to see what it would show.

Database Details, File Sizes, Transactions, Expensive Queries, Index Fragmentation – all of it was available.

The only metric that appeared to be missing was Database & Transaction Disk I/O – which didn’t surprise me because I/O metrics are normally queried via WMI and not available on Linux.

Unknown Values - not surprised
Unknown Values – not surprised
Clustered and Non-Clustered Fragmentation
Clustered and Non-Clustered Fragmentation

Database Performance

Lastly, as part of my personal due diligence, I added the Linux Server to Database Performance Analyzer.

It added without incident and I had to wait an hour before I saw really meaningful metrics (that’s just how it works).  But it was amazing!  Everything that I anticipated from a SQL Server on Windows was appearing for the SQL Server on Linux – including storage metrics!

Storage Metrics via Database Performance Analyzer
Storage Metrics via Database Performance Analyzer

Final Thoughts

As stated at the very beginning, I’m not reporting this information as a SolarWinds employee, nor was I asked to do this from anyone at SolarWinds.  That being said, the results that I had seem very promising that anyone who wants to run Linux as the standard in their environment will soon have even more choice when it comes to Database Management Systems.  This will open up worlds of other software opportunities for those shops.

Microsoft has made great strides in embracing the Open Source community.  Many people say “too little too late,” but I disagree.  Microsoft’s made announcements about .NET Framework, PowerShell, and now SQL running on Linux machines.  These are gigantic strides when it comes to a software company that actually makes its own operating system.  I’d recommend keeping your eyes out for further announcements leading up to and at Microsoft Ignite this year.

 

Leave a Comment