KVM虚拟化笔记
安装
- KVM/QEMU/LIBVIRTD
- kvm是Linux的内核的模块,它需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V,内存的相关如intel的EPT和AMD的PVI技术
- qemu是一个虚拟化仿真工具,通过ioctl与内核kvm交互完成对硬件的虚拟化支持
- libvirt是一个对虚拟化管理的接口和工具,提供用户端程序virsh,virt-install,virt-manager,virt-view与用户交互
必备软件
qemu-kvm
-为kvm提供底层仿真支持
libvirt-daemon
-libvirtd守护进程,管理虚拟机
libvirt-client
-用户端软件,提供客户端管理命令
libvirt-daemon-driver-qemu
-libvirtd连接qemu驱动
可选功能
- virt-install # 系统安装工具
- virt-manager # 图形管理工具
- virt-v2v # 虚拟机迁移工具
- virt-p2v # 物理机迁移工具
虚拟化平台的安装
1 | yum install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu |
KVM虚拟机的组成
虚拟机组成
- 内核虚拟化模块(KVM)
- 系统设备仿真(QEMU)
- 虚拟机管理程序(LIBVIRT)
- 一个xml文件(虚拟机配置声明文件)位置 /etc/libvirt/qemu
- 一个磁盘镜像文件(虚拟机的硬盘)位置 /var/lib/libvirt/images/
virsh命令介绍
virsh虚拟机管理
1 | list [--all] 列出所有虚拟机 |
在终端使用console会出现未知异常。
1 | edit 修改虚拟机的配置 |
virsh虚拟网络管理
记忆方法其实很简单,不看net-的内容,只看后面的,其实跟虚拟机操作命令差不多
1 | net-list [--all]列出虚拟机 |
磁盘管理
虚拟机常见的磁盘镜像文件有两种格式,分别是qcow2和raw
特点\类型 | RAW | QCOW2(写复制) |
---|---|---|
KVM默认 | 否 | 是 |
I/O效率 | 高 | 较高 |
占用空间 | 大 | 小 |
压缩 | 不支持 | 支持 |
后端盘复用 | 不支持 | 支持 |
快照 | 不支持 | 支持 |
qemu-img命令
- qemu-img是虚拟机的磁盘管理命令,支持非常多的磁盘格式,例如raw,qcow2,vdi,vmdk等等
qemu-img 命令格式
1 | qemu-img 命令 参数 块文件名称 大小 |
创建新的镜像盘文件
1 | qemu-img create -f 格式 磁盘路径 |
查询镜像盘文件的信息
1 | qemu-img info 磁盘路径 |
-b使用后端模板文件
1 | qemu-img create -b disk.img -f qcow2 disk1.img |
- 案例创建一个磁盘格式为qcow2名字为a.img,大小50G的磁盘文件,查看这个磁盘文件的信息
1 | [root@yyt ~]# qemu-img create -f qcow2 a.img 50G |
XML文件
1 | virsh edit 虚拟机名称 |
- name 虚拟机名称
- memory unit=’KiB’ 最大使用内存
- currentmemory 当前虚拟机配置内存 (一般情况下保持相等)
- vcpu cpu
批量创建虚拟机
virsh扩容磁盘
- virsh虚拟机管理
domblklist
查看虚拟机硬盘信息blockresize --path 绝对路径 --size 50G openstack
(动态扩容)
扩容思路
- 首先是硬盘
- 其次是分区
- 再次是文件系统
根分区扩容
- 语言必须要设置为英文
LANG=C
- 查看磁盘设备是否有多余空间
lsblk
- 扩容第一个分区
growpart /dev/vda 1
1表示第一个分区 - 扩容文件系统 ``xfs_growfs /dev/vda1
- df -hT
- 语言必须要设置为英文
命令行安装虚拟机
需要了解和牢记以免出现没有图形化的时候无法操作
准备工作
开启vnc访问
1 | vim /etc/libvirt/qemu.conf |
重启libvirtd服务
1 | systemctl restart libvirtd |
使用命令行安装
1 | virt-install \ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 yyt!