113.kvm介绍、centos上安装kvm、桥接网卡、kvm安装centos7

28.4 kvm介绍linux

28.5 Centos7上安装KVMvim

28.6 配置网卡centos

28.7 建立虚拟机安装CentOS7网络

 

 

 

28.4 kvm介绍工具

 

 

KVM是以色列初创公司Qumranet开发,2008年9月RedHat公司收购了Qumranet性能

KVM是Linux内核的一个模块,它把Linux内核变成了一个Hypervisorui

#linux内核就是一个一个的模块组成,不少功能centos7

KVM是彻底开源的,RedHat基于KVM的虚拟化解决方案叫作RHEV操作系统

KVM在Linux操做系统里面以进程的形式出现,由标准的Linux调度程序进行调度,这使得KVM可以使用Linux内核的已有功能命令行

只有一个KVM内核模块还不能实现虚拟化的所有功能,就比如操做系统只有内核还不能成为一个完整的操做系统同样

QEMU是一个开源的虚拟化软件,纯软件,能够虚拟化因此的硬件,性能不强

KVM基于QEMU开发了一个可以运行在用户空间的工具QEMU-KVM

磁盘、网络设备等都是经过QEMU-KVM这个工具模拟出来的

KVM和QEMU-KVM通讯是经过/dev/kvm实现的

libvirt是用来管理KVM虚拟机的API,其命令为virsh

 

 

 

 

kvm做为linux内核的模块在内核空间,利用/dev/kvm与用户空间通讯。Qemu-kvm虚拟出虚拟硬件,在这基础上,咱们安装GuestOS(虚拟机上的操做系统)

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

28.5 Centos7上安装KVM

 

 

 

实验是在vmware虚拟机里的,至关于在虚拟机里(vmware)安装虚拟机(kvm)

前提是CPU支持虚拟化

1.虚拟机设置内存2G,增长一个50G的虚拟磁盘,处理器2核,虚拟化引擎两个虚拟化相关的选项打上对勾

2.关闭iptables或者firewalld

3.关闭selinux

4.格式化新磁盘,挂载到/kvm_data

5.下载一个centos7的镜像文件

6.检查cpu参数是否支持虚拟化

grep -Ei 'vmx|svm' /proc/cpuinfo

7.安装kvm

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

 

 

实例:

先将虚拟机关机,调整硬件资源

 

 

 

[root@axinlinux-01 ~]# free -h

total used free shared buff/cache available

Mem: 3.7G 1.2G 1.9G 9.0M 581M 2.2G

Swap: 1.9G 0B 1.9G

[root@axinlinux-01 ~]# cat /proc/cpuinfo

processor : 1

[root@axinlinux-01 ~]# grep -Ei 'vmx|svm' /proc/cpuinfo #有无vmx的字样,表明cpu是否支持虚拟化。vmx和svm分别表明因特尔芯片或arm芯片

[root@axinlinux-01 ~]# fdisk -l #查看一下咱们新配置的虚拟磁盘

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x00000d20

 

设备 Boot Start End Blocks Id System

/dev/sda1 * 2048 391167 194560 83 Linux

/dev/sda2 391168 4390911 1999872 82 Linux swap / Solaris

/dev/sda3 4390912 62914559 29261824 83 Linux

 

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

 

 

磁盘 /dev/sdc:53.7 GB, 53687091200 字节,104857600 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

 

[root@axinlinux-01 ~]# mkfs.ext4 /dev/sdc #直接格式化成ext4,能够没必要分区

[root@axinlinux-01 ~]# blkid /dev/sdc #查看这块磁盘

/dev/sdc: UUID="18ac701a-f6f3-4f80-9180-40133150672d" TYPE="ext4"

[root@axinlinux-01 ~]# mkdir /kvm_data #建立目录

[root@axinlinux-01 ~]# mount /dev/sdc /kvm_data/ #挂载磁盘到这个目录

[root@axinlinux-01 ~]# vim /etc/fstab #编辑/etc/fstab,开机直接挂载新增长的硬盘

/dev/sdc /kvm_data ext4 defaults 0 0

[root@axinlinux-01 ~]# systemctl stop firewalld

[root@axinlinux-01 ~]# systemctl stop iptables

[root@axinlinux-01 ~]# systemctl disable firewalld

[root@axinlinux-01 ~]# systemctl disable iptables

[root@axinlinux-01 ~]# iptables -F #若是还有的话,就清空掉

[root@axinlinux-01 ~]# iptables -nvL #随着kvm的使用或启动,会产生kvm的规则

[root@axinlinux-01 ~]# yum install -y virt-* libvirt bridge-utils qemu-img #安装kvm

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

 

28.6 配置网卡

 

 

可选择桥接或NAT,亦或者其余

1.配置网卡,增长桥接网卡

先要虚拟一个桥接网卡出来,这个桥接网卡就是提供你的虚拟机和宿主机(物理机),相互链接起来的中间桥梁

2.设置一个br0网卡,TYPE为Bridge,IP地址设置为ens33的ip

ens33配置文件里把IP地址去掉,增长BRIDGE=br0

3.检查KVM模块是否加载

