KVM之虚拟机管理
目录
本篇文章介绍 KVM 虚拟机的管理,包括虚拟机的创建、修改、启动、删除等内容
安装虚拟机
使用 virt-install 安装
virt-install 是一个命令行工具,专门用于安装 kvm 虚拟机。执行以下命令:
|
|
进入安装流程:
|
|
可以使用 vnc 客户端连接虚拟机。
参数说明:
- -–name 指定虚拟机的名字
- –-ram 指定内存分配多少
- –-disk path 指定虚拟磁盘放到哪里,size=30 指定磁盘大小为30G,这样磁盘文件格式为raw,raw格式不能做快照,后面有说明,需要转换为qcow2格式,如果要使用qcow2格式的虚拟磁盘,需要事先创建qcow2格式的虚拟磁盘。 参考 http://www.361way.com/kvm-qcow2-preallocation-metadata/3354.html 示例:qemu-img create -f qcow2 -o preallocation=metadata /data/test02.img 7G; –disk path=/data/test02.img,format=qcow2,size=7,bus=virtio
- –-vcpus 指定分配cpu几个
- -–os-type 指定系统类型为linux
- –-os-variant 指定系统版本
- -–network 指定网络类型
- -–graphics 指定安装通过哪种类型,可以是vnc,也可以没有图形,在这里我们没有使用图形直接使用文本方式
- -–console 指定控制台类型
- -–location 指定安装介质地址,可以是网络地址,也可以是本地的一个绝对路径,(–location ‘/mnt/’, 其中/mnt/下就是我们挂载的光盘镜像mount /dev/cdrom /mnt)如果是绝对路径,那么后面还需要指定一个安装介质,比如NFS
- –extra-args 额外参数,需要和 –location 配置使用
- –cdrom 指定操作系统镜像位置
错误处理
安装过程中出现三个错误:
错误一
第一个错误如下:
|
|
解决方式是重启宿主机
错误二
第二个错误如下:
|
|
解决方式修改 /etc/libvirt/qemu.conf
配置文件,添加 user 和 group 配置:
|
|
重启服务:
|
|
错误三
第三个错误是执行命令 virsh console centos
时卡住:
|
|
解决方式如下:
确认 ttyS0
存在在 /etc/securetty
文件中,没有就执行以下命令:
|
|
修改 /etc/default/grub
文件:
|
|
重新生成 grub 文件:
|
|
启动 serial-getty 服务:
|
|
操作虚拟机
KVM 在 Hypervisor 中被称作域(domain)。使用 virsh
命令可以很有效的管理域。
virsh 中管理域的命令:
命令 | 功能描述 |
---|---|
list | 获取当前节点上的所有域的列表 |
domstate <ID or Name or UUID> | 获取一个域的运行状态 |
dominfo <ID> | 获取一个域的基本信息 |
domid <Name or UUID> | 根据域的名称或UUID返回域的ID |
domname <ID or UUID> | 根据域的ID或UUID返回域的名称 |
dommemstat <ID> | 获取一个域的内存使用情况的统计信息 |
setmem <ID> <mem-size> | 设置一个域的内存大小(默认单位为KB) |
vcpupin <ID> <vCPU> <pCPU> | 将一个域的 vCPU 绑定到某个物理 CPU 上运行 |
setvcpus <ID> <vCPU-num> | 设置一个域的 vCPU 的个数 |
vncdisplay <ID> | 获取一个域的 VNC 连接 IP 地址的端口 |
create <dom.xml> | 根据域的 XML 配置文件创建一个域(客户机) |
suspend <ID> | 暂停一个域 |
resume <ID> | 唤醒一个域 |
shutdown <ID> | 让一个域执行关机操作 |
reboot <ID> | 让一个域执行重启操作 |
reset <ID> | 强制重启一个域,相当于在物理机上按带电源 “reset” 按钮 (可能会破坏该域的文件系统) |
destroy <ID> | 立即销毁一个域,相当于直接拔掉物理机机器的电源线(可能会破坏该域的文件系统) |
save <ID> <file.img> | 保存一个运行中的域的状态到一个文件中 |
restore <file.img> | 从一个被保存的文件中恢复一个域的运行 |
migrate <ID> <dest_url> | 将一个域迁移到另外一个目的地址 |
dumpxml <ID> | 以 XML 格式转存出一个域的信息到标准输出中 |
attach-device <ID> <device.xml> | 向一个域添加 XML 文件中的设备(热插拔) |
detach-device <ID> <device.xml> | 将 XML 文件中的设备从一个域中移除 |
console <ID> | 连接到一个域的控制台 |
虚拟机生命周期
|
|
限制和修改虚拟机 cpu
先关闭虚拟机,修改虚拟机 xml 文件:
|
|
开启虚拟机后,动态设置虚拟机 cpu
|
|
限制和修改虚拟机内存
修改虚拟机内存最大值需要先关闭虚拟机
|
|
动态设置虚拟机内存
|
|
在线添加和删除虚拟机硬盘
先创建硬盘:
|
|
创建 disk.xml 文件
|
|
添加硬盘设备:
|
|
卸载硬盘设备
|
|
在线添加和删除虚拟机网卡
添加 bridge 网卡
|
|
卸载网卡
|
|
修改虚拟机 vnc
先关闭虚拟机
|
|
修改虚拟机文件
|
|
注: 虚拟机 vnc 的端口必须在 5900 - 65535 之间
加载配置文件
|
|
最后启动虚拟机
|
|