作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。由于涉及到内容较多,这里的目录就只是以简单分类介绍和说明,不再针对单个小节进行目录列出,主要涉及的分类包括以下几个方面:
1.虚拟化介绍(本小节属于)
2.kvm基本使用
3.kvm进阶使用
4.kvm技术原理
5.vmware介绍&使用
6.小结
虚拟化介绍
虚拟化是一种将物理资源抽象为虚拟(逻辑)资源的技术,在计算机领域具有广泛应用。通过虚拟化,可以将一台物理计算机划分为多个虚拟计算机,并在每个虚拟计算机上运行独立的操作系统和应用程序。
虚拟化技术有助于优化资源利用、提高系统灵活性和可扩展性,并提供更高的可靠性和安全性。以下是一些常见的虚拟化类型:
- 服务器虚拟化:在一台物理服务器上运行多个虚拟服务器实例,每个实例都可以独立运行操作系统和应用程序。这种虚拟化形式可以提高服务器资源利用率,并实现快速部署和管理虚拟服务器。(云主机)
- 桌面虚拟化:将物理桌面环境虚拟化为虚拟桌面实例,使用户可以通过网络访问和使用虚拟桌面。桌面虚拟化可以提供更好的用户灵活性和便利性,并简化桌面管理和维护。(云电脑,本质还是一种云主机的特殊应用)
- 网络虚拟化:通过将物理网络资源划分为多个虚拟网络,实现逻辑上的隔离和灵活性。网络虚拟化可以提供更好的网络资源利用率、灵活的网络配置和更高的网络安全性。(vpc网络,目前市场上的云都在使用,可以无限扩展而不受物理网络的限制)
- 存储虚拟化:将物理存储资源抽象为虚拟存储池,并为虚拟机提供灵活的存储分配和管理。存储虚拟化可以简化存储资源管理,并实现更好的存储利用率和性能优化。(分布式存储,提供无限的存储空间)
虚拟化技术的核心是虚拟机监视器,它是一个软件层,负责管理和分配物理资源给虚拟机。
虚拟化技术介绍
硬件虚拟化
- 现代的 CPU 都提供了对虚拟化的硬件支持。例如英特尔的 VT-x 技术和 AMD 的 AMD-V 技术。这些技术允许 CPU 在硬件层面上区分虚拟机的指令和物理机的指令,从而提高虚拟化的效率和性能。通过硬件支持,虚拟机可以更高效地利用物理资源,减少了因软件模拟带来的性能损耗。
全虚拟化
- 全虚拟化是一种虚拟化技术,它在虚拟机和物理硬件之间提供了一个完整的虚拟层。在全虚拟化环境下,虚拟机中的操作系统无需修改就可以直接运行。虚拟机操作系统发出的所有指令都被虚拟层拦截并模拟执行,就好像虚拟机操作系统直接运行在物理硬件上一样。性能弱于硬件虚拟化。
半虚拟化
- 半虚拟化是一种相对全虚拟化而言更为高效的虚拟化技术。在半虚拟化环境下,虚拟机中的操作系统需要进行部分修改才能在虚拟环境中运行。虚拟机操作系统发出的部分指令会直接在物理硬件上执行,而不是全部通过虚拟层模拟执行。虽然性能强于全虚拟化,但是虚拟机操作系统需要定制。
此图来源于互联网
简单点来说就是普通指令vmm转换影响很小,但是特权指令则受虚拟化技术的限制较多,全虚拟化全部软件模拟,性能较差;半虚拟化性能好,但是操作系统需要定制;硬件辅助虚拟化性能最好,需要硬件支持。
虚拟化技术
KVM
KVM(Kernel-based Virtual Machine)是一种基于Linux内核的开源虚拟化技术。它允许在Linux操作系统上创建和管理多个虚拟机(VMs),每个VM都可以运行独立的操作系统和应用程序。
以下是KVM的一些重要特点和优势:
- 硬件虚拟化支持:KVM利用处理器的硬件虚拟化功能(如Intel VT和AMD-V)来提供近乎原生的性能,同时确保虚拟机之间的隔离和安全性。
- 完全虚拟化和半虚拟化支持:KVM支持完全虚拟化和半虚拟化两种模式。完全虚拟化模式下,虚拟机可以直接运行未经修改的操作系统;半虚拟化模式下,虚拟机需要修改操作系统来提高性能。
- 动态资源分配:KVM可以根据虚拟机的需求动态分配CPU、内存和存储等资源,以实现更高的资源利用率和灵活性。
- 弹性扩展:KVM可轻松扩展以支持大规模虚拟化环境,并提供负载均衡和故障转移等功能,以确保高可用性和可靠性。
- 支持广泛的操作系统:KVM支持运行多种操作系统,包括Linux、Windows、BSD等,因此非常适用于混合操作系统环境。
- 开放源代码和社区支持:KVM是一个开源项目,拥有庞大的社区支持和开发者社区,这意味着它可以不断地得到更新、改进和修复问题。
- 与其他开源工具的集成:KVM可以与许多其他开源工具和技术(如QEMU、libvirt和OpenStack)集成,以提供更完整的虚拟化解决方案。
KVM作为一种成熟且广泛采用的虚拟化技术,被广泛用于企业的服务器虚拟化、云计算平台和虚拟化网络等场景。它提供高性能、高可用性和灵活性,并且具有较低的成本和易于管理的优势,因此受到了许多组织和用户的青睐。
还有一种叫KVM切换器的产品,也在运维中会涉及到,他是将多台显示器都接到一个统一的KVM设备上,然后接一台显示器到这个kvm设备上,通过控制KVM设备来控制显示不同的主机的内容。
VMware
VMware 是一家知名的虚拟化和云计算技术提供商,其产品和技术被广泛用于企业级数据中心和云计算环境中。以下是关于 VMware 的主要产品和特点的介绍:
主要产品和技术:
- VMware vSphere:VMware vSphere 是其核心产品,是一款基于 VMware ESXi 的虚拟化平台。它提供了强大的虚拟化和管理功能,包括虚拟机管理、资源调度、高可用性、故障恢复、安全性和自动化等功能。
- VMware ESXi:VMware ESXi 是 VMware 的核心虚拟化操作系统,用于在物理服务器上虚拟化运行多个虚拟机。它支持硬件虚拟化,并提供高性能和低延迟的虚拟化体验。
- VMware vCenter Server:VMware vCenter Server 是 vSphere 的管理平台,用于集中管理和监控多个 ESXi 主机和虚拟机。它提供了集中的管理界面,支持虚拟机的创建、配置、监控、备份和恢复等操作。
- VMware Workstation 和 VMware Fusion:VMware Workstation(用于 Windows 和 Linux)和 VMware Fusion(用于 macOS)是桌面虚拟化产品,允许用户在个人计算机上创建和运行多个虚拟机。这些产品适用于开发人员、测试人员和技术爱好者,提供了灵活的开发和测试环境。
- VMware Horizon:VMware Horizon 是一款虚拟桌面基础设施(VDI)解决方案,允许用户通过网络访问虚拟桌面和应用程序。它支持移动设备、桌面计算机和终端用户设备的访问,提供了灵活的工作空间解决方案。
- VMware Cloud Foundation:VMware Cloud Foundation 是一种集成的软件定义数据中心平台,通过整合 vSphere、vSAN 和 NSX 等技术,提供了完整的软件定义基础设施(SDI)和云计算解决方案。
主要特点和优势:
- 高可用性和故障恢复:VMware 提供了多种高可用性选项和自动故障恢复功能,确保虚拟机和应用程序的连续性和可靠性。
- 资源管理和优化:VMware 提供了先进的资源调度和优化功能,允许管理员有效地管理和利用物理资源,提高数据中心的资源利用率。
- 安全性和隔离性:VMware 提供了多层次的安全性措施,包括虚拟化的安全性功能、访问控制和网络隔离,保护虚拟环境中的数据和应用程序。
- 云集成和混合云支持:VMware 提供了与公有云(如 AWS、Azure)和混合云环境的集成,允许企业在私有云和公有云之间灵活地迁移和管理工作负载。
- 开发和测试环境:VMware 的桌面虚拟化产品(如 Workstation 和 Fusion)为开发人员和测试人员提供了灵活的开发和测试环境,支持多种操作系统和应用程序的快速部署和测试。
Hyper-V
Microsoft Hyper-V 是一款由微软开发的虚拟化平台和超级监视器。它允许用户在单台物理计算机上创建和管理虚拟化环境,从而能够在同一硬件上同时运行多个操作系统和应用程序。以下是关于 Microsoft Hyper-V 的一些主要特点和介绍:
主要特点和功能:
- 硬件虚拟化支持:Hyper-V 利用硬件虚拟化扩展(如Intel的VT-x或AMD的AMD-V)来提供高性能的虚拟化环境,减少虚拟机和宿主系统之间的性能损失。
- 虚拟机管理:用户可以轻松地创建、配置和管理虚拟机(VM),包括分配资源、调整网络设置和存储配置等。
- 支持多操作系统:Hyper-V 支持运行多种不同的操作系统,包括各种版本的 Windows Server、Linux 发行版和其他支持的客户操作系统。
- 高可用性和容错:Hyper-V 提供了高可用性选项,如虚拟机复制和故障转移,以确保虚拟机服务的连续性和可靠性。
- 网络虚拟化:支持虚拟交换机和网络配置,允许管理员灵活地管理虚拟机之间的网络通信和外部网络连接。
- 动态内存分配:Hyper-V 允许管理员配置虚拟机以动态方式分配内存,根据虚拟机的需求动态调整内存大小,提高资源利用率。
- 快照和复原:用户可以创建虚拟机的快照(Snapshot),并在需要时快速恢复到先前的状态,便于测试、开发和应急恢复。
- 集成:Hyper-V 与 Microsoft 的其他平台和服务(如 Active Directory、System Center 等)紧密集成,使其在企业环境中易于部署和管理。
使用场景:
- 服务器虚拟化:允许企业在一台物理服务器上运行多个虚拟服务器,提高资源利用率和服务器灵活性。
- 开发和测试环境:为开发人员提供多个测试环境,以在同一硬件上运行不同的操作系统和应用程序版本。
- 应用程序兼容性:允许在一个操作系统上运行不兼容的应用程序或环境,以提供更好的应用程序兼容性和支持。
总结
1.虚拟化就是把一台电脑&服务器虚拟成多个独立的操作系统,让不同的应用可以独立运行,不会相互干扰。
2.全虚拟化全部软件模拟,性能较差;半虚拟化性能好,但是操作系统需要定制;硬件辅助虚拟化性能最好,需要硬件支持。
3.目前市面上最主流的虚拟化技术是kvm,目前各大云厂商的虚拟机大多是基于kvm出来的。