虚拟化
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。
虚拟化主要厂商及产品
系 列 PC/服务器版代表
VMware VMware Workstation、vSphere
Microsoft VirtualPC、Hyper-V
RedHat KVM、RHEV
Citrix Xen
Oracle Oracle VM VirtualBox
安装虚拟化服务器平台
KVM /QEMU /LIBVIRTD
– KVM是 linux 内核的模块,它需要 CPU 的支持,采用
硬件辅助虚拟化技术 Intel-VT,AMD-V,内存的相关
如Intel的 EPT 和 AMD 的 RVI 技术
– QEMU 是一个虚拟化的仿真工具,通过 ioctl 与内核
kvm 交互完成对硬件的虚拟化支持
– Libvirt 是一个对虚拟化管理的接口和工具,提供用户
端程序 virsh ,virt-install, virt-manager, virt-view 与
用户交互。
KVM虚拟机的组成
• 虚拟机的组成
– 内核虚拟化模块(KVM)
– 系统设备仿真(QEMU)
– 虚拟机管理程序(LIBVIRT)
安装虚拟化服务器平台必备软件
qemu-kvm
– 为 kvm 提供底层仿真支持
libvirt-daemon
– libvirtd 守护进程,管理虚拟libvirt-client
– 用户端软件,提供客户端管理libvirt-daemon-driver-qem– libvirtd 连接 qemu 的驱动
virsh命令工具介绍
• 提供管理各虚拟机的命令接口
– 支持交互模式,查看/创建/停止/关闭 … …
– 格式:virsh 控制指令 [虚拟机名称] [参数]
[root@nova01 ~]# virsh
Welcome to virsh, the virtualization interactive terminal.
Type: ‘help’ for help with command’quit’ to quit
virsh #
virsh命令工具介绍
virsh 虚拟机管理
– list [–all] 列出虚拟机
– start|shutdown|reboot 虚拟机启动,停止,重启
– destroy 强制停止虚拟机
– define|undefine 根据 xml 文件 创建/删除 虚拟机
– console 连接虚拟机的 console
virsh 虚拟机管理
– edit 修改虚拟机的配置
– autostart 设置虚拟机自启动
– domiflist 查看虚拟机网卡信息
– domblklist 查看虚拟机硬盘信息
– blockresize --path [绝对路径] --size 50G openstack
virsh 虚拟网络管理
– net-list [–all] 列出虚拟网络
– net-start 启动虚拟交换机
– net-destroy 强制停止虚拟交换机
– net-define 根据 xml 文件 创建虚拟网络
– net-undefine 删除一个虚拟网络设备
– net-edit 修改虚拟交换机的配置
– net-autostart 设置虚拟交换机机自启动
常用镜像盘类型
虚拟机的磁盘镜像文件格式
特点\类型 RAW QCOW2
KVM默认 否 是
I/O效率 高 较高
占用空间 大 小
压缩 不支持 支持
后端盘复用 不支持 支持
快照 不支持 支持
qemu-img命令
• qemu-img 是虚拟机的磁盘管理命令,支持非常多
的磁盘格式,例如raw、qcow2、vdi、vmdk等等
• qemu-img 命令格式
– qemu-img 命令 参数 块文件名称 大小
– 常用的命令有
– create 创建一个磁盘
– convert 转换磁盘格式
– info 查看磁盘信息
– resize 扩容磁盘空间
• 创建新的镜像盘文件
qemu-img create -f 格式 磁盘路径 大小
qemu-img create -f qcow2 disk.img 50G
• 查询镜像盘文件的信息
qemu-img info 磁盘路径
qemu-img info disk.img
• -b 使用后端模板文件
qemu-img create -b disk.img -f qcow2 disk1.img
COW技术原理
• Copy On Write,写时复制
– 直接映射原始盘的数据内容
– 当数据有修改要求时,在修改之前自动将旧数据拷贝存入
前端盘后,对前端盘进行修改
– 原始盘始终是只读的