KVM 虚拟化手册

KVM1)是内核内建的虚拟机,在KVM中可运行各种未更改的Linux, Windows 或任何其他系统镜像。

2.1 检查KVM兼容性

检查是否支持KVM:2):

egrep -c '(vmx|svm)' /proc/cpuinfo

2.2 系统优化

2.3 配置bridge网络

Note: 默认libvirt(kvm的管理工具)会生成一个NAT网络,提供192.168.122.0/24的子网,供kvm虚拟机连接互联网. 更多时候是使用 linux bridge网络类型,让kvm虚拟机接入网络.

查看桥接配置:

ip a
brctl show

3.1 CentOS 7

yum install kvm qemu-kvm qemu-img libvirt libvirt-devel libvirt-client libvirt-python virt-install virt-viewer virt-top bridge-utils libvirt-bash-completion -y
systemctl start libvirtd && systemctl enable libvirtd
reboot

3.2 Ubuntu 18.04

apt install qemu-kvm libvirt-bin virtinst bridge-utils libosinfo-bin libguestfs-tools virt-top -y
modprobe vhost_net 
lsmod | egrep 'vhost|kvm'
echo vhost_net >> /etc/modules
reboot
# ubuntu 18.04配置virsh命令的bash_completion:
curl -o /etc/bash_completion.d/virsh_bash_completion https://raw.githubusercontent.com/LuyaoHuang/virsh-bash-completion/master/virsh_bash_completion

3.3 debian 10

apt install qemu-kvm libvirt-daemon libvirt-daemon-system virtinst libosinfo-bin bridge-utils sgabios -y
# qemu qemu-system qemu-utils libvirt-clients
modprobe vhost_net 
lsmod | grep vhost 
echo vhost_net >> /etc/modules

Note: 如果虚拟机为windows,且磁盘控制器为virtio的情况下,因windows不自带virtio驱动,所以安装程序会找不到磁盘,需将virtio的驱动集成到安装光盘内,或者在安装过程中切换virtio的驱动光盘!

4.1 创建虚拟机实例

使用ISO:

virt-install --name $name \
    --ram $ram \
    --vcpus $vcpus,sockets=1,cores=$cores,threads=$threads \
    --arch=x86_64 \
    --os-type=$type \
    --os-variant=$release \
    --accelerate \
    --cdrom $iso \
    --boot menu=on,useserial=on \
    --disk path=/mnt/share/kvm/$disk.img,size=$size,format=raw,bus=virtio,cache=writeback \
    --network bridge=br1,model=virtio \
    --graphics vnc,port=$port,listen=0.0.0.0,password=$pass \
    --channel char_type='unix',target_type='virtio',name='org.qemu.guest_agent.0'

使用http资源:

virt-install \
--name tt \
--ram 4096 \
--disk path=/tank/kvm/tt.img,size=100 \
--vcpus 8 \
--os-type linux \
--os-variant rhel7 \
--boot menu=on,useserial=on \
--network bridge=br1 \
--graphics none \
--console pty,target_type=serial \
--location 'http://mirrors.163.com/centos/7/os/x86_64/' \
--extra-args 'console=ttyS0,115200n8 serial'

参数说明:

  • –name: 指定虚拟机名称;
  • –ram: 分配内存大小;
  • –vcpus: 分配CPU核心数,最大与实体机CPU核心数相同;
  • –disk: 指定虚拟机镜像,size指定分配大小单位为G;
  • –network: 网络类型,此处用的是默认,一般用的应该是bridge桥接;
  • –accelerate: 加速;
  • –cdrom: 指定安装镜像iso;
  • –vnc: 启用VNC远程管理,一般安装系统都要启用;
  • –vncport: 指定VNC监控端口,默认端口为5900,端口不能重复;
  • –vnclisten: 指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0;
  • –os-type: 类型可为linux,windows;
  • –os-variant: 类型可为win7,winxp,win2k8,win2k3,freebsd8,generic,rhel6,rhel7;
  • –channel: 此行参数添加`virtio serial`设备,使得虚拟机和HOST可以不通过网络就能通信,为`QEMU guest agent`做准备;

4.2 通过VNC进行安装

通过上一步操作后,虚拟机已经创建好了,并且自动启动了.

下面就是通过一个vnc客户端来连接到宿主机的指定端口来做操作虚拟机的系统安装了.

注意: 需要host安装virt-viewer.

  • virtualization/kvm/kvm虚拟化手册.txt
  • 最后更改: 2019/09/03 23:31
  • 由 mrco