图 10 SDN 原理图
云端一般采用 Open vSwitch 交换机,它是一款开源的网络虚拟化产品,是二层交换机,性能可以与硬件交换机媲美。使用它可以在虚拟机的下面构筑虚拟网络层,通过及时修改 Open vSwitch 的设置,可以组建变化灵活的局域网,使得一台虚拟机能快速地从一个局域网迁移到另一个局域网中,这是物理交换机所无法实现的,如图 11 所示。
图 11 迁移
不同物理机上的两台虚拟机之间的网络通路如图 12 所示。
图 12 不同物理机上的两台虚拟机之间的网络通路
VDI(远程桌面)是什么?
使用过 Windows 操作体系的用户都知道,计算机启动完毕后看到的谁人屏幕叫桌面,上面有许多小图标,包罗此电脑、接纳站,以及许多由用户自己创建的应用步伐快捷方式。图 1 所示是我的 Windows 10 桌面。
图 1 Windows 10桌面
图 2 所示是安装了 Linux 操作体系的桌面。
图 2 Linux 桌面
不同的用户登录计算机后看到的桌面是不一样的,每个用户都可以定制自己的桌面,而不会影响到同一台计算机上的其他人的桌面。
假如把桌面放在云端,就成了远程桌面,租户输入账号和密码就可以登录到云端的桌面,此后使用云端桌面与本地桌面一样,没有区别。有人喜好把远程桌面称为虚拟桌面接口(VDI),如许学术性更浓厚一些。
使用云端桌面能实现移动办公,请看下面的情景描述:
李昭在一家公司做售后,主要工作是解决客户的问题,其活动范围包罗家、公司、客户处。他经常出差,具体工作包罗写文档、修改软件 Bug、管理问题库工具。李昭家里有台式机,公司有办公计算机,出差时携带条记本电脑,公司还给他在私有云上创建了一个虚拟机。
李昭在虚拟机里安装了 Windows 8 操作体系,然后又安装了 Office 2013 办公软件、QQ、PDF 阅读器、暴风影音、Visual Studio 2012 开发工具、Photoshop CS5、Chrome 网页浏览器、问题管理工具等软件,最后开启了虚拟机的远程桌面。
如许,李昭就能在家里、公司和客户处登录到云端桌面了。云端桌面成了李昭唯一的办公桌面,如图 3 所示。他写的文档、修改的软件、设计的图片、下载的影戏和歌曲等都在这里,不管李昭走到哪里,都可以随时随地访问其数据资料。
图 3 云端桌面
远程桌面协议是实现远程桌面应用的关键技能之一,协议规定终端与云端桌面如何通信。
目前的远程桌面协议有微软的 RDP10、EMC 公司的 EOP/PCoIP、思杰公司的 ICA/HDX、红帽公司的 SPICE,以及 Ericom 公司的远程桌面产品。
微软的 RDP10 客户端软件目前能运行在安装了 Windows10、Windows Server 2012 的计算机上,或者固化了相应操作体系内核(Windows Embedded Standard 10、Windows 10 IoT)的嵌入式终端上,同时发布了针对安卓和苹果操作体系的客户端软件。
而云端桌面的操作体系只能安装 Windows 8、Windows Server 2012 和 Windows Server 2016,比如图 3 就是在安装了 Windows 7 操作体系的计算机上登录到云端的 Windows 8 桌面所看到的开始菜单。
开源项目 FreeRDP 支持 RDP 协议,能在许多操作体系上运行,但是目前不支持 RDP 8.0。微软的 RDP 8.0 协议规范公开在官方网站上,预计不久后,FreeRDP 就会支持 RDP 8.0 了。而其他几个公司同时发布了能运行在 Windows、Linux、Adnriod 和 Mac OS 体系上的多个版本。
以下是实现远程桌面的 3 种方法:
1)基于 IaaS 云服务的虚拟机或裸机,租户租用云服务提供商的虚拟机或裸机,然后自己安装操作体系、应用软件并开启远程桌面,我们称这种远程桌面为 IaaS 云桌面。
2)IaaS 云服务的应用软件容器,租户共享底层的操作体系内核,单独安装应用软件和一些基础运行库,我们称这种远程桌面为 IaaS 容器桌面。比如 OpenVZ 和 Virtuozzo Containers 实现 Linux 的容器桌面,Windows Server Container、Hyper-V Container 和 Virtuozzo Containers 实现 Windows 的容器桌面。
3)基于半平台 PaaS 云服务,并为每个租户创建一个体系账户,其实就是使用了现代操作体系的多用户特点,即同时让许多人登录并使用计算机,我们称这种远程桌面为 PaaS 云桌面。
PaaS 云桌面在私有云中应用比力广泛,尤其是私有办公云。由于搭建 PaaS 云桌面具备很好的伸缩性,以是小的云端用一台计算机即可。一台设置高的台式机(4 核 3.0GB CPU、16GB 内存、1T 硬盘)就可以供 20 个左右的员工日常办公,以后随着公司的发展,员工不停增多,可以不停地增加云端计算机来构建更大的云端。
目前微软的终端服务技能就是范例的 PaaS 云桌面的解决方案,要求每个用户购买许可证,在正规的商业情况下建议购买正规许可证。
由于 IaaS 云桌面是每个租户单独使用一台云主机(虚拟机或裸机),以是租户间的隔离效果最好,IaaS 容器桌面的隔离效果次之,PaaS 云桌面的隔离效果最差。这里的“隔离”,是指一个租户的操作行为和私有数据资料对另一个租户的可见度。比如两个租户登录到同一台计算机的 PaaS 云桌面,那么他们之间是相互可见的:可以看到对方的进程、对方的数据文件,一方关机另一方就会被强行退出,具体内容可参阅后面教程。
在规划具体的云端方案时,要综合考虑到底采用什么范例的桌面,这里提供一些经验如下:
使命的拆分遵照的原则之一是只管降低子使命之间的关联性,从而提高处理使命的并行度。最常见的关联性是使命处理的时间先后关系,比如子使命 A 肯定要在子使命 B 完成之后才气开始处理,即 B 使命的输出作为 A 使命的输入。存在一类子使命无关联的大型使命,拆分如许的使命就很轻易。
比如在举世上亿的网页中搜刮关键词“云计算”,这个使命的拆分方法之一是按国家分别:A 子使命搜刮中国的网站,B 子使命搜刮美国的网站,C 子使命搜刮英国的网站等,这些子使命之间没有关联性,可以并行处理,最终把全部子使命的搜刮效果合并起来即可。
再比如中国的天气预报,可以按省份拆分。这类大型使命的拆分示意图如图 2 中的左图所示。
另外一类大型使命很难拆分成互不相关的子使命,如核爆模拟、战役推演模拟等,拆分出来的子使命之间肯定存在关联性,即一些子使命之间开始或者竣事的时间与其他一些子使命的起止时间存在前后关系,如图 2 中的右图所示。