Linux云计算虚拟化-KVM桌面虚拟化技术

Linux云计算虚拟化-KVM桌面虚拟化技术

1. 什么是虚拟化?

虚拟化技术:
①仿真虚拟化:对系统硬件没有要求,性能最低。如:vmware。
②半虚拟化:虚拟机可以使用真机物理硬件,性能高,但需要修改内核。如:xen。rhel5以上自带xen,需要安装对应的内核。
③全虚拟化:直接使用物理硬件,性能高。如:kvm。rhel6支持kvm。

KVMkernel-based virtual machine,基于linux内核的虚拟机。kvm的虚拟化需要硬件支持(Intel VT技术或AMD V技术),是基于硬件的完全虚拟化。在kvm模型中,每台kvm虚拟机都是一个由linux调度程序管理的标准进程,可以在用户空间启动客户机操作系统。支持创建linux、windows虚拟机。
在这里插入图片描述

查看cpu是否支持虚拟化技术http://detail.zol.com.cn/1257/1257000/param.shtml
可以看到,是支持的。
在这里插入图片描述
在这里插入图片描述

2. 部署kvm虚拟环境【类似于vmware】

①检查vmware虚拟机的cpu是否支持虚拟化,这里要勾上。
在这里插入图片描述

[root@server ~]# cat /proc/cpuinfo |grep vmx

在这里插入图片描述
②安装kvm虚拟化服务

# 安装虚拟化服务及其管理工具
yum install qemu-kvm libvirt libguestfs-tools virt-install virt-manager libvirt-python -y

# qemu-kvm   kvm主程序,kvm虚拟化模块
# virt-manager   kvm图形化管理工具
# libvirt    虚拟化服务
# libguestfs-tools    虚拟机的系统管理工具
# virt-install    # 安装虚拟机的实用工具、
# libvirt-python   # python调用libvirt虚拟化服务的api接口库文件


# 开启虚拟化服务,并设置开机自启
[root@server ~]# systemctl start libvirtd
[root@server ~]# systemctl enable libvirtd
[root@server ~]# systemctl is-enabled libvirtd
enabled

# 查看是否正确加载kvm模块
[root@server ~]# lsmod | grep kvm
kvm_intel             183621  0 
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm

③使用virt-manager虚拟系统管理器

# 查看是否支持中文
[root@server ~]# echo $LANG
zh_CN.UTF-8

在这里插入图片描述

3. 配置kvm网络桥接功能

# 安装桥设备工具
[root@server ~]# yum install -y bridge-utils

[root@server ~]# cd /etc/sysconfig/network-scripts/
[root@server network-scripts]# ls ifcfg-*
ifcfg-ens32  ifcfg-lo
[root@server network-scripts]# cp ifcfg-ens32 ifcfg-br0

[root@server network-scripts]# vim ifcfg-ens32    # 使用桥设备上网
BRIDGE="br0"    # 最后一行加上这句,ens32绑定到桥接设备br0上,如果ens32配置的是静态IP地址,还需要把网络配置信息删除掉。即IP地址、子网掩码、网关地址、DNS去掉。
[root@server network-scripts]# vim ifcfg-br0      # 桥设备有IP地址,可以正常上网
# 清空原来的内容
DEVICE="br0"
NM_CONTROLLED="yes"
BOOTPROTO=none   # 如果是dhcp,最后四个元素要去掉。
ONBOOT=yes
TYPE="Bridge"
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=192.168.10.1
[root@server network-scripts]# systemctl restart network
# 可以看到,桥设备br0已经建立,绑定在桥设备上的网卡有ens32。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 创建kvm虚拟机

①挂载磁盘设备,用于存放kvm虚拟机的镜像文件。

# 可以直接使用磁盘设备/dev/sdb,也可以使用其分区
[root@server ~]# ls /dev/sdb
/dev/sdb
[root@server ~]# mkfs.xfs /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

# 临时挂载/dev/sdb,这里挂载到kvm默认镜像文件下
[root@server ~]# mount /dev/sdb /var/lib/libvirt/images/
[root@server ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root  8.0G  4.4G  3.7G   55% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   13M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               1014M  180M  835M   18% /boot
tmpfs                    378M   24K  378M    1% /run/user/0
/dev/sdb                  50G   33M   50G    1% /var/lib/libvirt/images

# 永久挂载磁盘设备/dev/sdb
[root@server ~]# blkid | grep /dev/sdb
/dev/sdb: UUID="b8997424-a9b0-4391-b323-46af89abcf4b" TYPE="xfs" 
[root@server ~]# vim /etc/fstab 
UUID=b8997424-a9b0-4391-b323-46af89abcf4b /var/lib/libvirt/images xfs defaults 0 0
[root@server ~]# mount -a

②上传centos7镜像

# 该目录为kvm默认存放镜像的目录
[root@server ~]# ls /var/lib/libvirt/images/
[root@server ~]# cd /var/lib/libvirt/images/
[root@server images]# ll
总用量 0
[root@server images]# rz

[root@server images]# ll
总用量 286720
-rw-r--r--. 1 root root 293601280 6月  20 07:49 CentOS-7-x86_64-DVD-1810.iso

③创建虚拟机

[root@server ~]# virt-manager

新建虚拟机:
在这里插入图片描述
选择安装方式:
在这里插入图片描述
选择镜像:
在这里插入图片描述
配置内存和cpu:
在这里插入图片描述
配置磁盘空间:
在这里插入图片描述
设置虚拟机名称:
在这里插入图片描述
开始安装:
在这里插入图片描述
在这里插入图片描述
这里是最小化安装的镜像:
在这里插入图片描述

后续的安装,和vmware上装虚拟机一致,这里不多介绍。

5. 配置kvm虚拟机上网

①激活网卡:ONBOOT设置为yes
在这里插入图片描述
②重启网络服务并查看ip地址
在这里插入图片描述
③使用xshell连接kvm虚拟机
在这里插入图片描述
重启vmware虚拟机,由于已经设置了kvm虚拟机开机自启,故重启vmware虚拟机后会自动启动kvm虚拟机,无需手动启动。

6. kvm虚拟机常用命令

# 列出正在运行的kvm虚拟机
[root@server ~]# virsh list
 Id    名称                         状态
----------------------------------------------------
 3     centos7-kvm                    running

# 列出所有的kvm虚拟机,包括已关闭的
[root@server ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 3     centos7-kvm                    running

# 关闭虚拟机
[root@server ~]# virsh shutdown centos7-kvm 
域 centos7-kvm 被关闭

# 开启虚拟机
[root@server ~]# virsh start centos7-kvm 
域 centos7-kvm 已开始

# 自动启动虚拟机
[root@server ~]# virsh autostart centos7-kvm 
域 centos7-kvm标记为自动开始

如果遇到centos6使用virsh shutdown命令无法关闭虚拟机,可能是因为kvm虚拟机最小化安装centos6系统时默认没有安装acpid服务,所以不会处理shutdown发来的关机信号,需要手动安装并启动acpid服务。
安装步骤:
①配置网络
②配置yum源
③使用yum安装acpid服务【yum install -y acpid
④启动acpid服务【安装后默认开机自启

猜你喜欢

转载自blog.csdn.net/weixin_36522099/article/details/109798794