ecalder6 / azure-gaming

Cloud Gaming Made Easy
MIT License
268 stars 79 forks source link

Updates to set VM name, storage type & IP allocation type #39

Closed andiradulescu closed 3 years ago

andiradulescu commented 4 years ago

Hey @ecalder6 !

Really love your work!

I needed some changes to your scripts so I took the liberty to add everything I needed.

Please take a look and let me know if you need me to make any changes in order to merge this.

Cheers, Andrei

P.S. You can test what I did here: https://github.com/andiradulescu/azure-gaming/ ("dev" branch)



EDIT: the following were removed from this PR:

ecalder6 commented 4 years ago

Thanks for the PR! The problem with using Windows 10 is that it requires a volume license. image

andiradulescu commented 4 years ago

I tried to look up more info related to what you say, but with not much success. Can you explain or give me a link to where you found what’s in the screenshot?

From what I believe, Microsoft should be charging the Windows 10 Pro license automatically, since the image is provided by Microsoft, and it doesn’t “complain” (it appears as “Activated”).

When you create a new VM from the Azure portal, you have the option to select “Windows 10 Pro”. This makes me, as a user, believe the pricing for the license is going to be “pay as you go”, as the cost for the VM is also “pay as you go”. image

In configuration, after the VM is created, this is shown. image

What I can do next is contact Azure and ask if I need a license or it’s being charged automatically, to clarify this.

AmineI commented 4 years ago

Interesting changes, besides the Windows 10 choice. What benefits does it brings, by the way ?

I tried to look up more info related to what you say, but with not much success. Can you explain or give me a link to where you found what’s in the screenshot?

There's no link I'm afraid since this is a dynamic page, but you can access it by typing "Windows 10" in Azure's search bar. You can also see #15 for previous talks about that

ecalder6 commented 4 years ago

Windows 10 is more consumer friendly than Windows Server. One major benefit of using Windows 10 is that you can play Windows Store games (including Xbox Game Pass for PC).

I agree that these licensing info are hard to find. Before making the change to Windows 10, we need to be 100% sure that all users (not just users with enterprise/volume license) can deploy Windows 10 machine.

Below is what you see when you try to create a windows 10 VM. It will be difficult to convince Microsoft to change their Windows licensing policy. image

AmineI commented 4 years ago

Windows 10 is more consumer friendly than Windows Server. One major benefit of using Windows 10 is that you can play Windows Store games (including Xbox Game Pass for PC).

Ohhh, right, the Windows Store ! I totally labeled this as a "Azure-steam-gaming" thingy, so the consumer friendly part did not matter because it'd always be in Steam. But you're right, the store would be a significant benefit !

andiradulescu commented 4 years ago

@AmineI - besides Windows 10 the benefits are:

All of these were needed in my own scenario. I can change this PR as you guys see fit. @AmineI I really like what you did in https://github.com/ecalder6/azure-gaming/pull/41 - @ecalder6 +1 to merge it - after getting merged, I will also update my PR.

Also, I opened a service request with Azure and I expect an answer regarding the licensing. I got a reply from the Support Professional that he "will be reaching out to Windows 10 team" and get back to me.

andiradulescu commented 4 years ago

Benchmark results:

Standard HDD

Standard HDD

Standard SSD

Standard SSD

AmineI commented 4 years ago

@AmineI - besides Windows 10 the benefits are:

  • removed Standard_NV6_Promo from LowPri since it's not supported - it works with Standard_NV6
  • option to set the VmName - in my scenario I didn't want "CloudGaming" as the VM name and I couldn't deploy two VMs with this template since they had the same name
  • option to set IP allocation to Static/Dynamic - I noticed I got logged out of Steam when using a Dynamic IP, after restarting the VM - also, it was annoying because I also need to access the VM from mobile with RD Client and I needed to set the new IP after every restart
  • option to set storage type to Standard SSD besides Standard HDD - I know @ecalder6 isn't a fan :) of Standard SSD, but I did a benchmark and SSD is somewhat faster on read speed

All of these were needed in my own scenario. I can change this PR as you guys see fit. @AmineI I really like what you did in #41 - @ecalder6 +1 to merge it - after getting merged, I will also update my PR.

