一、 虚拟化技术 Virtualization介绍

类型:

1、根据虚拟化技术实现不同分类

1)平台虚拟化 platform virtualization

KVM相关技术

2)操作系统虚拟化 os virtualization

KVM相关技术

2、根据hypervisor的安装方式不同分类

1)原生虚拟化

直接安装在物理硬件上
Vmware ESXI, Vsphere
Critix Xen

2)寄居虚拟化

依赖于物理机的操作系统
kvm, vmware workstation, Microsoft Hyper-v, Oralce virtualBox

3、根据hypervisor实现虚拟化管理方式不同分类

1)软件虚拟化 QEMU

半虚拟化 para-virtulization XEN
需要修改内核
RedHat在kvm虚拟化中研发驱动virtio半虚拟化驱动
Linux类型: 默认是安装的
Windows类型:手动安装virtio半虚拟化驱动
硬盘:IDE
网卡:rtl8139

2)硬件辅助虚拟化

需要物理机CPU的支持
kvm, xen, esxi, vsphere
如何确认CPU是否支持硬件辅助虚拟化?
Intel: VT-x
AMD: amd-v
KVM相关技术

二、kvm ------ Kernel-Based Virutal Manager 基于内核虚拟化管理器

1、kvm介绍

kvm — 内核模块
qemu-kvm 实现对虚拟硬件的模拟功能

kvm管理工具:
virt-manager, virt-viewer, virsh, virt-install
依赖C函数库 libvirtd 服务
KVM相关技术

2、kvm虚拟化安装

1)确保CPU启用虚拟化功能

[[email protected] ~]# lscpu
虚拟化: VT-x

2)进行安装:

方法一:软件包
[[email protected] ~]# yum install qemu-kvm qemu-img libvirt virt-install libvirt-python virt-manager python-virtinst libvirt-client
qemu-kvm:提供kvm虚拟化资源管理
libvirt: C函数库,确保kvm管理工具可正常使用
qemu-img:用于管理虚拟磁盘
virt-install: 用于创建kvm虚拟机的命令行工具
virt-manager:提供图形化工具
libvirt-python:python连接libvirt的驱动
python-virtinst:python连接libvirt的模块
libvirt-client:提供libvirt的客户端工具

方法二:安装软件包组

KVM相关技术

3、确保kvm安装成功

1) 查看kvm的内核模块

[[email protected] ~]# lsmod | grep kvm
kvm_intel 162153 0
kvm 525259 1 kvm_intel
[[email protected] ~]#

2) libvirtd服务

centos 7:libvirtd服务启动
[[email protected] ~]# systemctl is-active libvirtd
active
[[email protected] ~]# systemctl is-enabled libvirtd
enabled

centos 6:libvirtd需要动启动
[[email protected] ~]# service libvirtd start
[[email protected] ~]# chkconfig libvirtd on

4、kvm虚拟化安装后系统的变化

1、默认default网络

工作在NAT模式
自带dhcp服务 192.168.122.0/24
virbr0 ---- 192.168.122.1 作为所有default网络中的kvm虚拟机的网关

2、路由转发功能会自动打开

[[email protected] ~]# cat /proc/sys/net/ipv4/ip_forward
1

3、在iptables防火墙的NAT表中会自动SNAT转换规则

[[email protected] ~]# iptables -t nat -nL
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
RETURN all – 192.168.122.0/24 224.0.0.0/24
RETURN all – 192.168.122.0/24 255.255.255.255
MASQUERADE tcp – 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
MASQUERADE udp – 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
MASQUERADE all – 192.168.122.0/24 !192.168.122.0/24

5、kvm虚拟机安装

1)virt-manager图形化管理工具

[[email protected] ~]# virt-manager
KVM相关技术

KVM相关技术
可以使用各种安装方式
KVM相关技术
KVM相关技术
安装完成后在此处进行虚拟机设置

2)virt-install 命令行工具

