最近正好有个朋友问这个方面的问题,如何规划一个SharePoint系统的磁盘容量?如果不能在前期做系统规划(Planning)的时候,确定好所需的磁盘容量,那么就很可能遇到系统上线3个月之后,发现服务器磁盘不够用的尴尬情况发生。
在微软TechNet网站上,有一些相关的文档和白皮书,比如《Capacity Planning and Sizing for Microsoft SharePoint Products and Technologies》。但是如果你懒得阅读白皮书,那么我可以给出一些简要的参数,根据这些参数,你可以快速的估算出一个SharePoint系统所需要的大致磁盘容量。
1、首先,你需要估算出整个系统中将要存放的内容的总容量。如果整个系统的总容量会随着系统的运行而不断增加(很多时候确实如此),那么你就想想你希望整个系统在上线后多长时间之内不想再进行磁盘容量上的升级,然后估算出这段时间之内,系统所存放的内容的总容量。
比如,每个月,所有用户会上传大概10GB文档到SharePoint服务器上。如果你希望SharePoint系统在未来两年之内,不用考虑容量升级的问题,那么这两年内,SharePoint系统中将存放总共240GB的文档。
由于SharePoint 2007文档管理会有“版本控制”和“回收站”的功能,所以在你估算的时候,不要忘记估算这两个功能将要占用的磁盘容量。
比如,在整个系统中,如果你估算大概会有5%的文件会存放到启用了版本控制功能的文档库中(提示:通常,并非所有文件都会需要版本控制的功能,很多文件都是一次性完成,或是无需保留历史版本的,对于这个文件所在的文档库,应该谨慎的使用版本控制功能),并且通过文档库的设置,限制了最多只保留10个主要版本,每个主要版本最多只保留5个次要版本(提示:对于启用了文档版本的文档库,同样需要设置好最多的主要版本的次要版本,避免版本数量无谓的增加太多),那么对于上面算出的240GB文档,你就需要还要加上240GB * 5% * 10 * 5 = 600GB的容量。
这样,我们计算出来的总容量空间将是:240GB + 600 GB = 840GB。
2、由于SharePoint会将所有的网站内容都存储到SQL Server数据库中,对于整个系统的数据库,你要准备所有内容总容量再乘上1.2-1.5倍的空间,给到SQL Server数据库。
比如,对于在第一个步骤里面计算出来的内容总容量840GB,我们就要给SQL Server数据库准备840GB * 1.5 = 1.3TB的磁盘空间。
3、由于SharePoint里面的索引服务(Index Services)会为所有的内容创建索引文件,所以你还需要注意为索引文件准备足够的磁盘空间。索引文件会占用的磁盘空间,可以按照(内容总容量 * (5-12%)) * 3倍这个公式进行计算。
对于5-12%这个比例,需要按照SharePonit中所存储的内容类型来进行适当的调整。例如,对于文档类型的内容(.doc、.docx、.xls、.xlsx、.pdf等),索引文件所占用空间的比例肯定会要比图片文件要高。如果你的SharePoint系统中主要是存放文档类别的内容,那么你就要将这个比例适当的加大,也就是更接近12%。
比如,对于840GB的内容,如果这些只有一部分是文档类型,那么我们要为索引文件准备840GB * 8% * 3 = 200GB的空间。
注意,如果在你的SharePoint服务器场中,索引服务是运行在一台单独的索引服务器(Index Server)上,那么就要在索引服务器上准备这么大的磁盘空间。
4、如果在SharePoint服务器场中,查询服务(Query Services)不是与索引服务运行在同一台服务器上,由于SharePoint会自动将索引文件从索引服务器上复制到运行查询服务的服务器上,所以在所有运行了查询服务的服务器上,同样需要准备足够的磁盘空间,留给索引文件。要准备的磁盘空间容量,计算方法与索引文件的容量相同。
5、最后,为了防止在估算的时候过于乐观,而且你也有足够的预算,那么不妨将上面的所有计算结果再乘上1.5 - 3倍(倍数可以按照您手里的预算来决定,呵呵)。比如,为SQL Server数据库准备2TB的磁盘空间,为索引文件准备300GB的磁盘空间。
最后,介绍两个SharePoint容量规划工具。第一个是微软的SharePoint Capacity Planning Tool,这个工具依赖于System Center Capacity Planner 2007。根据我的使用经验,个人认为这个工具过于花哨,实用价值不太高。:)
第二个工具是HP ProLiant Sizer for Microsoft Office SharePoint Server 2007,它是HP公司发布的一个工具。我对此工具没有什么使用经验。