Also, I opened a service request with Azure and I expect an answer regarding the licensing. I got a reply from the Support Professional that he "will be reaching out to Windows 10 team" and get back to me.

Yes, I noticed and liked your changes as well - I didn't mean to say your PR had no benefit, on the contrary ! I was only wondering about the benefits of switching to W10, not the others. I would have updated to Windows Server 2019 and not W10, but the Windows Store advantage makes sense ! The only dark point is the Windows 10 licensing issue

ecalder6 commented 4 years ago
  • option to set storage type to Standard SSD besides Standard HDD - I know @ecalder6 isn't a fan :) of Standard SSD, but I did a benchmark and SSD is somewhat faster on read speed

I am a fan of SSD :)

The problem is that I don't think real SSDs are supported for NV skus. This doc mentions that Premium Storage is not supported for NV series VMs.

I believe only NVv2 series and later support SSD, as noted by this bullet point:

N-series VMs differ in the type of Azure Storage they support for their disks. NC and NV VMs only support VM disks that are backed by Standard Disk Storage (HDD). NCv2, NCv3, ND, NDv2, and NVv2 VMs only support VM disks that are backed by Premium Disk Storage (SSD).

AmineI commented 4 years ago

The problem is that I don't think real SSDs are supported for NV skus. This doc mentions that Premium Storage is not supported for NV series VMs.

Correct for Premium SSD, but Standard SSD should work on any VM, which is already a benefit over Standard HDD, although lower than Premium SSD

andiradulescu commented 4 years ago

@ecalder6 - I was joking about you not being a fan of "Azure Standard SSD" - I'm sure you're a fan of SSDs as everyone else ;)

More details about Standard SSDs here: https://azure.microsoft.com/en-gb/blog/preview-standard-ssd-disks-for-azure-virtual-machine-workloads/

Performance

Standard SSD disks are designed to provide single-digit millisecond latencies for most IO operations. Also, the above disk sizes are designed to deliver up to 500 IOPS and 60 MBPS throughput similar to the HDD disks. Actual IOPS and Throughput may vary sometimes depending on the traffic patterns. Standard SSD disks will provide more consistent performance than the HDD disks with the lower latency.

Premium SSD disks, on the other hand, perform better than Standard SSD disks, with very low latencies, high IOPS/throughput and even better consistency with provisioned disk performance, and it is the recommended disk type for all other production workloads.

More details about Pricing here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/

ecalder6 commented 4 years ago

Got it! I didn't know standard SSD was a thing. Thanks for correcting me!

Lmk when Microsoft responds. Also feel free to split Windows 10 change to another PR if you'd like to check this one in first.

AmineI commented 4 years ago

Also feel free to split Windows 10 change to another PR if you'd like to check this one in first.

Perhaps the best of both worlds would indeed be a separate PR, implementing a parameter for the OS. There are a few examples on this Azure blog post.

That would let people choose between W10/WS, and thus get rid of any eventual licensing issues (Only users that own the appropriate licences would select W10, the other would have to select WS). But perhaps it would introduce configuration issues - I'm unsure if all the configuration done in the extensions/setup would work on both WS & W10.

andiradulescu commented 3 years ago

@AmineI @ecalder6 - cleaned the changes included in this PR - let me know what I need to add - changes to README, maybe something else.

AmineI commented 3 years ago

Cleaned the changes included in this PR - let me know what I need to add - changes to README, maybe something else.

Just reviewed indeed ! I think adding the IP type description to the Readme (in the description of the parameters) could be a nice addition, especially since they could get charged more if you have more than 5, according to https://azure.microsoft.com/en-us/pricing/details/ip-addresses/ .

"CloudGaming" is hard-written in the readme for quite a few instructions, we could replace it by "The VM Name", but it is a minor change.

ecalder6 commented 3 years ago

Changes look good! Should be good to merge after you rebase and add readme changes for new parameters.

andiradulescu commented 3 years ago

@ecalder6 @AmineI - I updated the README and also added Premium SSD to the template. Let me know if anything else is needed. Thanks!