VirtualBox

非root帐号运行VM

在openSUSE
11.3中,root帐号可以正常地创建、注册、启动、停止和注销VM,然而non-root帐号就不行,使用vboxmanage的时候提示:
ERROR: failed to initialize COM! 请教了google大神,该问题得以解决:
1、修改/etc/udev/rules.d/10-vboxdrv.rules KERNEL=="vboxdrv",
NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0600"
2、将加入vboxusers组

3、将/vbox.images目录属主更改为

在前面的章节中,我将VirtualBox默认目录更改为/vbox.images/
4、将non-root的machinefolder更换为/vbox.images/ \$ vboxmanage
setproperty machinefolder *vbox.images* 5、重新注册VM \$ vboxmanage
registervm /vbox.images/netmgmt-deb6/netmgmt-deb6.vbox 6、启动VM \$
vboxheadless –startvm netmgmt-deb6 –vrde=off &

KVM kvm

KVM设置共享文件夹 <http://wiki.qemu.org/Documentation/9psetup>

QEMU qemu

softmmutargets和usertargets

softmmutargets定义了full system
emulation,这种模式下可模拟完整的机器,甚至可模拟出不同架构的机器。
usertargets指在用户空间运行模拟,这种模式下可让ARM架构下编译的程序在x8664环境下执行

enable-kvm

不启用kvm情况下,qemu的命令选项都能执行,但在性能上会有很大损失。

安装操作系统

  1. Linux环境下

`` example
qemu-system-x86_64 -enable-kvm -smp 2 -m 2048 -net nic -drive file=ubuntu.qcow2,if=virtio -boot order=cd -cdrom ../iso/ubuntu-14.04.3-server-i386.iso -vnc :1,password -monitor stdio
qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 4,maxcpus=4,cores=2,threads=2 -m 8192 -net nic -drive file=ubuntu64.qcow2,if=virtio -boot order=cd -cdrom /home/luyanfei/soft/ubuntu-14.04.3-server-amd64.iso -vnc :1,password -monitor stdio


  1. Windows环境下
example

qemu-system-x86_64.exe -m 2048 -nic bridge -hda linux.qcow2 -boot order=cd -cdrom TinyCore-current.iso


<h2 id="配置网络">配置网络</h2>

script指向的文件必须添加执行权限。

example

sudo qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 4,maxcpus=4,cores=2,threads=2 -m 8192 -net nic,model=virtio -net tap,ifname=tap0,script=qemu-ifup-nat.sh,downscript=qemu-ifdown-nat.sh -drive file=/opt/vm/ubuntu64.qcow2,if=virtio -vnc :1,password -monitor stdio
sudo qemu-system-x86_64 --enable-kvm -cpu host -m 2048 -net nic,model=virtio -net tap,ifname=tap0,script=/home/luyanfei/mydocs/scripts/qemu/qemu-ifup-nat.sh,downscript=/home/luyanfei/mydocs/scripts/qemu/qemu-ifdown-nat.sh -drive file=/opt/vbox/ubuntu/ubuntu.qcow2,if=virtio -vnc :1 -monitor stdio


tap设备可直接处理太网帧,tun设备处理IP帧。以NAT模式配置虚拟机网卡,虚拟机上的网卡即为宿主机上的tap网卡,只要设置了tap网卡的IP地址,也就相当于设置了虚拟机上网卡的IP地址。如果在虚拟机上设置IP地址,到宿主机上用ifconfig查看,可能会无法显示IP地址。
gentoo中tunctl所在的包为sys-apps/usermode-utilities。

<h2 id="qemu-img">qemu-img</h2>

  1. Create Qcow2 Disk Image
example

$ qemu-img create -f qcow2 -o size=10G ubuntu.img


  1. Get Information About Disk Image
example

$ qemu-img info ubuntu.img


  1. Shrink Disk Image
example

$ qemu-img convert -O qcow2 ubuntu.qcow2 ubuntu_s.qcow2


  1. Compress Disk Image
example

$ qemu-img convert -O qcow2 -c ubuntu.qcow2 ubuntu_c.qcow2


  1. Check Disk Image For Errors
example

$ qemu-img check ubuntu.qcow2


  1. Increase Disk Image Size
example

$ qemu-img resize ubuntu.qcow2 +5GB


<h1 id="Vagrant">Vagrant</h1>

<h2 id="添加ubuntu-cloud-image">添加ubuntu-cloud-image</h2>

vagrant box add
<https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box>
–name ubuntu/bionic

<h1 id="Kubernetes">Kubernetes</h1>

<h2 id="安装">安装</h2>

查看版本依赖

example

[root@localhost yum.repos.d]# kubeadm config images list

``