Hyper-V是微软的一款虚拟化产品,是微软第一个采用类似Vmware和Citrix开源Xen一样的基于hypervisor的技术。
Hyper-V底层的Hypervisor代码量很小,不包含任何第三方的驱动,非常精简,所以安全性更高。Hyper-V采用基于VMbus的高速内存总线架构,来自虚机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过VSC,通过VMbus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。这种架构效率很高,不再像以前的Virtual Server,每个硬件请求,都需要经过用户模式、内核模式的多次切换转移。更何况Hyper-V现在可以支持Virtual SMP,Windows Server 2008虚机最多可以支持4个虚拟CPU;而Windows Server 2003最多可以支持2个虚拟CPU。每个虚机最多可以使用64GB内存,而且还可以支持X64 *** 作系统。
完美支持Linux系统Hyper-V可以很好地支持Linux,可以安装支持Xen的Linux内核,这样Linux就可以知道自己运行在 Hyper-V之上,还可以安装专门为Linux设计的Integrated Components,里面包含磁盘和网络适配器的VMbus驱动,这样Linux虚机也能获得高性能。比如Novell SUSE Linux 10 SP1,其中的网卡驱动,其总线类型就是VMbus。
Hyper-V可以采用半虚拟化(Para-virtualization)和全虚拟化(Full-virtualization)两种模拟方式创建虚拟机。半虚拟化方式要求虚拟机与物理主机的 *** 作系统(通常是版本相同的Windows)相同,以使虚拟机达到高的性能;全虚拟化方式要求CPU支持全虚拟化功能(如Inter-VT或AMD-V),以便能够创建使用不同的 *** 作系统(如Linux和Mac OS)的虚拟机。
如何选择LIS很多相关工程师都知道,如果选择在 Hyper-V 中运行Linux guest VM,要获得最好的使用体验,必需针对你所使用的 Linux 发行版和使用场景选择 Linux Integration Services(LIS,Linux集成服务)。要想在 Hyper-V 中获得「最佳」Linux 使用体验会比较有趣。
Linux发行版内置的LIS
首先各大 Linux 发行厂商,例如 Red Hat、SUSE、Oracle、Canonical 和 Debian 社区等是 Linux Integration Services(LIS)最为直接的交付方式。微软和 Linux 社区开发人员会将大的 LIS 更新提交到 Linux 内核邮件列表,并从 Linux 社区收集代码审查和反馈意见。当反馈过程完成后,更改便会被纳入上游由 Linus Torvalds 和 Linux 社区「维护者」负责的 Linux 内核。当验收合格后,Linux 发行厂商会将 Linux 内核移植到自己的发行版本当中,并由该发行商将 LIS 作为其产品的一部分进行构建和测试。测试完成后,微软将得到产品的早期版本并将自己的测试结果返回给发行商。目前 Red Hat、SUSE、Canonical和 Oracle 等公司都与微软保持着这样的合作流程,所涉及的产品包括 RHEL、CentOS、SLES、Oracle Linux 和 Ubuntu。当然,Debian 社区也与微软保持同样的合作。
这条 LIS 发行通道被微软称为「内置」,即你从 Linux 发行商那里获取到产品时就已经内置了 LIS。例如,当你从 CentOS 7.0 升级到 7.1 后就会获得 CentOS 7.1更新的 LIS。需要注意的是,微软并没对内置式 LIS 指定版本号,用户什么时候能获得 LIS 更新完全取决于发行厂商何时从上游拉取并更新 Linux 内核。此种「内置」方式唯一不足之处就是用户可能无法及时获取到最新 LIS 更新及新特性,但 Linux 厂商与微软之间的联合测试能够保尽可能证 Linux 系统在 Hyper-V 环境下的使用稳定。对内置 LIS 的技术支持完全取决于最终用户与 Linux 发行商之间的支持协议和条款,微软的直接客户可以按 Hyper-V 的支持协议条款获取到微软官方的技术支持。在以上两种情况下,LIS 代码级 Bug 会由微软与Linux 发行商配合搞定,并通过 Linux 发行商的更新代码或补丁方式进行修复。
微软LIS独立安装包
Linux Integration Services 另一条交付通道便是微软为最终用户直接提供的 LIS 安装包,该种方式想必很多微软方向的工程师都不陌生,此种方式适用于 RHEL、CentOS 等采用 Red Hat 内核和兼容 Oracle Linux 的发行版。随着 Azure 的不断更新以及对 Windows Server 2016 新版 Hyper-V 的支持,独立 LIS 也保持了一定的更新频度和速度。独立 LIS 安装包的出现让用户可以及时更新,不必等待 Linux 厂商的官方更新便可获得 LIS 功能与性能提升。微软独立安装包目前最新为 LIS4.1 和 LIS4.0 版本,大家可以自行下载安装。
需要重点注意的是,使用独立LIS 版本必需要有特定版本的Linux 内核与之匹配。例如在使用LIS 独立包的情况下,系统由CentOS 7.0 更新到 7.1 后 LIS 包并不会更新,需要单独对 LIS 进行升级。如果你只更新 Linux 内核或大版本而不升级 LIS,可能造成 Linux 内核中的二进度不匹配,严重可能导致系统无法启动。微软会按Hyper-V 支持条款对使用独立 LIS 包的 Linux 用户提供官方技术支持,如果你使用老版本,微软会在技术支持时要求升级到最新LIS 版本观察问题是否存在。由于LIS 主要是运行于 Linux 内核级的驱动,所以微软只提供版本更新,不太可能提供修复补丁。
下面就 Hyper-V LinuxVM 该如何选择 Linux Integration Services 列出一个表格,仅供大家参考:
注意:
1.某些Linux发行版自身已经安装有LIS。对于这些发行版,大家只需要启用即可在Hyper-V中发挥其全部功能特性。
2.请在已经安装了LIS驱动程序与服务的Linux发行版中启用集成服务
安装LIS集成服务 1. 需要LIS的iso2.利用Hyper-V管理器将LIS ISO导入虚拟机系统
3. 将LinuxIC-4.1.2-2.iso文件指向Linux虚拟机系统
4.执行以下命令以启动该ISO文件:
5.以root权限登录并对相关目录作出变更,具体以需要安装的发行版本决定
6.运行LIS ISO所提供的脚本以安装LIS
5. 重新启动Linux虚拟机,这样LIS组件就会完成初始化并成功注册。重新启动之后,利用“lsmod”或者“Modinfo”命令检查LIS驱动程序与服务的当前状态。
启用集成服务的步骤
1. 第一步是利用以下命令编辑/etc/initramfs-tools文件夹下的“modules”文件:
2. 在vi编辑器中,找到该文件的最后一行并使用(I)插入命令加入以下命令行:
3. 接下来按下Esc键并利用“:x”命令保存文件。
4. 然后通过以下命令对“modules”文件重新进行初始化:
5. 最后,通过在Shell中执行以下命令重新启动虚拟机系统:
6. 客户虚拟机重新启动完成之后,LIS驱动程序与服务都将在系统中得到注册。重新启动之后,大家可以通过以下命令确认LIS驱动程序与服务是否已经安装完毕:
Lsmod
通过这项命令应该能够看到LIS驱动程序与服务被包含在列表当中,需要在其中找到hid_hyperv,hv_netvsc, hv_utils, hv_storvc以及hv_vmbus,有它们在LIS才能被正确启用。
在今年的 Build 2016 上,微软向全世界介绍了他们还处于 Beta 阶段的 Windows 下的 Linux 子系统Windows Subsystem for Linux(WSL),它可以让开发者们在 Windows 10 下通过 Bash shell 运行原生的 Ubuntu 用户态二进制程序。如果你参与了 Windows Insider 计划,你就可以在最新的 Windows 10 年度升级版的 Insider 构建版中体验这个功能了。Web 开发人员们不用再苦恼所用的 Windows 开发平台上没有合适的 Linux 工具和库了。WSL 是由 Windows 内核团队与 Canonical 合作设计和开发的,可以让 Windows 10 下的开发者们在拥有 Windows 中那些强力支持之外,还能使用 Linux 下丰富的开发环境与工具,而不用启动到另外的 *** 作系统或者使用虚拟机。这绝对是一个“来自开发者,服务开发者”的 Windows 10 特色,它的目的是让开发者们每天的开发工作都变得顺畅而便捷。
在本文中,我会展示给你一些我认为非常有趣的功能,以及告诉你一些可以让你找到更多信息的资源。首先,我会展示 WSL 所集成的那些主要命令(比如 ssh)是如何 *** 作服务器和设备的。其次,我会演示使用 Bash 脚本是如何以简明的方式来自动化执行任务的。其三,我会利用极棒的命令行编译器、一些其它工具以及对 *nix 兼容的能力来玩一个轻量级的古典黑客级游戏: NetHack。最后,我会展示如何使用已有的 Python 脚本和其它来自网上的脚本。
从我的第一台 286 上运行的 Windows 3.0 开始,Windows 就一直是我的主要 *** 作系统和开发环境。不过,我身边也有很多 Linux 服务器和设备。从树莓派和路由器/网关设备这样的物联网设备,到 Minecraft 服务器,它们堆满了我的办公室的每个角落。而我经常要从我的主工作站中去管理和配置这些 Linux 计算机。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)