1. 服务器负载设计
前节我们看到服务器构成,基本每台SharePoint Server(以下简称SPS)服务器都设计有冗余,这不仅仅是高可用性的要求。因为单个服务器受到处理能力的限制,可提供的能力有限,同时多台服务器均衡负载的话,整个系统的性能可以大大提高。但是到底需要多少台服务器提供服务,我们在事前可以进行估算一下。
1)从用户人数来计算,设计如下:
内部人员:22000人,高峰时同时在线比例80%,高峰时每小时操作数36,高峰时同时访问的比率50%
外部人员:100000人,高峰时同时在线比例30%,高峰时每小时操作数18,高峰时同时访问的比率30%
这样可大致计算出高峰时每秒请求数(RPS, Requests per second)为
(22000*80%*36*50%+100000*30%*18*30% )/3600= 133
根据微软测试数据,一台8核16G内存的前端服务器处理请求数可达80RPS,这样的话2台前端服务器基本可以满足要求。
同样,应用服务器也做2台配置。
2)从业务数据来计算,设计如下:
业务数据有1200GB,文档平均大小200KB
这样可算出需要处理文档项目数为:
1200GB/200KB=600万项
列表数据有200项,每项计20列,每列计1000项
这样可算出需要处理列表项目数为:
200*20*1000=400万项
这样光文档和列表项就有1000万项
由于包括文档、网页、列表项和图像,SharePoint 列表中的每个条目都可列为一项,实际项目数可能为计算值的1.5倍以上。
根据微软搜索体系结构示例:
内容量 |
示例搜索体系结构 |
0 - 1000 万个项 |
小型搜索服务器场 |
1000 万 - 4000 万个项 |
中型搜索服务器场 |
4000 万 - 1 亿个项 |
大型搜索服务器场 |
根据以上表格,这里构建一个中型搜索服务器场比较好。由于一些条件限制和客观原因,本项目只演示采用一台搜索专用服务器提供搜索服务。
根据微软测试数据,小型搜索服务器场每秒可以进行50个文档的爬网,且每秒服务10个查询。所以首次完全爬网中,1000万个项目需要55个小时来爬网。
2. 账号安全设计
我们在实验环境中经常使用同一个administrator账号完成所有的配置,但在生产环境中这样做会带来种种风险。
通过赋予每个账户最低权限,不仅能有效的限制非预期人员获取账户后对系统的攻击损坏,而且不同服务的账号分别管理能够使账号的使用范围更清晰,降低系统风险。
账号设计如下(所有账户都为域账户):
名称 |
作用 |
权限 |
sql_install |
SQL Server安装用账号 |
SQL Server本地管理员组成员 |
sql_service |
SQL Server服务用账号 |
无 |
sp_install |
SPS安装和配置用账号 |
SPS Server本地管理员组成员 SQL Server securityadmin 和dbcreator权限 |
sp_farm |
Farm管理账号 . |
SQL Server securityadmin 和dbcreator权限 (若事先无追加,SPS会在配置时自动添加此权限) |
sp_pool |
应用程序池帐户 |
无 |
sp_service |
SPS服务账户 |
无 |
sp_profile |
与AD同步USER PROFILE用账户 |
AD复制目录更改权限 |
3. 端口安全设计
SPS场中服务器之间通讯,以及提供特定服务,都会用到特定端口。
这样,需要在SPS服务器的防火墙上配置开放以下端口
服务 |
开放端口 |
SharePoint Web 服务 |
TCP 80、TCP 443 |
SharePoint 管理中心 |
自定义端口 |
Web服务器和服务应用程序间通信 |
TCP 32843~32845 |
User Code Service |
TCP 32846 |
文件共享 |
TCP 137,UDP 138,TCP 139,TCP 445 |
搜索索引组件服务 |
TCP 16500~16519 |
AppFabric 缓存服务 |
TCP 22233~22236 |
Windows Communication Foundation通讯端口 |
TCP 808 |
邮件SMTP |
TCP 25 |
用户账户同步 |
TCP&UDP 389,TCP&UDP 53,TCP 5725 |