虚拟化了解和KVM介绍、安装、配置网卡、kvm安装centos7

一.什么是虚拟化?

虚拟化简单讲就是将一台物理计算机虚拟成多台逻辑计算机,每个逻辑虚拟机里面可以运行不同的操作系统,相互不受影响,但都是占用物理计算机的实体资源,比说内存、网络、存储等。最常见的虚拟化软件就是VMware,在windos上广泛运用。

在虚拟化不像今天成熟之前,虚拟化分为全虚拟化和半虚拟化。

全虚拟化需要经过一个指令翻译叫做VMM(虚拟机管理程序)。因为代码运行都有几个级别,系统内核为最高ring0,应用程序为最低ring3。虚拟化里面的系统执行的本来应该是ring0,但是它对真实的系统来说只是一个应用软件,执行的应该是ring3级别,所以就需要vmm来当翻译。这之前其实非常复杂,对性能有非常大的消耗,所以演变出来了半虚拟化。
半虚拟化就是让虚拟机知道自己是在虚拟机上跑的,工作在非ring0状态,它在物理机上执行的一些特权指令会修改成其他方式,但是这种技术需要修改内核。windows内核是私有的,修改不了,所以也可以说半虚拟化只支持linux。

再后来,cpu厂商入场,开始从根源cpu上支持虚拟化,这样指令不需要翻译也不需要修改内核。可以说现在主流都是建立在硬件上的全虚拟化,包括VM。

二.常用的虚拟化软件

VMware系列:VMware workstation、VMware vsphere(适用于多台物理机集群)、VMware Fusion(mac)
Xen:开源的,半虚拟化
KVM:开源的基于linux内核的
Hyper-V:商业,属于微软
Openvz:开源的,基于linux,虚拟机和宿主机公用一个内核,轻量化。
VirtualBox:开源的,和VM类似,Sun公司开发。

三.虚拟化架构

在这里插入图片描述

四.KVM介绍

KVM已经被redhat收购,变成了一个内核的块。它在linux系统里面以进程的形式出现,由标注的linux调度程序进行调度,这使得KVM能够使用内核的以有功能。KVM负责内核代码执行,用户代码则还需要QEMU-KVM软件,QEMU-KVM是一个纯软件,可以虚拟所有的硬件,磁盘、网络等设备都是QEMU-KVM模拟出来的。KVM和QEMU-KVM通信是通过/dev/kvm实现。libvirt是涌来管理KVM虚拟机的API,其命令为virsh。

KVM虚拟化大体的架构:
在这里插入图片描述

五.centos7上安装KVM

我们先在windows上用VM虚拟化一个centos7,然后在虚拟机上用kvm虚拟化。
当然如果你有服务器可以只要配置足够,就可以直接在linux上用KVM虚拟化。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置好之后开机。
先检查内存、查看cpu核数、检查是否支持虚拟化:

free -h
cat /proc/cpuinfo
grep -Ei 'vmx|svm' /proc/cpuinfo  //如果有相应信息输出,则表示可以

查看防火墙,selinux,清空关闭掉:

iptables -F
getenforce

查看新增加磁盘名称,格式化:

ls /dev/sd*

可以不用分区直接格式化新磁盘:

mkfs.ext4 /dev/sdb
#查看有没有成功
blkid /dev/sdb

挂载新磁盘并开启启动:

mkdir /kvm_data
mount /dev/sdb /kvm_data/
vim /etc/fstab
#添加
/dev/sdb   /kvm_data     ext4   defaults    0 0

#查看新磁盘
df -h

安装kvm:

yum install -y virt-* libvirt bridge-utils qemu-img

六.配置网卡

配置桥接网络:

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-br0
vim ifcfg-br0
#让虚拟机能够用到这个桥接地址,和br0建立连接,这样就可以直接使用你宿主机所在的网络
#删除原来的配置,添加下面的
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.247.170
NETMASK=255.255.255.0
GATEWAY=192.168.247.2
DNS1=192.168.247.2
DNS2=8.8.8.8

#修改原来物理网卡的配置
vim ifcfg-ens33
#修改成
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0

#重启network
systemctl restart network

#ifconfig查看是否有br0虚拟网卡

启动libvirt:

systemctl start libvirtd

#查看是否有libvirt进程
ps aux|grep libbir

查看桥接网络:

brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c2954a8f7	no		ens33
virbr0		8000.525400890122	yes		virbr0-nic

七.KVM安装centos7

安装centos7,首先得有一个centos7的镜像,然后弄到虚拟机里面,用KVM安装,我windows上有,所以使用xshell自带的文件传输传到虚拟机里。

ls -l CentOS-7-x86_64-DVD-1810.iso 
-rw-r--r-- 1 root root 4588568576 2月   9 11:22 CentOS-7-x86_64-DVD-1810.iso
#先虚拟出一个10G的磁盘
qemu-img create -f raw /kvm_data/ligenlinux.img 10G
#把源码移到/tmp下,没有权限读取root目录
mv /CentOS-7-x86_64-DVD-1810.iso /tmp//CentOS-7-x86_64-DVD-1810.iso
#命令行安装
virt-install --name=ligenlinux01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-1810.iso --disk path=/kvm_data/ligenlinux.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
#如果不想安装,想退出可以按ctrl+]

在这里插入图片描述
按提示操作即可,和图形化安装centos7差不多。

发布了117 篇原创文章 · 获赞 33 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37369726/article/details/104223864