由于条件限制,一直没有机会在Linux下尝试安装kvm虚拟机,前几天刚好给笔记本安装了Ubuntu18.04,虽然个垃圾本,但是用来跑Linux是绰绰有余。而很多程序都不支持Linux,所以只能通过虚拟机安装Windows的方式来运行他们。
实验环境
操作系统:Ubuntu 18.04.1 LTS
宿主机:联想G400笔记本
CPU:i5-3230M
内存:8G
检查CPU是否支持虚拟化
cat /proc/cpuinfo |grep vmx
通过apt安装所需软件包
sudo apt install qemu-kvm bridge-utils libvirt virtinst
配置网桥
KVM客户机连接网络常见的有三种方式:
NAT模式:该方式是将主机作为路由器,充当客户机的网关,将客户机的外网流量NAT至主网卡从而使客户机能够访问互联网,该方式的缺点是外部网络无法连接到客户机,当然在宿主机上通过iptables来关闭nat并在上层路由器配好路由的话,是可以让外网来访问客户机的。
桥接物理网络模式:在该模式下,宿主机充当一台交换机,客户机通过宿主机(交换机)来获取上级DHCP分配的IP地址,此时客户机与宿主机处于同一网段内,外部网络以及宿主机都可以与客户机进行连接。
Host-Only模式:该模式与NAT模式类似,唯一不同的是只有宿主机才能与客户机建立连接。
我这里进行实验的网络配置为桥接模式,客户机能够直接与宿主机处于同一网段,方便访问。
Ubuntu/Debian系的操作系统,网卡的配置信息存在/etc/network/interfaces文件内或者在/etc/network/interfaces.d目录内。
建立桥接网络应先配置虚拟网桥,这里将网桥设备命名为br0
sudo nano /etc/network/interfaces
在文件下方加入选项
auto br0 iface br0 inet dhcp bridge_ports enp2s0 bridge_stp off bridge_fd 0
保存后重启网络即可
sudo systemctl restart networking
编辑虚拟机的VNC选项以便进入客户机控制台
sudo nano /etc/libvirt/qemu.conf
取消以下选项的注释,修改后保存
vnc_listen = "0.0.0.0" vnc_password = "设置你的密码"
重新启动libvirtd
sudo /etc/init.d/libvirtd restart
创建虚拟磁盘
先创建一个目录用于存放虚拟机的安装镜像及磁盘文件
sudo mkdir -p /home/kvm/iso sudo mkdir -p /home/kvm/instance
使用qemu-img命令创建一块大小为20G,格式为qcow2的虚拟磁盘,用于等会挂载到客户机上,名称可自定义
qemu-img create -f qcow2 /home/kvm/instance/instance01.qcow 20G
配置客户机并完成系统安装
首先下载镜像,这里演示的是安装CentOS6.10 64位
wget -P /home/kvm/iso/ http://mirrors.163.com/centos/6/isos/x86_64/CentOS-6.10-x86_64-minimal.iso
使用virt-install命令定义一台客户机
virt-install \ --name=instance01 \ --virt-type=kvm \ --hvm --ram=1024 \ --vcpus=1 \ --network bridge=br0,model=virtio \ --graphics vnc,port=5900 \ --disk path=/home/kvm/instance/instance01.qcow,bus=virtio \ --os-type=linux \ --cdrom=/home/kvm/iso/CentOS-6.10-x86_64-minimal.iso
参数解读
--name:客户机名称,最后配置文件会存在/etc/libvirt/qemu/目录下 --virt-type:虚拟类型,一般是kvm,也可以是xen等等 --ram:分配给客户机的内存大小 --vcpus:分配给客户机的CPU个数 --network:网络配置,这里将网桥设备配置为br0,驱动为virtio --graphics:VNC相关配置,必选,用于通过VNC进入客户机控制台并进行系统安装 --disk path:输入刚才生成的虚拟磁盘的路径,将虚拟磁盘挂载到客户机,驱动为virtio --os-type:操作系统类型 --cdrom:输入系统iso镜像路径,用于系统安装
上一步骤的命令执行完毕后,客户机会立即启动,所以可以通过VNC客户端,连接相应的端口进行操作系统的安装
客户机的管理命令
在宿主机上,管理客户机的工具主要是virsh命令,常用命令有:
列出所有客户机
sudo virsh list --all 或者 sudo virsh --connect qemu:///system list --all
启动客户机
sudo virsh start 客户机名
关闭客户机
sudo virsh shutdown 客户机名
shutdown的方式往往不能够关闭虚拟机,所以应给客户机安装acpid并设为开机自启
sudo yum -y install acpid /etc/init.d/acpid start chkconfig --add acpid
连接客户机控制台
sudo virsh console 客户机名
强行关闭一台客户机(从列表删除,可重新定义)
sudo virsh destroy 客户机名
从xml文件定义一台客户机,用于解决destroy后,客户机不在列表的问题
sudo virsh define /etc/libvirt/qemu/客户机名
彻底删除客户机
sudo virsh undefine 客户机名
挂起客户机
sudo virsh suspend 客户机名
恢复被挂起的客户机
sudo virsh resume 客户机名
使客户机在宿主机开机后自动启动
sudo virsh autostart 客户机名
取消客户机随宿主机的启动而启动
sudo virsh autostart --disable
评论