SQL Server, Hyper-V and IIS

  • Wanted to get an opinion and best practices on have SQL Server and IIS on the same physical server. I know a bad idea from a security point.

    But would this scenario work for both security and performance?

    Server would be Dual 12 Core Xeons with a total of 192GB RAM (128GB dedicated to SQL)

    Install Hyper-V service on a Windows Server 2016 (Not Hyper-V Core)

    Then a virtual machine running IIS for the website.

    The SQL server would communicated to the IIS virtual server using the internal 10GB network.

    The Window would be Raid 0 (2 drives), SQL Database Raid 10 (4 drives), SQL Logs Raid 0 (2 drives), Backups RAID 0 (2 drives), Virtual IIS Server Raid 10 (4 Drives).

    All Drives SSD, expect the Backups which would be SAS.

    Thanks in advance

  • I think I'd suggest instead, IF the OS licensing allows it, would be to load Server 2016 on the physical with the Hyper-V role, then stand up two VMs running Server 2016, one for SQL Server only and one for IIS.

    I believe back with Server 2012 Standard, you could do something like this (maybe you needed to go one up the version chain, it's been a while.)

    My reasoning would be, regardless of the method, you're still sharing the physical resources (RAM, CPU, disk,) by splitting the SQL to its' own VM, you no longer have to deal with "is it the Hyper-V causing a problem or is it a problem with SQL?"  Down the road you could even look at clustering your Hyper-V and getting some level of redundancy there, as well.

  • I was planning on putting SQL with the main OS and not a VM. Only the IIS would be the VM.

    This is a new website and if does wellI would be definitely moving things around. This is just a starting point before investing in lots of hardware. If the website gets over 5000 users simultaneous (I think this server should handle). But after that load balancing, etc.

  • Eclipse2000 wrote:

    I was planning on putting SQL with the main OS and not a VM. Only the IIS would be the VM.

    This is a new website and if does wellI would be definitely moving things around. This is just a starting point before investing in lots of hardware. If the website gets over 5000 users simultaneous (I think this server should handle). But after that load balancing, etc.

    Understood, but what I'm suggesting would involve installing the OS 3 times:

    • Once on the bare metal server
    • One VM dedicated to IIS
    • One VM dedicated to SQL Server

    If I'm reading the MS Windows Server 2016 Licensing Datasheet (Sorry, can't paste the link as I found it through Google and get the nasty Google link) correctly, you're allowed two "Operating System Environments (OSEs/Windows Servers containers with Hyper-V isolation)" which would imply you could do what I suggested and stay within the license restrictions (note, I am not, nor ever have been, a Microsoft Licensing Specialist, check with your license vendor.)

    Your spec'ed hardware certainly ought to be beefy enough to spin things up the way I suggest (especially if you leave the host OS doing nothing BUT Hyper-V.)

  • Got it. I thought it would be a performance boost if SQL was not in a VM but on the base OS, But I may be wrong about that.

  • also take in consideration the SQL Server licensing - physical vs virtual isn't the same and having standard or enterprise also changes what you can do with it.

    example using your machine

    Physical licensing - 2*12 Cores (24 cores /48 HT) = 12 * 2 core pack licensing

    Virtual licensing - assume IIS gets less cores allocated

    VM1 - 2 * 4 cores = 16 vCPU - IIS

    VM2 - 2 * 8 cores = 32 vCPU - SQL Server = 16 * 2 Core pack licensing - can be either standard or enterprise

    To license the machine for virtualization you would need to buy enterprise edition

    on your particular idea I'm not even sure how it would work so talking to Microsoft is really advisable.

    One thing that I would do on this case is to ensure Processor affinity so that the CPU's SQL is using are not the same that you allocate to the IIS VM.

     

Viewing 6 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply