专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
程序猿  ·  已婚程序员 ·  昨天  
程序员的那些事  ·  世界上最伟大最邪恶的软件发明,超过 10 ... ·  昨天  
程序员的那些事  ·  趣图:当我调试其他程序员的代码之时 ·  4 天前  
程序员的那些事  ·  这个大学生写了个免费软件,全世界网民抢着给他 ... ·  1 周前  
51好读  ›  专栏  ›  OSC开源社区

微软怪兽Windows Server能否再次颠覆整个行业?

OSC开源社区  · 公众号  · 程序员  · 2016-10-10 08:39

正文


#长按上图识别二维码,参与OSC源创会年终盛典#


编者按:数十年前,微软(Microsoft)公司绝对是互联网计算机领域的一头猛兽,不管是开创性的MS-DOS操作系统,还是经典的Windows系统,一经推出迅速占领商用台式计算机市场。早在Novell(诺威尔软件公司)还摸不着头脑时,Windows已经开始默默吸收OS/2系统的基因,摇身一变成为Windows NT系统以及NT服务器系统纵使Novell强势占据早期PC(个人电脑)网络市场,到20世纪90年代末,Novell已经大不如从前了。

微软近日宣布,新一代的面向服务器的WindowsServer 2016操作系统将在10月中旬前后正式上市。ArsTechnica撰文指出,就像怪兽哥斯拉(Godzilla)不断重生、进化和变异一样,Windows Sever服务器操作系统也在不断的吸收并融合其竞争者的优质基因,并不断以其超高性价比——80%功能配以20%收费——摧毁竞争对手的市场。然而,这头怪兽是否能够再次颠覆整个行业,且看下文中十分详细的分析。

2016年,微软重启三年前中断的Server 2012 R2服务器系统的进化和变异,终于发布了最新的Windows Server 2016服务器操作系统。Server 2016的发布力图提升微软服务器平台的市场地位,从一个本地部署服务器日益成长为一个当前商业云计算不可或缺的虚拟化、基于云操作的公司。

此次,Windows Server 2016发布包括四个版本——Essentials,Hyper-V Server,Standard和 Datacenter,三个部署计划——Desktop experience,Core和Nano,以及前所未有丰富的可选功能。

都说众口难调,而Server 2016这次却想为用户做到面面俱到:不仅是重量级的虚拟化管理程序,更是轻量云应用容器!不仅是高性能存储平台,更是加固的安全平台!

然而,就像电影里民众对于哥斯拉怪兽的误解一样,Windows Server 2016也不太可能获得普遍接受。不管怎么说,相对于Linux已经提供多年的虚拟化容器服务和VMW已经提供的虚拟存储区域网络,Server 2016发布的确实有点晚。

然而,Server 2016的每个功能都相当坚挺,并且相对于前两者都更易于使用,尤其是对于PowerShell有经验的用户。受益于微软曾在自己Azure云服务上应用Server服务器的经验,目前Server 2016 足以挑战甚至超过其虚拟化技术竞争对手。

技术预览版功能评测


Server 2016是基于前两代服务器系统Sever 2012和Sever 2012 R2进化而来的。除了一些类似Windows 10桌面的变化以外,Sever 2016的图形用户界面(GUI)相对于前两代没有多大变化。

Server 2016的Sever Manager(服务器管理程序)与前两代Server 2012 R2和Server 2012基本相同。

评测人员基于Server 2016Technical Preview 5(技术预览版本)对Server2016的一些重大变化以及主要功能进行了评测。

评测者进行了两套评测方案:一套评测是在Azure上运行虚拟实验室并由Microsoft设置,以熟悉Server 2016的关键功能。第二套评测是在个人实验室服务器,并为虚构的怪兽岛公司(Monster Island Incorporated)设置了本地部署网络,以更好的总体评估Server 2016平台以及其兼容性。

物尽其用


想要充分利用Server 2016的功能,需要服务器配置兼容X64指令集架构的Intel或AMD处理器,并且需要对应的支持二级地址转换(Second Level Address Translation)虚拟化的EPT(Intel处理器)或者Nested Paging Tables(AMD处理器)。鉴于可以在512MB RAM上运行Server 2016精简GUI的最小形式,至少需要2GB启动Desktop Experience安装。另外,至少需要32GB的SATA或者SCSI控制器硬盘空间来启动物理服务器,至少一个PCI Express千兆级以太网适配器(Ethernet adapter)。

