![SQL Server 文件本地还是 NAS 还是 SAN?](https://linux22.com/image/480977/SQL%20Server%20%E6%96%87%E4%BB%B6%E6%9C%AC%E5%9C%B0%E8%BF%98%E6%98%AF%20NAS%20%E8%BF%98%E6%98%AF%20SAN%EF%BC%9F.png)
我必须安装一个带有 SQL Server 2008 的新服务器,您推荐哪种服务器,带有 Raid 10 的服务器还是 NAS 中的文件?
那么我应该使用 iSCSI 吗?
那么 SAN 怎么样?
该服务器有 4Gb 的 RAM,而该数据库文件大约有 2GB。
为了让我今天清楚,服务器没有 RAID,我必须实施某种策略,这样如果发生什么事情,我的文件就可以安全了,那么我应该选择本地文件、NAS 还是 SAN?哪个选项性能最好,哪个更安全?
答案1
网络存储
绝对不是 SQL Server 的 NAS。SMB/CIFS 没有足够的文件锁定支持来支持 DBMS(至少几年前,大约 2002-2003 年)。请注意,NFS做实际上,您可以使用 NFS 服务器上的 Oracle 来实现这一点。但是,由于协议的限制,CIFS 共享上的 SQL Server 并不可靠。它甚至可能不允许您将文件放在 CIFS 挂载的共享上。
存储区域网络
这对于事务性应用程序来说非常有利,因为 RAID 控制器上的缓存可以吸收相当大的工作集。SAN RAID 控制器通常比基于主机的 RAID 控制器支持更多的缓存,特别是在高端套件中,其中 RAID 控制器可能是与服务器一样强大的多处理器盒。
具有双控制器的 SAN 还具有无单点故障的架构,并提供许多热备份选项。从可管理性和可靠性的角度来看,这使其成为一种优势。然而,它们价格昂贵,并且流数据量受限,尽管后者不太可能成为交易系统的问题。
对于操作系统而言,如果可用,SAN 几乎始终是最佳选择。它们还可以在运行中低容量系统的多台服务器之间共享。但是,它们的价格标签对可以使用该技术的最小系统设置了相当大的下限。
直接连接
在某些情况下,直接连接存储是最佳选择。一种可能性是带宽受限的流媒体应用,其中有限的光纤通道连接数量将限制可用带宽,使其低于使用高端 SAS 控制器所能提供的带宽。然而,这些可能是相当专业的应用,例如非常大的数据仓库,其中无共享架构可以提供最佳的吞吐量。
事实上,对于数据仓库系统来说,直接连接存储通常比 SAN 更好,原因如下:
数据仓库会给磁盘子系统带来巨大的瞬时负载峰值。这使得它们在 SAN 上非常不合群,因为它们会影响 SAN 上其他系统的性能。
前面提到的流媒体瓶颈。
直接连接存储比 SAN 存储便宜很多。
另一个直接连接存储市场是当您向不愿意为 SAN 支付足够费用的市场销售产品时。这通常适用于销售给 SMB 客户的应用程序。对于将有六个用户的销售点系统或实践管理系统,SAN 可能有点过头了。在这种情况下,带有一些内部磁盘的小型独立塔式服务器是更合适的解决方案。
答案2
本地或 SAN 是保持性能的唯一方法。在某些情况下,由于更大的写入缓存和并行磁盘吞吐量配置,SAN 可以比本地磁盘更快。
避免通过 Windows 共享执行任何高性能文件 I/O。大量的协议开销会显著降低吞吐量。例如,几年前,我测量过,使用 FTP 通过 WAN 传输大型文件的速度比使用 Windows 共享时快约 50%。
答案3
不要使用 NAS。
要么使用本地(如果使用好的 RAID 控制器,中期使用还可以),但如果预算允许,可以选择一个不错的 SAN。运气好的话,您可以开始与其他系统“共享”SAN,并收回大部分初始支出。
只要是专用的 SQL Server(应该始终如此),4GB RAM 对大多数系统来说都足够了。如果您还没有考虑过,请使用 64 位操作系统和 SQL Server,这样您就可以轻松投入更多 RAM,而无需处理 PAE/AWE 问题。
还要考虑虚拟化。你需要一台测试服务器?开发服务器?测试 SP1 的安装?(之前帖子的无耻加分:VMware 中的 SQL 服务器)
答案4
我使用的系统既使用本地 RAID 磁盘,也使用光纤连接 SAN。即使 SAN 是一台更新、更快的机器,其性能似乎也更好。我认为一个重要因素是本地磁盘布置是单个驱动器,因此 SQL 与操作系统和交换文件共享磁盘 I/O。这很可能是造成拖累的主要原因。
正如@spoulson 提到的,SAN 可以提供更好的磁盘性能。它不仅是一个单独的驱动器,而且很可能位于速度更快的磁盘硬件上。
在我们的案例中,我们使用 SAN,因为它为自动故障转移 VERITAS SQL Server 服务组提供了一个集中存储区域。当主机发生故障时,安装在 SAN 上的 Windows 驱动器将重新安装到热备份机器上,服务器很快就会恢复运行。当然,这需要类似于 VERITAS 的系统来进行服务组管理,这可能超出了您的范围。
我们遇到的一个问题是,SAN 磁盘空间分配的处理比较保守。由于成本高昂,因此他们不会随心所欲地分配空间。对于我们使用的 EMC SAN,如果不转储整个 LUN,则无法回收分配的空间。因此,如果我们发现分配的空间超出了我们的需求,并且我们想将其中一部分空间用于另一个 LUN,那么我们不能只是缩小超大空间。我们必须删除它并重新分配。这在生产环境中效果不佳。
正如其他人所建议的,避免使用 NAS。您不妨将数据文件放在 USB 外部硬盘上。