文章目录
虚拟化介绍
-
虚拟化简单讲,就是把一台物理计算机虚拟成多台逻辑计算机,每个逻辑计算机里面可以运行不同的操作系统,相互不受影响,这样就可以充分利用硬件资源,VMware Workstation就是最常见的虚拟化软件
-
虚拟化技术分为全虚拟化和半虚拟化:早期的CPU硬件不支持虚拟化,虚拟机上的操作系统(guestos)要想使用cpu资源,需要通过VMM(Hypervisor虚拟机管理器)来翻译指令,这个过程比较耗费资源,这种虚拟化技术叫做全虚拟化(VMware Workstation;半虚拟化技术通过修改guestos内核,让guestos可以直接使用CPU资源,而不需要翻译指令了,从而节省了资源,但修改内核比较鸡肋(XEN);后续cpu厂商使cpu处理器直接支持虚拟化,不需要通过VMM翻译指令了,也就无所谓半虚拟化和全虚拟化
-
常见的虚拟化软件:
VMware系列:VMware workstation、VMware vsphere(VMware esxi)、VMware Fusion(Mac)
Xen 开源 半虚拟化
XenServer 商业,厂商Ctirx,基于Xen的
KVM 开源 基于linux内核模块
Hyper-V 商业,厂商微软
Openvz 开源 基于linux 虚拟机和宿主机共用一个内核
VirtualBox 开源 Sun公司开发 Oracle收购Sun
4.虚拟化架构:
VMware workstation以及之后要安装的KVM属于type2,是基于OS的虚拟OS资源的虚拟化工具,它能将OS闲置的资源加以充分利用,如果你的这台OS机器性能足够好,可以通过VMware Workstation创建DNS,DHCP,Apache等许多服务器,一个机子运行多个服务,节省了许多开支,这个作用是虚拟化所共有的特点。
VMware vSphere属于type1,是一种虚拟化方案包括很多东西,其核心是ESXi,ESXi独立安装在裸机上的操作系统(注意它不基于任何OS,它本身就是OS),通过它物理机的硬件资源被虚拟化为虚拟资源,之后再通过vCenter就能将安装了ESXi操作系统的物理机的资源进行整合,化为一个总的资源池,在这个资源池里面我们为各个部门划分不同大小的资源池方便其使用。
准确来说这两个不属于一个概念
VMware Workstation是一个基于OS的软件,而VMware vSphere则是根据企业的实际情况设计的一个虚拟化方案,它设计的软件,技术和要考虑的问题都要比VMware Workstation要多,要详细,要具体。
简单来说
VMware Workstation是一款基于OS的虚拟化软件
VMware vSphere则是一个具体的虚拟化方案
KVM介绍
- KVM是以色列公司Qumranet开发,2008年9月RedHat公司收购了Qumranet
- KVM是Linux内核的一个模块,它把Linux内核变成了一个Hypervisor
- 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架构图
kvm属于linux内核的一个模块,qemu-kvm作用于用户空间,通过/dev/kvm设备实现与内核的交互
Centos7安装KVM
安装前需要先查看cpu是否支持虚拟化:grep -Ei 'vmx|svm' /proc/cpuinfo
如果能匹配到关键字则表示cpu支持虚拟化,vmx为Intel的cpu、svm为svm的cpu
关闭虚拟机后,新增一块50G硬盘,以及勾选虚拟化引擎的相关选项:
启动后关闭selinux:
[root@linux ~]# setenforce 0
[root@linux ~]# getenforce
Permissive
#永久关闭还需编辑配置文件/etc/selinux/config
关闭firewalld或iptables:
[root@linux ~]# systemctl stop firewalld
[root@linux ~]# systemctl disable firewalld
查看新添加的硬盘:
[root@linux ~]# fdisk -l
磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a90c0
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 526335 262144 83 Linux
/dev/sda2 526336 62914559 31194112 8e Linux LVM
磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-root:29.8 GB, 29796335616 字节,58195968 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:2143 MB, 2143289344 字节,4186112 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
格式化:
[root@linux ~]# mkfs.ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3276800 inodes, 13107200 blocks
655360 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2162163712
400 block groups
32768 blocks per group, 32