1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Linux桌面虚拟化技术-KVM

Linux桌面虚拟化技术-KVM

时间:2020-08-11 22:48:41

相关推荐

Linux桌面虚拟化技术-KVM

一、 KVM概述

KVM 即 Kernel-based Virtual Machine 基于内核的虚拟机。

KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的各个主要发行版本中。它使用 Linux 自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM 目前已成为学术界的主流 VMM(虚拟机监控器)之一。KVM 的虚拟化需要硬件支持(如 Intel VT 技术戒者 AMD V 技术)。是基于硬件的完全虚拟化。而 Xen 早期则是基于软件模拟的 Para-Virtualization。

KVM: 是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine)。是第一个整合到 Linux内核的虚拟化技术。在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启动客户机操作系统。

一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)

XEN :需要升级内核,只能支持和物理机系统一样的操作系统。 xen 虚拟上,可以运行 windows ?

KVM: 支持 linux 以外的其它系统。比如:windows

QEMU:是一套由 Fabrice Bellard 所编写的以 GPL 许可证分发源码的模拟处理器,在 GNU/Linux平台上使用广泛。QEMU 具有高速度和跨平台的特性,QEMU 能模拟至接近真实电脑的速度。

QEMU 能模拟整个电脑系统,包括中央处理器及其他周边设备。

QEMU 和 vmware 一样都是支持仿真虚拟化,效率比较低。

二、 搭建KVM虚拟化

1、 KVM虚拟化硬件资源

建议CPU是4核,内存至少4GB,在原有硬盘的基础上增加一块硬盘,作为存放镜像文件或KVM虚拟机存储使用。

KVM虚拟化图形化界面是基于Linux图形化界面的基础上才能使用,所以如果要使用KVM虚拟化图形化操作界面,必须Linux系统有安装图形化界面才可以使用。

VMware虚拟机安装需要开启如下功能:

2、 实验环境

主机名 IP地址 作用

xuegod110 192.168.1.110 KVM服务器

3、 安装KVM虚拟机

1) 最小化安装的Linux系统,安装图形化界面

[root@xuegod110 ~]# yum –y groupinstall “X Window System”

[root@xuegod110 ~]# yum –y groupinstall “GNOME Desktop” “Graphical Administration Tools”

2) 安装KVM模块、管理工具和libvirt

[root@xuegod110 ~]# yum install qemu-kvm libvirt libguestfs-tools virt-install virt-manager libvirt-python –y

注:使用系统镜像,先配置好 yum 本地源

注:

qemu-kvm : kvm 主程序, KVM 虚拟化模块

virt-manager: KVM 图形化管理工具

libvirt: 虚拟化服务

libguestfs-tools : 虚拟机的系统管理工具

virt-install : 安装虚拟机的实用工具 。比如 virt-clone 克隆工具就是这个包安装的

libvirt-python : python 调用 libvirt 虚拟化服务的 api 接口库文件

3) 查看安装的KVM服务

[root@xuegod110 ~]# systemctl start libvirtd #启动服务

[root@xuegod110 ~]# systemctl enable libvirtd #开机启动

[root@xuegod110 ~]# systemctl is-enabled libvirtd #查看是否开机启动

enabled

4) 确认模块是否加载

[root@xuegod110 ~]# lsmod | grep kvm #CPU虚拟化一定要打开

5) 修改语言环境

[root@xuegod110 ~]# echo $LANG

en_US.UTF-8

[root@xuegod110 ~]# LANG=‘zh_CN.UTF-8’

[root@xuegod110 ~]# echo $LANG

zh_CN.UTF-8

6) 配置KVM网络桥接功能

网桥介绍: 我们经常所说的 Bridge 设备其实就是网桥设备,也就相当于现在的二层交换机,用于连接同一网段内的所有机器,所以我们的目的就是将网络设备 eth0 添加到 br0,此时 br0 就成为了所谓的交换机设备,我们物理机的 eth0 也是连接在上面的。

安装网桥设备工具

[root@xuegod110 ~]# yum -y install bridge-utils

##默认系统一般都会安装

把ens33绑定到br0设备上

[root@xuegod110 ~]# cd /etc/sysconfig/network-scripts/

[root@xuegod110 network-scripts]# cp ifcfg-ens33 /tmp/ #备份配置为文件

[root@xuegod110 network-scripts]# vim ifcfg-ens33 #编辑网卡配置文件

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens33

UUID=c713acec-674b-411d-9e61-646482a292ca

DEVICE=ens33

