在Linux下通过命令行部署KVM虚拟机

自渡
2018-10-15 / 0 评论 / 3,353 阅读

由于条件限制,一直没有机会在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
0

评论

博主关闭了当前页面的评论