I'm looking for information about Mac VMs.
I want to create 10 VMs of different MacOS on a server for testing and automation.
Does someone here have experience with this matter?
It must be legally approved by Apple of course!
There are 3 parts to that:
1. Apple hardware server strong enough for handling 10 VMs.
2. MacOS licensing - my biggest issue right now (cant find information)
3. Virtualization software that compatible with Apple hardware server.
Basically depends on how beefy you need those VM's to be. Are you simply testing OS X? Testing basic apps? Running advanced apps/services?
For what it is worth, at our recent CCT course, the instructor was running approx 12 VM's with the JSS off of a single laptop, but this was relatively light web page access, not messing around in the OS X GUI itself (and I don't know what OS he was actually running the VM's under, but would be a little surprised if it was OS X).
For hardware, I'd expect you want a Mac Pro. Depending on your needs, RAM is likely going to matter more than raw CPU, and the 16gb limit of a Mac mini or similar isn't going to go far when split 10-ways.
Licensing... tricky. Best bet is to call up Apple. I believe that technically, the license says 2 guest VM's per machine. But I don't believe there are any technical restrictions.
Software: You can go with something as basic as VMWare Fusion/Parallels, or, if you want a light footprint, and have the staff expertise to deal with it, I'd consider ESX as a host.
Virtual macOS instances are a licensing minefield. From here, this is what my non-lawyer brain surmises (but check with your organization's legal department for 3-5 additional, differing, opinions):
- A preinstalled license gets you 0 virtualized instances
- A Mac App Store license gets you 2 virtualized instances on an otherwise-licensed Mac (so 3 total including the host)
- Volume/academic licenses are based on the terms of that agreement
For what it is worth, at our recent CCT course, the instructor was running approx 12 VM's with the JSS off of a single laptop
in recent classes our instructors ran multi-context JSS on a laptop, but I heard some use cloud instance?
Ideally, as others have suggested, ESXi and VMWare Fusion 8 Pro would be great, its our favorite, and my personal favorite too. :)
Unfortunately our client uses Parallels, so we use it for testing/development, using snapshots and linked clones, on beefy Mac Pros.
PS, definitely wouldn't recommend virtualizing (hacking) macOS on a non-macOS host...unsupported, illegal, etc...
First of all thank you all for those really fast replies!
Are there other virtualization products I can consider ?
I guess VMware are the best but it probably the most expensive and I must Offer a cheaper alternative as well.
Also, When Running all those VMs, I want to run a few apps that are likely to drain the RAM ,
So I guess I need to have a minimum of 2 GB per VM.
Can i find a Server with a 32 GB (for a 20 RAM requirement)?
If anyone have more details about the licensing of those OS please share.
That is the most complicated part , that we must do by the book.
@yarin For host hardware, you'd definitely want a MacPro. You can install ESXi for free, and that would provide a much more stable environment for hosting that many VMs compared to Fusion (not that you couldn't do it in Fusion, but ESXi is designed for it). See virtuallyGhetto's Mac Section and Rich Trouton's ESXi related posts for more info.
Last I checked the T&C for macOS only allows two virtual instances of macOS on a piece of Mac Hardware.
(iii) to install, use and run up to two (2) additional copies or instances of the Apple Software within virtual operating system environments on each Mac Computer you own or control that is already running the Apple Software, for purposes of: (a) software development; (b) testing during software development; (c) using macOS Server; or (d) personal, non-commercial use.
(I realize this has been mentioned in passing above, but this is the most recent SLA from Apple and the line that specifies acceptable use.)
Just throwing that out there.
2 VMs per host? Sounds like 5 Mac minis it will need to be.
I run about 8 - 10 minis each with 2 VMs. You'll want 16-GB RAM and probably a 1-TB SSD. I suppose you could get by with 512-GB if you won't be snapshotting & cloning much.
I recently burned out the RAM in one 2012 mini running Parallels. After taking a closer look I think there's a design flaw with cooling on the 2012 mini. I installed SystemPal on all of my machines running Parallels (and a few others). Temps on the 2012 minis will spike to 200° when opening VMs or if the VM is doing something wonky.
I also started looking at 2012 conference room minis not running Parallels. Temps will spike to 190°+ for tasks like watching video with Silverlight. Or doing a Time Machine backup over ethernet (around 180° - 190°).
My Mac Pros (tower and coffee can) don't have temperature issues. Nor do the couple of 2014 minis I have.
macOS is legally allowed to be virtualized on underlying Mac hardware. ESXi 6 officially supports the MacPro6,1 only, IIRC.
vCenter is the way to go if you want to manage hosts easily.
I one configured with 128 GB of RAM that I host our vCenter appliance on and esxi host. Right now it's running our deploystudio server, some test VMs, and a couple of windows and linux. You may want to read up on best practices regarding resource provisioning etc if you plan on hosting many VMs.