在SAN上创建SQL Server群集
Storage area networks(SANs)使大量存储量连接到服务器变得毫不费力。SANs对于SQL Server安装特别有用。企业数据库不仅仅只需要做大量的存储,它们还有一些不断增长存储的需要。也就是说,你在聚集的SQLServer环境里使用SANs时需要非常注意。在这一技巧里我给你的这些建议当你在SAN上创建SQL Server群集时要牢记的。
1、获得厂商详细的调整指导
SANs创建的不尽相同。在你创建它之前你需要了解你自己的SAN,然后开始在它上面置入数据。例如,你必须知道如何准备磁盘以及厂商提供的说明书,这样它们才能在Windows Server环境集群里正常运行。检查一下你是否真正在聚集的环境里进行检测。
例如,你可能不得不使用DISKPART.EXE工具(包括在Windows 2003服务包1中)来调整磁盘轨迹。Hewlett-Packard公司是一家提供存储设备附带详细文档的公司,这些文档是关于如何对Windows Server 2003进行调整的。(通常会提到SANs上的"LUN offset")
2、尽可能使用RAID-10
这不是一则有关群集的具体的建议,但是它很重要。如果数据的完整性比价格要更重要,那就对SAN使用RAID-10。虽然它的价格进比较高,RAID-10仍被广泛认为是最佳数据库存储档案。
对于那些对RAID-10不熟悉的人来说,它就是"嵌套RAID,"或者一个RAID-0列是从一系列的RAID-1列中产生出来的。它还被说成是一条镜子。RAID-10的确是一种非常有效的设置,它不仅能高度容错,而且还支持快速写作,这在数据库中是非常重要的。
当你创建RAID-10系统时,在多个不同的镜像spindles上置入数据数据并且登陆文档不仅提高了你的速度,而且还增加了你的选择权。physical spindles将数据传送得越多,冗余就越多,并且你获得的parallelism就越好。
RAID-5通常是针对数据库的,但是RAID-5嘴适合只读卷。当磁盘写这一活动超过10%时,RAID-10在任意scenario上是运行得最好的可能有那里有大量的数据库。因为这么多数据库要用TB来计算。这时你甚至可能会想到RAID-100,它又增加了另一级别的nesting 和striping(也叫plaid RAID)。
3、Active/active and active/passive需要考虑的事项
一个 active/active (a/a)群集有两个节点或服务器,它们同时都很活跃、平分负荷,相互映射对方的数据更新。如果一台服务器离线了,另外一台服务器就会接着工作。一个a/p方案就是一台服务器不停运作,另外一台随时待命。如果主要的那台服务器不运转了,只需要进行备份。
有了a/a群集,每台数据库服务器都应该有自己的一套磁盘镜像,这两台服务器不能共享同一个数据库逻辑驱动。这样一来很明显就要贵得多,但是如果你想要得到最好的运行时间,那么这里增加所需磁盘的价格还是值得的。一些数据库管理员甚至给每个群集的节点都提供了SAN。然而如果在节点之间数据复制的数量超过了在用户之间来回传送的数据的数量,那在同一个SAN 上设置a/a群集可能就更加有意义了(虽然是在不同的物理磁盘)。
有了a/p群集,你能跟轻松地让数据库共享磁盘或者是SAN集合。既然一台数据库服务器在任何时候都能起到作用,就没有什么可以争论的了。
4、保持群集之间的驱动器名一致
这是有关群集最详细的建议,需要牢记。所有在一个群集中的主机节点必须是有着相同驱动器名称的驱动器,所以要广泛策划你的驱动器名称。集合起来的软件能够掌握能够访问具体设备的用户信息,因此你不必担心这种事情会发生,但是每个节点都必须对存储持一致的意见。
5、不要尝试来回迁移临时数据库
SQL Server临时数据库是失效转移过程的一部份,需要作为共享文件来利用。不要来回迁移临时数据库。你可能认为你正在通过本地寄宿数据库获取SAN的带宽,但是为了基本功能所用的费用并不值得。
6、仅通过映射驱动器进行备份
如果你正使用SAN存储SQL Server备份,这些备份就应该通过映射驱动器名而不是通过UNC名称运行。SQL Server群集失效转移只能通过用Cluster Service Cluster Administrator登记的存储设备来操作。,如果你操作失败并需要通过群集里的共享设备登录SQL Server备份的话,这一点就尤其重要。同样在为你的备份设置驱动的时候也要记的第四点建议。