lsmod|grep kvm

4.启动libvirtd服务

systemctl start libvirtd

brctl show能够看到两个网卡br0和virbr0

 

 

 

实例:

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

[root@axinlinux-01 network-scripts]# cp ifcfg-ens33 ifcfg-br0

[root@axinlinux-01 network-scripts]# vim ifcfg-br0

TYPE=Bridge

BOOTPROTO=none

NAME=br0

DEVICE=br0

ONBOOT=yes

IPADDR=192.168.208.128

GATEWAY=192.168.208.2

DNS1=119.29.29.29

DNS2=8.8.8.8

PREFIX=24

[root@axinlinux-01 network-scripts]# vim ifcfg-ens33

TYPE=Ethernet

BOOTPROTO=none

NAME=ens33

DEVICE=ens33

ONBOOT=yes

BRIDGE=br0

[root@axinlinux-01 network-scripts]# systemctl restart network

[root@axinlinux-01 network-scripts]# ifconfig

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.208.128 netmask 255.255.255.0 broadcast 192.168.208.255

inet6 fe80::20c:29ff:fe87:4224 prefixlen 64 scopeid 0x20<link>

ether 00:0c:29:87:42:24 txqueuelen 1000 (Ethernet)

RX packets 58 bytes 4337 (4.2 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 23 bytes 2334 (2.2 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

ether 00:0c:29:87:42:24 txqueuelen 1000 (Ethernet)

RX packets 52339 bytes 69754805 (66.5 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 25404 bytes 2265315 (2.1 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@axinlinux-02 network-scripts]# systemctl start libvirtd #axin到这一步报错,libvirtd服务起不来,换了台虚拟机就行了。报错信息是这样的“Job for libvirtd.service failed because the control process exited with error code. See "systemctl status libvirtd.service" and "journalctl -xe" for details.”

[root@axinlinux-02 ~]# ps aux |grep libvirt

[root@axinlinux-02 ~]# brctl show #查看桥接网卡的

bridge name bridge id STP enabled interfaces

br0 8000.000c290dd692 no ens33

virbr0 8000.525400f1a5ba yes virbr0-nic

virbro是libvirtd服务所启动的桥接网卡,相似于VM ware的vmnet8的nat的桥接网卡

在kvm无法用鼠标点选择桥接仍是nat,由于是命令行的。他的网络类型是哪个,取决于目标桥接网卡是哪个。若是是br0就是桥接模式,virbr0就是NAT模式

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

 

28.7 建立虚拟机安装CentOS7

 

 

 

 

首先要有centos7的镜像文件

命令行安装centos7

virt-install --name=aminglinux01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-17081.iso --disk path=/kvm_data/aminglinux01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"

--name 定义你虚拟机的名字

--memory 定义它的内存大小,就是安装完就是512

maxmemory 定义它的最大内存多大,就是可调整到1024(支持热调整)

--vcpus 定义cpu核数

maxvcpus 最大cpu为2核

--os-type 操做类型是linux

--os-variant 版本是rhel7(centos7)

--location 指定ISO文件的路径(能够是http:xxxxx,也就是能够在线安装)

--disk path 虚拟硬盘所在路径,包括名字、大小

--bridge 桥接网卡名字

--graphics 是否开启图形

--console 定义开启的终端、属性

--extra-args 也是终端的属性

 

 

实例:

 

 

Installation

 

1) [x] Language settings 2) [!] Time settings

(English (United States)) (Timezone is not set.)

3) [!] Installation source 4) [!] Software selection

(Processing...) (Processing...)

5) [!] Installation Destination 6) [x] Kdump

(No disks selected) (Kdump is enabled)

7) [ ] Network configuration 8) [!] Root password

(Not connected) (Password is not set.)

9) [!] User creation

(No user will be created)

Please make your choice from above ['q' to quit | 'b' to begin installation |

'r' to refresh]:

#按1 语言选择 回车 68 回车 1回车

#按2 时区 回车 1 回车 64(shanghai) 回车

#按5 分区 回车 1 回车 c(继续) 回车 c 回车 2(后面x表明默认) 回车 c 回车 1(标准分区) 回车 c 回车

#按8 root密码 wangxin789 回车 两遍

完成设置后,按b+回车

Installation

 

1) [x] Language settings 2) [x] Time settings

(Simplified Chinese (China)) (Asia/Shanghai timezone)

3) [x] Installation source 4) [x] Software selection

(Local media) (Minimal Install)

5) [x] Installation Destination 6) [x] Kdump

(Automatic partitioning (Kdump is enabled)

selected) 8) [x] Root password

7) [ ] Network configuration (Password is set.)

(Not connected)

9) [ ] User creation

(No user will be created)

Please make your choice from above ['q' to quit | 'b' to begin installation |

'r' to refresh]:

以上为设置完成后的,x表明为已设置的

最后按ctrl+],退出终端就能够了。到这一步,阿铭的宿主机(vmware虚拟机)也跟着重启了,阿鑫作的时候没有出现重启的现象。因此,在上面的设置完成之后,不要按回车退出,而是按ctrl+]退出终端,而后再针对axinlinux-02这一台虚拟机重启