kvm虚拟机Linux安装kvm CentOS7
  AWkq7aIjuRwO 2023年11月02日 58 0

虚拟机技术 kvm

在windows中使用安装Vmware 可以构建多个虚拟机环境,在不同的虚拟机环境中,安装不用的操作系统。目的:实现各个虚拟机之间程序的隔离,每个虚拟机里面跑一个程序,他们相互直接隔离,增加安全性。

linux的kvm 

为什么要用到虚拟机技术?

一个服务器性能,如果只运行一个服务或一个程序的话,对硬件资源造成巨大浪费,就在上面跑多个程序,但是跑多个程序,如果一个程序存在漏洞对其他程序同样会造成安全隐患,那么虚拟机的环境是:在一台主机上虚拟出多个虚拟计算机出来,每个计算机安装操作系统,里面可以运行不同的程序,这样的话不同虚拟机之间是相互隔离的,即使某个虚拟机当中他的程序可能出现安全威胁了,它仅仅影响到的是他自己虚拟机的环境,而不会影响其他虚拟机里面程序资源造成影响,也不会对操作系统自身造成安全威胁。

为了更合理的使用计算机资源,使多个程序或服务之间增加隔离安全性而是用的技术。

kvm技术,以后还会讲性能更好的技术:容器技术,他是一个轻量级的虚拟化技术,如果使用虚拟机的话,那么就得从每台虚拟机上安装一个操作系统,然后再运行程序,这样每台都要安装操作系统,每个操作系统对系统资源占用还是挺大的,容器技术:只提供了每个程序所运行的基本环境,就不需要独立的操作系统了,每个虚拟机都不需要依赖操作系统,也就意味着它占用的资源少,但同样和虚拟机技术一样具有很好的隔离性

使用kvm技术活容器技术的目的为了合理利用系统资源,并且增加隔离性或者安全性。

KVM是Kernerl Virtual Machine的简写  内核 虚拟 计算机 基于内核的一种虚拟化技术

在当前主机上安装了一个linux操作系统 首先操作系统有内核部分 然后是外围程序

用户对计算机操作的时候 通过外围程序 然后解释给 内核 由内核去驱动硬件 

而今天的kvm是基于内核的,他相关的程序模块是在内核当中的,他直接可以对硬件进行驱动,就意味着他的效率高


kvm结构:一台电脑有硬件(内存硬盘处理器等)接下来有内核程序负责对硬件进行驱动,kvm来讲他内核当中的模块。

把这个程序装上后 可以在他提供的环境中安装不同的虚拟机,和Vmware一样,可以装linux系统可以装windows系统等

kvm虚拟机Linux安装kvm CentOS7_linux

linux中每个虚拟机 称为一个客户机而作为linux操作系统本身,或者配置了kvm的这个操作系统本身称为宿主主机

比如拿windows来说 windows是一个宿主主机,而Vmware所提供的的各个虚拟机称为客户机



kvm安装

1、首先检查系统是否支持kvm,

 a、系统是x86的,通过命令

linux内核是2.6以上的都支持

基本都是3.10的了

要求cpu支持  现在所有电脑的cpu都是支持虚拟化技术的

只不过当前windows当中一个虚拟机上要实现的话,就要根据虚拟机cpu给他指定支持虚拟化  实际的话不需要

当前我们的环境略微复杂一点:

首先我们当前主机操作系统是windows

windows中安装了Vmware

Vmware中 有很多虚拟机 其中有一个linux系统

那么实现今天这个内容的时候 是在这个linux 中安装的kvm

在kvm中再安装linux系统,也可以装windows系统


kvm虚拟机Linux安装kvm CentOS7_kvm_02

而实际的是我上面就一个服务器上面就装了个linux系统  然后它里面运行KVM  

KVM里面装虚拟机 也可能是linux  也可能是windows

这样的结构就和当前系统装了Vmware差不多

kvm虚拟机Linux安装kvm CentOS7_centos_03

打开虚拟机 看其他要求

下面两张图是给虚拟机打开 应用虚拟化技术

kvm虚拟机Linux安装kvm CentOS7_kvm_04


