重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
什么是KVM虚拟化?
创新互联建站从2013年创立,先为西乡等服务建站,西乡等地企业,进行企业商务咨询服务。为西乡企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
KVM,内核级虚拟化技术 Kernel-based Virtual Machine 。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。虚拟化就是通过模拟计算机硬件(cpu,内存,硬盘,网卡)来实现在一台物理服务器上运行同时多个不同的操作系统,使每个操作系统之间都是互相隔离的,并且应用程序都可以在相互独立的空间内运行而互不影响,可以实现资源的动态分配、灵活调度、跨域共享,提高资源利用率,服务于各行各业中灵活多变的应用需求。从而显著提高服务器的工作效率。
KVM架构
KVM 基本上有两个组件构成:
* kvm 驱动 现在已经是Linux内核的一个模块了,它的作用主要是负责虚拟机的创建,虚拟内存的分配 虚拟CPU寄存器的读写和虚拟cpu的运行
* 另一个组件是 Qemu QEMU是一个通用的开源机器模拟器和虚拟器,其主要的功能是用于模拟虚拟机的用户空间组件,提供io 设备模型,访问外设的途径
Qemu 是什么?
Qemu 是纯软件设计的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和虚拟机打交道,但其实是和Qemu模拟出来的硬件打交道,Qemu 将这些真正的指令转译给真正的硬件
* 虚拟化的技术优点
(1)降低运营成本
(2)提高应用兼容性
(3)加速应用部署
(4)提高服务可用性
(5)提升资源利用率
(6)动态调度资源
(7)降低能源消耗
KVM应用场景
* 场景1:只有一台服务器,但是要运行多个版本的软件,不同版本之间还相互冲突
* 场景2:机房的迁移,物理机在运输过程中容易损坏,导致数据丢失
* 场景3:openstack部署太难!步骤太繁琐,如何体验最新版的openstack
* 场景4:开发环境和测试环境经常损坏,运维重复装系统
* 场景5:业务的扩张,需要快速部署10个一模一样的集群
* 服务器规划
操作系统 | 主机名 | IP地址 | 内存大小 | 硬盘大小 |
---|---|---|---|---|
CentOS7.4 | kvm01 | 10.0.0.11/24 | 4G | 100G |
// 查看当前系统版本
[root@kvm01 ~]# hostnamectl
Static hostname: kvm01
Icon name: computer-vm
Chassis: vm
Machine ID: 6878674c84644fd381a5e3a82d80cf18
Boot ID: fd8e37aca7e4421fa5674fc0fff147e9
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64
// 设定主机名
[root@kvm01 ~]# hostnamectl set-hostname kvm01
// 关闭防火墙
[root@kvm01 ~]# systemctl stop firewalld
[root@kvm01 ~]# systemctl disable firewalld
// 关闭Selinux
[root@kvm01 ~]# sed -i '/SELINUX=/cSELINUX=disabled' /etc/selinux/config
[root@kvm01 ~]# setenforce 0
// 配置hosts解析
[root@kvm01 ~]# echo "10.0.0.11 kvm01" >> /etc/hosts
* 确认开启虚拟化
KVM需要硬件支持, 所以需要开启虚拟化支持
1.硬件设备直接在BIOS设置开启CPU虚拟化
2.个人电脑同样进入BIOS开启虚拟化支持
3.VM需要找到对应虚拟机开启对应的VT-EPT虚拟化技术
# 没有任何内容则表示服务器没有启用虚拟化
[root@kvm01 ~]# egrep '(vmx|svm)' /proc/cpuinfo
* 安装KVM
#安装kvm依赖
yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install openssh-askpass –y
#启动libvirtd服务
systemctl start libvirtd.service
systemctl enable libvirtd.service
systemctl status libvirtd.service
#注意: 启动后会新增一块virbr0网络
创建桥接网络
virsh iface-bridge eth0 br0
* windows系统上安装 tightvnc 软件
`http://www.tightvnc.com``
* KVM安装CentOS 7 系统
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
//参数概述
--virt-type:指定虚拟机类型(kvm、qemu、xen)
--name:指定虚拟机名称
--raw:指定虚拟机使⽤用内存大小
--cpu:指定cpu的核数(默认为1)
--cdrom:指定虚拟机安装的ISO镜像
--disk:指定虚拟机数据存储磁盘qcow2
--network:指定虚拟机网络类型, 默认nat,常用bridge
--graphics:指定虚拟机可连接⽅方式, 比如VNC
--noautoconsole:不连接虚拟机图形界面控制台
* 显示下图则表示成功
* 使用VNC软件进行连接
* 常规安装CentOS 7(安装系统时先把网卡名称改为eth0,在配置网络时可以只是开启自启动,不配置IP地址。磁盘分区选择标准分区)
* 结果显示:
同样是上传windows的镜像到/opt目录下
# 创建qcow2格式的虚拟磁盘
[root@kvm01 opt]# qemu-img create -f qcow2 windows7.qcow2 +50G
[root@kvm01 opt]# ls -l
total 18684784
-rw-r--r-- 1 qemu qemu 197120 Dec 5 21:28 centos7.qcow2
-rw-r--r-- 1 qemu qemu 1844969472 Dec 5 21:58 Centos7u5.qcow2
-rw-r--r-- 1 qemu qemu 4470079488 Dec 4 23:00 CentOS-7-x86_64-DVD-1804.iso
-rw-r--r-- 1 qemu qemu 3420557312 Dec 15 21:08 Windows7.iso
-rw-r--r-- 1 root root 9397534720 Dec 16 02:04 windows7.qcow2
# virt-install命令创建windows虚拟机
[root@kvm01 opt]# virt-install --name Windows7 --virt-type kvm --ram 2048 --cdrom=/opt/Windows7.iso --disk path=/opt/windows7.qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
# 注意: Win7 安装过程, 内存与磁盘不够会导致系统安装慢或失败
使用VNC软件进行连接并安装Windows
# 查看所有的KVM虚拟机
[root@kvm01 opt]# virsh list --all
Id Name State
----------------------------------------------------
- Windows7 running
- centos7 shut off