linux搭建虚拟化平台报告,部署KVM虚拟化平台------搭建(示例代码)

一 、部署KVM虚拟化平台

20191220222949762078.png

hyper-v是windows中的虚拟化

1、KVM模块直接整合在Linux内核中,kvm是内核模块,虚拟机与kvm模块之间为管理工具

20191220222950042362.png

2、KVM组成

1.KVM Driver

---虚拟机创建

---虚拟机内存分配

---虚拟CPU寄存器读写

---虚拟CPU运行

2.QEMU (经过简化与修改)

---模拟PC硬件的用户控件组件

---提供I/O设备模型及访问外设的途径

二、虚拟化的三种模式

**1、客户模式:典型的虚拟机环境(虚拟网卡、内存、硬盘);

2、用户模式:工具层,下面是内核(驱动进行的资源分配);

3、kvm driver:内核态,人为不可控制(kvm驱动接收用户态操作指令,控制虚拟机在内核态的资源分配)。

20191220222950149788.png

4、虚拟机就是一个独立的进程,虚拟机内的用户各个硬件叫做线程

5、全虚和半虚的区别

全虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比半虚拟化要高;

半虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机中再运行KVM。

三、KVM工作原理

20191220222950238659.png

工作流程:首先启动一个虚拟化管理软件,开始启动一个虚拟机,通过ioctl等系统调用向内核中申请指定的资源,搭建好虚拟环境,启动虚拟机内的系统,虚拟机内的系统向内核反馈相关资源申请处理,如果是io请求,则提交给用户模式下的qemu处理,非io请求则将处理结果反馈给客户模式。

四、KVM实操演练

1、安装流程

20191220222950341202.png

2、kvm网络模式:用户(NAT)和桥接模式,本次实操采用桥接模式

3、kvm图形化管理

20191220222950521873.png

4、添加新硬盘,并开启虚拟化功能

20191220222950670316.png

5、分区、格式化并挂载硬盘(以下为脚本)

#! /bin/bash

echo "the disks exist list:"

fdisk -l |grep ‘磁盘 /dev/sd[a-z]‘

echo "=================================================="

PS3="chose which disk you want to create:"

select VAR in `ls /dev/sd*|grep -o ‘sd[b-z]‘|uniq` quit

do

case $VAR in

sda)

fdisk -l /dev/sda

break ;;

sd[b-z])

#create partitions

echo "n

p

w" | fdisk /dev/$VAR

#make filesystem

mkfs.xfs -i size=512 /dev/${VAR}"1" &> /dev/null

#mount the system

mkdir -p /data/${VAR}"1" &> /dev/null

echo -e "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0

" >> /etc/fstab

mount -a &> /dev/null

break ;;

quit)

break;;

*)

echo "wrong disk,please check again";;

esac

done

6、安装KVM一系列工具、环境包

#安装桌面环境组件包

yum groupinstall "GNOME Desktop" -y

#安装KVM模块

yum install qemu-kvm -y

#安装KVM调试工具

yum install qemu-kvm-tools -y

#安装构建虚拟机的命令行工具

yum install virt-install -y

#安装qemu组件,创建磁盘,启动虚拟机

yum install qemu-img -y

#安装网络支持工具

yum install bridge-utils -y

#安装虚拟机管理工具

yum install libvirt -y

#安装图像化管理虚拟机

yum install virt-manager -y

#查看CPU是否支持虚拟化

egrep ‘(vmx|svm)‘ /proc/cpuinfo

#查看kvm模块是否安装

lsmod | grep kvm

#开启libvirtd服务

systemctl start libvirtd

#查看libvirtd服务状态

systemctl status libvirtd

#开机自启动libvirtd服务

systemctl enable libvirtd

7、部署虚拟化

#切换至挂载点

cd /data

#创建备份目录

mkdir vdisk viso

#后台复制镜像到备份目录

cp -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso/ &

#切换网卡配置目录

cd /etc/sysconfig/network-scripts/

#复制ens33 网卡配置文件作为桥接网卡的模板