kvm虚拟机Linux安装kvm CentOS7_centos_05

要求内存大些 给linux系统 大点内存

打开一个虚拟机 将他关机

把内存调大些4G-8G左右  启动计算机


先去看下当前cpu是否已经支持虚拟化了

命令

cat /proc/cpuinfo
cat /proc/cpuinfo | grep vmx

查看cpu型号以及他的相关性能的命令

其中flags 代表的cpu具有的一些性能,cpu很聪明 具有的一些功能,其中有个vmx  代表cpu支持虚拟化

kvm虚拟机Linux安装kvm CentOS7_ip地址_06

其中intel cpu支持会有vmx,amd cpu支持会有svm

在接下来看下内核模块

lsmod

mod=模块

lsmod | grep kvm

kvm虚拟机Linux安装kvm CentOS7_linux_07

上图以及过滤出来了  也就说内核当中的kvm模块 以及被激活了 工作了

当前cpu也支持了

相当于这个软件以及装上去了

如图 linux代表宿主主机 他有网卡  连接外部网络 其中也有些其他网卡 比如v‘1 v8 类似这种网卡 在这种环境中 先不管 v1 和 v8 了

当前主机给他设置ip地址的话 外部主机可以访问到 宿主系统 访问到最外面的linux 

他原来是有ip地址的  当前的网卡是ens33

在kvm中 每个虚拟机也有一个网卡  都是ens33  

现在呢 需要让外部主机能访问到 客户机

动作:现在 ens33 是个普通网卡 把他身份改变一下 改成网桥 网桥想象成交换机  突然这个设备多了很多口出来 想象成网桥了 接下来 客户机设备都连接到 交换机(网桥)上了 那问题来了 如果这个网卡改成网桥了话 那么别的主机怎么访问这个宿主主机 那么针对这个网桥设置一个ip地址  也就是说交换机可以设置ip地址 是作为管理ip

网桥名字改成br0

第一个动作 先把ens33这个网卡改变身份 改变一个身份 改变成网桥 叫 br0

随后给br0 设置ip地址  当你访问br0的ip地址的话 就相当于 访问到这个设备所对应的操作系统 也就是外面这个  宿主主机  

那就下来 里面内部主机 的ip地址 只要和br0 的ip地址在同网段 那么外边的主机就可以访问到他们了   在这把br0想象成交换机 他们之间通信也是没问题的

kvm虚拟机Linux安装kvm CentOS7_linux_08

为了保证访问的时候ip地址不发生变化,先去动态获取地址,动态获取地址为了能与外部进行通信,随后看地址多少,去改网卡ens33名称为br0  改完后再把动态获取的ip 固化写上去 因为获取的肯定与外网能通信的 为了避免ip地址一会就变了 所以就固化下来

随后里面两台主机 设置和固化的ip同一网段就可以了

kvm虚拟机Linux安装kvm CentOS7_linux_09

如上图

windows中有网卡   还有v1  和v8  当前Vmware虚拟机 的linux 网卡 桥节点是v8  v8可以通过外部网络连接 访问外部网络   原来的时候宿主主机是可以访问外部网络的(这里指的宿主主机是Vmware里的linux主机)现在把ens33 改成桥节点 在接下来 在里面开始安装虚拟机 装完了 相当于给他连上去了  不要管外部环境 就管linux 虚拟机



就相当于这个环境了

kvm虚拟机Linux安装kvm CentOS7_kvm_10

好了

开始获取ip地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0


vim /etc/sysconfig/network-scripts/ifcfg-br0                                                                                       
TYPE=Bridge
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.254.128
NETMASK=255.255.255.0
GATEWAY=192.168.254.2
DNS1=192.168.254.2


systemctl restart network

重启网络服务

ifconfig nes33

kvm虚拟机Linux安装kvm CentOS7_ip地址_11

这时候看ens33 是没有ip的

ifconfig br0

kvm虚拟机Linux安装kvm CentOS7_kvm_12

br0 是有ip 的

用xshell远程 是可以的  ssh root@192.168.254.128  可以远程进行操作

