软件定义数据中心(SDDC)的概念最早于2012年由VMware首次提出,指通过软件实现整个数据中心内基础设施资源的抽象、池化、部署和管理,满足定制化、差异化的应用和业务需求,有效交付云服务。传统数据中心架构复杂且缺乏灵活性,业务与基础设施紧耦合,应用系统受制于软硬件之间的依赖关系,同时传统数据中心运维管理复杂,资源利用率低,维护成本高。SDDC概念的提出,是云计算、软件定义、DevOps、基础设施快速灵活部署等一系列技术与需求在数据中心的具体实现,通过SDDC实现了以用户为中心、以服务为导向,基于高效、绿色、软件定义的IT与网络基础架构,自动化按需提供各类云服务。
五大关键技术
SDDC从功能架构上可分为软件定义计算、软件定义存储、软件定义网络、云操作系统、IT基础设施五大关键技术。
(1)软件定义计算(SDC):实现硬件资源与计算能力的解耦合,将计算能力以资源池的形式提供给用户并根据应用需要灵活地进行计算资源调配。服务器虚拟化是SDC的核心技术之一,其在一台物理主机上虚拟出多个虚拟机,各个虚拟机之间相互隔离,并同时运行相互独立的操作系统。但SDC不仅仅实现了服务器虚拟化,还将这种能力扩展到物理服务器及应用容器,通过相关管理、控制软件实现物理服务器、虚拟机以及容器的统一管理、调度与能力提供。服务器虚拟化技术相对成熟,目前市场上存在多种商用及开源解决方案。现有商用产品在性能、基础功能方面差异日渐缩小,可供选择的产品范围扩大,呈现多种解决方案并存的格局。其主要差异体现在虚拟化管理层的能力上,后续该技术将围绕自动化运维、廉价、易扩展的存储、灵活智能的网络承载、灵活便捷的容灾等方面进一步优化。而实现物理机、虚拟机、应用容器统一管理与能力提供的技术与产品尚处于探索阶段。
(2)软件定义存储(SDS):把存储控制面与硬件面分离,使存储资源变得更灵活,使其更容易配置和使用存储资源。SDS将硬件存储资源整合起来,并通过软件来定义这些资源。用户能够根据应用策略来配置和使用存储服务,并将它们部署在一系列由供货商优化商用硬件乃至云中的多种硬件上。软件定义存储实质上是利用存储虚拟化软件,将物理设备中的存储(无论是基于块、文件,还是对象)抽象为虚拟共享存储资源池,通过虚拟化层进行存储管理,可以按照用户的需求,将存储池划分为许多虚拟存储设备,并可以配置个性化的策略进行管理,跨物理设备实现灵活的存储使用模型。SDS起步稍晚,标准化的研究以及产品的研发尚处在起步阶段,再加上传统存储厂商由于各自利益,对SDS的发展战略尚不明晰,SDS的发展仍然需要一定的时间。
(3)软件定义网络(SDN):SDN是一种将网络控制功能与转发功能分离、实现控制可编程的新兴网络架构。这种架构将控制层从网络设备转移到外部计算设备,使得底层的基础设施对于应用和网络服务而言是透明抽象的,网络可被视为一个逻辑的或虚拟的实体。基于SDN构建云数据中心网络,可实现业务与网络的解耦,基于对网络的高层抽象,应用可通过编程直接定义网络行为;通过集中的控制平面,实现对虚拟接入网络层的统一控制,并与计算、存储紧密协同,满足计算、存储资源的移动性要求;SDN的开放编程特性支持基于网络现状和应用需求灵活调整网络流量路径,成为新型算法、设备及架构创新的孵化器。SDN总体上处于发展早期,在数据中心内以叠加网技术为主流,通过在现有物理网络上构建虚拟的逻辑网络层,网络控制逻辑从底层物理硬件设备中解耦出来,交由虚拟网络层中集中的控制器进行统一处理;用户可以根据实际业务需求灵活构建逻辑网络以及调整网络策略;逻辑网络承载在物理网络之上,与底层物理网络的具体实现无关,两者相互独立。
(4)云操作系统:SDDC的大脑,负责将计算、存储、网络资源依据策略进行自动化调度与统一管理、编排和监控,同时根据用户需求形成不同的服务并提供计费等功能。云操作系统从功能上一般可分为资源管理、服务管理和运营管理三个主要功能模块,从技术实现上可分为商业化云操作系统和开源云操作系统两大类。云操作系统市场成熟度不一,商用产品与开源项目各有应用。以OpenStack为代表的开源解决方案凭借先进的技术架构、有效运作的开放社区与强大的生态,引领了云计算领域开放式创新的潮流,已逐步成长为行业主流,其开放性和兼容性契合了运营商对异构、大规模、可移植、互操作等方面的需求,为云计算的实施提供了强有力的支撑。
(5)IT基础设施:主要包括服务器、存储、网络等硬件设备。在SDDC软件定义技术的推动下,IT基础设施正在向开放、通用、标准、低值、灵活的方向发展,资源整合、调度与自动化协同均由上层软件实现,物理设备仅仅扮演执行的角色,使得基于通用服务器的超融合架构统一承载计算、存储、网络等资源和业务成为可能。对于通用服务器而言,实现更高的性能、密度、集成度和能效以及模块化与组件化则是其重要技术发展趋势。
软件定义数据中心应用建议
SDDC总体上处于发展初期,标准化工作刚刚起步,业界对概念的推广远超过技术和方案进度。SDDC整体蓝图初现,但各个组件模块发展极不均衡,真正实现SDDC尚需时日。SDDC更为强调“软件定义”的价值,软件研发能力成为核心竞争力,要求较高的个性研发和集成创新能力。对于希望构建DevOps环境(研发运维一体化)的用户,利用SDDC可实现业务的敏捷部署,而对于拥有多个数据中心的用户而言,应用SDDC可提高运维自动化水平,降低运维工作难度。
在SDC技术方面,对于服务器虚拟化技术,应以业务需求和成本控制为导向,合理评价虚拟化软件产品差异,基于场景选择合适的产品,在应用中充分利用服务器虚拟化技术在资源整合、快速部署、弹性扩展等方面的优势,在数据中心规模应用,实现基于服务器虚拟化技术的计算资源池化与按需提供。值得注意的是,开源社区在虚拟化方面日益具有更大的影响,Xen发展较早,后来者KVM依托其架构的先天优势,在性能、可管理性、可用资源、产业环境等方面占优,特别是随着OpenStack开源社区的不断壮大以及SDN/NFV技术的逐步落地部署,KVM成为服务器虚拟化的重要发展方向之一,应给予足够关注与重视。
在SDS技术方面,从业务需求的角度,可充分考虑SDS技术发展,评估相关产品成熟度,结合运营商转型目标与自身优势,选择基于通用服务器、横向扩展能力强、TCO低的分布式存储,尤其是可以取代中低端存储的ServerSAN作为抓手进行技术试点引入。从技术适用性看,可在数据中心中低端存储、大数据存储和备份归档领域引入SDS。同时积极参与标准研究,对外开放与合作,积极探索SDS的发展和应用模式,共同推动产业和技术发展。
在SDN技术方面,数据中心内Overlay技术是目前的主流,但该技术存在物理网络与逻辑网络缺乏互感知与协同机制,故障收敛时间长,流量路径非最优;随着网络规模的增大,采用软件形式部署的网关性能尚待实践检验;引入逻辑网络平面,提高了对运维人员、机制和自动化手段要求三方面的挑战性,同时在兼容性、开放性、功能完备性等方面还需要进一步完善,建议现阶段在规模一定的场景下可探索应用单厂家解决方案,对于DCI(数据中心互联)场景下SDN技术尚处于发展中,需根据实际业务需求慎重选择。
在云操作系统方面,针对规模运行的异构云环境,可在综合考虑业务及管理需求和开发成本的基础上选择合适的开源云平台(如OpenStack)进行二次开发,并持续优化云平台体系架构,实现云业务集中提供、统一运营。
在基础设施方面, x86架构服务器产业链较为成熟,在服务器市场处于主流地位,其用于云计算底层基础设施的可行性已被行业所证明,但其完全取代小型机尚需一个过程。服务器定制化应以需求和规模为出发点,以x86服务器和商品化设备为主要定制方向,积极跟进低功耗芯片技术发展,统筹考虑IDC基建适配和后向兼容,选择最佳定制化方案。
对于传统电信运营商而言,软件定义数据中心是机遇更是挑战。一方面,SDDC有助于降低硬件投资成本,快速、灵活实现智能化的云基础设施,更好地满足传统方式下难以实现的定制化、差异化的即时业务需求,最有效地交付云服务。另一方面,SDDC使得底层基础设施和网络资源逐步开放和暴露,随之带来资源所有者对底层控制力下降的潜在风险;软件研发能力成为核心竞争力,软件层面可能形成新的垄断格局,导致控制权换位;SDDC降低了资源运营门槛,OTT等互联网企业与运营商同台竞技,为后发者提供“弯道超车”的可能;硬件价值向软件的转移带来了软硬件成本的叠加,整体TCO能否下降是一个问题;软件定义时代,一揽子解决方案不复存在,业务的快速、个性化交付要求较高的个性化研发和集成创新能力,要求采用全商业服务生命周期管理的迭代开发模式,进行可控的开发运营。电信运营商应把握SDDC带来的历史机遇,迎难而上,以SDDC为抓手,按需取用,应对软件定义时代的挑战,并以此为契机,实现自身互联网化战略转型。