免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

Windows Server 基础架构云参考架构:硬件之上的设计

  • 2014-01-27
  • 本文字数:2512 字

    阅读完需:约 8 分钟

综述

毫无疑问,移动互联网、社交网络、大数据和云计算已经成为 IT 发展的四个大的趋势。其中云计算又为前三个提供了一个理想的平台。今天不仅互联网公司,很多传统行业的大中型企业也在建设自己的私有云。本文旨在介绍一个基于 Windows Server 2012 和 System Center 2012 SP1 构建基础架构云其硬件部分的参考架构。

设计目标

  • 从运维角度,整个架构应该易于扩展,从小到 4 个机柜至大到整个数据中心可以方便的进行扩展和容量规划。
  • 从用户的角度,整个架构应该可以兼容不同的应用类型,比如对计算敏感型,大内存型,和 IO 密集型等不同类型。
  • 从服务交付的角度,整个架构应该能够满足不同的服务等级需求,如需要高可用的和无需高可用的。
  • 从经济型角度,整个架构应该不依赖特定的硬件厂商或产品。

Windows Server 基础架构云的参考架构

Windows Server 基础架构云的参考架构如下:

图 1 Windows Server 基础架构云的参考架构

本文中我们将集中讨论上面参考架构中的硬件设计部分。

为了实现前面拟定的设计目标,我们采用的模型首先要保证在计算和存储之间实现松耦合,只有这样才能保证我们更灵活地调度计算、存储、网络三种基础资源,组建足够体量的资源池按需承载不同类型的应用。基于相同的目的,我们采用了集中的存储而不是使用更低成本的直连存储。虽然直连存储的成本更低,但我们所采用的存储方案具有更高的可靠性,弹性和灵活性,这些都是企业非常关注的。另外,我们没有采用传统的光纤存储而代以新的完全基于网络的文件共享存储,这样的好处是相对于光纤存储, 硬件采购成本较低,而且降低系统复杂度以及维护成本,但这样设计要求网络的部分必须具备足够的可靠性和高性能来满足 IO 密集型的需求。

图 2 Windows Server 基础架构云的硬件架构模型

标准 IaaS SKU

企业内部系统传统上主要通过冗余来实现高可用,例如对于一台服务器,所有的组件能冗余的都要冗余(比如内存、硬盘、网卡、电源),有的系统甚至实现了主板、CPU 的冗余,但这样一来就意味着要投入昂贵的硬件。与此不同的是,市场上主流的公有云服务商为了给大部分客户提供低成本的服务,将高可用的责任很多时候交给用户来处理,比如要求用户的应用需要具备弹性能力(resilience),将相同角色的多个实例部署在不同的 Fault Domain/Update Domain 中来提高整个服务的高可用性。在本设计中我们借鉴了公有云的这一经验,不要求采用如此高度冗余的设备,相反我们的故障单元是机柜而不是里面某台服务器或存储,也就是说我们关注的是跨机柜的可靠性,包括了基础架构、平台、应用和数据。但同时考虑到对于私有云,更多的时候面临的是将企业现有的应用迁移到云上,这些应用很可能不能很好的处理 stick session 等问题,很难通过横向扩展多个无状态的实例来实现高可用,故而私有云 IaaS 在设计时还是应该考虑到为传统应用,甚至为传统上很难实现高可用的应用提供基础架构层级的高可用性服务。在这个设计中对于没有高可用性需求的用户,也可以在下面的设计中增加非群集的 Hyper-V 服务器和存储服务器来提供不同服务等级的服务。

图 3 标准 IaaS SKU 的构成

计算节点的设计

对于计算节点我们设计了两组网络,所有的虚拟机发生的网络访问流量都走租户网络上的虚拟网络,而虚拟机发生的存储访问流量都重定向到物理机操作系统通过数据中心网络使用具备 SMB Direct 的 SMB3 协议直接同文件服务器群集通讯。

图 4 计算节点的实现

租户网络和数据中心网络在计算节点的用途小结如下:

租户网络用于:

  • 租户到租户的通讯
  • 租户到外部的通讯

数据中心网络用于:

  • 到存储节点的通讯(也就是到文件服务器,使用 RDMA 网卡)
  • 虚拟机的实时迁移
  • 虚拟机存储的实时迁移
  • 群集心跳线

下面是一个标准的计算节点的硬件配置:

项目

标准配置

处理器

Intel Sandy Bridge CPU, 2 Socket x 6 cores (ES2640, Core frequency 2.5 GHz) = 12 cores

内存

16 DIMM x 8 GB = 128 GB

存储

内置 200 GB SSD (eMLC)

网络

2 x 10 GbE onboard (虚拟机所用的网络)

2 x 10 GbE mezzanine with RDMA (用于访问存储节点、管理和实时迁移)

表 1 计算节点的标准配置

存储节点的设计

本设计中采用的存储架构是基于 Windows Sever 2012 的故障转移群集。以两节点来实现连续高可用(Continuous Availability)。为了提高性能,减少对于主机 CPU 的压力,采用了 RDMA 网卡,借助 Windows Server 2012 的 SMB3 文件服务器为计算节点提供 Hyper-V 虚拟机的存储。

图 5 存储节点的实现