据称,没有虚拟化的旧系统也能充分运行Server2016。

为了验证这一点,测评Server 2016主要都是在Monster Island公司的“传奇机器”——Dell PowerEdge 2950上运行的(这款机器与林顿地下室电子邮件服务器的相同款)。但是对于那些想要玩cale Up的(即过增加服务器的数量来扩大规模),Windows Server 2016绝对比它的前辈们要简便得多。


Server 2016 Essentials版本


Server 2016的各个版本无论是在本地部署还是远程服务都随时准备对微软云端开放。首先是以小业务为主的Server Essential服务器操作系统,主要用于少于25个用户的网络并且最多连接50个设备。

Server Essentials控制面板是一个高度简化的管理工具,过去四年没有太大变化。

Server Essentials Experience提供多种连接Azure的方式。

自Server 2012发布时引入的Server Essentials Experience几乎没怎么变化,包括一个远程桌面协议(Remote Desktop Protocol)方便管理员登录控制面板和多种微软云服务的快速集成向导。

AzureActive Directory服务:本地活动目录(Active Directory)域名的单点登录扩展,用于集成“软件即服务”(software-as-a-service)产品;

Office365协作服务;

Intune移动设备管理;

Azure虚拟网络:通过虚拟专用通道向本地网络添加Azure云服务实例;

Azure恢复备份和灾难恢复服务。

就像早期发布的Server 2012一样,Server 2016有连接本地部署Exchange 服务器的集成向导,还有远程访问和VPN功能。为了保证服务器稳定性,建议在Hyper-V中运行Server Essentials,在安装时不要选择 “Essentials Experience”作为物理服务器。如果要在Server Essentials服务上虚拟运行任何其他任务或者设置故障转移群集(failover clustering),还需要一个Hyper-V管理程序服务器。

Server 2016的其他版本目前都可以直接运行Essentials experience,而不必降级Active Directory授权许可。这意味着基本上能将Server Essentials扩展到满足需求并且同时能够保证同样的即插即用(plug-and-play)集成Azure云端服务以及同样的基于RDP的远程管理工具,这一切并不要求全面远程管理工具或者System Center2016许可文件。

然而,Server 2016平台的大多数功能并没有色调优美、用户友好的“向导”。想要真正见识Server 2016的强大功能,你需要放弃舒适的控制面板,深挖Windows Server基础架构的命令行工具PowerShell、组策略设置(group policy settings)和其他底层服务,这尤其适用于Windows Server家族的最新成员Nano Server。


Windows Nano Server


Nano Server是Windows Server精简后最新的进化版本,用于容器化云部署并且不干涉本地部署(hands-offon-premises)服务。本质上,Nano Server并不是一个独立的产品,完全可以当成一个部署选项。Nano Server类似于Server 2012引入的ServerCore服务器配置,只不过移除了大部分图形用户界面(UI),只留下一个控制台窗口。Nano Server参考Sever Core的经验,舍弃了一切服务器实例不必要的东西,变得更加轻便。其中舍弃的包括32位应用程序的支持、.MSI安装程序格式的支持以及所有的UI,只留下一个基本的文本菜单配置控制台。

Nano Server登录界面。

Nano Server 恢复控制台(Recovery Console)十分简洁,功能就是故障出现时重新连接服务器。

Nano Server 恢复控制台网络配置。

通过滚动设置或者全局重设防火墙。

在Powershell 中运行Nano Server。

Nano Serve“瘦身”有两大好处:其一,使其可攻击界面比正常服务器减小了数倍;其二,对于特定的服务和应用,减少占用意味着可以采取最低限度的部署,利用相对较小的虚拟化或者物理空间——为实际存储和计算应用节省磁盘和内存空间。并且,由于Nano Server映像完全是由PowerShell命令行创建的,十分易于自动创建和部署新的服务器。

然而,极简UI也带来了一些不便。Nano Server的控制台窗口只能用来修复网络和设置防火墙,其他任何操作都需要通过PowerShell或者安装软件包和执行XML共享文件指令,所以不要忘记安装文件服务模块。

