machine-drivers / docker-machine-driver-xhyve

docker-machine/minikube/minishift driver plugin for xhyve/hyperkit (native macOS hypervisor.framework)
https://godoc.org/github.com/machine-drivers/docker-machine-driver-xhyve
BSD 3-Clause "New" or "Revised" License
888 stars 74 forks source link

Add support for using a raw disk for storage #169

Closed dalehamel closed 7 years ago

dalehamel commented 7 years ago

What

This adds a new storage option - "raw disks".

Why

In testing, the "raw disk" storage method seems to be about 10 times faster for our use case than the ahci-hd method. I'm not certain as to why, but I have heard that virtio-blk is supposedly lower overhead.

How

I followed the existing standard provided for Qcow2 and the default ahci-hd method for implementing this.

To actually create the volume, we simply create a file, close it, then truncate it to the size that we want.

For mounting it, we just use virtio-blk.

Testing

I have confirmed this works with minikube, by setting RawDisk to true manually in my own minikube binary.

@zchee for review

dalehamel commented 7 years ago

@zchee CI seems flakey

dalehamel commented 7 years ago

@zchee is this project actively being maintained? I see a few pull requests open with no comments

dalehamel commented 7 years ago

cc @dlorenc @r2d4 as it looks like you guys are involved as well :)

zchee commented 7 years ago

@dalehamel Sorry, I am in the hospital. check it later.

zchee commented 7 years ago

@dalehamel See https://github.com/zchee/docker-machine-driver-xhyve/issues/166 Sorry no comments.

dalehamel commented 7 years ago

Sorry to hear that - feel better!

On Apr 15, 2017 at 08:56, <Koichi Shiraishi (mailto:notifications@github.com)> wrote:

@dalehamel (https://github.com/dalehamel) Sorry, I am in the hospital. check it later.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub (https://github.com/zchee/docker-machine-driver-xhyve/pull/169#issuecomment-294291647), or mute the thread (https://github.com/notifications/unsubscribe-auth/AAlwd3GlUpj24hFmDowxBXr0H1SN3FYzks5rwL5jgaJpZM4M6ITE).

dalehamel commented 7 years ago

@zchee for when you're feeling better, I'm wondering if I can help get circle CI builds running?

I think the cache may need to be flushed, as it seems to think that the working directory is not a git repository:

Submodule 'vendor/lib9p' (https://github.com/jceel/lib9p.git) registered for path 'vendor/lib9p'
fatal: Not a git repository: /Users/distiller/.go_workspace/src/github.com/zchee/docker-machine-driver-xhyve/vendor/lib9p/../../.git/modules/vendor/lib9p
Failed to clone 'vendor/lib9p'. Retry scheduled
BUG: submodule considered for cloning, doesn't need cloning any more?
fatal: Not a git repository: ../../.git/modules/vendor/lib9p
Unable to fetch in submodule path 'vendor/lib9p'

The travis build passes, if you'd like I can upload binaries to make this easy for you to try out to ensure it works.

zchee commented 7 years ago

@dalehamel Hm, I'll check clean caches. But travisci is passed, binary uploads uses travisci. so I consider disable circleci for now. Also, mainly your PR is LGTM. thanks. I'll merge it if I best condition.

dalehamel commented 7 years ago

@zchee awesome, let me know if there's anything I can do to help.

What is the release cycle like after a merge? In order to PR support for this to minikube I will need to reference a release containing support for this.

Hope you are feeling better

zchee commented 7 years ago

@dalehamel Merged. thanks.

What is the release cycle like after a merge? In order to PR support for this to minikube I will need to reference a release containing support for this.

This project is my private project. The releases cycle is random(feeling? I don't know what say in English). But it seems to minikube wants to new version of this driver. I'll bump new version.

zchee commented 7 years ago

@dalehamel Sorry, forgot. The update also README.md is great (if you have time)

dalehamel commented 7 years ago

thanks @zchee - i submitted an updated readme for your review.