cp -p ifcfg-ens33 ifcfg-br0

#编辑ens33 网卡配置文件

vim ifcfg-ens33

#尾行追加桥接模块

BRIDGE=br0

#编辑桥接 网卡配置文件

vim ifcfg-br0

#替换类型为bridge桥接模式

TYPE=bridge

#修改为静态模式

BOOTPROTO=static

#改名

NAME=br0

#改驱动名称

DEVICE=br0

#追加IP地址,掩码和网关

IPADDR=192.168.142.153

NETMASK=255.255.255.0

GATEWAY=192.168.142.1

#重启网络服务

service network restart

8、图形化管理

virt-manager

##开启图形化管理

20191220222950807040.png

添加存储池disk

20191220222950887121.png

20191220222950982828.png

添加disk存储卷

20191220222951067792.png

添加存储卷

20191220222951121505.png

添加存储池iso

20191220222951246510.png

20191220222951353936.png

关闭创建,即可配置生成虚拟机

20191220222951465268.png

选择主机引导时启动虚拟机,开始安装,linux中的kvm虚拟机即可开始安装。。。。

20191220222951530701.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 选择文件指定的行数据类型,06练习题

1.如何删除一个非空子目录/tmp? BA. del /tmp/*B. rm -rf /tmpC. rm -Ra /tmp/*D. rm -rf /tmp/*2.存放linux默认系统日志文件是 BA./var/log/dmesg #系统启动时日志B./var/log/messages #系统日志C./var/log/secure #登录相关 安全3.用命令ls -l显示出来文件txt的描…

C#多线程编程

C#多线程编程 一、使用线程的理由 1、可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。 2、可以使用线程来简化编码。 3、可以使用线程来实现并发执行。 二、基本知识 1、进程与线程:进程作为操作系统执行程序的基本单位,拥有应用程…

《DSP using MATLAB 》示例Example6.3

代码: C0 0; B1 [2 4; 3 1]; A1 [1 1 0.9; 1 0.4 -0.4]; B2 [0.5 0.7; 1.5 2.5; 0.8 1]; A2 [1 -1 0.8; 1 0.5 0.5; 1 0 -0.5]; [b1, a1] par2dir(C0, B1, A1)[b2, a2] par2dir(C0, B2, A2)b conv(b1, b2) % Overall direct form numerator a conv(a1…

简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明

学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成…

java入门,学习笔记

编译 通过javac编译java程序,会编译出一个后缀为class的文件,我们再通过java虚拟机(jvm)执行编译后的java程序。 在java中始终有一个main函数,它作为程序的入口,程序从这个入口开始执行一直到结束。 public…

linux命令之ifconfig详细解释

依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。 1.命令格式: ifconfig [网络设备] [参数] 2.命令功能: ifconfig 命令用来查看和配置网…

loadrunner controller:实时查看VUser的运行情况

1) 如下图,在Run标签页,点击“Vusers...”打开Vuser窗口; 2) 如下图选中一个Vuser点击按钮可以打开Run-Time Viewer窗口,RTV窗口页面显示的就是该Vuser当前的操作; 3) 如下图所示,…

【二色汉诺塔 】

/* 二色汉诺塔 */#include <stdio.h>void hanoi(int disks, char sources, char temp, char target) {if(disks 1){printf("move disk from %c to %c \n", sources, target);printf("move disk from %c to %c \n", sources, target);}else{hanoi(d…

c语言凸包算法,基于C语言的凸包算法实现

基于C语言的凸包算法实现非计算机专业&#xff0c;代码有些的不好的地方&#xff0c;大佬轻喷^ _ ^根据要求&#xff0c;需要使用C语言实现凸包算法——Graham扫描法&#xff0c;本文将从算法理解、实现思路、遇到的问题及其解决方案三个方面来阐述实现过程。算法理解凸包算法G…

VS Code 使用小技巧

所有插件查找地址&#xff08;https://marketplace.visualstudio.com/&#xff09; 编码快捷方式&#xff08;http://docs.emmet.io/cheat-sheet/&#xff09; 安装插件出现 错误unable to verify the first certificate &#xff08;无法确认第一证书&#xff09;   解决方…

