两款国产商业VDI桌面虚拟化方案的简单评估报告

项目需求

  • 降低客户端电脑管理成本
  • 保障数据安全,防止数据泄密及丢失
  • 提升IT运维水准,降低故障修复时间

VDI介绍

广义的VDI(虚拟桌面基础架构)技术是从应用虚拟化发展延伸而来的,后来出现了桌面虚拟化等多种技术细分。和桌面虚拟化把整个桌面远程交付给用户不同,应用虚拟化是将特定应用远程交付给用户,随着网络带宽的改善和移动化需求的普及,桌面虚拟化逐渐普及开来,取代了应用虚拟化成为这一技术的“代言人”。

和所有技术一样,其存在必然有其合理性。本质上,桌面虚拟化交付给最终用户的只是一个画面,应用程序的安装、部署、运行以及管理实际都在数据中心的服务器上进行。前端用户鼠标的点击和移动、键盘的敲击都要传递到服务器处理,处理结果再返回给用户。

VDI的技术特征决定了其如下价值,包括节省用户桌面部署和维护成本、集中管控更安全、允许任意设备任意地点接入更灵活等。比如,由于整个桌面都部署和运行在数据中心,因而其管理(比如打补丁)就非常简单,在服务器可以一次完成百千台桌面的更新,新应用的发布也只需在服务器上几次点击而已,根本不用在每个用户终端上进行操作。这就极大地降低了管理成本。还有,VDI对用户终端的计算能力要求非常低(此时终端几乎只是其图形显示作用),这样只需配备ARM架构的瘦客户机甚至一个浏览器就可以运行任何复杂、计算密集型的应用软件(如3D设计)。基于这个特性,可以利用旧的电脑作为终端从而降低成本,同时还可以很好地支持远程办公或移动办公。

成本效益分析

在VDI概念普及的早期,由于节省成本更容易被用户接受,所以很多厂商常常不知觉地强调这项技术在节约成本上的作用。不过,今天对于这一认识已经有了很大改变。

VDI省的是OPEX,而不是CAPEX。VDI长期来看能简化管理,降低TCO,但在前期因为需要对IT架构进行改造,需要新增服务器和存储设备,这会增加投资:

 传统PCVDI方案
可量化的成本单机购置成本3000元(不含显示器)每桌面平摊购置成本3000-8000元
使用电力较多(单机功耗300W左右)节省电力(ARM瘦客户机在10W左右)
需要较多维修人力(定期硬件维护、操作系统安装、补丁分发、应用软件分发)节省人力,1人可管理上千台虚拟桌面
无法量化的成本分散管理(现场维修)集中管理(控制台远程维护)
硬盘故障后数据易丢失,需使用者自行备份由RAID技术或副本功能保护;有统一的备份机制
若系统中毒或故障,需要等候维修数小时;个人资料易丢失立即进行系统还原,等候数分钟即可恢复工作;个人资料不影响
更换新机或新系统,资料需迁移更换新系统(模板),资料无需迁移
CPU几乎无法升级,内存升级需采购可适时增加虚拟CPU或内存
(通常)自由安装软件可管控软件安装
USB、硬盘不易管制USB可设置权限;硬盘位于机房服务器内
PC机占用较大个人空间瘦客户机体积小(更轻松的人机环境与使用感受,提升公司形象)
电磁辐射、废气污染极少的电磁辐射和废气污染
办公室以外无法访问使用云端桌面,可提供外部访问
采购流程复杂,交付时间长一次采购,(一定时间内)长期使用;快速交付,从模板创建一台新桌面仅需数秒钟

综上,本次VDI方案评估,我们主要关注以下几点:

  1. 价格比PC机略低或持平
  2. 部署比PC机简单
  3. 运维比PC机高效
  4. 用户体验与PC机持平
  5. 安全与可用性

解决方案

目前VDI的主流解决方案有两大类,一类是商业解决方案,一类是开源解决方案。此次项目分别针对这两种方案进行了测试,商业方案选择的是深信服aDesk桌面云产品以及华为FusionAccess桌面云产品,开源方案选择的是Ravada桌面云项目。除了这两种方案外,项目组有通过微软的HyperV自行搭建了一套免费的VDI系统进行测试,下面将对这4种方案进行逐一介绍。

方案一:深信服

官网:http://www.sangfor.com.cn/product/it-yun-a-desk.html

