一 虚拟化基础

  1. 什么是虚拟化
    虚拟化就是通过模拟计算机硬件(cpu,内存,硬盘,网卡)来实现在一台物理服务器上运行同时多个不同的操作系统,并且使每个操作系统之间都是互相隔离的

  2. 什么是kvm虚拟化
    目前国内的公有云底层采用的都是kvm虚拟化,经过这几年的快速发展,kvm计算已经非常成熟稳定,在任何linux发行版中,kvm都是标配,虚拟化已经成为了一项必备的技能

二 环境准备

  1. 主机规划
主机名 IP地址 操作系统 内存 硬盘
kvm01 10.0.0.11 centos7.4 4G 50G
  1. 上传模板并克隆
    根据以前的标准模板克隆主机,克隆后按规划设置主机名,IP地址,并关闭selinux和firewalld

  2. 在window上安装TightVNC
    tightvnc官网:http://www.tightvnc.com
    vnc是一个跨平台的远程桌面软件,待会安装kvm虚拟机系统的时候使用

  3. 确定服务器支持虚拟化

1
2
[root@kvm01 ~]# cat /proc/cpuinfo | egrep -o 'vmx|svm'
vmx
  1. 上传centos7.4镜像
1
2
mkdir /server/tools/ && cd /server/tools/
#然后上传镜像到本目录

三 快速部署

1.安装软件启动服务

  • libvirt服务:管理kvm虚拟机的生命周期
  • virt-install工具:创建安装虚拟机
  • qemu-kvm工具:使用qemu-img为虚拟机提供硬盘

安装软件

1
yum install libvirt virt-install qemu-kvm -y

启动libvirtd服务

1
2
systemctl start libvirtd.service
systemctl enable libvirtd.service

校验

kvm服务启动后,系统会多出一个virbr0的网卡,配置如下

1
2
3
4
5
[root@kvm01 ~]# ip addr show dev virbr0
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:a7:ca:46 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever

2.创建启动虚拟机

建议虚拟机内存不要低于1024M,否则安装系统特别慢!

1
2
3
4
5
6
7
8
9
10
11
virt-install --virt-type kvm \
--os-type=linux \
--os-variant rhel7 \
--name centos7-mb \
--memory 1024 \
--vcpus 1 \
--disk /opt/centos7-mb.raw,format=raw,size=5 \
--cdrom /server/tools/CentOS-7.4-x86_64-DVD-1708.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole

3.通过vnc安装系统

qemu-kvm启动后默认监听5900端口,通过virsh vncdisplay centos7-mb命令显示该虚拟机的vnc端口号,结果是:0.
因此可以使用windows机器上的vnc客户端,使用10.0.0.11:5900连接虚拟机安装系统
如果vnc端口号是:1,则使用10.0.0.11:5901
连接成功后,就按正常的安装步骤安装centos7

四 console登录

  1. VNC登录问题1
    常规情况下,安装完 KVM 之后,可能都会通过 VNC 连接到 KVM 虚拟机里面去修改 IP 等信息。
    但是一旦虚拟机比较多的话,打开过多的端口会造成安全问题
  2. VNC登录问题2
    很多时候,我们是通过跳板机连接的宿主机,window和kvm宿主机没有直达的路由,这时候vnc都用不了,如何快速进入到 KVM 虚拟机里面去排查问题呢?
  3. 解决办法:console登录
    打开虚拟机的console以后,就可以在宿主机上直接连接虚拟机,包括启动过程都可以看得到,而不必等虚拟机启动好以后,才能用ssh连接

开启console登录

以下开启操作都是需要进到虚拟机中操作的

  1. centos7
1
2
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
reboot
  1. centos6
    很麻烦,省略

开启后,可以通过以下命令在宿主机上直接进入虚拟机

1
virsh console centos7mb

退出当前虚拟机的console界面命令:“ctrl + ]”

其他说明

可以直接使用官方已经做好的镜像,免去了安装步骤