该过程大都可以通过脚本和System Center 2016或者其他工具实现自动化,然而不要期待Nano Sever会有什么友好的“向导”手把手教你怎么做。并且,如果你计划将Nano Serve载入vSphere或者其他虚拟化技术,这就需要更多的虚拟机和虚拟磁盘转换的训练,因为脚本只能产生.VHD和.VHDX虚拟磁盘输出。评测者称其试图将Nano Server磁盘映像转换为一个vSphere实例的过程并不顺利。

Server 2016安全升级


Nano Server增强的安全性只是Server 2016安全性增强的一个开端,还有很多新的方法保护用户免遭攻击者窃取证书获得广泛访问服务器基础架构的权利——现实世界中常常发生这种攻击。还有一些新的功能称为Guarded Hosts和Shielded Virtual Machines,阻止拥有服务器访问权的用户访问其上运行的虚拟机。

今年早些时候,微软发布了一项功能称为“JustEnough Administration”(JEA),作为Windows Management Framework 5.0的一部分。JEA使用更加精细的访问控制授予个人权限来运行特定的管理任务。JEA通过PowerShell配置文件授予特定任务权限,而不是必须要授予使用者在Active Directory中更广泛的管理权。

例如,这能允许DevOps团队的成员通过特定的Power Shell命令集 "cmdlets"来诊断服务器实例的问题,而不需要授予其服务器完全管理权限。这样,可以大大减少完全管理权限账户的数量,减少许可证书被窃取和恶意利用的概率。

除此之外,JEA还意味着Server 2012 R2 中引入的“Just in Time Admin”功能,该功能允许通过特定任务的工作流程授予用户基于时间的管理权限。Server 2016也采用了最初由Windows 10 Enterprise 部署的Credential Guard技术。该技术是一项基于虚拟化的安全功能,利用Hyper-V分割其他操作系统的证书管理来帮助保护证书免受窃取。

Server 2016在物理和虚拟机上都得到了强化。Device Guard利用Hyper-V层作为操作系统(OS)和硬件的缓冲层,通过Windows组策略编辑器配置的组策略可以添加内核级别(kernel-level)和用户级别(user-level)软件的代码完整性检查。管理程序层增强了这种检查,只允许信任代码在系统上执行,正确的引导加载程序。Device Guard的代码完整性策略也能设置为允许通常被“阻塞”的应用程序以“审核模式”(audit mode)运行,并创建一个记录其详细活动的事件日志。

HostGuard服务是主机上运行Hyper-V虚拟机的一个服务器角色,提供另一级的保护。本质上,Host Guard就是基于软件的可信任平台模组(Trusted PlatformModule,TPM),用于“屏蔽”虚拟机。一旦在受保护的主机上创建“屏蔽”虚拟机账户,其位元锁加密(Bitlocker-encrypted)虚拟磁盘不能被任何具有本服务器访问权限的用户加载或读取。

设置Device Guard代码完整性策略限制可加载代码类型——内核级和用户级。

利用虚拟机管理程序和处理器虚拟接口设置“虚拟化安全性”(Virtualization-Based Security),监控代码执行和故障问题。

试图安装“屏蔽”虚拟机磁盘——失败。

当然,只有虚拟机(VMs)会要求这类安全强化,因为虚拟机运行在通用操作系统上,并且已经可以用“虚拟存储网络”(virtual SAN)功能加密运行在vSphere上的VMs虚拟磁盘。但是,这些功能至少给Server 2016和Hyper-V带来了虚拟机软件(VM Ware)的某种安全校验。

扩展Hyper-V


只要涉及到字符“v”,指的就是有关微软Windows Server虚拟化技术大大小小的变化——包括传统的虚拟机以及Server2016新引入的应用程序容器。虚拟化现已成为数据存储领域的一个趋势焦点,称为“超级集成系统存储”(hyperconverged storage),这种趋势很可能使得某些存储区域网络供应商的销售人员大大受挫。

Hyper-V最大的卖点在于:相较于VMWare平台,Hyper-V在小型虚拟机部署中的易用性。然而,这种优势在过去几年逐渐降低,因为vSphere能为小型虚拟机部署提供更好更便捷的管理工具。vSphere 6的网络管理,再加上最新的VMWare远程控制台,几乎与Hyper-V管理器在易用性上旗鼓相当。