深信服aDesk桌面云方案,是基于融合架构的新型桌面模式,通过深度整合服务器虚拟化、桌面虚拟化及存储虚拟化,只需桌面云一体机和云终端两种设备,即可实现云平台的快速交付,为用户提供操作体验及软硬件兼容性媲美PC,更安全、更高效的云桌面。aDesk基于KVM并通过自研的SRAP协议进行虚拟桌面交付。

方案二:HyperV

HyperV桌面云方案,是项目组基于微软的Hyper-V Server 2016搭建的免费VDI平台。由于Hyper-V Server 2016只能提供基础的虚拟机管理服务,不能满足VDI的日常使用及管理需求,所以进阶功能都是由项目组通过自行编写脚本及搭建web站点来实现,功能上不是非常完善,用户体验、稳定性以及可管理性也远不及商业方案。

方案三:Ravada

官网:https://ravada.upc.edu/

Ravada桌面云方案,是一个国外的基于KVM的开源桌面云项目,此项目只能提供基础的虚拟机创建与访问,功能模块较为简单,无法满足VDI的使用及管理需求。

方案四:华为

官网:https://e.huawei.com/cn/solutions/cloud-computing/desktop-cloud

华为FusionAccess桌面云是基于华为云平台的一种虚拟桌面应用。通过在云平台上部署桌面云软件,终端用户可通过瘦客户端或者其他任何与网络相连的设备来访问跨平台应用程序及整个桌面。FusionAccess桌面云以安全可靠、卓越体验及敏捷高效为特点,为用户提供成熟的解决方案。

功能及模块对比

 华为深信服HyperVRavada
管理控制台×
仪表板××
分布式虚拟存储选配××
SSD缓存优化需有虚拟分布式存储或共享存储××
链克隆技术×
内存页整合××
双屏显示××
屏幕水印××
移动办公××
广域网优化××
蓝牙耳机××
USB摄像头××
高拍仪××
虚拟机管理可批量创建虚拟机
可批量加域
可批量更新虚拟机
可创建开关机计划
可批量创建虚拟机
可批量加域
可批量更新虚拟机
可创建开关机计划
只能通过脚本在单台物理机上批量创建虚拟机可批量创建虚拟机
虚拟机高可用实体机故障,虚拟机可自动切换到群集中的其他主机(需有虚拟分布式存储或共享存储)实体机故障,虚拟机可自动切换到群集中的其他主机虚拟机无法自动切换虚拟机无法自动切换
虚拟机备份与恢复可创建批量备份任务(需选装eBackUp模块)可创建批量备份任务无法创建备份任务无法创建备份任务
自动化调度动态资源调度,根据主机的负载,自动迁移虚机(需有虚拟分布式存储或共享存储)×××
电源管理自动化根据主机的资源利用率,自动上线或下线主机以节省电力资源,下线前自动迁出虚机,上线后自动迁入虚机(需有虚拟分布式存储或共享存储)×××
虚拟化防毒提供防病毒接口,与防毒厂商对接,为虚拟化平台提供统一的防病毒服务×××
虚拟机资源QoS可以对虚拟机设定资源的使用上限,包括CPU、内存、网络、磁盘IOPS等×××
统计报表虚拟机性能、状态统计
用户使用信息统计
×××
容灾备份城域双活容灾
阵列复制容灾
两地三中心容灾
FusionStorage Block复制容灾
(需有共享存储)
×××
客户机管理可批量管理华为瘦客户机(需选装TCM模块) 可批量管理深信服客户机及PC客户端无法管理客户机无法管理客户机
用户管理可针对虚拟机组批量设定策略
可以通过与AD集成,设定相应群组或OU中的user拥有登录VDI虚机权限
可针对用户组批量设定策略
可针对特定用户设定临时权限
可以在系统中创建独立账户,也可以通过与AD集成,设定相应群组或OU中的user拥有登录VDI虚机权限
只能通过AD组策略批量设定用户策略无法设定用户策略
告警通知可全方位监控系统状态可全方位监控系统状态只能通过Zabbix监控主机部分状态,无法全方位监控系统状态只能通过Zabbix监控主机部分状态,无法全方位监控系统状态

使用体验

 华为深信服HyperVRavada