无形当中 相当于把我网卡弄出好多接口出来 

第二步:

启动kvm 管理工具

virt-manager


kvm虚拟机Linux安装kvm CentOS7_linux_13

上图是在本地启动的 也可以在windows远程

kvm虚拟机Linux安装kvm CentOS7_ip地址_14

找到他 点开

kvm虚拟机Linux安装kvm CentOS7_ip地址_15


kvm虚拟机Linux安装kvm CentOS7_kvm_16

kvm虚拟机Linux安装kvm CentOS7_centos_17

kvm虚拟机Linux安装kvm CentOS7_ip地址_18

填写主机ip

协议选择ssh

用户名root

设置密码

命令写

virt-manager


kvm虚拟机Linux安装kvm CentOS7_linux_19

然后就在上图这个界面当中创造虚拟机

对虚拟机可以进行克隆、做快照、安装系统。


第一:现在需要把光盘镜像准备好

一会给 在安上KVM当中给虚拟机安装系统的时候 需要用到光盘

需要先创建个目录 把光盘镜像弄过来




第二:每个虚拟机上面所对应的操作系统相关的文件,可以和windows中Vmware的各个虚拟机一样,散放到硬盘里。

还有一种方式,他创建一个磁盘,称为存储卷

一会安装操作系统的时候所有文件都放到这个磁盘里面

再创建一个操作系统 他又有一个磁盘,这样的话便于管理,就不是散放了


创建两个目录 存放光盘镜像 一个是存放光盘镜像的一个是存放虚拟机所对应的磁盘的

创建目录 目录随意

mkdir -p /data_kvm/{centos7,iso} 等同于
mkdir -p /data_kvm/centos7
mkdir -p /data_kvm/iso


在KVM操作界面当中需要创建两个选项


这两个选项分别对应刚刚创建的两个目录


kvm虚拟机Linux安装kvm CentOS7_centos_20

kvm虚拟机Linux安装kvm CentOS7_kvm_21

根据图上顺序操作 ,创建 iso  和centos7

kvm虚拟机Linux安装kvm CentOS7_kvm_22

centos7 是存放虚拟机 的

ios 是存放光盘镜像的


然后在centos7目录中创建存储卷

每个虚拟机都单独放到一个硬盘上去在这个目录去添加卷

kvm虚拟机Linux安装kvm CentOS7_linux_23

新加卷命名为centos7-1  

关于磁盘的管理方式 选择qcow2   这个功能比较多

最大容量 选择10G  

上面操作相当于搭建了个基本的环境

已经创建了基本环境了 接下里 可以弄虚拟机

把镜像传过去 把虚拟机拷 到

/data_kvm/iso/
cd /data_kvm/iso/

kvm虚拟机Linux安装kvm CentOS7_ip地址_24

传过去就可以

kvm虚拟机Linux安装kvm CentOS7_centos_25

选择镜像位置

kvm虚拟机Linux安装kvm CentOS7_kvm_26

kvm虚拟机Linux安装kvm CentOS7_linux_27

因为我当前设置了内存6个G了 给他1G没问题 cpu设置1个

kvm虚拟机Linux安装kvm CentOS7_ip地址_28

你这个虚拟机的数据装到哪里 是单独给你画出一个空间出来文件散放着

还是去选择你提前准备好的存储卷

点管理 去选择 之前创建的存储卷

kvm虚拟机Linux安装kvm CentOS7_centos_29

给虚拟机起个名字

选择在安装前自定义配置

然后选择完成

kvm虚拟机Linux安装kvm CentOS7_ip地址_30

在接下来对你当前的虚拟机进行相关调整

cpu不用管了 内存不用管了  

引导选项 主机引导时启动虚拟机 这个选上 意思是:宿主linux系统启动时 linux是否启来,相当于windows启动的时候Vmware里面某个虚拟机 是否启动

kvm虚拟机Linux安装kvm CentOS7_kvm_31

点击显示协议 Spice  是否远程来管理你的虚拟机,如果远程来管理的话 你的键盘敲的时候有可能乱码 选择键映射 选择复制本地keymap