IPADDR=192.168.1.110 #这些加粗内容需要删除

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=202.106.46.151

ONBOOT=yes

IPV6_PRIVACY=no

PEERDNS=no

BRIDGE=“br0” #在文件最后添加一行内容

生成桥设备的配置文件

[root@xuegod110 network-scripts]# vim ifcfg-br0 #添加如下内容

DEVICE=“br0”

NM_CONTROLLED=“yes”

ONBOOT=“yes”

TYPE=“Bridge”

BOOTPROTO=none

IPADDR=192.168.1.110

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=192.168.1.1

重启网络服务

[root@xuegod110 network-scripts]# systemctl restart network

查看IP信息

查看桥接的信息

[root@xuegod110 ~]# brctl show

7) 使用LVM图形化界面创建虚拟机

[root@xuegod110 ~]# virt-manager

注:使用xshell连接KVM调用图形化界面,必须要安装x-manager软件,让xshell可以调用x-manager的图形化界面程序显示。

如果使用centos系统自带的图形化界面,可以直接调用。

如果xshell调用不出来,将如下选项开启即可

执行KVM图形化管理工具

[root@xuegod110 ~]# virt-manager

三、 使用图形化界面创建一台KVM虚拟机

1、 将添加的硬盘分区

[root@xuegod110 ~]# ls /dev/sd*

/dev/sda /dev/sda1 /dev/sda2 /dev/sdb

[root@xuegod110 ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0xe5acdfc3 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n #创建

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): p ##主分区

分区号 (1-4,默认 1):

起始 扇区 (2048-209715199,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-209715199,默认为 209715199):

将使用默认值 209715199

分区 1 已设置为 Linux 类型,大小设为 100 GiB

命令(输入 m 获取帮助):w #保存创建的分区

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。

2、 格式化分区

[root@xuegod110 ~]# mkfs.xfs /dev/sdb1

3、 挂载分区

将新的硬盘挂载到KVM的目录下

[root@xuegod110 ~]# mount /dev/sdb1 /var/lib/libvirt/images/

将挂载信息写入到fstab文件,实现开机启动挂载分区

[root@xuegod110 ~]# echo “/dev/sdb1 /var/lib/libvirt/images/ xfs defaults 0 0” >> /etc/fstab

4、 上传centos7.5的镜像文件到挂载目录

5、 创建虚拟机

[root@xuegod110 ~]# virt-manager

在弹出的界面中,选择QEMU/KVM,右键选择NEW

选择本地介质安装系统

选择系统镜像

选择内存和CPU

分配硬盘大小

选择配置后在开始安装,并选择网卡

调整启动顺序

选择显示选择

类型修改为VNC,键盘类型简则en-us,不然安装虚拟机过程中鼠标和键盘都无法使用。

配置完毕,选择开始安装即可

不再详细说明具体安装系统的步骤,可在网上找相关配置文档。

四、 KVM常用的命令

1、 列出运行中的虚拟机

[root@xuegod110 ~]# virsh list

2、 启动kvm虚拟机

[root@xuegod110 ~]# virsh start centos7.0

因为已经启动了,所以提示域活跃中

3、 关闭虚拟机

[root@xuegod110 ~]# virsh shutdown centos7.0

4、 设置开机启动

[root@xuegod110 ~]# virsh autostart centos7.0

5、 查看KVM是否开机启动

[root@xuegod120 ~]# chkconfig --list libvirtd #开机启动了

libvirtd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

五、 解决centos6系统上shutdown关不了虚拟机的问题

1、 解决方法

在安装好的 KVM 的 Linux 虚拟机中安装并启动 acpid 服务

virsh shutdown 命令使用发送 acpi 指令来控制虚拟机的电源,

而 kvm 虚拟机最小化安装的 centos6 系统时默认是没有安装 acpi 服务的,所以并不会处理shutdown 发来的关机信号。 在 centos7 最小化安装的 linux 系统上有安装 acpid 服务。

只需要在虚拟机里安装和启劢 acpid 服务即可。

做一件事: 安装 acpid 服务 -》 yum 源

[root@localhost yum.repos.d]# yum install acpid -y

[root@localhost yum.repos.d]# service acpid start //启动 acpic 服务,

[root@localhost yum.repos.d]# chkconfig --list acpid

acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off //安装后默认会加入到开机

启动的

在 xuegod120 KVM 真机上测试:

[root@xuegod120 ~]# virsh shutdown rhel6-71 #关闭 rhel6-71 虚拟机

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。