外设支持★★★★★★★★★★★★★★★
带宽优化★★★★★★★★★★★★★
传输安全性★★★★★★★★★★★★★★★★
画面流畅度★★★★★★★★★★★★★★
策略精细度★★★★★★★★★★★★
管理便利度★★★★★★★★★★★★
部署简易度★★★★★★★★★★★★★★

成本对比

注:不同折旧模型下价格差异较大,仅供参考。下表普通PC和服务器按5年使用年限、瘦客户机按8年年限。

具体金额略。大致4000-5000元一个客户端,含硬件和软件授权成本。

技术外的考虑

除了技术方面的替代性,以下几点也需纳入考虑:

  1. 使用VDI方案,意味着用户的所有数据全部到服务器上,同时代表IT部门要开始对这些用户数据负责,数据安全(特别是数据的遗失)如何防范?
  2. 使用VDI方案,意味着IT部门自行制造一个单点故障风险。当然,现在VDI解决方案都有灾备、数据多副本等机制,但是整体的虚拟化软件如果崩溃(还真发生过这种情况)呢?

在信息化办公全面深化的现在,这些问题一旦发生,对于IT部门是致命的。

附:广域网带宽需求模型示例

 1,621 total views,  2 views today

几款网络拓扑自动生成工具的比较

最近需要接手一个比较复杂的办公网,整个Intranet最大时有近万人的规模。但是以往文档交接并不完善。于是就考虑找一款合适的工具,来爬一下目前网络拓扑大致是什么样的。

国内主流监控工具之一的Zabbix有Maps功能,但是必须手动编辑,不适合这次的需求。笔者早期曾用过的OpenNMS可以自动生成网络图,但是同样作为全功能的NMS,部署有点“重”。就又找了几款这几年发展不错或新出的独立网络拓扑生成工具,来比较一下:

SolarWinds的工具一贯都在水准以上,特别是NetFlow Traffic Analyzer (NTA)这款流量分析器,是笔者目前所知唯一官方支持华为NetStream协议的工具。可惜就是收费,先放着看后面有没更好的。

NetXMS部署困难,捣鼓一上午在我的Ubuntu测试机上还没跑起来…且不止我一个人这么觉得。也放在一边。

NeDi和Netdisco在reddit上的评价都不错,于是就一起测试了一下。结论是NeDi明显好出一截。无论是设备信息的详尽程度和对网络邻居图的思考维度,都要比Netdisco更专业。尤其是Netdisco在网络图上思考维度的缺失,导致其在大型网络下的这一功能几乎不可用(后文配图说明)。

Inventory列表两者差不多:

设备详情:

网络拓扑图(邻居图):

可以看到,NeDi是通过Range来控制拓扑层级的,而Netdisco只有Only Neighbors和All Devices可选,网络规模一大,可读性就降低了。

再加上Nedi拥有更多的显示项开关(IP、接口、带宽等),同样也支持D3js的图形拖拽操作,还自带一定的监控功能,性能也更快一些。综合来看,Nedi的完成度是最高的。

大家如果有更好的工具推荐,也欢迎留言~

 2,568 total views,  8 views today

Zabbix、Grafana添加95th Percentile Lines

95计费 (95th Percentile Charging),指在一个计费周期内,将全部计费点的带宽值由高到低倒序后,移除5%的那些高点,剩下数据点中的最高的带宽值就是计费的带宽。

以1个月30天为例,默认均为有效取值点:每5分钟1个带宽取值点,每小时12个带宽取值点,每月取值点数为:12 × 24 × 30 = 8640个,去掉前5%的点 8640 × 5% = 432 个,即第433个点为计费点。

而432个不计费的点,等效于36个小时(432 × 5分钟 / 60分钟 / 小时 = 36小时),即每月不超过36小时的异常大带宽(流量),不影响本月的计费。

Zabbix添加95th Percentile趋势线的讨论帖较少,那是因为官方直接就做成了可勾选开启的选项,方便了管理员:

进入Host > Graph:

效果如图:

Cacti配置方法可参考:Cacti95计费配置 (P.S. 博主是位Zabbix专家,有很多好的帖子和插件)

Grafana的配置方法还在研究ing…

 1,796 total views

Windows VPN Server部署你需要知道的事

新型肺炎仍局势糜烂,何时复工尚有变数。所以很多公司的IT部门都提供了几乎全员的VPN远程办公方案。但是对于中大型公司,VPN设备的授权数或最大并发数很可能无法覆盖全体员工。更何况,如此大压力下的负载,一定需要一套临时备用VPN方案。这也是笔者最近几天的工作内容。

