当前位置:文档之家› KVM虚拟化

KVM虚拟化


yum –y install kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virtviewer virt-v2v
11/35
KVM部署
KVM部署
关闭防火墙和SElinux
chkconfig --level 2345 iptables off service iptables stop vi /etc/sysconfig/selinux
33/35
KVM部署
管理虚拟机
在线迁移虚拟机
• 在KVM2上保存且注册虚拟机XML配置文件 – virsh dumpxml winxp > /etc/libvirt/qemu/winxp.xml – virsh define /etc/libvirt/qemu/winxp.xml • 注销KVM1上的虚拟机 – virsh destroy winxp – virsh undefine winxp
添加新磁盘
• 获取virtio驱动镜像ISO文件 – /pub/alt/virtio-win/archives/virtiowin-0.1-100/virtio-win-0.1-100.iso • 挂载virtio驱动ISO文件至虚拟机 – virsh attach-disk winxp /iso/virtio-win-0.1-100.iso hdc -type cdrom • 生成新虚拟磁盘 – qemu-img create -f raw /vdisk/newdisk1.img 5G • 挂载新虚拟磁盘至虚拟机 – virsh attach-disk winxp /vdisk/newdisk1.img vdb
14/35
KVM部署
KVM部署
加载虚拟化模块
modprobe kvm modprobe kvm-intel lsmod | grep “kvm”
kvm_intel kvm 53484 0 316506 1 kvm_intel
15/35
KVM部署
KVM部署
建立桥接网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth0
还原后挂机
30/35
KVM部署
管理虚拟机
克隆虚拟机
• 暂定/关闭虚拟机 – virsh shutdown winxp • 克隆虚拟机 – virt-clone -o winxp -n winxp2
-f /vdisk/winxp2.img
• 开启新虚拟机 – virsh start winxp2
31/35
17/35
KVM部署
KVM部署
准备安装ISO镜像
mkdir /iso dd if=/dev/cdrom of=/iso/xxxxx.iso
18/35
KVM部署
安装虚拟机
使用virt-install工具创建一个guest系统
virt-install --name=winxp --ram 256 --vcpus=2 \ --disk path=/vdisk/winxp.img,size=30 --cdrom /iso/winxp.iso \ --boot hd,cdrom,network –os-type windows –os-variant winxp \ --graphics vnc,password=123456,port=5910 --network bridge=br0 \ --autostart --name 虚拟机名称 --ram 内存大小 --vcpus 虚拟CPU数量 --disk path=虚拟硬盘文件,size=虚拟硬盘大小 --cdrom 虚拟光盘文件 --graphics 图形显示方式,password=连接密码,port=连接端口 --network bridge=桥接网卡 --autostart 自动开机 --os-type 系统类型 --os-variant 发行版本 --boot 引导顺序
• 运行虚拟机 – virsh start
winxp
27/35
KVM部署
管理虚拟机
制作快照
• 先关闭虚拟机 – virsh shutdown winxp • 转换虚拟磁盘raw格式至qcow2格式 – qemu-img convert -f raw -O qcow2 /vdisk/winxp.img /vdisk/winxp.img.qcow2 • 验证虚拟磁盘格式为qcow2 – qemu-img info /vdisk/winxp.img.qcow2 • 删除raw格式磁盘,重命名qcow2格式磁盘 – rm –rf /vdisk/winxp.img – mv /vdisk/winxp.img.qcow2 /vdisk/winxp.img • 编辑虚拟机配置文件,修改raw格式为qcow2格式 – virsh edit winxp
3/35
虚拟化架构
架构
全虚拟化
不用修改客户操作系统内核
应用程序 客户操作系统 虚拟硬件 Hypervisor虚拟化层 宿主操作系统 物理硬件
虚拟硬件并不存在,由虚拟化层转化为对物理硬件的访问
对物理硬件的访问效率有损耗
4/35
虚拟化架构
架构
OS层半虚拟化
应用程序
客户操作系统
虚拟化层 宿主操作系统 物理硬件
19/35
KVM部署
安装虚拟机
使用VNC连接guest系统进行系统安装
Linux:
virt-view winxp
Windows:
20/35
KVM部署
管理虚拟机
使用virsh命令完成对虚拟机的管理
virsh virsh virsh virsh virsh virsh virsh virsh virsh virsh virsh list --all 显示所有虚拟机列表 start winxp 启动虚拟机 shutdown winxp 关闭虚拟机 destroy winxp 强制关闭虚拟机 undefine winxp 删除虚拟机 reset winxp 重启虚拟机 suspend winxp 挂起虚拟机 resume winxp 恢复虚拟机 edit winxp 修改虚拟机配置文件 define xxxx.xml 从一个xml配置文件生成一个虚拟机 vncdisplay winxp 显示虚拟机的VNC连接信息
虚拟机1
虚拟机2
虚拟硬件
虚拟硬件
KVM模块
硬件系统
处理器
内存
输入输出设备
8/35
KVM部署
KVM部署
检查CPU是否支持虚拟化技术
• Intel VT-x • AMD-V
BIOS开启CPU虚拟化功能
9/35
KVM部署
KVM部署
确认Linux内核已经支持虚拟化技术
• 如果没有输出YES,请先确认BIOS中已经开启虚拟化功能
DEVICE=eth0 TYPE=Ethernet HWADDR=XX:XX:XX:XX:XX:XX BRIDGE=br0 BOOTPROTO=none ONBOOT=yes
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=xxx.xxx.xxx.xxx NETMASK=255.255.255.0 ONBOOT=yes
• 卸载光盘 – virsh attach-disk winxp “” hdc --type cdrom • 装载光盘 – virsh attach-disk winxp /iso/winxp.iso hdcISO文件
挂载目标
设备类型
23/35
KVM部署
管理虚拟机
5/35
虚拟化架构
架构
硬件层半虚拟化
应用程序 客户操作系统 虚拟化层
物理硬件
6/35
虚拟化架构
架构
半虚拟化
• ESXi、Xen
全虚拟化
• Vmware Workstation、KVM
7/35
KVM虚拟化特点
KVM
虚拟化模块集成到Linux内核中,效率更高 支持全虚拟化和半虚拟化
Linux(Host)
21/35
KVM部署
管理虚拟机
修改内存大小
• 关闭虚拟机 – virsh shutdown winxp • 修改内存大小 – virsh setmem winxp 512 --current • 开启虚拟机 – virsh start winxp
对当前域进行修改
22/35
KVM部署
管理虚拟机
在线更换光盘镜像
KVM部署
管理虚拟机
在线迁移虚拟机
192.168.1.51
TLS SSH TCP
192.168.1.52
32/35
KVM部署
管理虚拟机
在线迁移虚拟机
• KVM1和KVM2上设置静态解析/etc/hosts
192.168.1.51 192.168.1.52 kvm1 kvm2
• KVM1和KVM2重启netowrk服务 – /etc/init.d/NetworkManager stop – /etc/init.d/network restart • 设置临时域名 – 在KVM1计算机上执行hostname kvm1 – 在KVM2计算机上执行hostname kvm2 • 在KVM1上执行动态迁移 – virsh migrate --live winxp qemu+ssh://kvm2/system
SELINUX=disabled
reboot
12/35
KVM部署
相关主题