android 怎么自定义任务栈,Android中的Activity详解--启动模式与任务栈

目录Activity生命周期任务栈启动模式Intent FlagtaskAffinity属性1.Activityactivity的简单介绍就不写了&#xff0c;作为最常用的四大组件之一&#xff0c;肯定都很熟悉其基本用法了。2.生命周期首先&#xff0c;是都很熟悉的一张图&#xff0c;即官方介绍的Activity生命周期图…

SQL Server--疑难杂症之坑爹的Windows故障转移群集

-- 估计是春节前最后一次写博客&#xff0c;也估计是本年值班最后一次踩雷&#xff0c;感叹下成也SQL SERVER&#xff0c;败也SQL SERVER。 -- 场景描述&#xff1a; 操作系统版本 &#xff1a;Windows Server 2012 数据中心版本 数据库版本 &#xff1a;SQL SERVER 2012 企业版…

android handle 阻塞,Android全面解析之Handler机制:常见问题汇总

主线程为什么不用初始化Looper&#xff1f;答&#xff1a;因为应用在启动的过程中就已经初始化主线程Looper了。每个java应用程序都是有一个main方法入口&#xff0c;Android是基于Java的程序也不例外。Android程序的入口在ActivityThread的main方法中&#xff1a;// 初始化主线…

UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)

UML定义的关系主要有六种&#xff1a;依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键&#xff0c;而也就是这几种关系&#xff0c;往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述&#xff0c;一看之下&#xff0c;清晰明…

性能调优-硬盘方面,操作系统方面,文件系统方面

硬盘对数据库性能的影响 传统机械硬盘 当前大多数数据库使用的都是传统的机械硬盘。机械硬盘的技术目前已非常成熟&#xff0c;在服务器领域一般使用SAS或SATA接口的硬盘。服务器机械硬盘开始向小型化转型&#xff0c;目前已经有大量2.5寸的SAS机械硬盘。 机械硬盘有两个重要的…

chrome Android 80,Chrome OS 80将为Chromebook带来侧载Android应用的支持

如需体验这项功能&#xff0c;需在启动 Crostini 容器时加上一行特殊的命令 —— 从 Chromebook 命令行启动时&#xff0c;请加上 –enable-features ArcAdbSideloading 。最终&#xff0c;我们希望这回成为一项明示的标记(flags)功能。如变更日志所述&#xff0c;用户可通过托…

android 日历仿IOS,基于Android week view仿小米和iphone日历效果

前言最近由于项目需求&#xff0c;要做一个仿小米日历的功能&#xff0c;下面显示一天的日程&#xff0c;header以周为单位进行滑动&#xff0c;github上找了很久也没有找到合适的&#xff0c;但找到一相近的开源项目Android-week-view&#xff0c;它不是我们项目所需要的效果&…

1、管理员登录中间件和注销

1、根据session去判断用户是否登录&#xff0c;登录后才可以进index首页&#xff0c;否则返回login页面&#xff0c;借助中间件 (1)修改路由 Route::group([middleware > [web,admin.login],prefix>admin,namespace>Admin], function () { //注册一个中间件admin.logi…

HTML阅读打开点击不了,如何让网页文章中的代码可以点击运行

在网页中运行代码HTML5学堂&#xff1a;很多代码网站当中&#xff0c;都会提供运行代码段功能&#xff0c;便于查看代码效果&#xff0c;那么这个是如何实现的呢&#xff1f;一起来看一下——如何在网页中运行代码。HTML5学堂-刘国利said&#xff1a;应该是在2013年的时候&…

html留言回复评论页面模板,HTML5实现留言和回复的页面样式

这篇文章主要介绍了用HTML5如何实现留言和回复样式,需要的朋友可以参考下具体就不做详细讲解了&#xff0c;直接上代码&#xff1a;web开发-webkfa.com*{margin:0;padding:0;-webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */-webkit-t…