示例01: 使用网络安装rhel 6.4(此处已准备好镜像文件在ftp服务器上 搭建ftp服务器详情请查看本博客文章: 搭建FTP服务器。)

[[email protected] ~]#
virt-install
–name=pc_rhel6.4
–graphics vnc,listen=0.0.0.0,port=5910,keymap=en_us
–memory 512,maxmemory=1024
–vcpus 1,maxvcpus=2
–disk path=/var/lib/libvirt/images/pc_rhel6.4.img,size=8,format=qcow2 \ #此处设置虚拟机镜像文件大小格式
–bridge=virbr0 \
–location=ftp://172.16.50.66/rhel6.4
–extra-args=“ks=ftp://172.16.8.100/rhel6.4.ks”

示例02:使用本地镜像安装centos 6.6

[[email protected] ~]# virt-install
–name=pc-centos6.6
–graphics vnc,listen=0.0.0.0,port=5920,keymap=en_us
–memory 512,maxmemory=1024
–vcpus 1,maxvcpus=2
–disk path=/var/lib/libvirt/images/pc_centos6.6.img,size=8,format=qcow2
–bridge=virbr0 \ #此处设置大小格式网桥
–cdrom=/var/ftp/linux/upload/iso/centos6u6.iso

示例03:使用网络安装centos 7

[[email protected] ~]# virt-install
–name=pc_centos7.2
–graphics vnc,listen=0.0.0.0,port=5930,keymap=en_us
–memory 512,maxmemory=1024
–vcpus 1,maxvcpus=2
–disk path=/var/lib/libvirt/images/pc_centos7.2.img,size=8,format=qcow2
–bridge=virbr0
–location=ftp://172.16.8.100/centos7u2
–extra-args=“ks=ftp://172.16.8.100/rhel6.4.ks”
–autostart

6、kvm虚拟机的连接方式

1)ssh
2)virt-viewer命令

[[email protected] ~]# virsh list
[[email protected] ~]# virsh list --all
[[email protected] ~]# virt-viewer pc_test &

3)vnc连接

[[email protected] ~]# vncviewer 127.0.0.1:5920

4)console的连接方式

virsh console <虚拟机名称>

centos 6:
编辑/boot/grub/grub.conf文件,在kernel行的末尾添加console=ttyS0,重启系统
[[email protected] ~]# virsh console pc-centos6.6

centos 7:

  1. 编辑文件/etc/sysconfig/grub
    在GRUB_CMD_LINELINUX行末尾添加console=ttyS0

  2. 重新生成grub配置文件
    [[email protected] ~]#grub2-mkconfig -o /boot/grub2/grub.cfg

退出console连接
ctrl + ]

7、kvm虚拟机的相关文件

一台kvm虚拟机 = 配置文件 + 磁盘镜像文件

配置文件:/etc/libvirt/qemu

[[email protected] qemu]# ls /etc/libvirt/qemu
编辑xml的配置文件
[[email protected] qemu]# virsh edit <kvm虚拟机名称>

磁盘镜像文件:
[[email protected] ~]# ls /var/lib/libvirt/images/

kvm相关的其他文件:

1
/etc/libvirt/qemu/autostart目录
存放开机自启动的kvm配置文件的软链接
[[email protected] ~]# virsh autostart centos7-1
[[email protected] ~]# virsh autostart win2k8
[[email protected] ~]# ls -l /etc/libvirt/qemu/autostart/
总用量 0
lrwxrwxrwx 1 root root 31 9月 19 11:51 centos7-1.xml -> /etc/libvirt/qemu/centos7-1.xml
lrwxrwxrwx 1 root root 28 9月 19 11:52 win2k8.xml -> /etc/libvirt/qemu/win2k8.xml

2
/etc/libvirt/qemu/networks
存放网络的配置文件

3
/etc/libvirt/qemu/storage
存放存储池相关的配置文件

相关文章: