macOS VM image management in Anka Build – macOS cloud solution

Anka Build from Veertu is a complete software solution to configure a macOS cloud on a cluster of Mac hardware (on-prem or hosted) and run macOS VMs like you would run containers.

If you use container based CI setup, you can take the same DevOps process and implement them for CI on macOS for your iOS apps. Alternatively, if you are more used to working with VMs, you can work with Anka VMs in a similar fashion. Anka Build solution supports both methods for DevOps.

Anka macOS VM is created, virtualized and run on top of Anka virtualization technology running on each mac hardware node. In this blog, we will describe the image structure of Anka macOS VM and image management strategy in Anka Registry component.

Creating macOS VM

Use `anka create` method to create a VM with base macOS. While using `anka create` you can specify the disk size for your VM using the `-d` or `–disk-size` parameter. This is not reserved capacity but the total maximum VM hard drive capacity. As you install additional software inside Anka macOS VM, the disk size gets allocated dynamically.

Execute `anka show VM` to look at actual hard drive size.

Anka Show

Anka Show

Cloning Anka VMs

`anka clone VM1 VM2` creates a snapshot file pointing to the parent VM1. Any more changes to VM2 are made only in the snapshot and is still pointing to the parent VM1. The parent VM1 can be changed and/or deleted, but the clone VM2 will stay unaffected. When both parent and clone exists, since the clone is not completely duplicated, the overall disk space is optimized.

Stopping and Suspending Anka VMs

Anka optimizes VM disk space usage on every stop and suspend operation by going over the entire file system and freeing up unclaimed blocks.

Managing Anka VM versions of Anka Registry

You can incrementally install software components on base macOS VMs and maintain versions in Anka Registry. At any time, you can pull an older version of a VM from the Registry.

Anka registry commands

Anka registry commands

Anka VM image hierarchy management

Anka VM image hierarchy management diagram

Anka VM image hierarchy management diagram

Anka VM image and version management are built to optimize disk space usage on the Mac nodes running the VM and also data transfer times when pushing and pulling the VMs on the Mac nodes.