VMware同样使用vSphere / ESXi精简型——并且不需要Windows Server许可证——来应对Hyper-V。自Server 2012以后,Hyper-V就有可用的免费版本,并且Nano Server部署计划中Hyper-V具有超精简配置。所以,无论运行Windows Server文件服务还是计算服务,Windows Server许可证问题似乎都变得无足轻重了。

当Server 2008最早发布Hyper-V平台时,VMware可以说是“江湖霸主”(其实现在也是,至少根据微软以外的许可证部署来看),而笨重的Hyper-V是微软平台引入虚拟化的第一杆。然而,今日的Hyper-V已经在多个方面追赶上VMware的vSphere,甚至在某些方面超越vSphere。

Windows Server2016 Hyper-V vs. VMware vSphere 6


Hyper-V的一个新功能称为“直接存储空间”(Storage Spaces Direct),是一种利用直连式存储(direct-attached storage)创建虚拟化存储高可用集群的方法。该功能直指vSphere的虚拟存储网络(virtual SAN)功能,更使得Hyper-V在功能上与vShpere相当。这里,直连式指的是将驱动器(SSDs或者磁盘)物理性连接至虚拟机的主机物理服务器。Storage SpacesDirect可以以“扩展文件服务器”(scale-out fileserver)配置运行,指的是通过SMB文件共享将计算虚拟机集群连接至群集存储服务器。

或者,Storage SpacesDirect可以以“超级集成模式”(hyperconverged mode)运行,指的是虚拟机应用直接运行在提供存储的服务机上,并且所有的“存储网络”由软件完成,该过程利用了微软基于原始存储空间创建的模型。

看起来就像创建一个存储集群。

按步骤单击,选择服务器来创建扩展文件服务器。

如果使用全固态硬盘SSDs,不需要使用Storage Spaces Direct的缓冲功能;但是如果是磁盘和SSD的混合硬盘,可以利用高速缓冲介质响应集群。

利用Storage Spaces Direct从磁盘中创建扩展文件服务器。

对于传统数据存储中心,这些功能可能没什么大不了。但是,对于具有许多通用服务器硬件的云端系统用户来说,这些功能就是“天降利器”。相对于之前必须将所有的设备连接至昂贵的存储硬件,现在云端系统用户可以根据需要卸载很多通用系统的本地磁盘,并在云端提供硬件。例如,数据库超级集成、其他输入-输出密集型应用以及其他应用的SMB简单集群。所有惯常的RAID冗余问题都能通过多软件集群系统得以解决。

其实,这是VMware早已实现的功能。然而,Windows Server 2016这项功能的向导驱动简易性、单一软件许可以及利用现有Windows系统管理员技能等,相比之下更具吸引力。这使得将一些高可用性要求的应用载入服务器云环境更容易、更低价。

微软一直声称十分乐意接受Linux,至少是作为Azure和Hyper-V的客户操作系统。

Hyper-V 2016给Linux VMs带来了一些增强功能,包括支持安全启动保护,本质上是保护虚拟机免遭引导装载恶意软件如隐蔽软件的感染。而vSphere 6 / ESXi支持Linux客户操作系统“统一可扩展固件接口”(UEFI)启动,目前还不支持安全启动。

另外一个功能是支持嵌套虚拟化,可以在虚拟机自身Hyper-V实例中创建虚拟机,称为盗梦空间风格”( Inception-style)。目前,这种嵌套只能在支持VT-X的Intel处理器服务器硬件上实现。配置AMD-V处理器的服务器目前还不支持Hyper-V,但是暂时可以在v-Sphere 6中嵌套Hyper-V。并且,Hyper-V管理器应用目前尚不支持启用嵌套虚拟化——每个虚拟机只能通过PowerShell启动:Set-VMProcessor -VMName-ExposeVirtualizationExtensions $true

其中,最大的好处是云部署。现在,用户可以部署Hyper-V作为私人数据中心或者Azure或者其他Windows Server云中的虚拟实例。微软不断提升的软件定义网络和屏蔽虚拟机功能,使得多用户云运营商能够向防火墙保护的客户提供虚拟Hyper-V主机。该过程给予客户一些信心,没有人能够从云端窥探他们的服务器。

