Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Nov 2015 10:18:09 +0000
From:      Matt Churchyard <matt.churchyard@userve.net>
To:        FreeBSD virtualization <freebsd-virtualization@freebsd.org>
Subject:   RE: adding diskspace to a bhyve instance
Message-ID:  <6ee51d8f276a4b259bda009dc863e9e7@SERVER.ad.usd-group.com>
In-Reply-To: <564E263A.3030106@gmail.com>
References:  <20151119172034.GA93977@potato.growveg.org> <564E263A.3030106@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 19/11/15 12:20 PM, John wrote:
> Hello list,
>=20
> What's the best way of increasing the space of a bhyve guest instance?
> Would it be via growfs? Inside or outside of the vm? Or would it be=20
> better to truncate another chunk of space and refer to it in /etc/fstab?
>=20
> thanks,

> Hello John,
>=20
> -	Do you use virtio-blk (a file created with 'truncate') or ahci-hd (A
> ZFS filesystem, for example) for your guest disk? You have to increase th=
e space of the virtual disk that bhyve uses.

I see no reason to associate truncated files with virtio, and ZVOL with ahc=
i-hd. You could just as easily use virtio with a ZVOL and ahci-hd with a tr=
uncated file. The choice between the two emulation modes really just comes =
down to which is supported better by the guest, or the one that performs be=
tter in your environment. (For example Windows doesn't support virtio-blk, =
so you need to use ahci-hd regardless of whether you're using ZFS/ZVOL stor=
age or a sparse file).

>	- If you used 'truncate', my guess is that you can use truncate to create=
 a new file of larger size. Then, boot into a livecd in bhyve with both > d=
isks and do a 'dd' from one disk to the other. I have tried to 'dd' between=
 files on the host but that didn't seem to work.
>	- If it is a ZFS filesystem, create a new filesystem with 'zfs create -V =
50gb zroot/new-volume/' then use a 'zfs send ... | zfs receive ...'
>

Not that I've ever done it, but I'm under the impression you should be able=
 to just make the existing disk device bigger by 'truncating' it to a large=
r size, or by using ZFS commands to increase the size of a ZVOL. There shou=
ld be no need to create a brand new disk image and dd or send/recv the data=
 over.

Of course that's the easy bit. The more dangerous part is resizing the part=
itions inside the guest (if it's not whole disk ZFS), and then resizing the=
 filesystems. If the disk is GPT partitioned in the guest you will probably=
 have to recover the partition table first, as the secondary copy will no l=
onger exist at the end of the disk. You'll then need to resize the partitio=
ns (hopefully the 'main' partition you want to resize is the last on the di=
sk as that'll probably make it easier). Once done you then need to resize t=
he filesystem. For ZFS you can usually just 'zpool online -e'. For UFS you'=
ll need to grow the filesystem as shown in the handbook.

Adding another disk image to the guest and just using that is obviously a m=
uch simpler solution, if you're happy to permanently have multiple disks at=
tached to the guest and reorganise your data. That's what I did when one of=
 my mail vm's got too full; I just created a second disk, formatted and mou=
nted it on '/mail', and moved all the users there.

Matt

> -	Are these FreeBSD guests (and which filesystem - UFS or ZFS) or Linux
> guests?
>	- If these are FreeBSD guests running UFS, look at https://www.freebsd.or=
g/doc/handbook/disks-growing.html
>	- If these are FreeBSD guests running ZFS, you can probably create the fi=
lesystems on your new disk and then use zfs send & receive
>	- If these are linux guests, you will have to use a livecd and something =
like 'gpart'.

> Thanks,
> Manas

_______________________________________________
freebsd-virtualization@freebsd.org mailing list https://lists.freebsd.org/m=
ailman/listinfo/freebsd-virtualization
To unsubscribe, send any mail to "freebsd-virtualization-unsubscribe@freebs=
d.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6ee51d8f276a4b259bda009dc863e9e7>