导读 很多工程师都知道,如果你选择在 Hyper-V 中运行 Linux guest VM,要获得最好的使用体验,必需针对你所使用的 Linux 发行版和使用场景选择 Linux Integration Services(LIS,Linux 集成服务)。要想在 Hyper-V 中获得「最佳」Linux 使用体验会比较微妙,下面我们将详细进行介绍,以帮助大家根据自身情况作出最正确的选择。

开始我们先请大家注意的是:微软通过两个独立的通道向用户交付 LIS。这两个交付通道彼此独立,所以你必需先确定哪个将会通道最适合你。

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 功能与性能提升。微软独立安装包目前最新为 LIS 4.1 和 LIS 4.0 版本,大家可以自行下载安装。

需要重点注意的是,使用独立 LIS 版本必需要有特定版本的 Linux 内核与之匹配。例如在使用 LIS 独立包的情况下,系统由 CentOS 7.0 更新到 7.1 后 LIS 包并不会更新,需要单独对 LIS 进行升级。如果你只更新 Linux 内核或大版本而不升级 LIS,可能造成 Linux 内核中的二进度不匹配,严重可能导致系统无法启动。微软会按 Hyper-V 支持条款对使用独立 LIS 包的 Linux 用户提供官方技术支持,如果你使用老版本,微软会在技术支持时要求升级到最新 LIS 版本观察问题是否存在。由于 LIS 主要是运行于 Linux 内核级的驱动,所以微软只提供版本更新,不太可能提供修复补丁。

下面就 Hyper-V Linux VM 该如何选择 Linux Integration Services 列出一个表格,仅供大家参考:

最新文章

  1. 排序算法总结------选择排序 ---javascript描述
  2. Object-C内存管理的理解总结
  3. Docker change directory
  4. Long-Short Memory Network(LSTM长短期记忆网络)
  5. 经典线程同步 互斥量Mutex
  6. CODESOFT中线条形状该如何绘制
  7. linux中ctrl+z和ctrl+c的区别
  8. Oracle基础(七)数据表
  9. c-函数指针(求奇数偶数的和)
  10. UESTC_秋实大哥去打工 2015 UESTC Training for Data Structures<Problem G>
  11. [Ruby学习总结]Ruby中的类
  12. "!function",自执行函数表达式
  13. from提交表单后 数据提交到后台 但不跳转页面 可用iframe
  14. Linux服务器tomcat启动很慢
  15. vueX、vue中transition的使用、axios
  16. while 循环,存储过程
  17. day2-安装python以及基本使用
  18. 基于python调用libvirt API
  19. Hadoop原生态版安装
  20. javascript典型bug——错误的闭包

热门文章

  1. Cocos2d-x3.0 载入Cocostudio的UI后,button无法点击的解决方法
  2. HDU 1823 Luck and Love 二维线段树(树套树)
  3. USES_CONVERSION的使用和注意
  4. struts2 s:set标签
  5. c语言中函数参数入栈的顺序是什么?为什么
  6. WebSocket 学习--用nodejs搭建服务器
  7. Atitit.软件仪表盘(4)--db数据库子系统-监测
  8. [svc]salt基本原理
  9. CA证书的信认
  10. Struts2的OGNL遍历数组、List、简单的Map