All Projects → OndrejHome → fast-vm

OndrejHome / fast-vm

Licence: GPL-3.0 License
'fast-vm' is a script for defining VMs from images provided in thin LVM pool.

Programming Languages

shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to fast-vm

Virtlet
Kubernetes CRI implementation for running VM workloads
Stars: ✭ 620 (+2718.18%)
Mutual labels:  vm, libvirt
virtnbdbackup
Backup utiliy for Libvirt / qemu / kvm supporting incremental and differencial backups.
Stars: ✭ 62 (+181.82%)
Mutual labels:  libvirt
ubuntu-firecracker
Build the ubuntu kernel and rootfs for firecracker
Stars: ✭ 54 (+145.45%)
Mutual labels:  vm
kcs
Scripting in C with JIT(x64)/VM.
Stars: ✭ 25 (+13.64%)
Mutual labels:  vm
ProxmoxVE PHP API
ProxmoxVE PHP API
Stars: ✭ 78 (+254.55%)
Mutual labels:  vm
vm-automation
VirtualBox automation using Python
Stars: ✭ 1 (-95.45%)
Mutual labels:  vm
cassowary
Run Windows Applications on Linux as if they are native, Use linux applications to launch files files located in windows vm without needing to install applications on vm. With easy to use configuration GUI
Stars: ✭ 1,818 (+8163.64%)
Mutual labels:  vm
roborio-vm
Scripts to create QEMU virtual machine from the RoboRIO image file
Stars: ✭ 33 (+50%)
Mutual labels:  vm
dextop
Dextop - Linux-based distribution workstation on Android
Stars: ✭ 24 (+9.09%)
Mutual labels:  vm
Animach
Scheme语言实现和运行时环境 / A Scheme runtime & implementation
Stars: ✭ 45 (+104.55%)
Mutual labels:  vm
venix
No description or website provided.
Stars: ✭ 22 (+0%)
Mutual labels:  vm
VMwareWorkstation
手动上传官网的VMwareWorkstation安装包
Stars: ✭ 309 (+1304.55%)
Mutual labels:  vm
md server
Standalone EC2 metadata server to simplify the user of vendor cloud images with standalone kvm/libvirt
Stars: ✭ 36 (+63.64%)
Mutual labels:  libvirt
lima
Linux virtual machines, typically on macOS, for running containerd
Stars: ✭ 8,723 (+39550%)
Mutual labels:  vm
tsharkVM
tshark + ELK analytics virtual machine
Stars: ✭ 51 (+131.82%)
Mutual labels:  vm
winup
Automate a Windows 10 VM setup for coding and testing
Stars: ✭ 21 (-4.55%)
Mutual labels:  vm
deploy-vm
Libvirt wrapper to spawn VMs using cloud images
Stars: ✭ 56 (+154.55%)
Mutual labels:  libvirt
libvirt-exporter
Prometheus metrics exporter for libvirt.
Stars: ✭ 52 (+136.36%)
Mutual labels:  libvirt
js5005
js5005 is a virtual CPU with every logic gate simulated. A pretty interface, a built in assembler, display, and 256 bytes of RAM to boot. It's the better i4004.
Stars: ✭ 14 (-36.36%)
Mutual labels:  vm
halcyon-vagrant-kubernetes
Vagrant deployment mechanism for halcyon-kubernetes.
Stars: ✭ 12 (-45.45%)
Mutual labels:  libvirt
layout date title categories
page
2020-05-17 16:06:30 +0900
FAST-VM
fast-vm

FAST-VM

fast-vm — script for defining VMs from images provided in thin LVM pool

fast-vm provides command-line interface to create virtual machines (VMs) in libvirt, based on imported disks in LVM and XML templates.

5-minute Quick Start (fast-vm 1.6) {#quickstart}

Check the videos below on how to:

DOCUMENTATION and USER GUIDE {#documentation}

user and installation guide: https://www.famera.cz/blog/fast-vm/user_guide.html

man pages:

  • fast-vm(8)
  • fast-vm-image(8)
  • fast-vm.conf(5)
  • configure-fast-vm(8)
  • fast-vm-net-cleanup(8)
  • fast-vm-list(8)

Other resource: https://www.famera.cz/blog/fast-vm/index.html

Supported/Tested OS {#supported_os}

Distribution Installation method

  • RHEL 7.8 RPM
  • RHEL 8.1 RPM
  • CentOS 7.8 RPM
  • CentOS 8.1 RPM
  • Fedora 30/31/32 RPM
  • Debian 10.4 DEB
  • Ubuntu 18.04 DEB
  • Ubuntu 20.04 DEB
  • Gentoo ebuild

Requirements {#requirements}

  • libvirt with qemu/kvm
  • libxml2 (xmllint)
  • LVM thin pool support
  • LVM VG with reasonable amount of free space (to create LV with thin pool)
    • you can use losetup to create a loopback device with LVM
  • preconfigured VM disk images and XML files (downloadable separately)
  • dhcp_release for proper DHCP static leases release
  • flock for image locking (prevent use of not fully imported images)
  • (optional) bash-completion for bash completion to work
  • (optional) pv to show import progress
  • (optional) curl to pass http(s) link for image_import
  • (optional) OVMF UEFI image for UEFI support in images
  • (optional) libguestfs-make-fixed-appliance to generate system-wide libguestfs appliance
  • (optional) sshpass to try default password first in keydist operation

How to contribute {#contribute}

check CONTRIBUTING.md

License and Support {#license_support}

fast-vm is distributed under GPLv3 (or newer if it exists). Author will try to supports only the newest release.

Author {#author}

Ondrej Famera [email protected]

Known bugs/limitations {#known_bugs_limitations}

  • initial setup requires root
  • Gentoo might require user to be in group kvm to use guestfish from hacks files
  • VM images are provided separately
  • using dhcp_release to remove DHCP static reservation is not the cleanest way of doing so, but there is no other supported way of doing this through libvirt (TODO: make RFE/BUG into libvirt)
  • sometimes the VM doesn't get designated IP address because the dnsmasq holds the lease for some older MAC address (dhcp_release should be fixing this but it's not 100% working solution) - use fast-vm-net-cleanup to fix this issue
  • (from fast-vm-1.3) random failures of virsh list are not handled. For example if virsh list is called 2 times and second time it fails, then fast-vm doesn't handle that well. Re-running command helps. This was observed on my testing machine, but I failed to reproduce behaviour. The logs shows following error around time when this happens error : virHashForEach:597 : Hash operation not allowed during iteration
  • (upgrading to 'fast-vm-1.4) because of the VM metadata location change you need to run the configure-fast-vm as root after upgrade to migrate the metadata to new location

FAQ {#faq}

Q: Why is it using LVM?
A: Because LVM provides very reasonable management of block devices and writable snapshots with thin provisioning.

Q: Why is it not using file-based disk images?
A: It takes much more space.

Q: Why not to use file-based disk images with cow (copy-on-write) image?
A: Because if you change the image, the cow images will get corrupted unless you somehow re-export them. By using LVM this is not a concern as the LVM is keeping track of changes and will preserve the changes stuff in snaphost so it is safe to edit base image while having machines that are based on previous version of the base image.

Q: Why not to use BTRFS cow?
A: BTRFS is not as widely spread as LVM and it is not clear if it would be able to provide same functionality as LVM. There is possibility that I will look at this in the future.

Q: Are there any similar projects similar to fast-vm?
A: Sure there are, below is a short list of some I run through or I was told about:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].