点应用

kvm虚拟机Linux安装kvm CentOS7_kvm_32

然后点开始安装

选择第一项 安装

kvm虚拟机Linux安装kvm CentOS7_centos_33

选择中文 然后继续

kvm虚拟机Linux安装kvm CentOS7_centos_34

选择最小化安装 分区选择自动分区就可以 点完成

kvm虚拟机Linux安装kvm CentOS7_linux_35

设置root密码



如果我还想转个虚拟机也可以

按着前面步骤继续

kvm虚拟机Linux安装kvm CentOS7_linux_36

到这个步骤 没有 存储卷了 再创建一个

kvm虚拟机Linux安装kvm CentOS7_centos_37

kvm虚拟机Linux安装kvm CentOS7_ip地址_38

kvm虚拟机Linux安装kvm CentOS7_centos_39

安装完成后 得到这样一个页面 就说明成功了

输入用户root

回车输入密码 就可以使用了


那我们真正使用他的时候 不这么用的

第一首先需要给他设置ip地址

最小化安装是没有ifconfig  这个命令的 还有好多命令没有 因为最小化安装缺东西

如果要用到 某些软件 去有那个软件的linux主机  把包装上去就可以了

去别的linux主机里

which ifconfig
rpm -qf /usr/sbin/ifconfig

去别的linux主机里

which ifconfig
rpm -qf /usr/sbin/ifconfig

kvm虚拟机Linux安装kvm CentOS7_ip地址_40

他的包名 是net-tools

yum -y install net-tools


让他动态产生ip

然后给他固化一下

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

其他都一样

vim 没有 vi 可以用

先去把vim这个包 安装一下

which vim

rmp -qf 

然后yum 安装就可以了


固化完ip后

systemctl restart network

重启网络服务

使用xshell  可以远程连接了


然后对虚拟机做一些操作

首先做个快照

第二进行克隆

kvm命令管理虚拟机

管理虚拟机的时候需要在宿主主机上需要有一些相关kvm命令

yum -y install libguestfs-tools \\如果不安装,则virt-df  virt-cat等命令没有

yum -y install libguestfs-tools


对虚拟机的开、关 查看虚拟机状态

virsh list --all  #查看当前虚拟机
virsh shutdown centos7-1  #关闭centos7-1虚拟机
virsh start centos7-1  #开启centos7-1虚拟机

接下来创建快照 可以创建开机快照也可以 创建关机快照

创建快照命令

virsh snapshot-create centos7-1  #创建快照 不给他名字 他就自己生成一个编号

kvm虚拟机Linux安装kvm CentOS7_ip地址_41

查看这个快照

virsh snapshot-list centos7-1      #查看centos7-1 的快照有谁

删除快照

virsh snapshot-delete centos7-1 1639313743

删除centos7-1 1639313743  快照


创建快照

virsh snapshot-create-as centos7-1 centos7-1-init

给centos7-1 创建快照 起名为centos7-1-init

virsh snapshot-revert centos7-1 centos7-init

回到虚拟机 centos7-1的centos7-init快照


克隆虚拟机要求在关机状态下克隆


virt-clone -o centos7-1 -n cenot7-2 -f /data_kvm/centos7/centos7-2.qcow2

克隆-o 被克隆的虚拟机名字

-n 新克隆出的虚拟机名字

-f 克隆后虚拟机文件放在哪里

clone=克隆


因为新克隆的虚拟机 固化的ip 和旧的一样 所有需要 进入更改一下 防止冲突

旧主机 会跟随linux启动而启动  新克隆的不会

virsh autostart cenot7-2

设置cenot7-2 为随机启动

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  6YY0QMPUXEwu   2023年12月10日   30   0   0 linux网卡
  wwLZeziuqjLR   2023年12月11日   30   0   0 Dockercentos
  wwLZeziuqjLR   2023年12月08日   99   0   0 Dockercentosbash
  nIt0XG0acU8j   2023年12月11日   31   0   0 linuxhtop
  nIt0XG0acU8j   2023年12月09日   33   0   0 linuxsort
AWkq7aIjuRwO