概述
ONTAP存储解决方案与Microsoft SQL Server相结合、可以实现企业级数据库存储设计、从而满足当今最苛刻的应用程序要求。
要优化基于ONTAP的SQL Server解决方案、需要了解SQL Server I/O模式和特征。为SQL Server数据库精心设计的存储布局必须支持SQL Server的性能要求、同时还必须在整体上最大限度地提高基础架构的可管理性。良好的存储布局还可以成功完成初始部署、并随着业务的增长逐步平稳地扩展环境。
数据存储设计
对于不使用SnapCenter 执行备份的SQL Server数据库、Microsoft建议将数据和日志文件放置在不同的驱动器上。对于同时更新和请求数据的应用程序、日志文件会占用大量写入资源、而数据文件(取决于您的应用程序)会占用大量读/写资源。对于数据检索、不需要日志文件。因此、可以通过放置在其自己驱动器上的数据文件来满足数据请求。
创建新数据库时、Microsoft建议为数据和日志指定单独的驱动器。要在创建数据库后移动文件、必须使数据库脱机。有关Microsoft的更多建议、请参见 "将数据和日志文件放在不同的驱动器上"。
聚合
聚合是NetApp存储配置的最低级别存储容器。互联网上存在一些旧文档、建议将IO分隔到不同的底层驱动器组上。不建议在ONTAP中使用此选项。NetApp已使用数据文件和事务日志文件分开的共享和专用聚合执行了各种I/O工作负载特征化测试。测试表明、一个具有更多RAID组和驱动器的大型聚合可以优化和提高存储性能、并使管理员更易于管理、原因有两个:
-
一个大型聚合可使所有驱动器的I/O功能对所有文件可用。
-
一个大型聚合可以最高效地利用磁盘空间。
对于高可用性(HA)、请将SQL Server Always On可用性组二级同步副本放在聚合中的一个单独Storage Virtual Machine (SVM)上。为了实现灾难恢复、请将异步副本放置在灾难恢复站点中单独存储集群中的聚合上、并使用NetApp SnapMirror技术复制内容。NetApp建议在聚合中至少留出10%的可用空间、以获得最佳存储性能。
Volumes
卷会创建并驻留在聚合中。此术语有时会引起混淆、因为ONTAP卷不是LUN。ONTAP卷是数据的管理容器。卷可以包含文件、LUN甚至S3对象。卷不会占用空间、它仅用于管理包含的数据。
卷设计注意事项
在创建数据库卷设计之前、请务必了解SQL Server I/O模式和特征如何根据工作负载以及备份和恢复要求而有所不同。请参见以下适用于灵活卷的NetApp建议:
-
避免在主机之间共享卷。例如、虽然可以在一个卷中创建2个LUN并将每个LUN共享到不同的主机、但应避免这种情况、因为它会使管理复杂化。
-
使用NTFS挂载点而不是驱动器盘符、以超过Windows中26个驱动器盘符的限制。使用卷挂载点时、一般建议为卷标签指定与挂载点相同的名称。
-
适当时、配置卷自动调整策略以帮助防止出现空间不足情况。17采用ONTAP的Microsoft SQL Server最佳实践指南©2022 NetApp、Inc. 保留所有权利。
-
如果在SMB共享上安装SQL Server、请确保在SMB卷上启用Unicode以创建文件夹。
-
将卷中的Snapshot预留值设置为零、以便于从操作角度进行监控。
-
禁用快照计划和保留策略。请改用SnapCenter来协调SQL Server数据卷的Snapshot副本。
-
将SQL Server系统数据库放在一个专用卷上。
-
tempdb是一个系统数据库、SQL Server会使用它作为临时工作空间、尤其是用于I/O密集型DBCC CHECKDB操作。因此、请将此数据库放在具有一组单独磁盘轴的专用卷上。在卷数量是一项挑战的大型环境中、您可以在仔细规划后将tempdb整合到较少的卷中、并将其与其他系统数据库存储在同一个卷中。tempdb的数据保护不是高优先级、因为每次重新启动SQL Server时都会重新创建此数据库。
-
将用户数据文件(
.mdf
()放在不同的卷上,因为它们是随机读/写工作负载。通常、创建事务日志备份的频率比创建数据库备份的频率更高。因此,请将事务日志文件(.ldf
()放在与数据文件不同的卷或VMDK上,以便可以为每个卷或VMDK创建独立的备份计划。这种分离还会将日志文件的顺序写入I/O与数据文件的随机读/写I/O隔离开来、并显著提高SQL Server性能。
LUN
-
确保用户数据库文件和用于存储日志备份的日志目录位于不同的卷上、以防止保留策略在SnapVault技术中使用快照时覆盖这些快照。
-
不要在同一LUN上混合使用数据库文件和非数据库文件、例如与全文搜索相关的文件。
-
将数据库二级文件(作为文件组的一部分)放在不同的卷上可提高SQL Server数据库的性能。只有当数据库的文件不与任何其他文件共享其LUN
.mdf`时、此隔离才有效 `.mdf`
。 -
如果使用DiskManager或其他工具创建LUN、请确保在格式化LUN时将分区的分配单元大小设置为64K。
-
请参见 "Microsoft Windows和本机MPIO、并遵循适用于现代SAN的ONTAP最佳实践" 在MPIO属性中将Windows上的多路径支持应用于iSCSI设备。