Chinaunix首页 | 论坛 | 博客
  • 博客访问: 830131
  • 博文数量: 850
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 9960
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-04 11:03
文章分类

全部博文(850)

文章存档

2011年(1)

2008年(849)

我的朋友

分类: 服务器与存储

2008-07-06 16:16:33

出于某些原因,存储区域网络正在SQL Server环境中扮演者越来越重要的角色。其中包括:

  · 数据库平均规模的不断增长

  · 集群环境的不断流行

  · 存储区域网络的性能优势

  · 存储区域网络的存储效率

  · 恢复能力或者灾难恢复重要性的增加

  存储区域网络的核心功能就是存储数据,并提供数据的高可用性和高性能访问。这是一个提供多个服务器之间高速、高可靠性数据传输的网络,这些服务器之间通常通过高速光纤网络连接。存储区域网络由许多高性能的硬盘驱动器组成(通常是几百个),通过高性能的控制器和缓存连接在一起;这些硬盘驱动器可以虚拟化,从而让客户根本不知道SQL Server是放在了哪个硬盘上面,或者是其他连接到存储区域网络的可以访问的设备。存储区域网络可以由单个硬盘驱动组成,也可以由多个硬盘驱动组成,或者是一个称为逻辑单元号(LUN)的逻辑单元中的一部分硬盘驱动组成。

  存储区域网络与本地附加存储相比,有如下好处:

  · 存储区域网络光纤网络覆盖范围内的SCSI连接有距离上的限制

  · 大多数的存储区域网络提供了如下功能:克隆、快照,或者从一个地点到另外一个地点快速移动数据(复制)。网络上的文件拷贝或者块的复制是不能升级的。这就增加了它在灾难恢复上面的用处。

  · 存储区域网络在集群上面工作良好。集群在来自一个群的两个节点之间共享资源。

  · 存储区域网络可以允许集群或者一个服务器从存储区域网络中摘除。

  · 存储区域网络提供了更高的存储利用率。而本地附加存储设备中大部分的磁盘空间都被浪费了。在存储区域网络中,你可以扩展或者压缩服务器或者集群可以访问的磁盘空间的数量。

  · 存储区域网络还可以卸载一些来自驻扎在存储区域网络自身系统中的处理。

  然而,由于它们的成本和复杂性,存储区域网络只在大型企业中才有意义。它们在如下的情况中并不是最佳选择:

  · 数据库相对比较小的小型环境中

  · 预算有限的公司——存储区域网络非常昂贵

  · 那些只需要在一个或者很少的SQL Server上面进行灾难恢复的公司

  在你冲出去告诉你的采购经理要去买一个存储区域网络或者2个存储区域网络的时候,你需要首先考虑一下以下这些在存储区域网络中使用SQL Server的注意事项:

  缓存

  存储区域网络之所以性能比本地附加存储要好,一个原因就是他们通常会提供很重要的缓存。一般来说,这是件好事。但是当存储区域网络为多个服务器提供存储服务,可用的缓存也会在这些服务器之间共享。所以,你总是可以得到很大的缓存。在其他的IO密集型应用程序,例如Exchange与你的SQL Server共享同一个缓存的时候,这一点特别明显。

  还有可能是一些文件或者数据库操作(例如检测点)也会导致存储的读写性能下降。对你的存储区域网络供应商划定基准,以此确保你的存储区域网络缓存足够充分,以便提供优化的数据库性能。

  逻辑单元号

  存储区域网络管理员会把存储区域网络存储划分为逻辑单元号,服务器将会“看到”一个或者多个这些单元,作为驱动的一部分。考虑一下存储区域网络中的3个200GB的驱动。它们在理论上可以划分为2个逻辑单元号,每个300GB,然后不同的SQL Server服务器可以访问每个逻辑单元号。当驱动经理了两次来自两个服务器的两次IO,而不是像驱动器划分为一个单个的服务器那样,你就会终止这种情况。大多数的存储区域网络都支持分区制,它可以让存储区域网络管理员将存储区域网络中的整个磁盘划分为你的逻辑单元号,以便将这个驱动上的IO与你的SQL Server隔离开。

  像这样尽可能选择最大的合适的逻辑单元号,可以把IO更好地分散在组成你的逻辑单元号的多个磁盘上。最终它可以提供更好的IO性能。

  还要尝试确保你的日志文件放在由专用的磁盘组成的分离的逻辑单元号上。日志文件通常以顺序的模式书写,不像数据文件。与另一个应用程序分享一个逻辑单元号不会提供优化的IO性能。你的存储区域网络也许不会允许你将单独的一个磁盘或者一组磁盘专门分配给你的日志文件。如果你有很多逻辑单元号专门用在你的Windows服务器上的话,这也是可以特殊考虑的。请参考kb这篇文章,了解更多相关信息。

  RAID

  一些存储区域网络供应商还尝试着劝你为所有的数据文件和日志文件中使用RAID 5。在按照他们的建议执行之前,试着使用一个代表性的负载来确认RAID 5可以为临时数据库,你的日志文件和任何的写操作密集文件组提供最好的性能。

  主机组件

  检查并确保你的SQL Server(你的主机)连接到存储区域网络所使用的硬件可以提供优化的性能,并且你有正确的、最新升级的驱动。

  · 考虑在访问你的存储区域网络的服务器上使用多个高速主机总线适配器(HBA)。如果你确实使用了多个高速主机总线适配器,那么确保它们在不同的总线上,以免总线饱和。因为PCI插槽具有不同的总线速度,看看高速主机总线适配器是否插在了能够提供最高速度的插槽上。

  · 使用多路软件来平衡所有高速主机总线适配器的IO访问。

  · 考虑将你的NTFS卷对准存储区域网络的检索扇区。这可以通过存储区域网络上的逻辑单元号偏移量来完成,或者是通过Resource Kit DISKPAR工具在你格式化之前把分区与“扇区”对齐。默认情况下,你在每个磁轨上有63个扇区,当读取的块为4k或者更大的时候,会导致额外的IO。研究表明,通过正确配置你的分区就可以让性能提高10到20个百分点。

  · 与你的存储区域网络供应商协商,确保你的存储区域网络解决方案可以为你的SQL Server提供优化的性能。

  小结

  正如你看到的,存储区域网络是复杂的,并且可以为SQL Server提供优化的性能是具有挑战性的。为你的SQL Server设定基准,判断你的存储区域网络是否存在瓶颈。与你的存储区域网络供应商共同努力,寻找一个良好的解决方案,认真思考并测试他们提供的建议。

阅读(412) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~