Hyper-V的虚拟机管理也有一定的提升,现已支持虚拟机上热插拔内存,在VM活动状态下添加内存分配。并且,现已支持在不卸载虚拟机的状态下重调虚拟硬盘文件(.vhdx)大小。此外,也加入了主机资源保护,用户可以在虚拟机上设置最大活动级别来防止失控VM拖累整个服务器。

相比于2012 R2局限于每个虚拟机1TB内存,Hyper-V 2016每个虚拟机支持多达12TB内存。前者支持每个虚拟机64个虚拟处理器,后者扩大了三倍之多,支持240个。总之,目前在一个虚拟机上就可能运行大多数服务器应用。另外,旧版Hyper-V支持硬盘传递和专用网络接口来增强性能,Hyper-V 2016允许管理员直接为虚拟机分配物理PCI Express设备。这使得Hyper-V能够实现快速访问——连接RAMSSDs、GPUs和USB-3控制器。

上述所有构成了Hyper-V在某些领域的一些微小优势,很可能是短期优势。

容器


Server 2016的里一个技术是利用容器实现应用程序虚拟化。容器允许你的应用从底层的操作系统中隔离,从而改善应用程序的部署和可用性。当然,容器这个概念并不新鲜,Solaris 的“zones”、FreeBSD的“jails”,以及Linux Containers(LXC)都已经流行数年。但是直到“DevOps”开发实践、连续应用交付和连续应用部署概念等的广泛接受,容器技术才开始被广泛采用。

微软向具有任何Windows Server2016许可证的Docker容器部署工具提供商业支持。Server2016的Docker集成支持两类容器——一类是简单实际的应用程序容器,运行在“沙盒”( sandbox)但是共享主机服务器的内核;另一类是基于Nano server配置的Hyper-V小型虚拟机容器,尽管Nano server不算真正的容器,因为它使用其自身的内核实例,但是 Nanoserver在应用部署方面具有容器功能。

并且,Nano server能够有效阻止容器化应用在自身复制和集群过程中产生整个服务器内核差错。

需要很多PowerShell命令才能实现以上所有功能。一旦安装Docker引擎,用户就能够在自己应用程序和预封装应用程序上创建容器映像。这意味着用户可以在容器中的服务器上运行信息服务器IIS,同时不把其他服务器底层文件系统暴露给IIS或者任何IIS漏洞攻击。

然而,评测者称其测试技术预览版本时,Windows Server容器崩溃了。真正效果如何,还需等待测评者更新。

鹬蚌相争,渔翁得利


根据现有经验,对于已经使用Windows Server平台的企业,Server 2016升级不可避免。不说别的,单就Hyper-V和Server 2016增添的安全功能足以趋势企业尽快升级。并且,Server 2016的触角已经伸向更广泛的领域,尤其是虚拟化空间,不管是对于私人云端还是多用户云端,Hyper-V都极具吸引力。

一些新的功能,如容器,可能需要更多具有PowerShell专业技能的用户开发和成熟化,以方便普通用户使用。

然而,Server 2016最大的好处是其再次将先前昂贵的附加服务集成至操作系统中。随着Windows Server日渐壮大和优异,行业其它服务商不得不更新换代。

Windows Server 能否颠覆整个行业?

恐怕很难,然而如果其它基础软件供应商小瞧微软的强势进军,必将自食其果。反之,如果这些竞争者愿意在易用性和成本上与微软一较高下,这正合我们广大用户之意。


END


推荐阅读

点击标题直接进入阅读

源创专访:《魅族高级工程师于洋子:服务端架构设计与开发

选择服务端开发方向,绝不是可以速成的,一定要抱着数年磨一剑的心态去深入探索,才能有所斩获。

精彩资讯:《TIOBE10月编程语言排行榜:GO将问鼎2016年度编程语言?

谷歌的Go语言似乎是无可匹敌的,其中因Go语言编写的Docker容器的普及,也可能起到了一定的提升作用。

《国庆小长假没玩够?成都、重庆源创会走起!》

开源中国源创会就将来到成都、重庆,与各位OSCer来一个约会,更为大家奉上精彩的主题演讲,各位还不来赴约吗?

点击下方“阅读原文”查看更多精彩内容