mac-vz / macvz

macOS Virtualization for linux
MIT License
85 stars 6 forks source link
go golang linux macos virtualization vm

GitHub Workflow Status Go Report Card Codacy grade GitHub

MACVZ

This project is inspired by and a rewrite of lima-vm.

The major difference is macvz uses macOS new Virtualization API instead of QEMU for spinning up VM's.

Requirements

Getting Started

Installation via Homebrew

Installation via source

Using macvz as a alternate for Docker Desktop

To start a Docker VM, run the following command

macvz start https://raw.githubusercontent.com/mac-vz/macvz/main/examples/docker.yaml

Execute the following command in macOS host to update docker.sock location

export DOCKER_HOST=unix://${HOME}/.macvz/docker/sock/docker.sock

That's it !!

Other macvz commands

To get shell access to a running VM,

macvz shell docker

To stop a running VM,

macvz stop docker

Features

Planned

Performance Summary

Summary of filesystem performance with colima

The following table contains result summary of some different workloads tested against macvz and colima

Summary for IOPS (Input Ouput Per Second)

Workload Summary macvz colima
Sequential Reads macvz handles 8x higher operations 620K 77K
Random Reads macvz handles 3x higher operations 82K 25K
Random Reads/Writes macvz handles 3x higher operations 37K/12K 14K/4K
Sequential writes macvz performs almost equally 37K 38K
Random writes macvz performs almost equally 22K 30K

Summary for Bandwidth (Maximum amount of data transmitted)

Workload Summary macvz colima
Sequential Reads macvz handles 8x more data 2500MB 306MB
Random Reads macvz handles 3x more data 320MB 98MB
Random Reads/Writes macvz handles 3x more data 140MB/50MB 60MB/20MB
Sequential writes macvz performs almost equally 145MB 150MB
Random writes macvz performs almost equally 90MB 110MB

Check out Wiki page Why use virtualization framework for detailed information

Project Status

⚠️ The project is still in early stage development and may introduce breaking changes.

Supporters