术语软件定义变得越来越流行,但你造它真正的含义么?是什么铸就了软件定义技术?
随着IT朝着服务提供商的角色转变,传统手动配置计算、存储与网络资源的实践压力增加,难以跟上步伐。提交服务票据,等待数天,让IT设置一台新的虚拟机或开拓一个虚拟专用网络,这种做法已经落伍。用户期望敏捷配置,甚至他们自己拥有配置资源的能力。为了满足灵活性与有效性配置的需求,数据中心探索了各种不同的基于软件的技术,用于管理虚拟机、存储、网络甚至整个数据中心。我们进一步看看软件定义技术,瞧瞧需要什么才能成功部署该技术。
“软件定义”到底意味着什么?符合哪些标准才算“软件定义”?
任何“软件定义”技术实际上关于发生了资源抽象与配置。这是虚拟化的关键原则。
虚拟化允许计算资源从底层硬件中抽象出来。一旦可用,物理资源抽象成虚拟资源,软件工具也能在系统运行时部署用来重新分配虚拟资源给操作系统与应用(或更改之前配置的资源分配),并且此后不再需要硬件设置与配置,一劳永逸。
就如日常磁盘驱动器一样。文件系统软件将磁盘的磁道与扇区抽象出来,使整个磁盘容量划分为一个或多个逻辑驱动,相互之间独立,然后呈现给操作系统。我们不喜欢姜文件系统作为虚拟化软件或“软件定义磁盘驱动”,但资源抽象原则几乎相同。
较新的例子是服务器虚拟化。诸如Hyper-V、VMware vSphere或Citrix XenServer这样的hypervisor用于将服务器的物理计算资源(如CPU时钟周期与内存空间)抽象为虚拟资源。这让管理员配置虚拟计算资源成为可能,以便创建虚拟机。我们就能轻易将虚拟机看做是“软件定义服务器”。
最终,任何软件定义技术的“软件”部分提供抽象层,还有图形或命令行用户界面,以便分配、监控并管理这些抽象资源。应用编程接口可能也能支持第三方软件产品或功能插件。如果由于漏洞或恶意软件,抽象层失效的话,虚拟资源或配置也会受到牵连。