《构建高可用Linux服务器 第3版》—— 1.5 Linux服务器的优化
本节书摘来自华章出版社《构建高可用Linux服务器 第3版》一 书中的第1章,第1.5节,作者:余洪春 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.5 Linux服务器的优化
服务器的优化是我们最小化安装系统时应该做的事情。其实,在做这项工作之前,我们就应该根据实际应用需求来选购Linux服务器,然后有所偏重地选择硬件,比如我们应该根据服务器的应用来确定是需要RAID 5,还是单块硬盘等。
1.5.1 如何根据服务器应用来选购服务器
无论是租用还是托管都要面临一个问题,那就是选择服务器的硬件配置,前面也说了,选购硬件配置时要根据我们的服务器应用需求而定。因为你无法通过一台服务器来满足所有的需求,解决所有的问题。在项目实施或网站架构之前,我们应该从以下方面来考虑如何选购Linux服务器:
服务器运行什么应用?
需要支持多少用户访问?
需要多大空间来存储数据?
业务有多重要?
服务器网卡方面的考虑。
安全方面的考虑。
机架合理化安排了没?
服务器的价格超出项目预算了没?
下面分别来看一下。
1.服务器运行什么应用
这是首先需要考虑的问题,我们通常根据服务器的应用类型(即用途)来决定服务器的性能、容量和可靠性需求。下面将按照负载均衡、缓存服务器、前端服务器+应用程序服务器+数据服务器的常见基础架构来讨论。
负载均衡端:它对服务器的要求非常低,尤其是用来做LVS负载时,它会直接将所有的连接要求转给后端的Web应用。所以,在保证网卡性能的前提下(很多时候我用的是品牌服务器自带的百兆网卡),可以将性能相对较差的配置用作负载均衡。
缓存服务器:主要是squid或varnish等,需要重点考虑两方面的因素,即内存容量尽量大些,硬盘存取速度尽量快些,不要因为硬盘的I/O影响整体性能。
Web前端:正常情况下,大多数Web前端服务器(front-end)对服务器的要求不高,例如静态Web服务器、动态服务器、图片服务器等,事实上现在很流行在一台性能卓越的服务器上同时运行Web前端+应用服务器,比如Nginx+FastCGI、Nginx+Tomcat或Nginx+ Resin。
应用服务器:由于它承担了计算和功能实现的重任,我们需要为基于Web架构的应用程序服务器选择足够快的服务器,另外应用程序服务器可能需要用到大量的内存,尤其是基于Windows基础架构的Ruby、Python、Java服务器,这一类服务器至少需要使用单路至强的配置。至于可靠性的问题,如果你的架构中只有一台应用服务器,那肯定需要这台服务器足够可靠,RAID是绝对不能忽视的选项。但如果有两台或更多的应用服务器,并设计了负载均衡机制,具有冗余功能,那就不必过于担心了。
特殊的应用:除了用于Web架构中的应用程序之外,如果你的服务器还要处理流媒体视频编码、服务器虚拟化、媒体服务器(Asterisk之类),或者作为游戏服务器(逻辑、地图、聊天)运行,那同样会对CPU和内存的需求比较高,至少也要考虑单路至强的服务器。其中,服务器虚拟化对存储可靠性的要求非常高,因为一个篮子里有十几个鸡蛋,篮子一定要足够牢靠才行。
公共服务:这里指的是邮件服务器、文件服务器、DNS服务器、域控服务器等。通常我们会部署两台DNS服务器互相备份,域控主服务器也会拥有一台备份服务器(专用的或非专用的),所以对于可靠性,无须过于苛刻。至于邮件服务器,至少需要具备足够的硬件可靠性和容量大小,这主要是对邮件数据负责,因为很多用户没有保存和归档邮件数据的习惯,待其重装系统后,就会习惯性地到服务器上重新下载相应的数据。至于性能问题,则应评估用户数量后再决定。另外,考虑到它的重要性,建议还要尽量选择稳定的服务器系统,比如Linux或BSD系列。
数据库:这是我们最后讨论的应用,对服务器的要求也是最高、最重要的。无论你使用的是MySQL、SQL Server还是Oralce,一般情况下,它都需要有足够快的CPU、足够大的内存、足够稳定可靠的硬件。可直接采用Dell PowerEdge R710或HP 580G5,CPU和内存方面也要尽可能最大化,如果预算充分,建议用固态硬盘做RAID 1+0,因为数据库服务器对硬盘的I/O要求是最高的。
2.服务器需要支持的用户访问量
服务器就是为了给用户提供某种服务的,所以使用这些服务的用户同样是我们必须考虑的因素,我们可以从下面几个具体的问题进行评估。
有多少注册用户?
正常情况下有多少用户会同时在线访问?
每天同时在线访问的最高峰值大概是多少?
一般在项目实施之前,客户方面会针对这些问题给出一个大致的结果。但我们尽量要设计得比这更充分和具体。同时,我们还要对未来的用户增长做一个尽可能准确的预测和规划,因为你的服务器可能会支持越来越多的用户。所以在进行网站或系统架构时要让机器能灵活扩展。
3.需要的存储数据空间
关于这个问题需要从两个方面来考虑,一方面是有哪些类别的数据,包括:操作系统本身占用的空间、安装应用程序所需要的空间、应用程序所产生的数据、数据库、日志文件、邮件数据等,如果网站是Web 2.0的,还要计算每个用户的存储空间;另一方面是从时间轴上来考虑,这些数据每天都在增长,你至少要为未来1年(我们建议考虑2~3年)的数据增长做个准确测算,这就需要软件开发人员和业务人员一起提供足够的信息。最后你将计算出来的结果乘上1.5左右的系数,方便维护的时候做各种数据的备份和文件转移操作。
4.业务的重要性
关于这个问题就需要根据自身的业务领域来考虑相关要求了,下面举几个简单的例子,帮助你了解这些服务器对可靠性、数据完整性等方面的要求。
如果你的服务器是用来运行一个WordPress博客,与朋友们分享观点的。那么,一台酷睿服务器,4GB的内存外加一块500GB的硬盘就足够了。就算服务器出现了一点硬件故障,导致几个小时甚至一两天不能提供访问,生活会照常继续。
如果你的服务器是用作测试平台的,那么就不会如生产环境那样对可靠性有极高的要求,你所需要的可能只是做好例行的数据备份,若服务器宕机,只要能在当天解决问题就没问题了。
如果是一个电子商务公司的服务器,运行着电子商务网站平台,当硬件发生故障而导致宕机时,你需要对以下“危言耸听”的后果做好心理准备:投诉电话被打爆、顾客大量流失、顾客要求退款、市场推广费用打水漂、员工无事可干、公司运营陷入瘫痪状态、数据丢失。事实上,电子商务网站一般是需要365×24小时不间断监控的,而且要有专人轮流值守,并且要有足够的备份设备,每个天还要有专人检查。
如果是大型广告类或门户类网站,那么建议选择CDN系统。由于它带有提高网站响应速度、负载均衡、有效抵御DDOS攻击等特点,相对而言,每个节点都会有大量的冗余。所以,除了成本之外,CDN机器的硬盘问题不大。
这里其实只是简单讨论了业务对服务器硬件可靠性的要求。换言之,如果你觉得业务不能承担硬盘损坏带来的停机或数据丢失风险,那么一定要选择一个合适的RAID卡。对于冗余电源问题,道理是一样的(要全面解决这个问题,不能只考虑单台服务器的硬件,还需要结合系统架构的规划设计)。
在回答了以上问题后,接下来就可以决定下面这些具体选项了。
(1)选择什么CPU
回忆一下上面关于“服务器运行什么应用”和“需要支持多少用户访问”两个方面的考虑,这将帮助我们选择合适的CPU。毫无疑问,CPU的主频越高,其性能也就更高;两个CPU要比一个CPU更好,至强肯定比酷睿性能更强大。但究竟怎样的CPU才是合适的呢?下面提供了一些常见情况下的建议:
如果你的业务刚刚起步,预算不充足,建议你选择一款经典的酷睿服务器,这可以帮你节约大量成本。而且,以后你可以根据业务发展的情况,随时升级到更高配置的服务器。
如果你需要在一台服务器上同时运行多种应用服务,例如.NET+Exchange+SQLServer,那么一个单核至强(例如X3330)或新一代的酷睿i5(双核四线程)将是最佳的选择。虽然从技术的角度来说,这不是一个好主意,但至少能够帮你节约一大笔成本。
如果你的服务器要运行SQL Server、MySQL或Oracle,而且目前有几百个用户同时在线,未来还会不断增长,那么你至少应该选择安装一台双四核服务器。
如果需要的是Web应用服务器,双四核基本就可以满足要求。
(2)需要多大的内存
同样,“服务器运行什么应用”和“需要支持多少用户访问”两方面的考虑也将帮助我们选择合适的内存容量。相比于CPU,我认为内存(RAM)才是影响性能的最关键因素。因为在相当多正在运行的服务器中,CPU的利用率一般都在10%~30%,甚至更低。但我们发现由于内存容量不够而导致服务器运行缓慢的案例比比皆是,如果服务器不能分配足够的内存给应用程序,应用程序就需要通过硬盘接口缓慢地交换读写数据了,这将导致网站慢得令人无法接受。内存的大小主要取决于服务器的用户数量,当然也和应用软件对内存的最低需求和内存管理机制有关,所以,最好由你的程序员或软件开发商给出最佳的内存配置建议。下面同样给出了一些常见应用环境下的内存配置建议:
无论是Windows下的IIS还是Linux下的Apache,一般情况下Web前端服务器不需要配置特别高的内存,尤其是在集群架构中,4GB的内存就已经足够了。如果有几千个并发用户,而且他们同时运行动态脚本程序,我们才会考虑使用8GB或更高的内存。如果是单Apache服务器的线上环境,配置了16GB内存后,可以处理6000或者更高的并发量。
对于运行Tomcat、Resin、WebLogic、Websphere或.NET的应用服务器,4GB内存应该是基准配置,更准确的数字需要根据用户数量和技术架构来确定。
数据库服务器的内存由数据库实例的数量、表大小、索引、用户数来决定,一般建议配置4GB以上的内存,我们在许多项目方案中使用了24~48GB的内存。
诸如Postfix、Notes、Exchange这样的邮件服务器对内存的要求并不高,1~2GB就可以满足要求。
还有一些特殊的服务器,我们需要为之配置尽可能高的内存容量,包括Squid、Varnish、Memcached的缓存服务器。
对于一台文件服务器,1GB内存可能就足够了。
事实上,由于内存技术在不断进化和价格也在不断降低,我们才得以近乎奢侈地讨论4GB、8GB、16GB这些曾经不可想象的内存容量。然而,除了花钱购买内存来满足应用程序的“贪婪”之外,系统优化和数据库优化仍然是我们需要重视的问题。
(3)需要怎样的硬盘存储系统
硬盘存储系统的选择和配置是整个服务器系统里最复杂的一部分,我们需要考虑硬盘的数量、容量、接口类型、转速、缓存大小,以及是否需要RAID卡、RAID卡的型号和RAID级别等问题。甚至在一些高可靠性高性能的应用环境中,我们还需要考虑使用怎样的外部存储系统(SAN、NAS或DAS)。服务器的硬盘RAID卡的特点归纳如下:
如果用作缓存服务器,比如squid、varnish及memcached,可以考虑用RAID 0;
如果运行Nginx+PHP5或tomcat、resin等应用,可以考虑用RAID 1;
如果是内网开发服务器或存放重要代码的服务器,可以考虑用RAID 5;
如果运行MySQL或Oracle等数据库应用,可以考虑用SAS或者固态硬盘做RAID 5或RAID 1+0。
5.网卡性能与数据方面的考虑
如果你的基础架构是多服务器环境,而且服务器之间有大量的数据交换,那么建议为每台服务器配置两块或更多的网卡,一块用来对外提供服务,另一块用来做内部数据交换。由于现在项目外端都置于防火墙内,所以许多时候单网卡就足够了;而比如LVS+Keepalived这种只用公网地址的Linux集群架构,有时可能仅仅需要一块网卡。目前,HP或DELL这种品牌服务器自带的网卡已经足够使用了。
另外,数据的备份也很重要。在实际工作中我们发现,rsync和scp这些Linux下的备份工具同样非常占带宽,所以如果用scp,建议尽量用它的限速参数;而rsync则尽量选择在非业务时间段执行。
6.服务器安全方面的考虑
由于目前国内的DDOS攻击还比较普遍,建议给每个项目方案和自己的电子商务网站配备硬件防火墙,比如Juniper、Cisco或神盾等。当然,这个问题也是网站后期运营维护需要考虑的,这里只是想让大家有个概念性的认识。有时为了数据的安全,我会让所有机器用的都是RAID 5,另外就是定期巡视机房,检查服务器的硬盘灯指向,一有异常就紧急处理。
7.根据机架数合理安排服务器的数量
这个问题应该在项目实施前就准备好,选择服务器时应该明确1U、2U和4U到底有多少台,应该如何安排。在小项目中这个问题可能无关紧要,但在大型项目的实施过程中,这个问题就很突出了,我们应该根据现有或额定的机架数目确定到底应该选择多少台服务器。
8.成本考虑:服务器的价格问题
无论是在替公司采购时,还是在项目实施过程中,这个问题都是重要的问题。我们的方案经常被退回,理由就是超出预算。尤其在一些小项目中,预算更吃紧。我做项目时经常面临的需求是客户做的是证券类资讯网站,只要求周一至周五的九点至下午三点网站不出问题即可,并不想做复杂的负载均衡高可用。所以这时候,我会做成单Nginx或HAProxy,后面接两台Web应用,这种情况还好说,如果是做中大型电子商务网站,在服务器成本上的控制就尤其重要。事实上,我们经常出现的问题是,客户给出的成本预算有限,而我们的应用又需要更多的服务器,这时候,我们不得不选择CentOS 5.8下的免费虚拟化软件,这将在后面的章节中重点讲述。
以上8个方面是我们在采购服务器时应该注意的因素,在选择服务器的组件时要有所偏重,然后根据系统或网站架构来决定服务器的数量,尽量做到服务器资源利用最大化。
1.5.2 CentOS 5.8最小化安装后的优化
添置了新服务器以后,下一步就要安装系统了。这里推荐用CentOS 5.8 x86_64,大家在用服务器时抱着一个原则:系统安装的应用程序包越少,服务器会越稳定,所以我们安装系统时尽量选择最小化安装。至于服务器的单机性能调优,本着稳定安全的原则,尽量不要改动系统原有的配置(CentOS自身的文件和内存机制就很优秀)。
1.关闭不需要的服务
众所周知服务越少,系统占用的资源就会越少,所以应关闭不需要的服务。
建议关闭不需要的服务,这样做的好处是减少内存和CPU时间的占用。命令如下所示:
# ntsysv```
下面列出需要启动的服务,未列出的服务一律关闭:
crond:自动计划任务。
network:已配置网络接口的脚本程序服务。
sshd:openssh服务器守护进程。
irqbalance:启用irqbalance服务,既可以提升性能,又可以降低能耗。irqbalance用于优化中断分配,它会自动收集系统数据以分析使用模式,并依据系统负载状况将工作置于performance mode或powersave mode状态。处于performance mode时,irqbalance会将中断尽可能均匀地分发给各个CPU core,以充分利用CPU的多核,提升性能。处于Powersave mode时,irqbalance会将中断集中分配给第一个CPU,以保证其他空闲CPU的睡眠时间,降低能耗。现在的主流服务器都是双四核,所以笔者建议保留这项。
syslog:Linux的日志系统服务,必须启动,否则机器出现问题时会找不到原因。
再说下两个比较特殊的服务,它们是iptables和SELinux。如果系统没有特殊需求,这两个服务均可选择关闭,要关闭它们可以在命令setup下操作,也可以使用命令行操作。
关闭iptables的代码如下:
service iptables stop && chkconfig iptables off
关闭SELinux的代码如下:
vim /etc/selinux/config
然后将文件中的SELINUX="enforcing"改为disabled,并重启。如果不想重启系统,使用命令setenforce 0(不过这只是暂时关闭SELinux,重启后SELinux依然是开启的,所以建议前面那种一劳永逸的方法)。
注意 在grub的启动参数中增加selinux=0,也可以关闭SELinux。
2.关闭不需要的tty
先编辑/etc/inittab,找到如下一段代码:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
这段代码会使init为你打开6个控制台,分别可以用ALT+F1到ALT+F6进行访问。此6个控制台默认都驻留在内存中,用“ps auxf”命令就可以看到,命令如下所示:
ps aux | grep tty | grep –v grep
命令显示结果如下所示:
root 3209 0.0 0.0 3812 480 tty1 Ss+ 16:18 0:00 /sbin/mingetty tty1
root 3210 0.0 0.0 3812 484 tty2 Ss+ 16:18 0:00 /sbin/mingetty tty2
root 3211 0.0 0.0 3812 484 tty3 Ss+ 16:18 0:00 /sbin/mingetty tty3
root 3212 0.0 0.0 3812 484 tty4 Ss+ 16:18 0:00 /sbin/mingetty tty4
root 3213 0.0 0.0 3812 480 tty5 Ss+ 16:18 0:00 /sbin/mingetty tty5
root 3214 0.0 0.0 3812 484 tty6 Ss+ 16:18 0:00 /sbin/mingetty tty6
事实上没有必要使用这么多,那如何关闭不需要的进程呢?通常我们保留前两个控制台就可以了,把后面4个用#注释掉,并且无须重启,只需要执行“init q”这个命令即可,如下所示:
init q
3.对TCP/IP网络参数进行调整
调整TCP/IP网络参数,可以加强抗SYN Flood的能力,命令如下所示:
echo 'net.ipv4.tcp_syncookies=1' >> /etc/sysct.conf
让此内核改动立即生效,命令如下所示:
sysctl -p
4.修改SHELL命令的history记录个数
修改history记录的命令如下所示:
vim /etc/profile
找到 HISTSIZE=1000并改为 HISTSIZE=100 (这条可根据实际情况而定)。
不重启系统就让其生效,命令如下所示:
source /etc/profile
5.定时校正服务器的时间
我们可以定时校正服务器的时间,命令如下所示:
yum install ntp`
编辑/etc/crontab 文件,在末尾加入一行:
01 01 * root /sbin/ntpdate ntp.api.bz >> /dev/null 2>&1ntp.api.bz是一组NTP服务器集群,目前有6台服务器,位于上海电信处。这项服务是api.bz继sms.api.bz移动飞信免费短信发送接口之后的第二项免费API服务。
6.停止打印服务
如果不准备提供打印服务,可停止默认设置为自动启动的打印服务,命令如下所示:
/etc/rc.d/init.d/cups stop ← 停止打印服务
Stopping cups: [OK] ← 停止服务成功,出现“OK”
chkconfig cups off ← 禁止打印服务自动启动
chkconfig –list cups ← 确认打印服务自启动设置状态
cups0:off 1:off 2:off 3:off 4:off 5:off 6:off ← 0~6都为off的状态就可以了(当前打印服务禁止自启动)7.调整Linux的最大文件打开数
要调整Linux的最大文件打开数,否则squid在高负载时执行性能将会很低;另外,在Linux下面部署应用时,有时候会遇上“Socket/File:Cant open so many files”这样的问题,这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,但默认不是很高,一般是1024,生产服务器很容易就会达到这个值,所以需要改动此值。刚开始我采用vim/etc/security/limit.conf命令,在最后一行添加:
* soft nofile 60000
* hard nofile 65535```
但重启后一切都还原了。
正解做法应该为,在CentOS 5.8的/etc/rc.local文件里添加如下命令行:
ulimit -SHn 65535
如果想当前Shell及重启后此项操作都生效,这两步操作都要执行。当然了,我们也可以在Nginx的一些监控脚本里实时添加此命令行,达到重启也能生效的目的。
另外,“ulimit-n”命令并不能真正看到文件的最大文件打开数,大家可用如下脚本查看:
!/bin/bash
for pid in 'ps aux |grep nginx |grep -v grep|awk '{print$2}''
do
cat /proc/${pid}/limits |grep 'Max open files'
done`8.启动网卡
大家配置CentOS 5.5的网卡时,容易忽略的一项就是Linux启动时未启动网卡,其后果很明显,那就是你的Linux机器永远也没有IP地址,下面是一台线上服务器网卡文件/etc/sysconfig/network-scripts/ifcfg-eth0的配置:
# Intel Corporation 82541GI Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:14:22:1B:71:20
IPV6INIT=yes
IPV6_AUTOCONF=yes
ONBOOT=yes →此项一定要记得为yes,它会在系统引导时就启动网卡设备
NETMASK=255.255.255.192
IPADDR=203.93.236.146
GATEWAY=203.93.236.129
TYPE=Ethernet
PEERDNS=yes →允许从DHCP处获得的DNS覆盖本地的DNS
USERCTL=no~ →不允许普通用户修改网卡
9.关闭写磁盘I/O功能
Linux系统下文件默认有3个时间,如下所示:
atime:对此文件的访问时间。
ctime:此文件inode发生变化的时间。
mtime:此文件的修改时间。
如果有多个小文件(比如Web服务器的页面上有多个小图片),通常就没有必要记录文件的访问时间了,这样可以减少写磁盘的I/O,这要如何配置呢?
首先,修改文件系统的配置文件,我们用打开/etc/fstab文件,然后,在包含大量小文件的分区中使用noatime和nodiratime这两个命令,命令如下所示:
/dev/sda5 /data/pics ext3 noatime,nodiratime 0 0这样访问文件时就不会再产生写磁盘的I/O了。
1.5.3 优化Linux下的内核TCP参数以提高系统性能
内核的优化跟服务器的优化一样,本着稳定安全的原则。下面以64位的CentOS 5.5下的Squid服务器为例来说明,待客户端与服务器端建立TCP/IP连接后就会关闭SOCKET,服务器端连接的端口状态也就变为TIME_WAIT了。那是不是所有执行主动关闭的SOCKET都会进入TIME_WAIT状态呢?有没有什么情况使主动关闭的SOCKET直接进入CLOSED状态呢?答案是主动关闭的一方在发送最后一个ACK后就会进入TIME_WAIT状态,并停留2MSL(Max Segment LifeTime)时间,这个是TCP/IP必不可少的,也就是“解决”不了的。
TCP/IP设计者如此设计,主要原因有两个:
防止上一次连接中的包迷路后重新出现,影响新的连接(经过2MSL时间后,上一次连接中所有重复的包都会消失)。
为了可靠地关闭TCP连接。主动关闭方发送的最后一个ACK(FIN)有可能会丢失,如果丢失,被动方会重新发FIN,这时如果主动方处于CLOSED状态,就会响应RST而不是ACK。所以主动方要处于TIME_WAIT状态,而不能是CLOSED状态。另外,TIME_WAIT并不会占用很大的资源,除非受到攻击。
在Squid服务器中可输入查看当前连接统计数的命令,如下所示:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'命令显示结果如下所示:
LAST_ACK 14
SYN_RECV 348
ESTABLISHED 70
FIN_WAIT1 229
FIN_WAIT2 30
CLOSING 33
TIME_WAIT 18122命令中的含义分别如下所示:
CLOSED:无连接是活动的或正在进行中。
LISTEN:服务器在等待进入呼叫。
SYN_RECV:一个连接请求已经到达,等待确认。
SYN_SENT:应用已经开始,打开一个连接。
ESTABLISHED:正常数据传输状态。
FIN_WAIT1:应用说它已经完成。
FIN_WAIT2:另一边已同意释放。
ITMED_WAIT:等待所有分组死掉。
CLOSING:两边同时尝试关闭。
TIME_WAIT:另一边已初始化一个释放。
LAST_ACK:等待所有分组死掉。
也就是说,这个命令可以把当前系统的网络连接状态分类汇总。
在Linux下高并发的Squid服务器中,TCP TIME_WAIT套接字数量经常可达两三万,服务器很容易就会被拖死。不过,我们可以通过修改Linux内核参数来减少Squid服务器的TIME_WAIT套接字数量,命令如下所示:
vim /etc/sysctl.conf然后,增加以下参数:
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000其中:
net.ipv4.tcp_syncookies=1表示开启SYN cookies。当出现SYN等待队列溢出时,启用cookie来处理,可防范少量的SYN攻击,默认为0,表示关闭。
net.ipv4.tcp_tw_reuse=1表示开启重用。允许将TIME_WAIT socket重新用于新的TCP连接,默认为0,表示关闭。
net.ipv4.tcp_tw_recycle=1表示开启TCP连接中TIME_WAIT socket的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout=30表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_keepalive_time=1200表示当Keepalived启用时,TCP发送Keepalived消息的频度。默认是2小时,改为20分钟。
net.ipv4.ip_local_port_range=1024 65000表示向外连接的端口范围。默认值很小:32768~61000,改为1024~65000。
net.ipv4.tcp_max_syn_backlog=8192表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets=5000表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并输出警告信息。默认为180000,改为5000。对于Apache、Nginx等服务器,前面介绍的几个参数已经可以很好地减少TIME_WAIT套接字数量,但是对于Squid来说,效果却不大。有了此参数就可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
执行以下命令使内核配置立马生效:
/sbin/sysctl –p如果使用Apache或Nginx等Web服务器,则只需要更改以下几项即可:
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000执行以下命令使内核配置立马生效:
/sbin/sysctl –p如果使用Postfix邮件服务器,则建议内核方案如下:
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
kernel.shmmax = 134217728执行以下命令使内核配置立马生效:
/sbin/sysctl –p
当然这些都只是最基本的更改,大家还可以根据自己的需求来更改内核的设置,同样也要本着服务器稳定为最高原则,如果服务器不稳定,一切工作和努力都会白费。如果以上优化仍无法满足你的要求,你有可能需要定制你的服务器内核或升级服务器硬件。至于服务的配置优化,超出了本章的内容,大家可根据自己的需求有针对性地更改。
在本节中,我们从服务器的硬件选择、安装及内核等方面对单机服务器的性能进行了优化,不过对于网站和系统来说,单机优化对整体性能提升的作用毕竟有限,它们的优化其实是靠服务器的高可用和高扩展性来实现的,这部分内容我在后面的章节中再来说明。
Linux集群和自动化维1.3 如何根据服务器应用选购服务器
1.3 如何根据服务器应用选购服务器
无论物理服务器是选用IDC托管还是AWS EC2云主机(以下为了简略说明,将它们统称为服务器),我们都要面临一个问题,那就是选择服务器的硬件配置,选购硬件配置时要根据服务器的应用需求而定。因为只通过一台服务器是无法满足所有的需求,并解决所有的问题的。在设计网站的系统架构之前,应该从以下方面考虑如何选购服务器:
服务器要运行什么应用。
需要支持多少用户访问。
需要多大空间来存储数据。
业务有多重要。
服务器网卡方面的考虑。
安全方面的考虑。
机架安排是否合理化。
服务器的价格是否超出了预算。
1.服务器运行什么应用
这是选购服务器时首先需要考虑的问题,通常是根据服务器的应用类型(也就是用途),来决定服务器的性能、容量和可靠性需求。下面将按照负载均衡、缓存服务器、前端服务器、应用程序服务器、数据服务器和Hadoop分布式计算的常见基础架构来讨论。
负载均衡端:除了网卡性能以外,其他方面对服务器的要求比较低,如果选用的是LVS负载均衡方案,那么它会直接将所有的连接要求都转给后端的Web应用服务器,因此建议选用万兆网卡。如果选用的是HAProxy负载均衡器,由于它的运行机制跟LVS不一样,流量必须双向经过HAProxy机器本身,因此对CPU的运行能力会有要求,也建议选用万兆网卡。如果选用的是AWS EC2机器,则推荐使用m3.xlarge实例类型(m3类型提供计算、内存和网络资源的平衡,因此是很多应用程序的良好选择)。另外,AWS官方也推出了负载均衡服务产品,即Elastic
Load Balancing,它具有DNS故障转移和Auto Scalling的功能。
缓存服务器:主要是Varnish和redis,对CPU及其他方面的性能要求一般,但在内存方面的要求会尽量多些。笔者曾为了保证预算,在双核(r3.large)机器上运行了4个redis实例,AWS官方也建议将此内存优化型实例应用于高性能数据库、分布式内存缓存、内存中分析、基因组装配和分析,以及 SAP、Microsoft
SharePoint 和其他企业级应用程序的较大部署。
应用服务器:由于它承担了计算和功能实现的重任,因此需要为基于Web架构的应用程序服务器(Application
Server)选择足够快的服务器,另外应用程序服务器可能需要用到大量的内存,尤其是基于Windows基础架构的Ruby、Python、Java服务器,这一类服务器至少需要使用单路至强的配置;笔者公司线上的核心业务机器选用的AWS c3.xlarge类型。至于可靠性问题,如果你的架构中只有一台应用服务器,那这台服务器肯定要足够可靠才行,RAID是绝对不能被忽视的选项。但如果有多台应用服务器,并设计了负载均衡机制,具有冗余功能,那就不必过于担心了。
c3.xlarge EC2主机属于计算优化型(Compute Optimized),也就是CPU加强型。这种类型的CPU/内存比例比较大,适合于计算密集型业务,它包含c1和c3系列。其实例除了较旧的两个c1系列(c1.medium和c1.xlarge)是采用普通磁盘作为实例存储以外,其他的(也就是c3系列的)全部都以SSD作为实例存储,其中最高档次的c3.8xlarge(32核心108个计算单元)的网络性能明确标注为10G
bit/s,c3系列被认为是最具性价比的类型。
特殊应用:除了用于Web架构中的应用程序之外,如果服务器还要处理流媒体视频编码、服务器虚拟化、媒体服务器,或者作为游戏服务器(逻辑、地图、聊天)运行,那么对CPU和内存的需求同样会比较高,至少要考虑四核以上的服务器。
公共服务:这里指的是邮件服务器、文件服务器、DNS服务器、域控服务器等。通常会部署两台DNS服务器以互相备份,域控主服务器也会拥有一台备份服务器(专用的或非专用的),所以对于可靠性,无须过于苛刻。至于邮件服务器,至少需要具备足够的硬件可靠性和容量大小,这主要是对邮件数据负责,因为很多用户没有保存和归档邮件数据的习惯,待其重装系统后,就会习惯性地到服务器上重新下载相应的数据。至于性能问题,则应评估用户数量后再做决定。另外,考虑到它的重要性,建议尽量选择稳定的服务器系统,比如Linux或BSD系列。
数据库服务器:数据库对服务器的要求也是最高、最重要的。无论你使用的是MySQL、SQL Server还是Oracle,一般情况下,都需要有足够快的CPU、足够大的内存、足够稳定可靠的硬件。可直接采用DELL PowerEdge R710或HP 580G5,CPU和内存方面也要尽可能最大化,如果预算充分,建议用固态硬盘做RAID 10,因为数据库服务器对硬盘的I/O要求是最高的。
Hadoop分布式计算:这里建议选用密集存储实例—D2实例,它拥有高频率 Intel Xeon E5-2676v3(Haswell)处理器、高达48TB的本地存储、具备高磁盘吞吐量,并支持
Amazon EC2 增强型联网。它适合于大规模并行处理数据仓库、MapReduce和Hadoop分布式计算、分布式文件系统、网络文件系统、日志或数据处理等应用。
更多关于AWS EC2的实例类型请参考:https://aws.amazon.com/cn/ec2/instance-types/。
2.服务器需要支持多少用户访问
服务器就是用来给用户提供某种服务的,所以使用这些服务的用户同样是我们必须考虑的因素,可以从下面几个具体的方面进行评估:
有多少注册用户。
正常情况下有多少用户会同时在线访问。
每天同时在线访问的最高峰值大概是多少。
一般在项目实施之前,客户方面会针对这些问题给出一个大致的结果,但设计要尽量更充分和具体,同时,还要对未来的用户增长做一个尽可能准确的预测和规划,因为服务器可能会支持越来越多的用户,所以在进行网站或系统架构设计时要让机器能够灵活地扩展。
3.需要多大空间来存储数据
关于这个问题需要从两个方面来考虑,一方面是有哪些类别的数据,包括:操作系统本身占用的空间,安装应用程序所需要的空间,应用程序所产生的数据、数据库、日志文件、邮件数据等,如果网站是Web 2.0的,还要计算每个用户的存储空间;另一方面是从时间轴上来考虑,这些数据每天都在增长,至少要为未来两三年的数据增长做个准确的预算,这就需要软件开发人员和业务人员一起来提供充分的信息了。最后将计算出来的结果乘上1.5左右的系数,以方便维护的时候做各种数据的备份和文件转移操作。
4.我的业务有多重要
这需要根据自身的业务领域来考虑,下面举几个简单的例子,帮助大家了解这些服务器对可靠性、数据完整性等方面的要求:
如果服务器是用来运行一个WordPress博客的,那么,一台酷睿处理器的服务器、1GB的内存,外加一块160GB的硬盘就足够了(如果是AWS EC2主机,可以考虑t2.micro实例类型)。就算服务器出现了一点硬件故障,导致几个小时甚至一两天不能提供访问,生活也会照常继续。
如果服务器是用作测试平台的,那么就不会如生产环境那样对可靠性有极高的要求,所需要的可能只是做好例行的数据备份即可,若服务器宕机,只要能在当天把问题解决掉就可以了。
如果是一家电子商务公司的服务器,运行着电子商务网站平台,当硬件发生故障而导致宕机时,你需要对以下“危言耸听”的后果做好心理准备:投诉电话被打爆、顾客大量流失、顾客要求退款、市场推广费用打水漂、员工无事可干、公司运营陷入瘫痪状态、数据丢失。事实上,电子商务网站一般是需要365×24小时不间断运行和监控的,而且要有专人轮流值守,并且要有足够的备份设备,每天还要有专人负责检查。
如果是大型广告类或门户类网站,那么建议选择CDN系统。由于它具有提高网站响应速度、负载均衡、有效抵御DDoS攻击等特点,相对而言,每个节点都会有大量的冗余。
这里其实只是简单地讨论下业务对服务器硬件可靠性的要求。要全面解决这个问题,不能只考虑单个服务器的硬件,还需要结合系统架构的规划设计。
在回答了以上问题后,接下来就可以决定下面这些具体的选项了。
(1)选择什么CPU
回忆一下上面关于“服务器运行什么应用”和“需要支持多少用户访问”两个方面的考虑,这将帮助我们选择合适的CPU。毫无疑问,CPU的主频越高,其性能也就越高;两个CPU要比一个CPU来得更好;至强(Xeon)肯定比酷睿(Core)的性能更强。但究竟怎样的CPU才是最合适的呢?下面提供了一些常见情况下的建议:
如果业务刚刚起步,预算不是很充足,建议选择一款经典的酷睿服务器,这可以帮你节约大量的成本。而且,以后还可以根据业务发展的情况,随时升级到更高配置的服务器。
如果需要在一台服务器上同时运行多种应用服务,例如基于LNMP架构的Web网站,那么一个单核至强(例如X3330)或新一代的酷睿I5(双核四线程)将是最佳的选择。虽然从技术的角度来说,这并不是一个好主意,但至少能节约一大笔成本。
如果服务器要运行MySQL或Oracle数据库,而且目前有几百个用户同时在线,未来还会不断增长,那么至少应该选择安装一个双四核服务器。
如果需要的是Web应用服务器,双四核基本就可以满足要求了。
(2)需要多大的内存
同样,“服务器运行什么应用”和“需要支持多少用户访问”两方面的考虑也将有助于我们选择合适的内存容量。相比于CPU,笔者认为内存(RAM)才是影响性能的最关键因素。因为在很多正在运行的服务器中,CPU的利用率一般都在10%~30%之间,甚至更低。但由于内存容量不够而导致服务器运行缓慢的案例比比皆是,如果服务器不能分配足够的内存给应用程序,那么应用程序就需要通过硬盘接口缓慢地交换读写数据了,这将导致网站慢得令人无法接受。内存的大小主要取决于服务器的用户数量,当然也和应用软件对内存的最低需求和内存管理机制有关,所以,最好由程序员或软件开发商给出最佳的内存配置建议。下面同样给出了一些常见应用环境下的内存配置建议:
无论是Apache还是Nginx服务器,一般情况下Web前端服务器都不需要配置特别高的内存,尤其是在集群架构中,4GB的内存就已经足够了。如果用户数量持续增加,我们才会考虑使用8GB或更大的内存。单Apache Web机器,在配置了16GB的内存后,可以抗6000个并发链接数。
对于运行Tomcat、Resin、WebLogic的应用服务器,8GB内存应该是基准配置,更准确的数字需要根据用户数量和技术架构来确定。
数据库服务器的内存由数据库实例的数量、表大小、索引、用户数量等来决定,一般建议配置16GB以上的内存,笔者公司在许多项目方案中使用了24GB到48GB的内存。
诸如Postfix和Exchange这样的邮件服务器对内存的要求并不高,1GB~2GB就可以满足了。
还有一些特殊的服务器,需要为之配置尽可能大的内存容量,比如配置有Varnish和Memcached的缓存服务器等。
若是只有一台文件服务器,1GB的内存可能就足够了。
事实上,由于内存技术在不断进化,价格也在不断降低,因此才得以近乎奢侈地讨论4GB、8GB、16GB这些曾经不可想象的内存容量。然而,除了花钱购买内存来满足应用程序的“贪婪”之外,系统优化和数据库优化仍然是我们需要重视的问题。
(3)需要怎样的硬盘存储系统
硬盘存储系统的选择和配置是整个服务器系统里最复杂的一部分,需要考虑硬盘的数量、容量、接口类型、转速、缓存大小,以及是否需要RAID卡、RAID卡的型号和RAID级别等问题。甚至在一些高可靠性高性能的应用环境中,还需要考虑使用怎样的外部存储系统(SAN、NAS或DAS)。下面将服务器的硬盘RAID卡的特点归纳一下:
如果是用作缓存服务器,比如Varnish或redis,则可以考虑用RAID 0。
如果是跑Nginx+FastCGI或Nginx等应用,则可以考虑用RAID 1。
如果是内网开发服务器或存放重要代码的服务器,则可以考虑用RAID 5。
如果是跑MySQL或Oracle等数据库应用,则可以考虑用固态硬盘做RAID 5或RAID 10。
5.网卡性能方面的考虑
如果基础架构是多服务器环境,而且服务器之间有大量的数据交换,那么建议为每台服务器配置两个或更多的网卡,一个用来对外提供服务,另一个用来做内部数据交换。由于现在项目外端都置于防火墙内,所以许多时候单网卡就足够了;而比如LVS+Keepalived这种只用公网地址的Linux集群架构,有时可能只需要一块网卡即可。建议大家选用万兆网卡。另外,建议交换机至少也要选择千兆网卡级别的。
如果采用的是AWS EC2云主机环境,单纯以EC2作为LVS或HAProxy意义不大。如果经常使用AWS EC2机器,应该会注意到AWS将机器的网卡性能分成了3个级别,即Low、Moderate、 High,那么这3个级别分别是什么情况呢?虽然AWS没有带宽限制,但是由于多虚拟机共享HOST物理机的网络性能和I/O性能,单个虚拟机的网络性能也不是特别好度量,不过大概情况是这样的:Low级别的是20M bit/s,Moderate级别的是40M bit/s,High级别的能达到80M bit/s~100M bit/s。从上面的分析情况可以得知,单台AWS EC2主机作为网站的负载均衡入口,容易成为网站的瓶颈。这个时候可以考虑使用AWS提供的Elastic Load
Balancing产品,它可以在云中的多个Amazon
EC2 实例间自动分配应用程序的访问流量(大家注意到没,相当于它将网站的流量分担到了多台机器上)。它可以实现更高水平的应用程序容错性能,从而无缝地提供分配应用程序流量所需的负载均衡容量。除了提供负载均衡常见的功能之外,它还具有Auto Scalling功能,关于Auto Scalling的详细介绍,可参见AWS官方文档。
6.服务器安全方面的考虑
由于目前国内的DDoS攻击还是比较普遍的,因此建议给每个项目方案和自己的电子商务网站配备硬件防火墙,比如Juniper、Cisco等硬件防火墙。当然了,这个问题也是网站后期运营维护需要考虑的,这里只是想让大家有个概念性的认识。此外,建议租赁CDN服务,这样万一不幸遭遇恶意的DDoS流量攻击,CDN还能帮助抵挡部分恶意流量,核心机房的业务不至于在很短的时间内就会崩溃。
7.根据机架数合理安排服务器的数量
这个问题应该在项目实施前就处理好了的,选择服务器时应该明确服务器的规格,即到底是1U、2U还是4U的,到底有多少台服务器和交换机,应该如何安排,毕竟机柜只有42U的容量。在小项目中这个问题可能无关紧要,但在大型项目的实施过程中,这个问题就很突出了。我们应该根据现有或额定的机架数目确定到底应该选择多少台服务器和交换机。
8.成本考虑:服务器的价格问题
无论是在公司采购时,还是在项目实施过程中,成本都是非常重要的问题。笔者的方案经常被退回,理由就是超出预算。尤其对于一些小项目,预算更吃紧。之前笔者经常面对的客户需求是为证券类资讯网站设计方案,只要求周一至周日的上午九点至下午三点网站不出问题即可,并不需要做复杂的负载均衡高可用。所以面对这种需求,笔者会将单Nginx或HAProxy设计成负载均衡,后面接两台Web应用服务器作为简单集群架构。如果是做中大型电子商务网站,那么在服务器成本上的控制就尤其重要了。事实上,我们经常面对的问题是,客户给出的成本预算有限,而实际应用又需要比较多的服务器,这时候,就不得不另外设计一套最小化成本预算方案来折中处理。
以上8个方面是我们在采购服务器时应该要注意的因素,在选择服务器的组件时要有所偏重,然后根据系统或网站架构来决定服务器的数量,尽量做到服务器资源利用的最大化。在控制方案成本的同时,要做到最优的性价比。
拆服务器
原文转自:http://www.cnblogs.com/killkill/archive/2010/07/15/1775433.html
近日新进一台 DELL PowerEdge R810 服务器,趁还在测试阶段赶紧拆开看看,顺便说说X86服务器的那些事。
外观
R810 是台2U4路的机架式服务器,其他的边上图边说:
样子还是挺帅的,去掉鬼面罩后:
从正面看,该服务器有6个2.5寸硬盘槽位,同时也有DELL标志性的液晶面板,从第11代服务器开始,DELL全线服务器(除了刀片)都使用了该液晶面板,相对于以往该液晶面板有所增强,在原来显示故障信息的基础上多了一些功能,用户可以简单设置一些东西如:注释、IP等,迅速定位问题这一点足以秒杀仅有一盏故障灯的某些品牌服务器了。但是该液晶面板的蓝色背光灯的寿命是一大问题,想当年DELL第6代服务器如:2650、6650,液晶面板的背光灯在6年后的今天依然光辉依旧,而从第三代2950之后(当然也包括第11代服务器如:R710、R810)的液晶面板灯寿命都超不过2年。而该部件的更换是需要停机的,对于某些场合来说,停机是很大的一件事,真是“成也萧何,败也萧何”。下图是两台上架时间相差3个月的服务器的液晶面板:
接下来再看看屁股:
两个互备的1100瓦电源模块,很容易就可以抽出来在线更换,由于条件限制一些朋友的电源只能插一根,液晶面板老是报PS1/2 Status Fail,处理的方很简单,把没有插电的电源模块拔出来约3~4寸,服务器就检测不到该电源模块,该错误就不会报了。
集成4个broadcom的千兆网口,有6个扩展槽位(2个半高,4个全高),DELL 服务器后面的这个拉手很好用,开箱的时候利用它很方便地取出服务器,在机柜后利用它可方便抽拉抽拉,有时有可以绑些标签扎带,很简单但是很实用的设计。
在最左下角有个黑色胶板挡住一个缺口,该缺口是用来放置DRAC卡的,它其实一个小型的嵌入式操作系统,可以通过它来管理服务器,包括远程安装、启动和关闭等,通常操作系统挂死后可以通过DRAC卡进行重启系统。HP对应的技术是iLO.
开盖一览
先看上盖板的背面:
这是一幅简要的安装、拆卸说明书和各个部件的说明,还是很容易看明白的。
从前面看过去:
先是硬盘托架(当然还包括里面的硬盘),然后是导风板,CPU散热器,风扇模块,然后IO板卡和电源模块。
从后面看上去:
从这个角度可以看到CPU几乎紧贴着风扇模块,通常机架式服务器采用侧吸/吹的方式进行散热。
风扇模块
整台服务器就靠这6把风扇散热了,坏了其中一把问题不大,我这边有台6年前的2650服务器,风扇坏了近3年,照样跑得好好的。
通常服务器启动之后有个除尘模式,表现为风扇狂转,现在有些PC机也会这样做了,此时,千万不要在服务器后面看热闹,此时吹出来的风饱含小颗粒,有些比较脏的服务器直接就喷黑烟了,这些粉尘对肺部损害很大。
前端I/O模块及内存模块
我们拿走导风板,此时可以看到内存了,但还不是全貌,要将前端I/O模块像抽屉那样拉出来,才能看到全貌:
从这两张图片可以看到完全就是模块化的设计,拉看这个前端IO模块后就可以看到内存的全貌:
16条DDR3内存, 每条4GB,共计64GB,中间黑色的是胶片,估计是防止灰尘落入内存槽中,从这个角度可以看到几样有趣的事情:
1。CPU的散热方式不是采取自上而下的风冷方式,采用的是侧风的方式,冷空气从前端吸入,首先冷却硬盘,再到内存,再到CPU,再到后端的IO板卡,要结合“从前面看过”那张图比较容易理解,这种方式的冷却顺序是很合理的,通常来说硬盘是一个发热大户,同时也对温度比较敏感,为了方便在线更换所以排在最前排;其次是内存条,内存的发热量不大,硬盘的工作温度对于内存内存来说是很舒服的温度,而且空气的温度比硬盘的温度要低;再来就是另一个发热大户CPU了,CPU可容忍温度还能高一些,经过CPU加热的风最终就吹到了对热量不太敏感的IO板卡上,从整个过程来看服务器的散热设计是一个整体的散热方案,将一个空气流用到最足。
2。有人可能会问,为什么要设计这个“抽屉”呢,这是由于该服务器可以安装最多4个CPU,这导致主板的面积很难降下来,而且还有32个内存槽位,主板面积更加降不下来了,而且这是台2U高的服务器,很难做到通过“竖板”扩展内存,唯有借助“抽屉”结构来降低机身的长度,下图是内存扩展竖板:
DELL
R910(4U4路)的内存扩展板
3。连接硬盘架是两条SAS线,这是为什么呢,由于这台服务器支持6Gb/s(注意是b不是B)的SAS2通道,通过两条3Gb/s的SAS通道叠加而成6Gb。虽然就那几块硬盘的速度更不上,但已经是“时刻准备着”。
这里说说现在几种常见的硬盘接口:
SATA:这个大家应该比较熟悉,现时家用PC机的硬盘大多数都是这种接口,还记得IDE接口吗,IDE走的是ATA协议,看看如此多的针脚就知道IDE接口是并行传输,随着带宽的提高,终于搭上了串行的快车变成了SATA。
IDE接口的硬盘
SAS:说SAS之前先说说SCSI,SCSI是一种协议,使用专用的SCSI接口方式,大家可以看看SCSI接口也是有宽宽的排线,也是并行传输的,乘着串行的春风变身成SAS接口,不过依然跑着SCSI协议。
一种SCSI接口的硬盘
SAS接口兼容SATA接口,SATA接口却不兼容SAS接口,通常RAID卡都会同时支持SAS硬盘的话也会支持SATA硬盘。
SAS和SATA接口的区别和兼容性
除了接口不同,这两种硬盘更多的差异表现在转速和容量上,SATA一般是7200 RPM,不过现在有10000 RPM的SATA盘了,三年前的SAS盘已经是10000 RPM,而现在的SAS盘几乎都是15000 RPM;SATA的容量较高,SATA流行500G的时候,SAS正在从160G过渡到300G,SATA流行750G的时候,SAS的300G大行其道,SATA开始流行1T的时候,450G才刚出道,前不久Seagate发布600G SAS盘,家用机市场已经可以买到2T SATA盘了。
同时SAS和SATA盘面向的应用不同,SAS盘的IOPS比SATA盘要好,得益于其高高在上的转速,SAS的吞吐比SATA盘要高,但是不明显,通常SAS盘适合IOPS较高的场合,例如繁忙的数据系统,邮件系统,使用静态化技术的大行网站等。而SATA的价钱比SAS低廉,有个兄弟单位的联想服务器坏了块300G SAS硬盘,比较郁闷的是机器刚过保修两个月,联想要价 6000,上个月我买了块1TB的SATA硬盘(家用机)不到500块钱,挤挤联想SAS盘报价的水分,抬抬SATA盘的价格,大家可以算一算每G容量的差价还是相当相当大的,因此,SATA盘更多用于备份系统,大流量的视频网站,FTP站点(互联网上越来越少了)等,在按顺序存取文件的应用,从性能上说SAS比SATA领先不了多少。
再仔细看看内存,这是其中一条内存:
三星的DDR3内存,带ECC校验顺便多穿了件“马甲”。
通常来说,服务器的内存带有ECC校验和ChipKill技术,这是单条内存内的技术,而内存之间还支持Mirroring和Hot-Spare技术。不过相对来说内存故障的几率还是挺小的,因此这些技术远没有RAID这个名词出名。
CPU散热器及CPU拆装图
密密麻麻的散热片由几条铜管穿在一起,比起DIY玩家巨硕的散热器,服务器的散热器低调得太多了,散热器下面就是4颗Intel XEON E7520 CPU。
以下是CPU的拆卸图,其实不难,我曾经有一次在DELL工程师的电话“指导”下完成两颗CPU的互换。
从官方文档了解到 Intel XEON 7500系列单颗CPU最多可有8个核,再加上超线程技术可达16线程(即16颗虚拟CPU),而扩展性更是惊人256颗CPU并行工作,以下是从该文档摘录的部分7500系列的CPU参数,从参数可以可以看到其实频率并不是很高,并行性却越来越被重视,想想4颗Intel XEON E7560在Windows的任务管理器中可以看到64颗虚拟CPU的情景吧,同时跑63个Super PI再玩扫雷应该是不会卡的。
在服务器领域很看重并行性,当然如果并行能力和单核处理能力都强那是最好的啦,例如IBM的Power 7 CPU,这是由于服务器相当于一个资源竞争点,能同时处理处理多个任务比起更快地处理完单个任务更重要。
Intel XEON 7300系列的CPU依靠IBM的X4芯片只能做到16路,可以看一下我写的《16 路的PC服务器》,而Intel自己的芯片只能做到4路,所以在那个时候再高端的X86服务器也很难对高端小型机那几十路CPU产生冲击,因此长年以来X86服务器和高端小型机是河水不犯井水,但是依靠7500系列CPU良好的扩展性,高端X86服务器终于拥有了冲击高端小型机的资本了。估计首当其冲的将会是Intel自家的Itanium系列,可以参考我写的《不祥的CPU——Alpha》这篇文章,我从另一个角度分析Itanium衰亡的必然性。
话说回来,现在有这样的产品了吗?仔细搜索一下,还真有,以下来自Intel的网站信息,找到一台称为 SGI Altix UV 1000 的机器:
同时在SGI的网站上得到印证:
SGI 可能大家并不熟悉,但是搞图形领域的朋友对他一定不陌生,不过据说是一套刀片集群不是单机系统。
扯远了,由于该台服务器已经安装了VMware ESX 4,所以就没有安装Windows,当然也不会有大家熟悉的任务管理器了,我在VCenter中截了一张图,可以看到逻辑CPU达到了32个(4个CPU,每个4核,支持超线程,4*4*2):
后端I/O板卡及扩展槽
最后看看服务器的后端,R810比较奇特的是把RAID卡放在后端,以往的型号都是放在前端部分,估计也是由于空间的制约所作出的举动,同时我这台服务器也带了块QLogic的光纤HBA卡:
上面那张是HBA卡,下面那张是RAID卡,那条显眼的黑线可不是“飞线”,他是连接RAID卡和电池的。卸下HBA卡后RAID卡露出原形,RAID卡的散热片装得有点歪-_- :
通常来说,RAID卡都会有一个内存模块,称为RAID卡的缓存,作用和硬盘的缓存是一样的,由于该缓存比较大,通常都有256MB,里面保存了RAID的元数据和硬盘的I/O数据,一旦意外断电在没有电池的保护下该部分信息就会丢失。很早以前,RAID的元数据只会保存在RAID卡缓存中,一旦电池损坏,那就得想办法重建RAID了,而比较新的RAID卡会把RAID的元数据保存在RAID卡缓存中和每块硬盘中,这就抵御RAID电池失效后的灾难情况了。
是电池都会有电池的毛病,RAID卡电池也不例外,每隔一段时间RAID卡电池的都会做一次放-充电的动作,以保证电池的可用性,通常是3周~30天,如果长期对服务器的I/O性能进行监控并且有足够的I/O压力就会发现服务器的I/O总有“一段时间”特别差,这是因为在电池放-充电期间,RAID卡的写入模式会被强制设置为Write-Through,说到这里必须提一下,RAID卡通常的写入模式有两种:
1。Write-Back :上层系统的写入指令到达RAID卡后,RAID卡完成写入缓存的操作后马上返回一个成功信号,那个缓存其实就是个内存条,写内存多快啊,所以这种模式的性能很好,但如果没有电池保护该缓存的话将会出现丢数据的风险,而且还丢很多。
2。Write-Through: 上层系统写入指令到达RAID卡后,RAID卡直接将信息按照RAID的级别进行处理,然后写入各个硬盘,如果是四块硬盘做RAID0的话,就要等四块硬盘都返回成功信号后才会向上层返回成功的信号,这种方式对数据有最大的保护性,但是性能很差,毕竟要等待n块硬盘完成后才能返回。
当电池损坏后,DELL的服务器就拒绝启动操作系统,更换电池后就好了。
由于RAID的原数据在硬盘中也有一份,如果服务器损坏无法启动,但是硬盘都是完好无缺的,可以将硬盘更换到另一台拥有同样型号RAID卡的服务器上,然后开机,RAID卡会检测到硬盘的RAID元数据和缓存中的不一样,然后会让你确认是否导入新的RAID元数据,然后就可以启动操作系统了,这是PECT培训(DELLPowerEdgeConfiguartion and
Troubleshooting)的老师教的,不过很不幸,我遇到唯一一次尝试的机会没有成功。
通常来说,服务器坏硬盘是很正常的事,换就是了,服务器的设计也想到了这点,几乎都设计成可在线更换的方式,也就是常说的硬盘热插拔方式,建议大家用热插拔的方式更换硬盘,我曾经在兄弟单位看到两个这样案例,当时管理员为了保险,关机换硬盘,但启动的时候就发生了找不到RAID的杯具了,由于数据不重要,也没有仔细追查原因了,而我为了偷懒前前后后在线更换了不下10块硬盘无一出问题,莫非这就是人品 ^_^。
有“备”无患,DELL上门更换硬盘的时候都会先让你在服务单右上角“是否备份数据”一栏签名确认,如果换其他部件例如液晶面板、网卡等是不会让你签这栏,估计DELL也不是对“RAID保护”有100%信心,所以建议大家能备的就备吧。
建议大家保留服务器的引导光盘,通常来说某些操作系统认不出RAID卡,自然装不成操作系统,引导光盘可以帮忙Load进合适的驱动,解决不少问题。05年的时候搞到一台IBM X255服务器,打算装个Windows Server 2003,但是竟然认不出RAID卡,好不容易从一位朋友处接得一张3.5寸软盘Load进驱动才成功把系统装起来,别说现在,即使在05年的时候要找一张软盘太难了,找一张能用的软盘难上加难。通常来说引导光盘其实是另一个操作,类似Windows
PE,IBM的引导光盘是基于Linux,而DELL的引导光盘是基于Windows Vista的。
该服务器一共6个扩展槽,有两个是半高槽:
仔细观开可以发现其实后端扩展是一块独立的电路板,通过一个插座连接,借用pconline的一张图更好说明这点:
pconline拍的照片就是好看啊 ^_^
BMC(BaseBoard Management Controller)
这个模块比较特别,我一直找不到这块芯片,它也是一个嵌入式的操作系统,它将对外的IP挂接在第一块网卡上,BMC负责收集服务器内各个探头(Sensor)的数据,并具有一定的管理电源管理能力,相对于DRAC和iLO而言,BMC显得更加简单,它使用的IPMI 2.0协议,DELL有一款管理软件叫 IT Assistant 可以通过IPMI协议从服务器的BMC获得各个探头的数据,从而通过网络监控一堆服务器,这个想法很好,但是,正式使用的时候发现这个软件有很多不如人意的地方。
通过BMC,我们也可以实现远程的开机和关机,Linux的RHCS集群软件可以利用该技术实现集群节点的隔离(Fencing),所谓隔离,简单来说就是当集群软件发现一个节点出现问题后,完好首先发送命令到该节点集群软件让其释放资源,但是可能该问题节点已经傻傻的,不对该命令响应,到达一定阀值后,完好的节点会使用IPMI协议发送一个重启命令给该问题节点,强行使其重启,大家知道,一旦重启一切归于混沌,该问题节点所占用的资源就自然释放了,整个过程就好像将这个问题节点与资源“隔离”一样。
某些操作系统或者装了相应的管理软件后就可以从BMC读取到各个探头的数据,以下是从VMware ESX 4的VCenter中的截图:
远程控制器、BMC芯片,内存的Mirror和Hot-Spare,模块化的设计还有CPU的扩展能力几乎都是借鉴小型机的技术,有些高端的PC服务器,例如:IBM 3850/3950支持内存和部分I/O板卡的热插拔,在小型机和大型机上更是屡见不鲜,不过前提是操作系统得支持-_-
前段时间富士通的大忽悠来推销小型机,吹他们的SPARC芯片借鉴了大型机的技术,买一台小型机相当于买半台大型机的技术,对于大忽悠说的话不必全信,但是可以知道相互借鉴学习是进步的一种方式。
上一篇blog我就给baidu说了一句好话,竟然有一些朋友怀疑我是baidu/汉王的托-_- ,实在冤枉,特此声明,在本篇文章发表之前,我没有收到以上任何厂商的任何好处,也不是他们的托,发表后如果能收到就最好啦 ^_^
国产化新出路:中国服务器市场变形记
现实生活中,我们总喜欢将IT技术与体育竞技作比较,其实原因很简单,中国的竞技体育是近年来成功逆袭的标杆。同样作为根基十分薄弱的计算机技术,IT人往往希望中国的技术实力能与竞技体育一样,通过自身努力,配合国家支持,逐渐成长为国际社会上的领导者。从2016年上半年情势来看,服务器翻身做主的日子似乎指日可待了。
2016年上半年,合作、突围与坚守成为企业级IT行业的关键词。当中国逐渐成长为一个经济大国,我们的市场需求、技术实力和政策支持都开始影响全球IT发展。中国服务器市场变形记已经拉开帷幕……
从宏观角度来看,云计算大规模应用,移动互联网市场蓬勃发展,大数据时代已然来临,网络安全也随之上升至国家战略层面;就国家战略而言,无论是“双创”、“中国制造2025”,还是“一带一路”的战略部署,都让中国企业级IT进一步与世界接轨,让世界看到了中国市场的潜力和技术实力。
Gartner7月份全球IT支出报告(单位:10亿美元)
这些结论也可以从Gartner报告中得出。根据Gartner 7月报告显示:2016年全球IT支出将维稳在3.41万亿美元的水准,相比2015年的3.52万亿美元略有下滑;其中,中国的IT支出预计将超过2.3万亿元人民币,较2015年增加2.6%。
可以看出,中国依然是拉动全球IT支出上升的重要原因,中国服务器市场增长比例也远高于国际平均水平。
太湖之光登顶ISC TOP500
在技术层面,中国已经成为名副其实的技术强国。这一点可以在ISC 2016中的HPC TOP排行榜上得到佐证。中国机器TOP500上榜总数量已经从14年前的零,增长为2016年的167套,并首次超越美国(165套),成为全球第一超算大国。其中包括联想92套的份额和曙光51套的份额。其中,我国自主研发的神威·太湖之光夺得了全球ISC排行榜冠军,这是我国在ISC TOP榜上的六连冠。太湖之光采用申威系列国产处理器更证明了我国的技术实力。
从国家和企业战略部署来看,面对中国的巨大市场和中国政府“中国制造2025”和“一带一路”的宏观调配,国内外各企业都拿出了自己的战略规划。
在国内,如果说,浪潮2015年的“计算+”战略一直在创新产品引领市场需求;那么今年浪潮将以“计算+”为核心,构建计算新形态,迎接智慧计算时代。
联想建立了属于自己的“朋友圈”:开放架构战略联盟;旨在与国际一流品牌打造一个最适合市场需求的,并能够引领行业发展的产业联盟。
曙光在去年“数据中国”战略的基础上,又发布“数据中国加速”计划,打造中国云数据服务网络,成立中国智慧城市产业联合体,创造让全社会共享的数据价值。
在国外,戴尔则在华发布了自己的4.0计划:在中国为中国。表示:今后五年将在中国市场投入1250亿美元,预计对中国出口额贡献约1750亿美元,并直接或者间接支持100万个工作机会,戴尔公司将对中国长期投入。VMware、微软、思科等国际知名厂商纷纷想要入驻中国,与国内企业合作建厂。
推进变革 X86小型机求突围
十年前,小型机和大型机还占据银行、金融领域的绝对领导地位。X86一直被作为桌面化的服务器架构,以四路、双路甚至单路服务器作为中小型企业的支撑。随着云计算、大数据的不断发展,数据中心越来越成为互联网企业关注的中心。在整个数据中心的IT架构中,采用大型机和与之相适应的数据库一直受到国外IOE企业的垄断,难以实现扩展和改变。
直至近年来,一方面是X86架构的RAS技术水平不断提升,与之相适应的数据库也渐渐成型;另一方面,大型机、小型机的厂商绑定状态成为企业数据中心扩展的障碍。一大批多路(十六路乃至三十二路)服务器逐渐出现,开始落实“去IOE”,开始走入银行金融业。
小型机新时代的降临要从从惠普Superdome的出现说起,Superdome的出现也完全符合行业发展的需要。它既具有传统小型机可靠、稳定、永续支撑业务的特点,同时,具有X86开放、低成本、标准化的特点,将二者融合后,Superdome成为一款将小型即和X86架构优点相融合的,进化的X86小型机。
我们将目光调回国内,在国家自主可控的战略需求下,如何打破国外在小型机、数据库方面的垄断一直是浪潮、华为等企业思考的问题。如今看来,无论是浪潮K1+K-DB生态系统,还是华为最新发布的kunlun,都称得上是民族品牌的标杆。
以浪潮发布的主机天梭K1 910系统为例,天梭K1 910可支持64个核心,2T内存,性能强劲,可用性高达99.999%。天梭K1 910使得浪潮主机业务完成了从高端到中低端市场的延伸,形成了对关键应用主机市场高中低领域的全线覆盖。
K-DB功能演示
浪潮K-DB数据库则是浪潮对天梭K1主机的生态扩展,不仅采用了多进程多线程、多版本数据并发控制、存储虚拟化等技术,保证了产品性能和稳定性,还东软、中科软以及东方通企业合作,建立了更加完善的生态圈。K1+K-DB解决方案的发布也让用户能够在传统IOE之外,选择一种新的实现方式。
同样选择在关键业务领域深耕的民族企业还有华为,在今年汉诺威举办的企业级国际展会Cebit大会上,华为正式发布了深耕八年的kunlun全球首款32路开放架构小型机。从技术角度来讲,KunLun突破传统8路Xeon E7 v3处理器互联极限,率先实现32路、最高可实现64路Xeon E7 v3处理器高速互联;RAS 2.0技术使产品在安全性上变被动为主动,可靠性达到99.9996%(年计划外理论宕机时间少于2分钟)。
华为kunlun RAS2.0技术
不同于以往的小型机的RISC架构,华为KunLun采用了X86处理器,打破了传统小型机其上层软件的局限。从用户的角度出发,提出创新的思路,引领行业进步。也正因如此,华为kunlun也一直被定义为:重塑小型机时代。
根据IDC的报告显示,到2018年,全球新服务器购置支出和和服务器管理支出的比例大概是1比4。这样的数据反映了一个问题,未来如何降低服务器管理支出成本将成为重要的发展方向,而x86架构正因为具有开放和横向扩展能力,容易实现管理成本的降低。笔者认为,当性能、可扩展性、开放、RAS特性和成本这些因素能够完美融合在一起,那X86小型机的成功变革便近在眼前了。
老而弥坚 巨人的改变与坚守
在“互联网+”如此盛行的今天,无论是SMB企业还是跨国公司,都在考虑适合自己的道路,而不得不说在这些“巨人”企业的战略中,有改变,也有坚守。
今年年初,一则关于“IBM要放弃咨询业务”的消息不胫而走,瞬间无数关注。后来证实,所谓“放弃咨询业务”,只是对IBM内部部门架构调整,GBS部门依然将作为独立部门运转,是汇报结构发生一些变化,不存在“放弃咨询业务”一说。尽管“放弃咨询业务”属于谣传,但是也反映了人们对于IBM这个蓝色巨人的最新战略方向的关注。
不得不说,当云计算、大数据时代来临,让IBM这个老牌IT厂商,面临着巨大的危机。根据IBM最新财报显示,IBM2016财年第二季度总营收为202.38亿美元,较去年同期的208.13亿美元下降3%;至此,IBM收入连续第十七个季度下滑,这些数据让IBM面临凛冬将至的危机,企业转型显得迫在眉睫。
IBM CEO罗睿兰
IBM CEO罗睿兰在CES上发表演讲,强调:“这是一个属于系统的时代,而这些系统是你无法编程的。它们能理解、推理和学习。IBM已经不再是一家硬件公司或软件公司,而已经转型为一家认知解决方案云平台公司。”
如今看来,IBM的转型从沃森开始。IBM最新财报也显示,IBM认知解决方案部门在2016财年第二季度实现了同比3.5%的增长。从十年前IBM将ThinkPad笔记本卖给联想后,这个百年企业就突然失去了与消费者的链接。而在这个移动互联网风靡全球的时代,IBM抛出了自己的杀手锏,通过沃森来发展物联网,重新连接消费者。通过建立全球Watson IoT中心,创建开放的生态系统,开放API平台,让创业公司能够接触到沃森。
同样在进行企业调整的还有联想。今年3月,联想集团就宣布重组四大业务群组,分别是MG(移动)、PCG(PC)、DCG(数据中心)、UCIG(创投)。其中,数据中心业务集团(DCG)承载了联想在企业级的野心。并在3月9日,联想和Juniper(瞻博网络)正式宣布建立全球战略合作伙伴关系,补上了自己这张关键的“网”。
相较而言,HP与HPE的分家,将原来的惠普一分为二:主营PC和打印机业务的惠普公司和主营技术基础架构业务、软件业务和服务业务的惠普企业,原惠普CEO梅格·惠特曼(Meg Whitman)留任HPE等一系列动作。虽然看起来是内部调整,实则是惠普面对现金的市场环境对自身进行的主动调整。
从拆分后的财季报告来看,今年第一季度财报,惠普企业的表现超出分析师的预期。惠普企业维持此前的利润预期,随即惠普企业的股价大幅上涨了6.2%;去年11月25日的财报显示:相比惠普整体的第四财季净营收和净利润下滑,惠普企业集团(HPE)营收却实现了上涨2%的成绩。
与惠普拆分的战略调整不同,戴尔的战略转型则是从收购存储领头羊EMC开始。在今年5月的EMC WORLD上,戴尔宣布:新公司定名为“戴尔技术”(Dell Technologies),新公司的客户服务将定名为“Dell”,延续了戴尔PC的品牌资产。与此同时,合并后的企业业务将名为“戴尔EMC”。应该说戴尔对EMC的收购,为戴尔的企业级产品在存储领域提高了市场份额,提升了戴尔端到端解决方案的综合实力。
当软件定义的低成本、高弹性成为一种发展趋势,几乎所有企业都在自己所处的行业中谋求转型,很多传统的IT硬件供应商也不得不在改变与坚守之间游走……
创新永不停歇 “变形”已经启幕
而对于国内企业而言,为了适应新的需求,技术创新在其中的作用毋庸置疑,创新能力也逐渐成为未来世界考量的重要标准,成为企业发展的核心竞争力和引领行业发展的重要推动力,中国服务器变形记已经启幕。
可以说,融合架构的概念就是一种创新,这种以硬件重构+软件定义为基础的融合架构,早已成为谷歌、Facebook和国内BAT数据中心的宠儿,成为服务器解决方案供应商技术创新的TOP1。在IPF2016上,浪潮InCloudRack融合架构产品上市,InCloudRack也成为全球第一款符合Intel的RSA标准的融合架构方案。
浪潮融合架构产品:InCloudRack
事实上,在InCloudRack之前,浪潮已经发布过第一代融合架构SmartRack,那二者的区别是什么,又是什么原因,让InCloudRack的发布带有了里程碑式的意义呢?
除了满足企业级RSA标准,第二代融合架构InCloudRack相比SmartRack,能够更有效的硬件平台上实现软件定义。在高可用、智能等高级特性方面InCloudRack也更为突出,不仅在电源、管理等辅助模块全部采用冗余和热插拔设计,还支持八路和四路节点的线性扩展,可以更好的满足私有云、关键行业的应用技术需求,更适合行业、企业用户。
InCloudRack研发之父,浪潮集团副总裁胡雷钧谈到:“InCloudRack是一个软件定义的融合平台,可以构建不同的应用,甚至变成面向不同应用领域的一体机,这样的一体机在不同的行业,以被集成的概念整合在一起,成为我们未来在市场上发展的利器。”
除了更关注产品的性能提升与服务可扩展性的创新之外,产品能耗逐渐成为近年来业界关注的重点。我国的液冷技术一直以来处于技术引进阶段,国内的数据中心PUE大多高于国际水平,液冷技术一直是需要攻破的难点。对于曙光而言,创新跟多的集中在液冷技术上。
曙光TC4600E-LP液冷服务器
在美国的第28届全球超级计算大会上,曙光发布了地球模拟装置核心产品“TC4600E-LP液冷刀片服务器”和新一代液冷展机“RoboBlades浸没式液冷刀片服务器”。TC4600E-LP液冷刀片服务器的发布,使中国有了第一个可量产的液冷刀片服务器。而今年的ISC"Green500"榜单出炉,获得"最高能效"的十大超算系统中,曙光上榜3套,以1/3的比例成为全球最绿色超算TOP10份额第一名,可以看出曙光在节能领域的技术研究的确位于世界前列。
面对大数据、云计算技术的崛起,联想在Tech World大会上,发布了ThinkServer sd350,一个超密集的、2U四节点(2U4N)系统,专为要求更高的的软件定义工作负载而设计,为客户提供了高密度、高效率和极具吸引力的整体拥有成本。
HPE则提出了“思想创意经济”的概念。同时支持传统的成熟基础设施和新生代的IT模式,在加州帕洛阿尔托和英国伦敦,推出HPE Synergy,解决了IT部门的“选择困难症”。让HPE Synergy依靠流动资源池、软件定义智能、统一的API三大优势获得组合式基础设施的全部优势。
随着传统重工业时代离我们远去,IT基础设施也从单一的Scale Out,发展到如今Scale Out、Scale Up双向高弹性扩展。云技术和大数据的发展,让企业级IT市场面临着新的机遇与挑战。从国内外技术交流与合作的不断深入、开放架构小型机的发展和传统大型企业的变与不变三个角度来看,中国力量都不容忽视。在2016年,中国的服务器市场正在上演一场华丽的“变形记”。
国际厂商求合作 实现双赢
从整个中国IT发展来看:中国的服务器市场从过去的国际品牌垄断到自主品牌的赶超,再到选择国际品牌寻求国产合作“洗白”在进入市场,中国服务器市场的变化可谓是一场“爱国战争”。
客观来看,在中国的IT技术长期发展过程中,硬件的发展一直要快于软件的创新速度。纵观2016上半年的中外厂商合作大事记,我们可以看到,几乎所有的中外合作都是基于虚拟化、网络技术和OS操作系统等软件层面。
国内领先的IT解决方案供应商中科曙光与国际知名虚拟化巨头VMware的合作就是中外合作实现双赢的缩影。
从近十年的基础设施进化来看,虚拟化技术由于能够更有效的利用资源、节约成本,被大多数企业采用,并在整个企业IT架构、生产中扮演着重要角色。而在企业级虚拟化领域,VMware一直凭借丰富的经验和先进的技术处于世界领先地位。2016年4月13日,VMware与中科曙光宣布正式成立合资公司:中科睿光软件技术有限公司(即中科睿光)。
从云计算和虚拟化领域来讲,VMware一直凭借丰富的经验和先进的技术处于世界领先地位,而中科曙光则在国内拥有几十年的运营、渠道经验。国内老牌厂商“数据中国”战略布局者曙光与国际虚拟化领导者VMware的联姻形成了一种互补关系,双方合资成立的新公司(合资公司中曙光占股51%、VMware占股49%)中科睿光也成立不久后,就接连发布了CloudVirtual与Cloudview SVM Edition两款产品。
VMware全球首席执行官帕特·基辛格在合资公司成立仪式上的表述较为中肯,帕特·基辛格认为,中国拥有庞大的市场需求量,并保持着快速的经济增长,VMware与曙光的合作,将让双方的能力得到扩展。合资公司的成立,可以让双方共同挖掘市场需求,让先进的技术在中国市场得到最有效的推广和使用。
说起企业级网络市场,全球的设备供应商虽然有很多,但大部分市场份额已经被思科、HPE、Juniper和华为瓜分。与此同时,清华紫光与惠普中国的合作成立了新华三、华为自家产品线丰富,可自提供端到端的完整解决方案。对于浪潮来说,拓展网络实力与思科合作是不错的选择。
思科与浪潮在第八届中美互联网论坛上正式合作,并签署了战略合作框架协议。根据协议,双方将共同首期投资1亿美元在中国成立合资公司(合资公司中浪潮占股51%、思科占股49%),共同研发网络技术与产品,打造世界一流的信息技术和方案,为信息基础设施、云中心、智慧城市及大数据等领域提供先进的技术、产品、方案和服务。
可以看出,面对中国国产化的政策,很多国外公司都在寻求自己的合作伙伴,将自己洗白之后再进入中国市场。从联想以23亿美元的价格收购IBM的X86服务器架构开始,国有企业就开始逐渐入驻国际市场。在中国全面深化改革、提倡开放式创新的背景下,国内外企业的合作愈发频繁,中国服务器市场成为逐鹿的舞台,国有企业开始握有主动权。
在操作系统领域,我国自主研发的基于开源Linux的操作系统,但在实际的市场占有率和硬件兼容性等方面明显不足;面对市场占有率极高的Windows操作系统,尤其是Windows10的发布,让多国对其安全性产生质疑。为了打开中国政企市场,微软与中国电子科技集团公司合资成立中国微软信息科技公司,目的在于打造一个平台,向中国政府提供所有微软已有的应用服务。这也可以说是微软将产品带入中国的一种新模式。
截至今年3月,这场Windows系统领域的中美合作已然结出硕果,3月末,前微软大中华区董事长兼CEO贺乐赋透露中国政府特供版Windows 10系统第一版已经完成。贺乐赋表示:“对于我们来说,成立合资公司是一个重要的里程碑。我们希望这家合资公司能够借助其现有的合作伙伴与受培训人员,打造一个平台,向中国政府提供所有我们已有的应用服务。”
虽说近年来我国的科技实力稳步提升,但是大多也集中在硬件研发上,而在操作系统、虚拟化等软件方面稍显不足,也没有一款能够被大众喜爱的操作系统诞生,中国电子科技集团与微软的合作,对双方而言都可以用以退为进来解释。
====================================分割线================================
本文转自d1net(转载)
《深入学习VMware vSphere 6》——1.2 虚拟化应用概述
本节书摘来自异步社区《深入学习VMware vSphere 6》一书中的第1章,第1.2节,作者:王春海著,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.2 虚拟化应用概述
要搭建企业虚拟化的基础平台,有两种选择。其一是选择全新的服务器、存储器及交换机,直接搭建新的虚拟化平台,之后再安装配置一些应用服务器;另外一种是使用现有的设备,通过安装虚拟化产品、虚拟化原有的服务器来实现。这时候就要考虑原来的一些基础设备,如原来的服务器、存储、交换机。这些要根据服务器、存储的性能、参数,综合考虑。
1.2.1 虚拟化与传统物理服务器的区别在传统的应用中,每个应用(或项目)运行在单独的物理服务器中,每个物理服务器只跑一个网站或运行一个项目。在大多数的政府、企业中,单台服务器大多配置了1个CPU、2~3个硬盘做RAID1或RAID5、单电源、单网络(服务器2块网卡或4块网卡只用一块)。而在虚拟化的项目中,虚拟化主机服务器大多配置2~4个CPU,6~10个甚至更多硬盘做RAID5或RAID50、RAID10,2~4个电源,4个或更多的物理网卡冗余。虚拟化中每台服务器都有冗余,在服务器中的单一网卡、硬盘、电源,甚至CPU出现问题时都会有冗余设备接替。另外,在虚拟化项目中,通常采用共享的存储,虚拟机保存在共享的存储中,即使某台主机完全损坏,运行在该主机上的虚拟机也会在其他物理主机启动,保证业务系统不会中断。
组成虚拟化项目中每个节点主机的性能更高。单一的应用主机,大多配置2个硬盘做RAID1,或者3个硬盘做RAID5,这样磁盘性能比较低。如果是3块硬盘做RAID5,不如再添加1块硬盘,4块硬盘组建RAID10,可以获得较好的读写性能。在虚拟化主机中,通常用6块或更多的硬盘,组建RAID5、RAID50或者RAID10,磁盘性能较高。另外,虽然虚拟化后是在同一个主机上跑多个虚拟机,但这些虚拟机并不会在同一时刻都要求较高的CPU与磁盘、内存利用率。根据多年的虚拟化实施经验,在虚拟化后,不会降低原来的每个应用的响应速度,而是会略有增加。
当前一些单位,为了成本考虑,采取大容量、低转速的SATA或SAS(7200转)的磁盘组成RAID。如果采用这种磁盘,例如采用1TB、2TB、3TB,甚至4TB的7200转磁盘,建议采用至少8块组成RAID10,而不是采用4块组成RAID5。由于RAID5的写惩罚为4,在较低转速、较低性能硬盘、较小数量采用RAID5时,其写性能非常低,不建议采用。另外,大容量的磁盘,在RAID重建时,需要花费更长的时间。
1.2.2 企业虚拟化进程在企业实施虚拟化的时候,有两种方案,一种是新建全新的虚拟化数据中心,另一种是利用现有的基础设施,升级改进,或者是添加一部分新的设备(服务器、存储、交换机),与原有的设备组成一个新的数据中心,并且将原有的设备慢慢虚拟化。
在企业实施虚拟化的过程中,大多是先虚拟化不太重要的物理机,将这些物理机迁移到虚拟机中运行一段时间(通常为1周的时间),查看虚拟化后是否对业务应用有所影响,并模拟一些故障,对以后可能出现的问题进行实验,等这些测试完成之后,再虚拟化其他的物理机。而一些不适合虚拟化的应用仍然会运行在原来的物理主机上,例如,用作视频点播的服务器、重要的数据库服务器等这些应用。
1.2.3 vSphere虚拟化规划要点在使用VMware vSphere 6作为虚拟化基础平台前,要选择服务器(硬盘、网卡、内存、CPU)、存储(控制器数量、接口类型、磁盘)、交换机等设备。简单来说,如果你只有一台服务器,那么虚拟机会放在这一台“本地服务器”的“本地硬盘”中。如果有多台服务器(服务器数量多于2台),要充分发挥vSphere的优势(群集、容错、VMotion),采用共享存储是必然的选择。但在vSphere 6中又多了一个选择,可以利用服务器本地硬盘通过网络组建VSAN,实现原来传统架构(虚拟机运行在ESXi主机,但虚拟机保存在共享存储,而不是服务器本地硬盘)的共享存储的功能。
在规划vSphere虚拟化系统时,要考虑以下几点:服务器与存储的数量,VMware ESXi安装在何位置,ESXi服务器网卡与虚拟机网络,是使用共享存储,还是VSAN等。
关于VMware ESXi系统:可以将VMware ESXi安装在服务器本地硬盘、服务器主板上的U盘或SD卡,或通过共享存储划分给服务器的空间。不推荐为服务器单独配置SAS或SATA盘,尤其是两块盘组建RAID1用来安装VMware ESXi,这是严重的浪费。
【说明】 现在大多数的虚拟化项目是商务与技术分离的。一般是商务先去谈业务,等签订合同之后,技术人员负责实施。但许多商务并不是特别地“精通”虚拟化,他们可能更多为了利润或其他原因,给客户推荐一些不太合适的“配置”。例如,在许多虚拟化项目中,尤其是在一些“不差钱”的单位,在配置了EMC等高端共享存储之后,还会为服务器配置6块甚至更多的SAS磁盘,而这些磁盘仅仅用来安装ESXi的系统。如果你的服务器没有配置RAID卡,或者只有一块本地SAS磁盘,那么,由于VMware ESXi不能安装在这两个磁盘中(SSD与SAS),你可以为服务器配置最小1GB的U盘,将VMware ESXi安装在U盘中。例如,IBM服务器主板上有USB接口,HP服务器主板有CF卡插槽,这都是用来安装虚拟化系统的。
关于服务器的网卡:遵循管理与生产分离的原则,并且为了提高系统的可靠性(冗余),推荐至少为每个服务器配置4个网卡(或4端口网卡),每个网卡(端口)至少是千兆。在VMware vSphere中,为VMware ESXi管理地址分配两个网卡,组建标准虚拟交换机,为生产(虚拟机网络流量)分配两个网卡,组建标准交换机或分布式交换机(与多个VMware ESXi主机)。对于生产环境所使用的网卡及标准或分布式交换机,如果有多个网段,通过创建“端口组”的方式,为每个VLAN网段创建一个对应的“端口组”,并且为虚拟机分配对应的端口即可解决。一般情况下,可以将VMotion、Fault Tolerance放置在“管理端口”上。
【说明】 有一次,一个单位在设计ESXi网络系统时,每台服务器都是较为高端的4路CPU、128GB内存、6块网卡的主机,但这些ESXi主机所连接的网络竟然是百兆网络(现有网络是百兆网络,没有考虑升级,因为这个部门不负责网络)。更过分的是这6块网卡在设计时,1块网卡做ESXi主机管理及1个生产网络,另5块网卡连接到5个不同的网络(不同的业务科室在不同的网段)。而采用6块网卡的原因是一共有6个不同的网段,那么如果有10个不同的网络是不是就要用10块网卡?如果有30个、50个,甚至更多呢?那服务器有这么多位置插这些网卡吗?在这个设计中,使用4块网卡即可(2个管理,2个生产跑VLAN),另外需要将核心网络升级到千兆。如果要使用VSAN,还要再配置2个网卡,为VSAN使用单独的网卡。
如果使用iSCSI的存储,也要为iSCSI单独配置2个网卡。另外,建议选择10Gb或40Gb以太网,1Gb的网络不建议使用iSCSI,因为这是性能瓶颈。
关于VSAN:如果要使用VSAN,而不是使用共享存储,每台服务器至少有一个单独的固态硬盘、一个或多个物理磁盘。一般情况下,服务器都有多个硬盘并且有RAID,你可以使用RAID划分出一个20GB的逻辑磁盘(不要太小,也不要太大),用来安装VMware ESXi系统,剩下的空间划分第2个逻辑磁盘,用作VSAN。另外还要为服务器配置至少一个单独的固态硬盘(SSD),用作VSAN的缓存。
从USB、SD设备引导Virtual SAN主机时,引导设备的大小必须至少为4GB。如果ESXi主机的内存大于512GB,则从SATADOM或磁盘设备引导主机。从SATADOM设备引导Virtual SAN后,必须使用单层单元(SLC)设备,并且引导设备的大小必须至少为16GB。
1.2.4 如何利用现有基础架构对于原来的32位服务器,原则上是全部淘汰,因为这些服务器购买时间较长,性能较低,潜在故障率较高,不能满足现有应用。如果是近一、两年新购买的服务器,则考虑将这些服务器整合、扩充,用作虚拟化主机。大多数服务器能扩充到很高的配置,而标配并不是很高。例如,IBM 3850 X5服务器最大可以扩充到4个CPU、1TB内存、双电源。以CPU为例,IBM 3850 X5出厂标配2个CPU,这CPU可以是6核、8核。如果企业现有多台IBM 3850 X5服务器(如2台或更多),可以将这2台的CPU放到其中一台,而另一台则可以新购4个8核的CPU。同样,内存也可以集中到一台,另一台则配置多个单条8GB的内存。同样,对于其他厂家的服务器,例如DELL R910,标配2个CPU,最大支持4个CPU、2TB内存、4冗余电源,如图1-2-1所示。
在虚拟化实施的过程中,如果使用现有的服务器,推荐优先为服务器添加内存、网卡,其次是配置冗余电源、CPU。至于硬盘,在企业虚拟化项目中,优先是配置共享的存储,其次是添加本地硬盘。
除了做虚拟化主机外,还可以将原有的服务器改作存储服务器。例如,如果某服务器配置较低并且不具有升级的价值,但具有较多的本地硬盘时,可以将硬盘集中到某台服务器中,将这台服务器通过安装openfiler(32位或64位产品都有)、Windows Server 2008 R2或Windows Server 2012,组成存储服务器,通过千兆网络为虚拟化环境提供iSCSI的网络存储,这些存储可以用来做数据备份或扩展。
1.2.5 服务器性能与容量规划在实施虚拟化的前期,有一个虚拟机容量规划。就是一台物理服务器上,最大能放多少虚拟机。实际上这是一个综合的问题,既要考虑主机的CPU、内存、磁盘(容量与性能),也要考虑运行的虚拟机需要的资源。在实际使用时,系统总有至少30%,甚至更高的富余容量,不可能让一个主机上的资源利用率超过80%,以致接近100%,否则一旦达到这些数值,整个系统响应会比较慢。
在估算虚拟化的容量时,在只考虑CPU的情况下,可以将物理CPU与虚拟CPU按照1∶4~1∶10,甚至更高的比例规划。例如,一台物理的主机具有4个8核心的CPU,在内存、存储足够的情况下,按照1∶5的比例,则可以虚拟出4×8×5=160个VCPU,假设每个虚拟机需要2个VCPU,则可以创建80个虚拟机。在实际实施虚拟化的项目中,大多数虚拟机对CPU的要求并不是非常高,即使为虚拟机分配了4个或更多的CPU,但实际上该虚拟机的CPU使用率只有10%以下,这时候所消耗的物理主机CPU资源不足0.5个。如图1-2-2所示,这是使用vCenter Operations Manager统计的容量分配过剩的虚拟机,从列表中可以看出,大多数虚拟机的CPU利用率不足10%,实际使用的内存也较低(尽管为大多数虚拟机分配了2GB内存,但实际使用只有256MB~576MB内存之间)。
在虚拟化的项目中,对内存占用是最大、要求最高的。在实际使用中也是如此,管理员会发现,物理主机的内存使用率会接近80%,甚至90%。因为在同一物理主机上,规划的虚拟机数量较多,而且每个虚拟机分配的内存又较大(总是超过该虚拟机实际使用的内存),所以会导致主机可用内存减少,如图1-2-3所示,这是某正在运行中的VMware ESXi 6主机的CPU与内存使用情况。
在为物理主机配置内存时,要考虑在该主机上运行多少虚拟机,这些虚拟机一共需要多少内存。一般情况下,每个虚拟机需要的内存在1GB~4GB,甚至更多,还要为VMware ESXi预留一部分内存。通常情况下,配置了4个8核心CPU的主机,一般需要配置96GB,甚至更高的内存,配置2个6核心CPU的主机,通常要配置32GB~64GB内存。
1.2.6 统计与计算现有容量如果要将现有的物理服务器迁移到虚拟机中,可以制作一张统计表,包括现有物理服务器的CPU型号、数量、CPU利用率,现有内存及内存利用率,现有硬盘数量、大小、RAID及使用情况。表1-1是某单位现有服务器的情况统计(在实际情况下,该单位服务器大约有100台,表1-1及后文表1-2只是列出了部分服务器的型号及资源使用统计)。
根据上表,我们计算每台服务器实际需要的CPU、内存与磁盘空间,计算方式为:
实际CPU资源=该台服务器CPU频率×CPU数量×CPU使用率
实际内存资源=该台服务器内存×内存使用率
实际硬盘空间=硬盘容量−剩余空间
例如,该表中第一台服务器需要3.0GHz×2×15%=0.9GHz,内存为2GB×30=0.6GB,硬盘为73GB-30GB=43GB。
然后在表1-1后面计算,实际得出情况如表1-2所示。
经过计算,本项目中已经使用了91.1944GHz的CPU资源,以CPU频率3.0HzCPU为例,则需要30核心(负载100%),但要考虑整体项目中CPU的负载率为60%~75%,以及管理等其他开销,则至少需要40个CPU核心,如果配置4个6核心的服务器,则需要大约4台物理主机。至于内存,现在已经使用了182GB,加上管理以及富余,以360GB计算,每服务器96GB~128GB即可。
如果不购买新的服务器,而从中选择4~8台高配置的服务器(如6台),将这100台服务器使用虚拟化技术,迁移到其中的6台,则节省的电费(以每台服务器400W、工业用电1.1元/度计算)约34.69万元。
如果要使用现有的服务器,则需要为某些做虚拟化主机的服务器扩充内存。使用现有服务器,如果不扩充现有服务器的CPU,在2个CPU的主机中,将内存扩充到64GB为宜。
根据表1-2计算可知,己使用6.9TB的硬盘容量,要为整个虚拟化系统规划10TB,甚至更多的存储。在备份原有服务器数据的情况下,可以集中300GB、146GB的硬盘到虚拟化主机上统一使用。在使用6台物理服务器做虚拟化主机的情况下,每台服务器需要1.5TB~3TB的空间。在使用RAID5时,使用6块300GB即可提供1.5TB可用容量,使用8块300GB做RAID50时可提供1.8TB可用容量。使用12块300GB硬盘、RAID50时可提供3TB的容量。
1.2.7 新购服务器的选择在实施虚拟化的过程中,如果现有服务器满足需求,则可以使用现有的服务器,如果现有服务器不能完全满足需求,则可以部分采用现有服务器,然后再采购新的服务器。
在规划vSphere数据中心时,有两种不同的作法。一种是较小的服务器数量,但每台服务器的性能较高。例如,使用4CPU、4U的机架式服务器。另一种是较多的服务器数量,但每服务器服务器性能相对较差。例如,使用2CPU、2U的机架式服务器。还有一种是使用更为集中的刀片服务器。具体采用哪种,看企业需求、预算。
如果采购新的服务器,可供选择的产品比较多。如果单位机房在机柜存放,则优先采购机架式服务器。采购的原则是:
(1)如果2U的服务器能满足需求,则采用2U的服务器。通常情况下,2U的服务器最大支持2个CPU,标配1个CPU。在这个时候,就要配置2个CPU。
如果2U的服务器不能满足需求,则采用4U的服务器。通常情况下,4U的服务器最大支持4个CPU并标配2个CPU,在购置服务器时,为服务器配置4个CPU为宜。如果对服务器的数量不做限制,采购两倍的2U服务器要比采购4U的服务器节省更多的资金,并且性能大多数也能满足需求。
(2)CPU:在CPU频率与核心数选择时,尽可能选择多核心较低频率的CPU。因为根据Intel研究显示,利用频率的提高增加13%的性能,在耗电上要增加73%。增加1个核心并将频率降低20%,性能可以增加70%,而耗电仅增加2%。如果再增加两个核心,总耗电仅增加6%,而性能增加210%。
(3)内存:在配置服务器的时候,尽可能为服务器配置较大内存。在虚拟化项目中,内存比CPU更重要。一般情况下,2个6核心的2U服务器配置64GB内存,4个6核心或8核心的4U服务器配置128GB或更多的内存。
(4)网卡:在选择服务器的时候,还要考虑服务器的网卡数量,至少要为服务器配置2接口的千兆网卡,推荐4端口千兆网卡。
(5)电源:尽可能配置两个电源。一般情况下,2U服务器选择2个450W的电源可以满足需求,4U服务器选择2个750W电源可以满足需求。
(6)硬盘:如果虚拟机保存在服务器的本地存储,而不是网络存储,则为服务器配置6个硬盘做RAID5,或者8个硬盘做RAID50为宜。由于服务器硬盘槽位有限,故不能选择太小的硬盘,当前性价比高的是600GB的SAS硬盘。2.5英寸SAS硬盘转速是10000转,3.5英寸SAS硬盘转速为15000转。选择2.5英寸硬盘具有较高的IOPS。
至于服务器的品牌,则可以选择IBM、HP或Dell。表1-3所示是几款服务器的型号及规格。
几种服务器外形如图1-2-4~图1-2-6所示。
为了提高服务器的密度,一些厂商采用类似“刀片”服务器的作法,在2U大小的机架中,集成4个节点服务器,这样一台服务器相当于4台独立的服务器使用,进一步节省了空间,如DELL PowerEdge C6100就是这么一款机器,它支持12个3.5英寸或24个2.5英寸热插拔SAS、SATA或固态硬盘,集成4个节点,每个节点可以配2个CPU、96GB内存、2端口网卡。通过共享电源、风扇和底板,可以有效降低功耗,实现高能效并节省运营成本。C6100正面、背面如图1-2-7、图1-2-8所示。
当对服务器占用空间有较高要求时,可以配置刀片服务器,如华为Tecal E6000服务器,8U的空间,可以最大配置10个刀片服务器,每个服务器可以配2个CPU、2个SAS硬盘、12个内存插槽、双端口网卡。华为E6000系列服务器如图1-2-9所示。
1.2.8 存储的选择在虚拟化项目中,推荐采用存储设备,而不是服务器本地硬盘。在配置共享的存储设备,并且虚拟机保存在存储设备时,才能快速实现并使用HA、FT、vMotion等技术。在使用VMware vSphere实施虚拟化项目时,一个推荐的作法是将VMware ESXi安装在服务器的本地硬盘上,这个本地硬盘可以是一个固态硬盘(30GB~60GB即可),也可以是一个SD卡(配置1GB~2GB的SD卡即可),甚至可以是1GB~2GB的U盘。如果服务器没有配置本地硬盘,也可以从存储上为服务器划分5.2GB~10GB的分区用于启动。
【说明】 (1)要安装ESXi6,至少需要容量为1GB的引导设备。如果从本地磁盘或SAN/iSCSI LUN进行引导,则需要5.2GB的磁盘,以便可以在引导设备上创建VMFS卷和4GB的暂存分区。如果使用较小的磁盘或LUN,则安装程序将尝试在一个单独的本地磁盘上分配暂存区域。如果找不到本地磁盘,则暂存分区/scratch将位于ESXi主机ramdisk上,并链接至/tmp/scratch。由于USB和SD容易对I/O产生影响,安装程序不会在这些设备上创建暂存分区。同样,使用大型USB/SD设备并无明显优势,因为ESXi仅使用前1GB的空间。在USB或SD设备上进行安装时,安装程序将尝试在可用的本地磁盘或数据存储上分配暂存区域。如果未找到本地磁盘或数据存储,则/scratch将被放置在ramdisk上。您应在安装之后重新配置/scratch以使用持久性的数据存储。
(2)在HP DL380 G8系列服务器主板上集成了SD接口,IBM 3650 M4主板集成了USB接口。可以将SD卡或U盘插在该接口中用于安装VMware ESXi。如果在虚拟化项目中选择存储,项目中服务器数量较少时,可以选择SAS HBA接口(见图1-2-10)的存储,如果服务器数量较多,则需要选择FC HBA接口(见图1-2-11)的存储并配置FC的光纤交换机。SAS HBA接口可以达到6Gbps,而FC HBA接口可以达到8 Gbps。
在选择存储设备的时候,要考虑整个虚拟化系统中需要用到的存储容量、磁盘性能、接口数量、接口的带宽。对于容量来说,整个存储设计的容量要是实际使用容量的2倍以上。例如,整个数据中心已经使用了1TB的磁盘空间(所有己用空间加到一起),则在设计存储时,要至少设计2TB的存储空间(是配置RAID之后,而不是没有配置RAID、所有磁盘相加的空间)。
例如:如果需要2TB的空间,在使用600GB的硬盘,用RAID10时,则需要8块硬盘,实际容量是4个硬盘的容量,600GB×4≈2.4TB。如果要用RAID5时,则需要5块硬盘。
在存储设计中另外一个重要的参数是IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成。例如,主机写入一个最小的数据块,也要经过“发送写入请求、写入数据、收到写入确认”等三个步骤,也就是3个存储端访问。每个磁盘系统的IOPS是有上限的,如果设计的存储系统实际的IOPS超过了磁盘组的上限,则系统反应会变慢,影响系统的性能。简单来说,15000转的磁盘的IOPS是150,10000转的磁盘的IOPS是100,普通的SATA硬盘的IOPS大约是70~80。一般情况下,在做桌面虚拟化时,每个虚拟机的IOPS可以设计为3~5个,普通的虚拟服务器IOPS可以规划为15~30个(看实际情况)。当设计一个同时运行100个虚拟机的系统时,IOPS则至少要规划为2000个。如果采用10000转的SAS磁盘,则至少需要20个磁盘。当然这只是简单的测算,后文会专门介绍IOPS的计算。
在规划存储时,还要考虑存储的接口数量及接口的速度。通常来说,在规划一个具有4主机、1个存储的系统中,采用具有2个接口器、4个SAS接口的存储服务器是比较合适的。如果有更多的主机,或者主机需要冗余的接口,则可以考虑配FC接口的存储,并采用光纤交换机连接存储与服务器。表1-4所示是几种低端存储的型号及参数,可以满足大多数的中小企业虚拟化系统。
1.2.9 网络及交换机的选择在一个虚拟化环境里,每台物理服务器一般拥有更高的网卡密度。虚拟化主机有6个、8个,甚至更多的网络接口卡(NIC)是常见的,反之,没有被虚拟化的服务器只有2个或4个NIC。这成为数据中心里的一个问题,因为边缘或分布交换机放在机架里,以简化网络布线,然后向上传输到网络核心。在这种解决方案里,一个典型的48端口的交换机仅能处理4~8台虚拟主机。为了完全填满机架,需要更多的边缘或分布交换机。
在虚拟化环境里,当多个工作负荷整合到这些主机里时,运行在主机上的工作负荷数量大了,网络流量增加了,网络利用率将不再像过去每台物理服务器上那样低了。
为了调节来自整合工作负荷增加的网络流量,可能需要增加从边缘或分布交换机到网络核心的向上传输数量,这时对交换机的背板带宽及上行线路就提出较高的要求。
另一个关键的改变来自最新一代虚拟化产品的动态性质,其诸如热迁移和多主机动态资源管理。虚拟化里固有的动态更改性能意味着不能再对服务器之间的流量流动做任何假设。
在进行虚拟机之间的动态迁移,或者将虚拟机从一个存储迁移到另一个存储时,为了减少迁移的时间,不对关键业务造成影响,在迁移期间会占用大量的网络资源,另外,在迁移的时候,虽然可以减少并发迁移的数量,但在某些应用中,可能会同时迁移多台虚拟机,这对交换机背板带宽以及交换机性能的要求更高。
当工作负荷捆绑于虚拟硬件,机架或交换机被告知将交换大量的网络流量时,服务器能分配流量到机架或交换机。既然工作负荷能动态地从一台物理主机移动到一台完全不同的物理主机,在网络设计里,位置不再用到。网络设计现在必须调节动态数据流,这可能从任何虚拟化主机到其他虚拟化主机或者物理工作负荷开始。摒弃传统的core/edge设计,数据中心网络可能需要找寻更多全网状架构或“光纤”,这能完全调节来自任何虚拟化主机或者其他虚拟化主机的交易流。
另外,虚拟化使数据中心里网络层的一些能见度降低了。网络工程师在虚拟交换机里没有能见度,也不能轻松决定哪个物理NIC对应哪个虚拟交换机。这在故障检修中是最重要的信息,为了减少故障率,为交换机配置冗余的业务板及冗余电源也应该考虑,同时,在尽可能的前提下,配置更好的交换机。
在大多数的情况下,物理主机配置4个千兆网卡,并且为了冗余,尽可能是每两个网卡绑定在一起,用作负载均衡及故障转移。
对于中小企业虚拟化环境中,配置华为S57系列千兆交换机即可满足大多数的需求。华为S5700系列分24端口、48端口两种。如果需要更高的网络性能,可以选择华为S9300系列交换机。如果在虚拟化规划中,物理主机中的虚拟机只需要在同一个网段(或者在两个等有限的网段中),并且对性能要求不高,但对价钱敏感的时候,可以选择华为的S1700系列普通交换机。无论是VMware ESXi,还是Hyper-V Server,都支持在虚拟交换机中划分VLAN,即将主机网卡连接到交换机的Trunk端口,然后在虚拟交换机一端划分VLAN,这样可以在只有一到两个物理网卡时,让虚拟机划分到所属网络中的不同VLAN中。表1-5所示是推荐的一些交换机型号及参数。
【说明】 华为S5700系列为盒式设备,机箱高度为1U,提供精简版(LI)、标准版(SI)、增强版(EI)和高级版(HI)四种产品版本。精简版提供完备的二层功能;标准版支持二层和基本的三层功能;增强版支持复杂的路由协议和更为丰富的业务特性;高级版除了提供上述增强版的功能外,还支持MPLS、硬件OAM等高级功能。在使用时可以根据需要选择。1.2.10 虚拟桌面规划在虚拟化项目中,存储、服务器、网络,这三者相辅相成,缺一不可。在规划的时候,任何一个环节如果存在瓶颈,都会影响总体的性能。服务器、网络、存储前文已经有过介绍,而在本节,我们以VMware View(虚拟桌面)的规划与设计为例对存储或服务器中所使用的磁盘、磁盘数量进行深入介绍。
许多初次学习虚拟化或准备实施虚拟化项目的工程师,经常问我:我有4台服务器,256GB内存,能跑300个虚拟桌面吗?也有人问我,要配200个桌面,需要什么配置?
对于这些,我经常很无奈。虚拟化(无论服务器虚拟化,还是桌面虚拟化)是一个综合的应用、配置。CPU、内存、存储、网络、应用,任何一点,都可能会形成瓶颈。这不是由单单某一个方面决定的。
我有时举例,你有一批货物,要从A地运到B地,有一辆车,能否满足需求?这既要看你车的承重量(负载),也要看车厢的体积(能否放得下),还要看从A到B这个路上,有没有路能承担,有没有堵车,另外,你需要多长时间拉过去,一趟能否拉完,这些都是问题。
简单来说,设计VMware View桌面,要看你的每个桌面的用途,需要安装的操作系统,大多数软件运行时所需要的CPU个数、内存大小、存储的空间以及所需要的IOPS,最后要看桌面的数量。
计算或统计出每个View桌面的情况,再乘以桌面数量,得出一个大体的数目。
之后再规划需要的服务器的数量、每个服务器的配置、存储的配置,得出一个相对合理的结果。在规划时,物理CPU核心与虚拟CPU核心、物理内存与虚拟内存进行适当比例选择。
典型的View体系结构设计采用容器策略,容器包含相应的组件,而组件则可通过使用 vSphere 5.1或更高版本基础架构最多支持10000个远程桌面。由于硬件配置、所用的View和vSphere软件版本以及其他特定于环境的设计因素的不同,容器的定义可能存在差异。
总体来说,要规划View桌面,需要:
估算虚拟机桌面的内存要求。估算虚拟机桌面的CPU要求。选择合适的系统磁盘大小。具体的规划我们不展开讨论,一般情况下,不同类型员工的View桌面,即运行在vSphere中的虚拟机,需求存在很大差异,因此很多企业都通过试运行来确定企业中不同类型员工所需的适当内存设置。
开始时最好分配1GB(32位Windows7或更高版本桌面)或2GB(64位Windows7或更高版本桌面)的内存。如果要将其中的一个硬件图形加速功能用于3D工作负载,VMware建议使用2个虚拟CPU和4GB的RAM。在试运行阶段中,需要监视不同类型员工的使用性能和所用磁盘空间,并做出适当调整,最后确定适用于每种类型员工的最佳设置。
在估算CPU时,必须收集有关各类企业员工平均CPU利用率的信息。
对CPU的具体要求因员工类型而异。在试运行阶段,请使用性能监测工具(如虚拟机中的Perfmon、ESXi中的esxtop或vCenter Server性能监测工具)来了解这些员工组的平均及峰值CPU利用率。另外请遵循以下原则。
(1)软件开发人员或其他具有高性能需求的超级用户对CPU的要求可能高于知识型员工和任务型员工。对于计算密集型任务、需要用PCoIP显示协议播放720p视频,以及64位Windows 7和更高版本桌面,我们建议您部署双虚拟CPU。
(2)至于其他情形,则建议使用单虚拟 CPU。
在分配磁盘空间时,还要为操作系统、应用程序和用户可能会安装或生成的其他内容提供足够的空间。这个容量通常低于物理 PC 磁盘的容量。
数据中心磁盘空间每千兆字节的成本通常高于传统PC部署中台式机或笔记本电脑的成本,因此需要对操作系统映像大小进行优化。以下建议可用于优化映像大小。
(1)删除不需要的文件。例如,减少临时Internet文件的配额。
(2)关闭Windows服务,例如,索引器服务、磁盘碎片整理程序服务和还原点。
(3)选择能满足未来增长需要的虚拟磁盘大小,但不要过大。
(4)使用集中的文件共享或View Composer 永久磁盘存储用户生成的内容和安装的应用程序。
(5)如果你正在使用vSphere5.1或更高版本,请为vCenter Server和链接克隆桌面池启用空间回收功能。
根据整个系统中VMware View桌面的数量规划所需要的VMware ESXi主机。例如,如果你需要同时运行300个View桌面,每个View桌面准备运行32位的Windows7专业版或企业版,每个虚拟机3GB内存、2个vCPU,24GB的操作系统硬盘空间(克隆链接,共享),每用户20GB的存储空间。
则整个View系统需要900GB虚拟内存、600个虚拟CPU,200个用户需要6TB的存储空间。
(1)作为一般性架构,通常以每个CPU核心运行8到10个虚拟桌面作为考虑计算容量的依据。所以,当需要600个虚拟CPU时,需要大约60个CPU核心。如果每CPU是6核心,则大约需要10个CPU。如果每服务器配2个6核心的CPU,则需要5台服务器。
(2)从虚拟桌面RAM、主机RAM和过量分配比率方面思考内存容量问题。尽管可以为每个CPU核心部署8到10个虚拟桌面,但如果虚拟桌面占用1GB或更多的RAM,就必须仔细衡量物理RAM需求。
虚拟机内存与物理主机内存的比例,这个要具体考虑。在初期,可以按2∶1的比例来配置,例如总虚拟内存需要900GB,则可以配500GB左右的物理内存。考虑到需要5台服务器,则每台服务器配128GB内存较为合适。如果内存不能满足需求,则可以考虑将每服务器内存扩充到196GB或256GB。
(3)存储,则是最重要的。单独从容量来看,当用户需求为6TB时,物理存储的容量应该不低于其1.5倍容量,即9TB~12TB。更重要的是大容量的View桌面还需要考虑另外一个重要的参数,IOPS。
1.2.11 磁盘与IOPS在规划存储系统时,要考虑的两大瓶颈主要体现在2个方面:吞吐量与IOPS。
吞吐量主要取决于阵列的构架,光纤通道的大小(阵列一般都是光纤阵列,至于SCSI这样的SSA阵列,我们不讨论)以及硬盘的个数。阵列的构架因每个阵列不同而不同,它们也都存在内部带宽(类似于PC的系统总线),不过一般情况下,内部带宽都设计得很充足,不是瓶颈的所在。
光纤通道的影响还是比较大的,一块8Gb的光纤卡,所能支撑的最大流量应当是8Gb/10(小b)=800MB/s(大B)的实际流量。一个双控制器,每控制器4个光纤接口,所能实现的最大吞吐量则是2×4×800MB=6400MB/s。
IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成。例如,主机写入一个最小的数据块,也要经过“发送写入请求、写入数据、收到写入确认”等三个步骤,也就是3个存储端访问。
决定IOPS主要取决于阵列的算法、cache命中率,以及磁盘个数。阵列的算法因为不同的阵列不同而不同,所以,在使用每个存储之前,有必要了解这个存储的一些算法规则与限制。
cache的命中率取决于数据的分布、cache size的大小、数据访问的规则,以及cache的算法,如果完整地讨论下来,会变得很复杂。在这里只强调一个cache的命中率,如果一个阵列,读cache的命中率越高越好,一般表示它可以支持更多的IOPS,为什么这么说呢?这就需要讨论硬盘IOPS关系了。
每个不同类型物理硬盘能处理的IOPS是有限制的,如表1-6所示。
如果一个阵列有100块15KRPM的光纤硬盘,那么,它能撑的最大IOPS为100×180=18000,这个为硬件限制的理论值,如果超过这个值,硬盘的响应可能会变得非常缓慢而不能正常提供业务。
在raid5与raid10上,读iops没有差别,但是,相同的业务写iops,最终落在磁盘上的iops是有差别的,而我们评估的却正是磁盘的IOPS,如果达到了磁盘的限制,性能肯定是上不去了。
如果知道磁盘的类型(接口、转速)、磁盘个数,想求这些磁盘所能提供的最高IOPS,可以根据下列公式计算。
如果有了规划的IOPS,选择了磁盘类型,而需要磁盘个数,可以根据下列公式计算。
其中,写惩罚,RAID-5单次写入需要分别对数据位和校验位进行2次读和2次写,所以写惩罚为4,而RAID10的写惩罚则是2。
同样,对于上述案例中的300个View桌面,要计算IOPS,应该如下规划。首先了解View桌面在不同状态时所需要的IOPS。
系统启动时:26IOPS
系统登录时:14IOPS
工作时
轻量:4~8IOPS
普通:8~12IOPS
重量:12~20IOPS
空闲时:4IOPS
登出时:12IOPS
离线:0IOPS
那么,我们规划300个View桌面可以同时工作,但最多有100个可能会同时启动,则:
100个同时启动时:2600IOPS
100个系统登录时:1400IOPS
300个工作时
轻量:1200~2400IOPS
普通:2400~3600IOPS
重量:3600~6000IOPS
空闲时:1200IOPS
登出时:3600IOPS
针对此案例,我们可以设计一共需要3000个IOPS的存储系统。
根据上面的计算公式,在需要3000个IOPS时:
选择10000转的600GB的SAS磁盘,选择RAID5,在cache命中率30%时,如果60%读,40%写,计算得数为46.6。如果是20%读,80%写,计算得数为77.07。
如果是45个磁盘,每5~6个组成一个RAID5。这样大约组成9组,每组磁盘空间浪费一块。如果是46个,实际上空间约是9×4×600GB=21600GB=21.6TB。
同样是10000转的600GB的SAS磁盘,选择RAID10,在cache命中率30%时,如果读60%,写40%,则需要28.15个磁盘,如果读20%,写80%,则需要40.15个磁盘。
在RAID10中,28个磁盘,提供的空间是14×600GB=7.2TB,40个磁盘,提供的空间是20×600GB=12TB。
计算机基础知识
一、计算机系统
1.1 计算机系统由硬件系统(Hardware)和软件系统(Software)两大部分组成。
二、计算机硬件
2.1 计算机概念
计算机俗称电脑,是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出到现代化智能电子设备。
2.2 计算机发展历史
第一代计算机(1946-1957):计算机进入电子管时代
第二代计算机(1958-1964):计算机进入晶体管时代
第三代计算机(1965-1970):计算机进入集成电路时代
第四代计算机(1971以后):计算机进入大规模集成电路时代
2.3 1946年,世界上第一台计算机ENIAC在美国宾州大学诞生,是美国奥伯丁武器试验场为了满足计算机弹道需要而研制成的。使用了17468只电子管,占地170平方米,重达30吨,耗电174千瓦,耗资40多万美元。每秒可进行5000次加法或减法运算。
2.4 计算机现在都遵循冯.诺依曼体系结构,1946年数学家冯诺依曼提出了计算机由运算器、控制器、存储器、输入设备、输出设备五大部分组成。
2.5 计算机按规模划分:巨型计算机(天河一号)、大型计算机(IBMz13)、小型计算机和微型计算机
摩尔定律
由英特尔(Intel)创始人之一戈登.摩尔于1965年提出来当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。
三、服务器
3.1 服务器概念
3.1.1 服务器是计算机的一种,是网络中为客户端计算机提供各种服务的高性能的计算机。
3.1.2 服务器在网络操作系统的控制下、将与其相连的硬盘、磁带、打印机及昂贵的专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发布及数据管理等服务。
3.2 服务器按应用功能可分为:
3.2.1 web服务器、数据库服务器、邮件服务器、文件服务器、日志服务器、监控服务器等等。
3.3 服务器按外形分类:
3.3.1 塔式服务器、机架式服务器、刀片式服务器。
塔式服务器
机架式服务器
①按照统一标准设计,配合机柜统一使用。
②机架式服务器宽度为19英寸,高度以U为单位。
③1U=1.75英寸=44.45毫米,通常有1U,2U,3U,4U,5U,7U几种标准的服务器,机柜的尺寸也是采用通用的工业标准。
④在机柜中可以同时放置多台服务器。
刀片式服务器
①更高的密度,集中管理高性能,灵活扩展,按需配置。
四、服务器硬件
4.1 服务器硬件-CPU
4.1.1 CPU是Central Processing Unit的缩写,即中央处理器。由运算器和控制器构成,是整个计算机系统中最重要的部分
4.2 服务器CPU公司
4.2.1 Intel公司
Xeon 至强
Itanium 安腾
4.2.2 AMD公司
Althlon MP
4.2.3 IBM公司
Power
4.3 主频、外频、倍频、高速缓存、内存总线速度、地址总线宽度
4.3.1 主频:主频是CPU的时钟频率(CPU Clock Speded),是CPU运算时工作的频率的简称。单位是Hz。一般来说,主频越高,CPU的速度越快。由于内部结构不同,并非所有的时钟频率相同的CPU性能都一样。
4.3.2 外频:系统总线的工作频率,CPU与外部(主板芯片组)交换数据、指令的工作时钟频率。
4.3.3 倍频:倍频则是指CPU外频与主频相差的倍数。
三者关系:主频=外频X倍频
4.3.4 高速缓存(Cache):高速交换的存储器。CPU缓存分为一级、二级、三级缓存,即L1,L2,L3。
4.3.5 内存总线速度(Memory-Bus Speed):一般等同于CPU的外频,指CPU与二级高速缓存和内存之间的通信速度。
4.3.6 地址总线宽度:决定了CPU可以访问的物理地址空间。
4.4 CPU类型
x86、x64(CISC)、ARM(Acorn RISC Machine)、m68000、m68k(moto)、Power(IBM)、Powerpc(Apple,IBM,moto)、Ultrasparc(Sun)、Alpha(HP)、安腾(compaq)
4.5 按CPU个数分类
①4路及4路以上服务器(企业级服务器)
②2路服务器(部门级服务器)
③1路服务器(入门级服务器)
4.6 服务器分类
4.6.1 按照CPU体系架构来区分,服务器主要分为两类。
①非x86服务器:使用RISC(精简指令集)或EPIC(并行指令代码)处理器,并且主要采用UNIX和其它专用操作系统的服务器,指令系统相对简单,它只要求硬件执行很有限且最常用的那部分指令,CPU主要有IBM的PowerPC,Sun的Ultrasparc,Intel研发的EPIC安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统。
②x86服务器:又称CISC(复杂指令集)架构服务器,即通常所讲的PC服务器,它是基于PC机体系结构,使用Intel或其它兼容x86指令集的处理器芯片的服务器。目前主要为Intel的Xeon E3、E5、E7系列,价格相对便宜、兼容性好、稳定性较差,安全性不算太高。
4.7 主板
①主板(mainboard)、系统板(systemboard)或母板(motherboard)它安装在机箱内,它是计算机最基本也是最重要的部件之一。
②主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS芯片、I/O控制芯片、键盘和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件。
4.8 内存
①内存是介于CPU和外部存储之间,是CPU对外部存储中程序和数据进行高速运算时存放程序指令、数据和中间结果的临时场所,它的物理实质就是一组具备数据输入输出和数据存储功能的高速集成电路。
②内存是CPU能直接寻址的存储空间,由半导体器件制成。内存的特点是存取速度快。
③计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。
④外存:硬盘、光盘、软盘、U盘。
⑤内存和外存的区别:内存断电后数据丢失;外存断电后数据可以保存。
容量
即内存的存储容量,单位一般为“MB”或“GB”
内存宽带
①内存宽带是指内存与北桥芯片之间的数据传输率
②单通道内存节制器一般都是64-bit的,8个二进制位相当于一个字节,换算成字节是64/8=8,再乘以内存的运行频率,如果是DDR内存就要在乘以2。
③内存宽带=内存总线频率=数据总线位数/8
内存技术
4.8.1 在线备用内存技术
①当主内存或者是扩展内存中的内存出现多位错误时或者出现物理内存故障时,服务器仍继续运行。
②由备用内存接替出现故障内存的工作。
③备用的内存区域必须比其它区域的内存容量要大或者相同。
4.8.2 内存镜像
①镜像为系统在出现多位错或内存物理故障时提供数据保护功能,以保证系统仍能正常的运行。
②数据同时写入两个镜像的内存区域。
③从一个区域进行数据的读取。
4.9 硬盘
4.9.1 硬盘结构
①存储介质(Media)——盘片
盘片的基板是金属或玻璃材质制成,为达到高密度高稳定的质量,基板要求表面光滑平整,不可有任何瑕疵。
②读写头(Read Write Head)——磁头
磁头是磁盘读取数据的关键部件,它的主要作用就是将存储在硬盘盘片上的磁信息转化为电信号向外传输。
③马达(Spindle Motor)
马达上装有一至多片盘片,以7200或15000RPM定速旋转,为保持其平衡不可抖动,所以其质量要求严谨,不产生高温噪音。
4.9.2 硬盘基本参数
①容量
容量是硬盘的主要参数。单位有MB、GB、TB。1TB=1024GB、1GB=1024MB。
②转速
转速是指硬盘盘片每分钟转动的圈数,单位为RPM。现在硬盘的转速已达10000RPM、15000RPM,所以读写速率也有了很大的提高。
③传输速率
传输速率(Data Transfer Rate)。硬盘的传输速率是指硬盘读写数据的速度,单位为兆字节每秒(MB/s)。
④缓存
硬盘缓存的目的是为了解决系统前后级读写速度不匹配的问题,以提高硬盘的读写速度。
4.9.3 硬盘接口类型
①IEEE 1394接口
②IDE接口——硬盘接口规范,采用ATA技术规范。
③SCSI接口——应用于小型机上的高速数据传输技术。
④SATA接口——Serial ATA,提高传输速率,支持热插拔。
⑤SAS接口——Serial Attached SCSI,兼容SATA。
目前主流硬盘接口为SATA接口和SAS接口,因此,硬盘按接口类型可分为SATA硬盘和SAS硬盘。
4.9.4 常见的磁盘种类
①SATA磁盘
②SAS磁盘
③SSD磁盘
4.9.5 磁盘的主要参数
①磁盘尺寸:3.5、2.5、1.8
②磁盘容量:146GB、300GB、500GB......
③磁盘转速:10K、15K、7200K
④接口速度:3GB、6GB
4.9.6 SATA硬盘
①容量:250GB、320GB、500GB、750GB、1T、2T。
②转速:5400转、7200转。
③缓存:8M、16M、32M
4.9.7 SAS硬盘
①容量:146GB、300GB、450GB、600GB、1T、2T
②转速:10000转、15000转
③缓存:16M、32M、64M
4.9.8 SSD硬盘
①SSD(Solid State Disk)泛指使用NAND Flash组成的固态硬盘,其特别之处在于没有机械结构,以区块写入和抹除的方式做读写的功能。因此,在读写的效率上,非常依赖读写技术上的设计。
②SSD读写存取速度快,性能稳定,防震性高,发热低,耐低温,电耗低,无噪音。因为没有机械部分,所以长时间使用出现故障的几率也比较小。缺点:价格高,容量小,在普通硬盘面前毫无性价比优势。
4.9.9 阵列卡
Raid卡
用来实现RAID的建立和重建,检测和修复多位错误,错误磁盘自动检测等功能。RAID芯片使CPU的资源得以释放。
阵列卡(Raid卡)作用
①阵列卡把若干硬盘驱动器按照一定要求组成一个整体、由阵列控制器管理的系统。
②阵列卡用来提高磁盘子系统的性能及可靠性,
阵列卡参数
①支持的RAID级别。
②阵列卡缓存
③电池保护
(11)显卡
显卡:服务器都在主板上集成了显卡,但是显存容量不高,一般为16M或32M。
(12)网卡
网卡:服务器都在主板上集成了网卡,传输速率为1Gbps,即千兆网卡特殊应用需要高端网卡,如光纤网卡、Infiniband网卡等。传输速率能达到10Gbps、20Gbps,即万兆网卡。
(13)热插拔技术
①热插拔技术:又称为热交换技术(Hot Swap),允许在不关机的状态下更换故障热插拔设备。
②常见热插拔设备:电源、硬盘、PCI设备、风扇等。
③热插拔硬盘技术与RAID技术配合起来,可以使服务器在不关机的状态下恢复故障硬盘上的数据,同时并不影响网络用户对数据的使用。
(14)机柜
①机架式服务器都是放在机柜中使用。
②通常使用的机柜是42U机柜(高度约2米)。
五、存储基础知识-存储网络
存储网络
DAS——直接连接存储(Direct Attached Storage)
NAS——网络连接存储(Network Attached Storage )
SAN——存储区域网络(Storage Area Networks)
DAS:存储设备与主机紧密相连。
优缺点:
①管理成本较低,实施简单。
②存储时直接依附在服务器上,因此存储共享受到限制。
③CPU必须同时完成磁盘存取和应用运行的双重任务,所以不利于CPU的指令周期优化,增加系统负担。
NAS:通过局域网在多个文件服务器之间实现互联,基于文件的协议(NFS、SMB/CIFS),实现文件共享。
优缺点:
①集中管理数据,从而释放带宽、提高性能。
②可提供跨平台文件共享功能。
③可靠性较差,适用于局域网或较小的网络。
SAN:利用高速的光纤网络链接服务器与存储设备,基于SCSI,IP,ATM等多种高级协议,实现存储共享。
优缺点
①服务器跟存储装置两者各司其职。
②利用光纤信道来传输数据,以达到一个服务器与存储装置之间多对多的高效能,高稳定度的存储环境。
③实施复杂,管理成本高。
三种网络形态对比:
DAS
NAS
SAN
传输类型
SCSI、FC
IP
IP、FC、SAS
数据类型
数据块
文件
数据块
典型应用
任何
文件服务器
数据库应用
优点
磁盘与服务器分离,便于统一管理。
不占用应用服务器资源;广泛支持操作系统;扩展较容易;即插即用,安装简单方便。
高扩展性;
高可用性;
数据集中,易管理;
缺点
链接距离短;数据分散,共享困难;存储空间利用率不高;扩展性有限
不适合存储量大的块级应用数据备份及恢复占用网络带宽;
相比NAS成本较高;
安装和升级比NAS复杂;
本文转自wzcLINUXER 51CTO博客,原文链接:http://blog.51cto.com/yacheng0316/1947264,如需转载请自行联系原作者
带外监控
hp的SIM,dell 的omsa可以对这两家的服务器硬件做监控,但是由于他的软件包之大,安装后还要在服务器上启动几个进程,另外好多公司服务器是什么品牌都有。还有一些其它的服务器,根本就没有监控软件。这就比较头痛了!一般服务器都有ipmi,带外管理地址可以配置报警。这些报警包括CPU MEM 电源等。像这种比较重要,又容易坏的东西,还是通过专门的监控软件来监控吧,对于有raid的服务器可以通过各种raid卡监控工具来做,对于没有raid的服务器可以用smartctrl来监控。下面说一下各类raid卡的监控。
raid卡类型 监控工具
megaraid megarc.bin
megaraidsas MegaCli
lsi mpt mpt-status
smartarray hpacucli
3ware tw_cli
对于网管员来说,服务器远程管理是一个非常重要的技术,而在服务器远程管理方面,典型的解决方案是基于服务器操作系统的软件管理方式,但这样的方式有一个致命的缺陷就在于对操作系统的依赖程度太高,一旦系统出现问题将无能为力,影响到服务器的日常运行。而我们今天要向大家介绍的是一种无需依赖于操作系统的远程管理方式——基于智能平台管理界面 (IPMI)的远程管理方式。IPMI 定义管理员如何监测系统硬件和传感器、控制系统组件和检索重要系统事件的日志以进行远程管理和恢复。使用该种方式,用户无需担心操作系统的状态,即使系统崩溃也可以轻松得到机器状态、重要系统日志等信息,还能实现系统的重启、关机等控制,非常实用。接下来,就让我们一起来了解一下IPMI的使用情况吧。
认识IPMI
既然要使用IPMI,就让我们首先来认识一下这个神奇的东西吧。
IPMI是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理基于 Intel结构的企业系统中所使用的外围设备采用的一种工业标准,该标准由英特尔、惠普、NEC、美国戴尔电脑和SuperMicro等公司制定。用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。而且更为重要的是IPMI是一个开放的免费标准,用户无需为使用该标准而支付额外的费用。
自1998 年,IPMI论坛创建了IPMI标准依赖,其已经得到了170 多家供应商的支持,这使得其逐渐成为了一个完整地包括服务器和其他系统(如存储设备、网络和通信设备)的硬件管理规范,目前该标准最新版本为IPMI 2.0,该版本在原有基础上有了不少的改进,包括可以通过串口、Modem以及Lan等远程环境管理服务器系统(包括远程开关机),以及在安全、VLAN 和刀片支持等方面的提高。
IPMI针对大量监控、控制和自动回复服务器的作业,提供了智能型的管理方式。此标准适用于不同的服务器拓朴学,以及Windows、Linux、 Solaris、Mac或是混合型的操作系统。此外,由于IPMI可在不同的属性值下运作,即使服务器本身的运作不正常,或是由于任何原因而无法提供服务,IPMI仍可正常运作。
IPMI 工作原理
IPMI的核心是一个专用芯片/控制器(叫做服务器处理器或基板管理控制器(BMC)),其并不依赖于服务器的处理器、BIOS或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统,只要有BMC与IPMI固件其便可开始工作,而BMC通常是一个安装自爱服务器主板上的独立的板卡,现在也有服务器主板提供对IPMI支持的。IPMI良好的自治特性便克服了以往基于操作系统的管理方式所受的限制,例如操作系统不响应或未加载的情况下其仍然可以进行开关机、信息提取等操作。
在工作时,所有的IPMI功能都是向BMC发送命令来完成的,命令使用IPMI规范中规定的指令,BMC接收并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据记录。在需要远程访问系统时,IPMI新的LAN上串行(SOL)特性很有用。SOL改变IPMI会话过程中本地串口传送方向,从而提供对紧急管理服务、Windows专用管理控制台或Linux串行控制台的远程访问。BMC通过在LAN上改变传送给串行端口的信息的方向来做到这点,提供了一种与厂商无关的远程查看启动、操作系统加载器或紧急管理控制台来诊断和维修故障的标准方式。
当需要对系统文本控制台进行远程访问时,Serial Over LAN (SOL) 功能将非常有用。SOL 通过 IPMI 会话重定向本地串行接口,允许远程访问 Windows 的紧急事件管理控制台 (EMS) 特殊管理控制台 (SAC),或访问 LINUX 串行控制台。这个过程的步骤是 IPMI 固件截取数据,然后通过局域网重新发送定向到串行端口的信息。 这就提供了远程查看 BOOT、OS 加载器或紧急事件管理控制台以诊断并修复服务器相关问题的标准方法,而无需考虑供应商。它允许在引导阶段配置各种组件。
而在命令传输的安全性方面,用户也无需担心,IPMI增强的认证(基于安全哈希算法1和基于密钥哈希消息认证)和加密(高级加密标准和Arcfour)功能有助于实现安全的远程操作。对VLAN的支持更是为设置管理专用网络提供了方便,并且可以以通道为基础进行配置。
一般来说,BMC具有以下功能:
1.通过系统的串行端口进行访问
2. 故障日志记录和 SNMP 警报发送
3.访问系统事件日志 (System Event Log ,SEL) 和传感器状况
4.控制包括开机和关机
5.独立于系统电源或工作状态的支持
6.用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向
而通过IPMI ,用户可以主动监测组件的状况,以确保不超出预置阈值,例如服务器温度。这样,通过避免不定期的断电,协助维护了 IT 资源的运行时间。 IPMI的预告故障能力也有助于 IT 周期的管理。通过检查系统事件日志 (SEL),可以更轻松的预先判定故障组件。
IPMI 的使用
在本例中,我们使用的是服务器是戴尔 PowerEdge R805,这是一款今年5月问世的一款2U机架式服务器,戴尔公司将其称为为虚拟化应用而生的产品,这款2U机架式服务器属于双路四核设计,采用的是AMD四核皓龙平台,而AMD巴塞罗那处理器由于采用了直连架构以及快速虚拟话变址、带标签的标记转换旁路缓冲器(TLB)、设备排斥向量等新技术,其在降低时延、提高虚拟化执行效率、加强虚拟设备管理以及提高虚拟环境安全性等方面都有着良好的表现。而且,这款产品提供了对IPMI 2.0标准的支持,用户可以直接使用。
要利用IPMI规范实现对服务器的远程管理,我们不仅需要本地服务器的支持,在远程控制端还需要有IPMI工具来进行控制。
在前面我们就说过IPMI是一个开放的标准,因此独立的工具软件也有不少,比较常用的有IPMITOOL、IPMIUTIL等,也有不少服务器厂商开发的工具。在本次实例中我们使用的是IPMIUTIL。
本地服务器的设置
要使用IPMI的远程管理功能需要先进行设置。在服务器启动过程中,会提示用户按下Ctrl+E进行有关设置,这时按Ctrl+E 进入IPMI管理界面。
IPMI管理界面有众多选项,用户无需一一设置。首先,设置IPMI Over LAN为On,意思为启用通过LAN方式的IPMI。
其次,在第二项NIC Selection中选择“Dedicated”(专用) — 选择此选项使远程访问设备能够使用 Remote Access Controller (RAC) 上的专用网络接口。此接口不与主机操作系统共享并会将管理通信路由到单独的物理网络,从而能够与应用程序通信分开。此选项只有在系统中装有 DRAC 卡时才可用,而本机装有该卡。
在第三项中设置IPMI接口的IP地址等信息,注意,这里的IP地址可以和服务器网卡的IP地址不同,而如果用户是通过局域网来进行IPMI控制,该IP地址须和控制端处于同一个网段之内。
此外,用户还需要在“Lan User Configeration”中设置用户名与口令。设置完毕这些,用户按ESC建推出,系统会提示保存推出,选择之后带待系统重新启动用户就可以通过远程访问IPMI了。
服务器远程管理
在控制端安装ipmiutil工具包之后,我们就可以通过一系列的命令来获取远端服务器相关信息并对其进行设置了。ipmiutil是一个工具包,其中包含了ipmiutil、hwrese等工具,它们分别有着不同的用途,比如hwrese可以用来启动、关闭服务器等。用户可以通过ipmiutil -?或类似命令来查看各工具的作用。
从中看出,Ipmiutil安装完成后,会包含以下可执行命令:
• alarms –显示和设置Telco alarms报警(LED显示和延迟) • bmchealth – 测试BMC是否工作正常。 • fruconfig – 显示FRU的产品信息,写入有用信息 • getevent – 接收一个IPMI event,并显示。 • hwreset – 用于使 firmware 硬重新启动或者关掉系统 • pefconfig – 用于显示和配置LAN端口,配置Platform Event Filter 表,来通过firmare event产生BMC Lan提示 • sensor – 显示Sensor Data Records,值和阈值。 • showsel – 显示System Event Log记录。 • tmconfig – 显示和配置BMC串口。 • wdt – 显示和设置看门狗时间。 以上命令种中最为常用的是sensor命令和pefconfig命令。使用sensor命令可以获取各种监测信息。使用pefconfig命令设置BMC,使得BMC可以在系统有event时候,进行报警。hwrese也比较常用,这个命令可以实现服务器的重启以及硬件开关机。
Ipmiutil的各种命令格式一般:
命令名称 -所要进行的操作 -N nodename –U user –R passwd
其中-N后面跟的是被监控服务器名字,-U后是用户名,-R后是用户密码。
从上面的使用实例看来,IPMI的确是一个实用性非常强的规范,其不依赖于服务器本身的处理器、操作系统等而进行工作,使得其受限制条件非常少,只要系统正常通电、网络接口正常工作便能够实现对服务器的控制,好好利用IPMI工具,相信一定能够为服务器的管理带来极大的便利。
Sun推出针对MySQL的新系统和存储解决方案
11月5日,Sun Microsystems公司发布了针对MySQL的新的Sun系统产品 (Sun Systems for MySQL),这是一套专门用于快速改变Web服务提供的经济效果的解决方案,让企业客户将基于MySQL的Web基础应用部署到Sun服务器上。该系统产品已经得到客户确认和部署,并表明,性能的改善高达300%,功耗减少83%,性价比提高了10倍,且拥有更高的系统可靠性,可更快推向市场。新的解决方案将MySQL与Sun的其他创新产品整合在一起,使客户可以通过Sun开放软件、广泛的MySQL代码样本,以及业已证明的最佳实践更迅速地走向市场。用户可以通过Sun“先试后买”计划,在他们自身环境中免费评估60天。Sun针对MySQL推出的新系统没有任何风险,不仅可得到Sun全面的技术支持,还能在购买系统时以目录价60%的价格进行购买。此外,Sun针对MySQL的新系统通过Sun Startup Essentials计划提供,对优质客户提供优惠折扣。
Sun针对MySQL的新解决方案的研发,是要解决客户在x86架构下性能、虚拟化、多层部署、富媒体存储和备份等方面的主要难题,同时还要降低功耗和空间占用的成本费用。MySQL与Sun系统、软件及各项服务的结合,可以使客户在Web服务生命周期的每个阶段都获得增长,采用x64(包括x86和64位)或SPARC架构的系统,客户可自行选择运行Solaris OS、OpenSolaris、Linux或Windows等操作系统。
“Sun在开源数据库软件领域的领导地位,与我们在系统技术方面创新的结合,给客户带来更低的成本、更好的易用性和先进的扩展性等多种优势,”Sun公司系统事业部市场营销副总裁Lisa Sieker说,“没有其他厂商能在一个品牌下提供所有这么多的优势,并且给予客户运行Solaris、OpenSolaris、Linux或Windows等操作系统的多种选择。”
今天发布部署在以下环境中的MySQL的 Sun 系统产品:
x86下高性能:增强Web服务提供的经济性。x86架构下针对MySQL的Sun系统产品包括:MySQL Enterprise Gold(企业金牌)订购,其中有Sun Fire x64服务器、开放存储器、综合性服务,还有一个无风险的免费试用项目,允许用户基于Sun的开源软件创建一个完整的解决方案。根据行业标准SPECjAppServer2004基准性能测试所公布的数据,Sun的这个开源软件与Sun Fire X4150服务器的结合,创造了目前最佳性价比得分。这一结果使友商性能最好的解决方案以其原成本的1/53出售,显示了其性价比是HP和Dell专利产品的13倍(见注1,其中提供了有关产品价格和与友商产品比较的详细资料)。此外,预测试显示,未来客户还能享用存储器最新创新成果的优势,如固态硬盘SSDs,支持的交易数目提高达7.5倍,针对MySQL负荷的响应速度比传统的磁盘存储器快60倍,而且功耗仅有3瓦。
虚拟化:不仅规模可扩展,且突破了功率、冷却成本和占有空间的限制。针对虚拟化的Sun Systems for MySQL包括:运行Solaris操作系统的Sun的CoolThreads(酷线程)系统和Open Storage(开放存储)技术,可使用户整合并扩展基于MySQL的Web服务,在大规模的应用中获得更好的经济效果和成本效益。采用酷线程服务器,许多公司获得了5倍MySQL的处理能力,功耗和占用空间成本降低了1/4,而性价比提高达10倍。作为近线性垂直扩展的实例之一,SugarCRM应用将MySQL应用在Solaris OS上运行得非常成功。使用Sugar 提供的标准的基准性能测试套件,配置了逻辑域(LDOMs)的基于酷线程技术的Sun SPARC Enterprise服务器能够支持3,200个SugarCRM四路用户、1,600个SugarCRM两路用户和900个SugarCRM单路用户,允许客户选择最佳的完整的开源解决方案以适应其需求。
多层部署:对大规模的用户和数据量提供简单、可预知的扩展支持。针对多层部署的Sun Systems for MySQL,是代码样本和已公布的最佳实践的一个集合——包括预先优化的、预先集成的AMP-堆栈软件组件,以及Web 2.0应用的若干样本。
富媒体存储:应对海量数据,以及非结构化数据爆炸的问题,为用户提供增值服务。针对富媒体存储的Sun Systems for MySQL,将MySQL与Sun Fire X4540存储服务器、JBODs、OpenSolaris和Solaris ZFS结合起来,这就允许客户在一个集成平台上存储他们的富媒体数据,提供友商同类产品3倍的存储密度,而成本降低一半。
备份:管理海量数据的增值,且能不断缩小备份窗口。针对备份的Sun Systems for MySQL,提供Sun Fire X4540服务器和Zmanda Recovery Manager (恢复管理器),以完成备份和MySQL应用的恢复。部署了该解决方案的客户,与HP的同类产品相比可节约15%的成本,得到2倍的存储密度;与Dell的同类产品相比,可节约10%的成本,得到3倍的存储密度。与友商的同类产品相比,客户还可以节约40~70%的功耗和冷却成本。
部署了这些针对MySQL 的Sun系统解决方案的客户已经看到了巨大的优势,节约了可观的功耗费用。例如,DigiTar采用针对虚拟化的Sun Systems for MySQL解决方案,降低功耗83%,性价比提升了10倍。部署了运行MySQL的Sun系统的其他Sun客户包括有6.cn、Fotolog、Last.fm 和LinkedIn等。
“我们采用Sun Fire X4250服务器运行MySQL数据库,之所以选用这样的组合是因为市场上还没有其他服务器,能够在2U系统中给出16个内部磁盘的存储密度,”Last.fm公司技术运营与基础设施部总监Mike Brodbelt说,“如果采用其他厂商的产品完成同样的工作,就会消耗更多的功率。”
作者:布丁
来源:51CTO