Centos7 搭建KVM并创建Linux Windows虚拟机

一、安装KVM

查看系统版本

cat /etc/redhat-release

关闭防火墙及selinux

systemctl disable firewalld.service
查看防火墙状态   
systemctl status firewalld
查看开机是否启动防火墙服务
systemctl is-enabled firewalld

1. 验证CPU是否支持KVM

如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU支持的。

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

2,关闭SELinux

将 /etc/selinux/config 中的 SELinux=enforcing 修改为 SELinux=disabled

sed -i 's/SELinux=enforcing/SELinux=disabled/' /etc/selinux/config

3. 最小安装的CentOS安装一些最基本的包

(可选项,因为我是刚安装好的CentOS,所以为了下面方便点,先把一些必要的工具安装下)

yum install epel-release net-tools vim unzip zip wget ftp -y

4. 安装KVM及其依赖项

yum install qemu-kvm libvirt virt-install bridge-utils -y

5. 验证安装结果,下图说明已经成功安装了

lsmod | grep kvm

图片

6. 开启kvm服务,并且设置其开机自动启动

systemctl start libvirtd
systemctl enable libvirtd

7. 查看状态操作结果

systemctl status libvirtd

8. 配置kvm 网络

简单介绍下kvm的网络模式分为4种

本文档采用的是桥接模式,下期会说下NAT模式

1. 隔离模式:虚拟机之间组建网络,该模式无法与宿主机通信,无法与其他网络通信,相当于虚拟机只是连接到一台交换机上。

  1. 路由模式:相当于虚拟机连接到一台路由器上,由路由器(物理网卡),统一转发,但是不会改变源地址。
  2. NAT模式:在路由模式中,会出现虚拟机可以访问其他主机,但是其他主机的报文无法到达虚拟机,而NAT模式则将源地址转换为路由器(物理网卡)地址,这样其他主机也知道报文来自那个主机,在docker环境中经常被使用。
  3. 桥接模式:在宿主机中创建一张虚拟网卡作为宿主机的网卡,而物理网卡则作为交换机。

1. 隔离模式:

图片

2. 路由及NAT模式:

图片

  1. 桥接模式:

图片

接下来操作网卡桥接

先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份

cp -r /etc/sysconfig/network-scripts/ /data/networkbak/

a. 创建 netifcfg-br0 文件

(创建的br0文件的IP地址要和物理网卡的IP地址一致,命令 ipconfig查看物理网卡将不会显示IP)

内容如下:

[root@bogon ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.130
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=192.168.1.254
DNS2=114.114.114.114

b. 修改物理网卡eno1

vi /etc/sysconfig/network-scripts/ifcfg-eno1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="YES"
NAME="eno1"
UUID="bb40d726-8d67-4187-90c3-eb61e1b42d61"
DEVICE="eno1"
ONBOOT="yes"
IPADDR="192.168.1.130"
NETAMSK=255.255.255.0
GATEWAY="192.168.1.1"
DNS1="221.6.4.66"
IPV6_PRIVACY="no"
BRIDGE=br0

c. 重启网络服务

systemctl restart networ

验证操作结果

若是桥接成功即可看到多了一块网卡br0

[root@kvm network-scripts]# systemctl restart network
[root@kvm network-scripts]# ip a
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eno1: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether 00:0c:29:7b:9f:8c brd ff:ff:ff:ff:ff:ff
5: br0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc noqueue state UP
    link/ether 00:0c:29:7b:9f:8c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.130/24 brd 192.168.1.255  scope global br0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valid_lft&nbsp;forever&nbsp;preferred_lft&nbsp;forever

二、安装linux虚拟机

1.安装linux虚拟机的准备工作

linux 镜像(文档中选的镜像是centos 7.2)

kvm 已经搭建完成并启动

vnc 客户端 (获取方法会写在文章末尾处)

创建镜像存放目录

mkdir /home/iso

创建vm文件存放路径

mkdir&nbsp;/data/kvm

2. 准备操作系统安装镜像文件

在本文中将使用和宿主环境一样的CentOS7.2,把该文件放到 /home/iso 目录下

方法很多种,这里不详细说明

3.使用 virt-install 创建linux虚拟机

[root@bogon data]# virt-install --name njvm01 --boot network,cdrom,menu=on --ram 6411 --vcpus=1 --os-variant=rhel6 --accelerate --cdrom=/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso --disk path=/data/kvm-bak/vm01.img,size=200,bus=virtio --bridge=br0,model=virtio --autostart --vnc --vncport=5910 --vnclisten=0.0.0.0
WARNING  无法连接到图形控制台:没有安装 virt-viewer。请安装 'virt-viewer' 软件包。WARNING  没有控制台用于启动客户机,默认为 --wait -1
开始安装......
正在分配 'vm01.img'                                   | 200 GB  00:00:00
ERROR    internal error: process exited while connecting to monitor: 2018-01-31T06:20:00.727909Z qemu-kvm: -drive file=/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso,format=raw,if=none,id=drive-ide0-0-0,readonly=on: could not open disk image /mnt/udisk/CentOS-7-x86_64-DVD-1708.iso: Could not open '/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso': Permission denied
正在删除磁盘 'vm01.img'                             |    0 B  00:00:00
域安装失败,您可以运行下列命令重启您的域:'virsh start virsh --connect qemu:///system start njvm05'
否则请重新开始安装。

不要理会里面提示的错误,接着往下走

4. 打开防火墙上的5910端口

防火墙若关闭请忽略

firewall-cmd&nbsp;&nbsp;--add-port=5910/tcp&nbsp;--permanent
firewall-cmd --reload

5. 查看虚拟机状态

Virsh list --all
virsh&nbsp;start&nbsp;njvm01

6.开启虚拟机  然后打开VNC

使用VNC输入宿主机IP地址 加上端口号 输入虚拟机名字  打开

然后就可以开始安装 这里不详细介绍

图片

三、安装windows虚拟机

在kvm中,安装windows需要使用virtio驱动,这个驱动是安装windows中必须要的,否则就会找不到硬盘,我们先下载驱动。

1.宿主机安装所需驱动

wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install -y virtion-win

2.使用 virt-install 创建linux虚拟机

virt-install&nbsp;--name=win2k12&nbsp;&nbsp;--ram=8192&nbsp;--vcpus=2&nbsp;--os-type=windows&nbsp;--os-variant=win2k12&nbsp;&nbsp;--disk&nbsp;path=/home/kvm/data/win2k12.img,size=200&nbsp;--accelerate&nbsp;--cdrom&nbsp;/home/kvm/iso/cn_windows_server_2012_r2_x64_dvd_2707961.iso&nbsp;--vnc&nbsp;--vncport=5911&nbsp;--vnclisten=0.0.0.0&nbsp;--network&nbsp;bridge=br0,model=virtio&nbsp;--noautoconsole&nbsp;

3.开启虚拟机vnc 链接

图片

安装过程不细说 说下容易出错的地方

若在安装的时提示找不到硬盘

解决方法,挂载win镜像

virsh change-media win2k12vm01  hdb /usr/share/virtio-win/virtio-win.iso

图片

图片

图片

图片

***重点***

挂载软驱 (硬盘驱动 网卡驱动等)

注释:网卡驱动要在系统中装好之后挂载 不然装系统的时候会提示找不到光盘镜像

在宿主机中执行命令

virsh change-media win2k12  hdb /usr/share/virtio-win/virtio-win.iso

VMTools工具安装完成后,使用如下命令卸载掉挂载的VMTools工具:

a.如果是Linux虚拟机,执行如下命令卸载VMTools工具:

virsh change-media 【虚拟机ID】 --eject 【vmtools-linux.iso文件全路径】

b.如果是Windows虚拟机,执行如下命令卸载VMTools工具:

virsh change-media 【虚拟机ID】 --eject 【vmtools-windows.iso文件全路径】

用挂载的方式只是自己摸索出来的,或者有更好的方法可以留言交流

posted @ 2020-05-13 13:52  SRE运维博客  阅读(3391)  评论(2编辑  收藏  举报