存储节点通过 SAS HBA 卡连接了共享的 SAS 接口硬盘柜,每个节点到磁盘柜额带宽高达 48Gb/s (2x4x6Gb/s)。

这里的数据中心网络用于:

  • 到计算节点的通讯
  • Storage Space 重定向流量
  • 备份和复制流量

下面是一个标准的计算节点的硬件配置:

项目

标准配置

处理器

Intel Sandy Bridge CPU, 2 Socket x 6 cores (Core frequency 2.5 GHz) = 12 cores

内存

16 x 8 GB = 128 GB

存储

2 x 10 GbE mezzanine with RDMA

网络

132 x 2.5” 10K SAS 900 GB Drives

2 x JB9

表 2 存储节点的标准配置

下图展示了计算节点和存储节点的连接方式

图 6 计算节点和存储节点的连接

网络的冗余设计

本设计中使用的网络三层都有冗余,他们分别是:

  • 每个数据中心 2 个汇聚层交换机
  • 每个机柜 2 个租户网络交换机
  • 每个机柜 2 个数据中心网络交换机

网络 Trunk 设置:

  • 4 x 10 GbE 租户网络接口聚合
  • 4 x 10 GbE 数据中心网络接口聚合 -> Aggregate
  • 16 x 10 GbE 聚合到核心交换

下面是示意图:

图 7 网络的冗余设计

小结

企业在设计自己的基础架构云时可以考虑采用或者部分采用上面的设计,事实上微软自己的很多产品已经采用了上面的设计,比如微软 SQL Server 2012 的并行数据仓库(PDW)就采用了类似的架构。微软自己的模块化数据中心也是采用一样的架构。

由于篇幅所限,我们讨论硬件之上的设计,正如我们一开始所说的,我们的目标之一就是用应用的弹性取代对于硬件冗余的需求,当我们把一个机柜最为一个故障单元的时候,如何跨机柜、甚至跨数据中心来调度、部署应用就显得非常重要。这个部分我们将在以后进行介绍。


感谢马国耀对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-01-27 03:012646

评论

发布
暂无评论
发现更多内容

docker入门:vue和可视化界面的部署,另附ngxin配置

小鲍侃java

8月日更

模块一

树建

架构实战营

每天学习10个实用Javascript代码片段(五)

devpoint

定时器 JavaScrip 8月日更

太厉害了!腾讯T4大牛把《数据结构与算法》讲透了,带源码笔记

编程susu

Java 编程 程序员 计算机 技术宅

JIT-动态编译与AOT-静态编译:java/ java/ JavaScript/Dart乱谈

zhoulujun

dart JIT AOT 动态编译 静态编译

LeetCode刷题09-简单 回文数

ベ布小禅

8月日更

微信业务架构和学生管理系统架构设计

Geek_db27b5

微信业务架构 学生管理系统架构

Rust从0到1-高级特性-Traits 进阶

rust Traits 高级特性

JS遍历循环方法性能对比:for/while/for in/for of/map/foreach/every

zhoulujun

foreach map for for in

特斯拉依旧头铁坚持视觉路线,激光雷达会笑到最后吗?

脑极体

InnoDB解决幻读的方案——LBCC&MVCC

阿Q说代码

MySQL innodb MVCC 8月日更 LBCC

Go,一文搞懂 defer 实现原理

微客鸟窝

Go 语言 8月日更

Linux之nc命令

入门小站

Linux

微信业务架构

一叶知秋

架构实战营

微信业务架构图-外包学生管理系统架构

毛先生

架构实战营

netty系列之:在netty中使用protobuf协议

程序那些事

Java Netty 程序那些事

混合模型与期望最大化算法(三)

Databri_AI

算法 混合模型

使用明道云搭建电梯维修与保养系统

明道云

在线JSON转YAML工具

入门小站

工具

IntelliJ IDEA 如何显示提交输入的信息历史

HoneyMoose

Vue进阶(六十四):iframe更改src后页面未刷新问题解决

No Silver Bullet

Vue iframe 跨域 8月日更

下载超过10万次?阿里大佬的《高并发、性能调优笔记》一战封神

Java架构师迁哥

正经人一辈子都用不到的 JavaScript 方法总结 (一)

编程三昧

JavaScript 大前端 8月日更 模板字符串 String.raw

百度地图开发-显示实时位置信息 04

Andy阿辉

android Android 小菜鸟 Android端 8月日更

redis6安装和可视化工具

4ye

redis 后端 8月日更

本科毕业六年,裸辞备战三个月,四面阿里巴巴定级P7

编程susu

Java 编程 程序员 面试 计算机

从λ演算到函数式编程聊闭包(2):彻底理解JavaScript闭包规则

zhoulujun

闭包 闭包函数

微信业务架构图 & 学生管理系统方案

缘分呐

架构 设计

JavaScript 有关数组的 slice 截断函数

HoneyMoose

ShardingSphere Proxy 初步体验

ShardingSphere-Proxy

从λ演算到函数式编程聊闭包(1):闭包概念在Java/PHP/JS中形式

zhoulujun

闭包 闭包函数

Windows Server基础架构云参考架构:硬件之上的设计_Windows_王枫_InfoQ精选文章