如果公司IT预算充足,那一台类似像Palo Alto、Fortinet防火墙这样设备的自带SSL VPN功能,就能满足大部分企业的临时需求。当然免费或开源的产品也是一个不错的选项,毕竟VPN是一项非常成熟的技术了。

免费VPN方案有不少,但是在企业环境下部署,对于LDAP或RADIUS认证的支持几乎是必须的。OpenVPN记得只支持SSL,所以前期评测选了Windows自带的VPN Server (Rounting and Remote Access Service)和日本筑波大学的SoftEther项目两款进行测试。

2009年H1N1疫情的时候,笔者曾经为前东家部署过一套备用的Windows PPTP/L2TP VPN Server。所以本着尝鲜的考虑,这次先试用SoftEther。但部署到一半的时候,发现开源版本的SoftEther提示不支持RADIUS:

测试的版本是Ver 4.32 Build 9731 beta,翻了下官方论坛,似乎没有人提报这个问题。Google下来也就一两例,猜测可能是版本过新或Beta版的缘故,准备稍后用旧版本再试一下。

顺便说一个八卦,SoftEther的作者年轻时或许少不经事,2003年就草草与三菱商事株式会社签了销售合同,代价是免费版本的SoftEther不能与三菱在商业市场进行竞争,一直到2014年4月。由此可见,早期创业者尽早雇佣一位律师是多么的重要。

回过头来看Windows RRAS,具体部署文档就不多说了,互联网上一大堆,这里简要说一下注意事项:

  1. 从协议穿透性角度,SSTP>L2TP>PPTP(L2TP主要是运营商对UDP的限流或封杀,PPTP主要是GRE封包的通过性)。注意SSTP如果需要更改默认的TCP 443端口,需要额外配置
  2. L2TP如果是在防火墙NAT后,服务器和客户端都需要修改注册表键值 (修改后需重启):HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent > 新建 AssumeUDPEncapsulationContextOnSendRule (DWORD 32-bit)
  3. VPN配置的自动化部署可以用工具:Rasdial (Rasphone.pbk)
  4. Windows 10的话,需要在 更改适配器选项 > VPN连接 属性 > 安全 > 勾选 允许使用这些协议,以支持MS-CHAP v2协议,否则会报错:“已拒绝远程连接,因为未识别出你提供的用户名和密码组合,或在远程访问服务器上禁止使用选定的身份验证协议”
  5. 为了实现Split Tunneling,需要在 控制面板 > 网络和共享中心 > 适配器设置 > VPN连接 > IPv4属性 中 关闭 在远程网络上使用默认网关 (Use default gateway on remote network),从而避免VPN连接成为路由表里优先级最高的线路。如果不修改,所有客户端流量将全都从公司VPN网关出,那要么公司人数不多,要么有很严格的访问策略限制,否则带宽压力会非常大
  6. 为了配合Split Tunneling,需要将公司内网的IP段加入本机的路由表(如需要可添加永久路由-p):
    1. route add destination_subnet mask subnet_mask 0.0.0.0 IF vpn_adapter_number
    2. route add destination_subnet mask subnet_mask vpn_gateway_ip
  7. 注:除了客户端添加路由表,微软官方还有另两种方法:The Classless Static Routes DHCP option (DHCPInform message) 和 Connection Manager Administration Kit (CMAK)。
  8. 参考此篇,将本地连接的优先级降低,将VPN连接的优先级设高,让VPN连接的DNS成为主DNS,从而可以正常解析内网域名:

目前大致就是以上这些心得体会,随时更新。

基于ELK的NetFlow/sFlow流量分析系统

最近接手的IDC运维工作,发现原团队没有好的流量分析系统,以往突发案件需要在出口出的一台机器上抓包分析,缺少历史记录和趋势分析。遂考虑用ELK来建一套。

一阵捣鼓后,发现GitHub上已有成熟的项目了:https://github.com/robcowart/elastiflow

安装过程不复杂,这里记录一下发现的一个bug:锐捷和H3C设备只支持sFlow,用最新版本的LogStash会出现如u0000、u0005、u0000L等乱码。

一阵Google后,降级到7.3版本,问题解决。

 3,906 total views,  7 views today