这不是一篇关于应用开发、测试过程中遇到重重困难的吐槽文章,甚至无关于开发测试。本文聚焦在应用开发者“提出服务器资源申请”到“服务器资源被提供”这个期间,“透明”的运维人员所要完成的“透明”工作。
假如现在有两个应用,一个叫大数据分析系统,一个叫证券交易系统。如果要将它们都上线,开发者需要申请资源。对于开发者来说,可能会用“大数据分析系统需要10台主机,证券交易系统需要20台主机”这样的描述来描述资源,而对于运维来说,则要考虑,以什么形式提供这些资源,这些资源需要哪些物理组件。下面将从应用本身出发,一步步分析如何“提供出资源”。
为了完善地评估应用的需求,针对每一个应用,应确定如下问题:
操作系统的数量很多,在百科上可以找到几十种操作系统的名称。但在现代化数据中心/机房中,服务器一般运行的只有三类系统。
绝大部分应用都可以在虚拟机上运行,基于以下原因建议可选择物理机而非虚拟机:
常见的虚拟化方案中,VMware底层可以为windows/Linux等系统,Xen和KVM底层只能为Linux系统。除此之外,容器虚拟化的docker也是基于Linux,其主要原理为利用到Linux的6个namespace隔离和cgroups以达到“轻量级虚拟机”的效果。
通常包含但不限于以下开源软件:
通常包含但不限于以下付费软件:
除了上面的软件外,还有其他较为常用的企业付费软件,下面为常见企业付费软件列表。仅供读者对其价格量级有清晰认识,实际价格以向厂商询价为准。
序号 | 软件类别 | 名称 | 计费方式 |
---|---|---|---|
1 | 虚拟化软件 | VMWare Esxi | 1.按CPU数计,约2w/CPU |
2 | 虚拟化软件 | VMWare vCenter Server | 1.按套数计,约7w/套 |
3 | 安全访问软件 | Citrix 云桌面 | 1.按用户数计,约15w/50用户 |
4 | 中间件 | IBM WebSphere Application Server | 1.按PVU计,约0.2w/PVU(1 core≈100PVU) |
5 | 中间件 | IBM MQ | 1.按PVU计,约0.07w/PVU |
6 | 中间件 | RedHat JBoss/Wildfly | 暂无 |
7 | 数据库软件 | Oracle Database | 1. 按CPU core/年数计,标准版约1.2w/core/年,企业版约2w/core/年 2. 按用户数计,约0.2w/用户(此价格待重新确定) |
8 | 中间件 | Oracle WebLogic | 暂无,参考Oracle Database |
9 | 操作系统 | MS Windows Server 20xx | 1.按套数计,标准版约0.7w/套,企业版约4.2w/套 |
10 | 办公软件 | MS Office 365 | 1. 按用户/年计,约0.1w/用户/年 |
11 | 办公软件 | MS Office 20xx | 1. 按license数计,约0.4w/license,实际上每个可以激活多台设备(open license)2. 按用户数计,约0.2w/用户,在线管理(小型企业版) |
12 | 办公软件 | MS Office Visio 20xx | 1.按license数计,约0.5w/license |
部分软件会有专门的硬件,专门硬件的性能会比运行软件的普通服务器高出一个量级。通常包含但不限于以下硬件:
大流量或海量请求等场景,建议使用专门的硬件。但应结合实际需求和发展规划确定是否使用,技术栈使用的Mysql,那使用Oracle的ODA无意义;所在公司正在去IOE(IBM、Oracle、EMC)化,使用x86服务器+魔改开源软件即可。
应用落地,如何去确定它们需要多少服务器?如何去量化统计它们所需的资源?
服务器是各类硬件的有机结合,主要包含CPU、内存、存储、网卡、显卡、主板等组成部分。哪些硬件与应用需求关系最密切呢?或者说,哪些硬件才是应用能力的瓶颈所在呢?首先,没有牵扯到挖矿/区块链等,一般跟显卡没太大关系;其次,网卡和主板一般都是固定的,也和瓶颈扯不上关系;那么剩下的CPU、内存、存储便是制约应用能力的关键。
如何去评估应用所需的CPU、内存、存储资源呢?哪些才是我们主要关心的点呢?下面是一些常见指标。
指标虽然很多,但可以直接抓主要指标:CPU的核心数、内存的容量、存储的容量。我们可以使用这三个指标来量化应用所需的资源:由经验丰富的开发/运维人员估算出某个应用对应的核心数,内存数、存储数;然后将之汇总,除以服务器配置,即可得到所需的服务器台数。以下为估算服务器台数的示例。
------分割线-------
上面的方法忽略了一部分指标,有时候要注意不同CPU型号、不同内存型号带来的差异。这就要对常见的CPU、内存划分方法有所熟悉,这里简单介绍一下Intel的处理器。
Intel生产的处理器有多个系列,每种系列对应的是不同的场景。当前售卖的服务器一般选用至强(Xeon)系列的处理器,但在至强系列之中,又会根据性能等因素区分Broze(铜牌)、Sliver(银牌)、Gold(金牌),Platinum(铂金),每种牌下均有多种型号的CPU。
同时,Xeon的处理器还会区分第一代、第二代、第三代,对应的架构分别为Skylake,Cascade Lake,Cooperlake/Icelake,这些信息都包含在型号中。例如Xeon 8362, 8代表其为铂金,3代表其为第三代,详细内容可以参考此链接。
应用有时仅在内网使用,有时则需要从访问互联网。应用如果需要访问互联网,没有互联网出口的要新建互联网出口,有互联网出口的要考虑是否增加互联网带宽。互联网的访问如何保证安全性又是一个很重要的问题。这个会影响到后面的网络需求。
分析完应用需求,如果企业内部有资源的话,通过某些系统走申请流程,很快就能拿到对应的主机资源、存储资源和网络资源了。但如果企业内部没有资源或者资源短缺,那难免得从头开始,确定采购哪些服务器,以及服务器安装什么操作系统等问题。
参考1.1.1,应用需要哪些操作系统就用哪种操作系统,如应用支持多种操作系统的则尽量统一。如,A应用可以运行在Linux和Windows Server上,B应用可以运行在Linux上,则一般统一使用Linux系统。
另外,服务器并非能任意安装某种操作系统,某操作系统能否安装在服务器上取决于服务器的CPU架构,一般操作系统及其支持的架构如下:
服务器一般分为3类:PC服务器、小型机和大型机。
小型机和大型机一般都是厂商独有的CPU架构(如powerpc),之前仅可安装Unix系统或类Unix系统,但现在各家厂商也有推出其他系统的机器比如IBM的LinuxONE。PC服务器一般为X86通用CPU架构,可以安装Linux/Windows Server系统。
小型机和大型机费用较为昂贵,多为银行、证券核心系统使用。PC服务器则广泛存在于各行各业,是服务器中的主力军。
在购买时,由于unix和小型机/大型机强关联,如果不会用到unix系统,则不需要小型机/大型机,仅采购PC服务器即可满足需求。
国内常见的服务器厂商如下。注意:下图仅用于列出常见的服务器厂商品牌,不代表实际排名情况,也不代表作者观点。
虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。
虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等。这里的服务器上要不要做虚拟化,单指服务器要不要使用虚拟机技术。
1.1.2节已经讨论过应用能否使用虚拟机,为了资源的有效利用,如果所有的应用都支持虚拟机,则尽量在整体环境中使用虚拟机技术,除非应用有硬件隔离或其他方方面的需求,才应用物理机。
服务器(物理机)上如果需要运行虚拟机,二者之间需要一个名为hypervisor的“翻译”。
常见hypervisor可分为I、II、III三类:
理论上,I型效率最高,因为虚拟机直接通过hypervisor与底层硬件交互;II型效率最差,但模拟的效果最好,可以一台机器上运行多种OS,使用成本低;III型在效率上比I略差,但远超II型,缺点是只能模拟出某一种OS,不具备II型这种泛用性。
利用hypervisor,我们可以在物理服务器上,构筑出我们想要的虚拟机。常见的hypervisor如下,目前在各种云环境或企业环境均有应用。
服务器上采用哪种虚拟化?如果1.2.1节“服务器需要安装哪些操作系统”中评估出:
至于如何去做虚拟化,不同方案实现细节不同,效果也不太相同。如果只图简单省事,且成本充裕,VMware的Exsi和Vcenter,绝对符合要求;如果想实现自定义的虚拟化方案,并且在其之上做二次开发,则可以尝试KVM、XEN等方案。
同2中的服务器资源,存储/数据库资源如果已有,则直接申请,如果没有,则考虑以下问题。
一般有三种服务器常用存储方式:
仅使用服务器本地存储,是服务器上插的硬盘,服务器自己用。常见的服务器一般都会插至少1块硬盘,应用数据可以直接使用这些硬盘来存储。但这样数据仅在服务器本地,也不方便按需分配存储空间,扩容时,可以采取服务器插硬盘或DAS(外置存储通过SCSI/FC接口直接接服务器)的方式。
使用集中式存储,是有块很大的“外置硬盘“,所有服务器都能用。常见的集中式存储方案有IP-SAN、FC-SAN、NAS等。一般地,我们可以将一块”外置硬盘“通过高速线路(FC网络/IP网络)连接到服务器,从而达到本地硬盘类似的效果。集中式存储常见的产品有Dell EMC,Huawei Dorado等,这些机器上可以挂很多硬盘,然后供不同的服务器挂载使用。扩容时,直接在对应的存储设备上插硬盘,或者购买新的存储设备和光纤交换机。
分布式存储,是所有服务器上插的硬盘,所有服务器一起用。常见的分布式存储方案(如vSan、Ceph、SmartX等),通常做法是将某个服务器集群上的所有存储资源虚拟成一个大的存储池,这个资源池除了给服务器集群内部的节点使用外,还可以作为存储服务提供给集群外的服务器。存储的内容一般会根据某种算法多副本保存在多节点上,即使某个几个节点发生故障,仍能提供对应的存储服务(相对仅使用服务器本地存储的方案会更高可用。扩容时,增加服务器节点即可。
集中式存储和分布式存储并非对立的概念,两者可以结合在一起。分布式存储内的节点视角,自己就是分布式存储集群的一部分;分布式存储集群外的节点视角,整个分布式存储集群,就是一个大的集中式存储。所以往往厂商出售的集中式存储产品,又会说它是分布式存储,这是因为其内部使用的是分布式存储,而对外服务的时候,又表现出集中式存储特性。
使用的存储方式,将会决定最终是否需要采购存储硬件或者分布式存储商业软件,具体采购的型号规格可以将需求描述给厂商获取对应的采购建议。
1.1.3节和1.1.4节会调研软件的使用情况,在确定了应用的软件需求后,自然可以确定其数据库需求。当应用同时支持多种数据库部署时,如何选择对应的数据库呢?这个则要综合性能、成本、安全性等方面来考虑。采用商业软件需要昂贵的授权开支,但会获得强有力的支持服务和高可用性;采用开源软件则需要对开源软件原理较为熟悉,且愿意在维护中投入更多人力成本。
常见的数据库软件如下,主要有关系型、文档型、键值型等几个大类:
1.3节讨论的存储、数据库,都是与数据最相关的内容,涉及到数据,则往往需要讨论数据如何去做复制/同步/备份。
根据数据复制的层次,存储(数据)复制技术的实现可以分为三种:
存储设备级数据复制
基于存储底层的数据复制是基于存储硬件自身的容灾方式。这种技术依赖于专门的硬件,需要购买专门的硬件产品,硬件有配套的专业复制软件,使用起来较为简单快捷。Huawei Dorado的HyperReplication技术、Dell EMC的appSync都属于此类,进行备份的存储一般要求性能、品牌一致,由于需要购买相应的软硬件,数据复制成本较高。
基于操作系统的数据复制
主要通过操作系统或者数据卷管理器来实现对数据的远程复制。这种复制技术要求本地系统和远端系统的主机是同构的,其实现方式是基于主机的数据复制,容灾方式工作在主机的卷管理器这一层,通过磁盘卷的镜像或复制,实现数据的容灾。这种方式也不需要在两边采用同样的存储设备,具有较大的灵活性。缺点是复制功能会多少占用一些主机的CPU资源,对主机的性能有一定的影响。
基于CDP技术的数据复制
CDP是“持续数据保护是一套方法,它可以捕获或跟踪数据的变化,并将其独立存放在生产数据之外,以确保数据可以恢复到过去的任意时间点。持续数据保护系统可以基于块、文件或应用实现,可以为恢复对象提供足够细的恢复粒度,实现几乎无限多的恢复时间点。”
现在已经能做到的CDP技术有:1.基于应用(日志级)。比如Mysql,Oracle database的复制,一般只复制对应的日志。 2.基于存储(文件级)。文件级CDP通过监测文件系统层面之上的数据变化,只需要将变量传输到备份节点或者设备。 3.基于存储(数据块级)。
------分割线-------
根据数据复制的方式,存储(数据)复制技术的实现可以分为三种:
同步复制
IO先写到主存储,主存储再写到备用存储,备用写完后给主存储发送确认消息,主存储再向主机发送确认IO完成。
异步复制
异步复制:IO写到主存储,主存储发送确认消息给主机,完成IO,再向备用存储发送IO请求。
存储双活
存储双活:通过存储网关,实现将IO同时写入两个存储当中,实现数据同步;
------分割线-------
数据库备份时,一般采用的日志级的CDP技术,通过传输日志,来实现数据库的同步,常用的商用数据库及其采用的复制技术如下:
------分割线-------
数据库备份时,一般会有多种模式,不同模式的主要区别在于读写权限的不同,常见的模式及独写权限如下:
------分割线-------
数据的备份可以发生在数据中心内部,也可以跨数据中心。为了更好地保护数据,我们讨论的数据备份往往指主备数据中心之间的备份,以下为常见的两个数据中心之间的复制数据流示例图。
不同时期,不同应用,对安全的需求是不一样的。简单可靠的安全能力可以由防火墙来提供,其他安全需求则可以根据需求逐个购置硬件或软件产品。常见的安全领域有以下划分:
网络对应用、用户来说都该是透明的,但却是运维不得不关注的问题。对于用户来说,网络只要保证,用户接入后使用IP地址能够访问通对应的设备即可,不需要了解其中采取了哪种网络架构、走的哪条线路、使用到了什么网络技术。但如果想从无到有搭建网络,则需要对网络架构有一定了解。
网络架构一般都会以树状的结构表现出来。树的层级不会特别多,一般为2-4层。特别地,3层的网络树状结构,被称为核心、汇聚、接入三层架构。对于一个经典的核心、汇聚、接入三层架构,可以用以太网网络(二层网络)和IP网络(三层网络)的边界来划分各种网络架构。
边界在核心交换机
边界在汇聚交换机
边界在接入交换机
之所以可以用以太网网络和IP网络的边界来区分架构,是因为两种网络存在各种不同。以太网网络的优点是快速高效,规则较为简单,但无法大规模使用;IP网络的优点则是可以实现各种复杂的规则,但开销较大。两种网络一般都会组合使用,但随着设备性能的提升使用比重在逐渐改变。早些年IP网络只运行在性能最好的核心交换机上,后面慢慢扩大到汇聚交换机,现在较为先进的组网架构如Spine-Leaf架构已经将IP网络运行到了接入交换机,可见趋势是往着减小单个以太网网络规模的方向在走。至于为何
往这个方向走,主要是由于以太网网络可能会产生环路,以至于不得不采用生成树/堆叠等方案减去环路,而这些技术又会引入新的问题,此处不展开,详细可参考笔者另外一篇博客《关于网络的一次推演》的2.19 常见数据中心组网
一节。
企业内部可以根据自己的需求,选择适合的网络架构。一般来说,现在的交换机性能已经足够,可以:
上述网络架构并不完整,还需要引入防火墙等设备。至于防火墙接入这个网络时是串接还是旁挂,是物理墙还是虚拟墙,是透明还是路由模式,则有待进一步地根据设计出来的网络架构进行适配调整。
首先说结论:网络的规模跟1.2-1.4节的需求直接相关,我们可以从上面3节的需求分析中得到对应的设备数量,然后用这个数量去估算网络规模。
如何估算网络规模可以参照下面两种思路,两种估算方式建议并行,用于互相映证:
比如1台服务器需要4万兆的上下行带宽,则意味着其需要4个万兆口;10台服务器则需要40个万兆口,需要至少1台48万兆口的接入交换机;再考虑到双机接入,则需共要2台接入交换机。
网络线路,一般又称作专线,其种类繁多,如何区分出各种专线是选择专线的第一步。
依据产品类型划分时:
依据专线区域划分再进行编号,是对运营商对其线路编号的常见方式。比如,在电信的线路中:
依据承载技术划分出的各类专线技术的对比如下:
参数 | MPLS L3VPN专线 | MSTP/SDH专线 | OTN | PTN | IPRAN | APN/VPDN(3G/4G/5G) | 互联网专线 |
---|---|---|---|---|---|---|---|
接口类型 | 以太、POS、E1、ATM | 以太、POS、E1、ATM | 以太、POS、E1、ATM | 以太、POS、E1、ATM | 以太、POS、E1、ATM | 空口 | 以太 |
带宽 | 2M-10G | 2M-1G | 2M-100G | 2M-1G | 2M-1G | —— | 2M-10G |
安全性 | 逻辑隔离,需要对运营商发布路由,中 | 物理隔离,高 | 物理隔离,高 | 物理隔离,高 | 逻辑隔离,中 | 逻辑隔离,中 | 逻辑隔离,较低 |
时延 | 数据转发,时延相对较高 | 电路交换,时延较低,稳定 | 光层直达,时延较低,稳定 | 数据转发,时延相对较高 | 数据转发,时延相对较高 | 数据转发,时延不可控 | 数据转发,时延相对较高 |
组网方式 | 多点到多点 | 点到点 | 点到点 | 点到点 | 点到点 | 点到点 | 多点到多点 |
价格 | 便宜 | 贵 | 较贵 | 较贵 | 较贵 | 基于流量套餐 | 便宜 |
1.7节中我们会已经讨论了是否需要互联网专线,如果需要则需要办理互联网专线业务;如果是企业或企业与其分支机构之间,使用运营商主推的专线即可(比如电信现在主推OTN线路)。
如果需要使用主备双线,价格一致的情况下,建议主线选择电信,备线剩下的两家供应商任选一家即可。
机房的需求,实际上就是机柜的需求,我们的设备与其说是跑在机房里,倒不如缩小范围说是跑在机柜里。有机房时,直接加机柜即可,可以直接跳转到6.4节;但如果没有机房时,则不免要自建机房或租用机房,这便是6.1-6.3节讨论的问题。
为了确定是采取自建还是租赁,我们不妨做一下这两方面的工作。
(1)可行性分析
可行性分析可以分析出两种方式是否可行,可以包含对以下因素的探讨。
(2)成本效益测算
成本效益测算用于确定最终采取的方式。如果产生的效益相同,则可以只对成本进行测算。
自建机房成本组成Z:Z=Z1+ (Z2+Z3+Z4) x T
第三方租赁的成本组成W:W=W1+W2 x T
1) W1=一次性改造费用,是否需要改造取决于用户需求,如需对其所承租的机柜加装防护围栏等改造措施,则按照机柜规模、改装质量,支付几万到几十万不等。
2) W2=机柜年租金,按头部IDC服务商提供的数据来看,2021年单个机柜月租约为7000元,2022年单个机柜月租约为6000元。
利用上述计算方法,我们可以计算出两种方式的3年、5年、10年成本对比,从而通过成本来确定最终选择的方式。在执行上述计算时,需注意统一单位,以及考虑物价上涨等因素的影响(可按每年5%递增计算)。
租用机房的费用很好推算,只需要向提供商询价即可。如果想更精确地度量自建机房的费用/自建机房,了解建造机房需要买什么?找谁买?则需要对整个数据中心产业有所了解,详情可参考中国信通院《数据中心产业图谱研究报告》,可见于此链接。
目前已有专门的规范文件,可以参照里面的标准进行衡量:
GB50174-2017将数据中心划分成A、B、C三个等级,A为最高等级;TIA-942-B-2017将数据中心划分成Tier1、Tier2、Tier3、Tier4四个等级,Tier4为最高等级。通常地,GB50174-2017中的A级机房相当于TIA-942-B-2017中的Tier3、Tier4等级的机房。
一些简单的衡量方法如下:
这个问题主要针对使用租赁的方式,如果要从多个机房中选择最终的机房,可以考虑以下对比项:
机柜的结构比较简单,着重需要了解的两个指标为U数(空间)、能提供的最大功率。
U数是什么?U数一般指服务器或机柜的高度。服务器规定的尺寸是服务器的宽(48.26cm=19英寸)与高(4.445cm的倍数),厚度(高度))以4.445cm为基本单位。在机架式服务器尺寸当中,常见的就是1U服务器、2U服务器、4U服务器,还有个别的是6U、10U设备等,这些服务器的尺寸是:1U=4.445厘米,2U=4.445 x 2=8.89厘米,4U=4.445 x4=17.78厘米。在实际使用当中,1U或者2U服务器是最经常使用的。机柜的U数,决定机柜中能上架多少台设备。
能提供的最大功率,指的是机柜中搭载的电力系统能承载的最大功率。如果跟机房内的人员沟通,常常会有“10A的机柜”这种说法,它意味着这个机柜可以达到 10A * 220V = 2200W 的功率,也就是2.2kW。现在的48U机柜采取小母线供电,电流已经可以达到20-30A,即4.4kW~6.6kW。能提供的最大功率,意味着可以在其中放入更多的大功率设备。
前面的章节我们已经:1. 统计应用需求,可估算出服务器数量。 2. 统计存储/数据库需求,可估算出存储设备数量。 3. 统计安全需求,可估算出安全设备数量。4.统计网络需求,可根据前面的设备数量估算配套网络设备数量。
那么我们现在就有了一个长list,包含所需要的所有设备的清单。接下来我们可以结合1.6.4,估算机柜数量。
我们可以按功率、空间分别计算机柜数,然后取最大值得出最终机柜数 (根据木桶理论,最短的木板决定水的高度,功率作为一种资源,一般会比空间资源更为短缺,所以最终应以功率的限制为准)。下面为一个机柜数量计算示例,采取的是20A和42U的机柜。
首先区分购买设备时的厂商、集成商、代理商、分销商。
然后区分租用机房/机柜/机器时的的电信运营商、第三方IDC服务商和云厂商。(自建机房涉及到的相关方可见于《数据中心产业图谱研究报告》的上游部分)
最后了解租用线路时一般需要找三大运营商。具体选择租用何种线路,可参照本文5.3节“网络线路怎么选择”。
不同时期询价的方式也不同。
以没有机柜,租用机房的情况为例,还需要完成包括但不限于以下活动。
如果没有机柜,自建机房,则还会涉及到配电柜、变压器、电源电池、柴油发电机、冷却系统以及装修实施等方面的采购活动;如果已有机柜,则无需执行机房相关的活动。
应用落地时,如果公司已有对应的资源,可以很快申请到资源,完成落地。但如果没有对应的资源,则要运维人员分析需求,并由采购人员按需进行采购,经过一系列的流程后,最终提供出对应的资源。需求的分析也有先后顺序:对应用本身的分析在前;网络、系统、存储数据库的分析在中;机房机柜的分析在后;后者对前者存在一定的依赖关系。
相比纯技术式的分享,本文更接近经验式的总结,希望能给自己留个档,也希望能对其他读者有所帮助。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。