驱动器与安装点?


12

以前的高级DBA在整个公司的每个SQL Server中为我们所有驱动器设置了安装点。新的高级DBA 感到震惊,因为他们想更改我们的标准(主要是我认为,因为他没有使用这些标准的经验)。

基于大量Internet搜索的结果,我找不到任何不使用装载点的原因(SQL Server 2000之后)。

有人知道Windows OS与此主题有关的限制吗?

  • 我最近听到很多关于“操作系统无法识别挂载点”的说法。(不正确,基于我对我们使用的Windows Server版本的研究)。

是否有任何基于证据或经验的原因不将装载点用于SQL Server?

  • 假设用完驱动器号对我们来说不是问题。

据我了解,挂载点对于隔离工作负载非常有用。

任何人都可以确认或驳斥我的理解,即挂载点实际上比每个数据文件,日志文件和tempdb一个驱动器更有效地隔离/隔离不同类型的数据和日志文件(系统数据库文件,用户数据库文件,tempDB)的工作负载?


当使用SAN时,物理存储在很大程度上是抽象的。无论使用驱动器号还是挂载点,您都需要与存储管理员合作,以提供具有所需特征的LUN。尽管您可以安装供应商工具以提供可见性,但SQL Server和OS都不了解基础配置。
丹·古兹曼

Answers:


13

这取决于安装点另一端的内容。如果所有的LUN都分布在相同的物理驱动器上,则不会有任何收益。如果LUN遍布共享的慢速iSCSI通道,则可能没有收益。如果LUN都在1个控制器下...您会看到有多少个变量在起作用。没有答案。

要确定安装点的配置,请参阅Boe Prox 使用PowerShell定位安装点


SQL Server的安装点没有问题。这些是在操作系统级别定义的,SQL Server“不知道1 ”与它们似乎安装在其中的驱动器不同。

但是,某些监控工具可能会根据最后一句话为您提供不良信息。

例如,如果您有三个安装点,例如

  1. C:\SQLData\SQL_Data 您所有.MDB文件的存储位置
  2. C:\SQLData\SQL_Logs 您所有.LDF文件的存储位置
  3. C:\SQLData\SQL_Backups 所有.BAK和.TRN备份文件都存储在哪里

这样,SQL Server将可以正常工作。但是,如果您运行某种工具在磁盘空间不足时向您发出警告,则它可能会检查C:而不是其下面的已安装卷,因此您可能不知道这些安装点何时磁盘空间不足。另外,各种“最佳实践”查询都将引发错误警告,告诉您不应将数据,日志和备份全部存储在同一磁盘上,因为SQL Server认为它们在同一磁盘上。这些是错误的标志,可以忽略。

但是,您基本上希望在服务器监视中设置一些其他步骤,以确保C:驱动器具有足够的空间,并且每个安装点也具有足够的空间

我在SQL Server中使用挂载点的时间,这是我遇到的唯一问题:SQL Server系统运行状况报告,其中提供有关可用空间的虚假数据,而虚假错误则表明您不应该拥有所有数据在同一驱动器上。由于您知道这些是错误的错误,因此很容易忽略它们。


1 SQL Server的数据使其知道挂载点,但是从实际使用的角度来看,行为没有差异。它“工作正常”,并相信操作系统可以处理这些细节。就像它信任操作系统一样,它可以处理作为本地驱动器连接的iSCSI LUN的细节。


2
不确定是否在驱动器根目录上的安装点周围仍然存在有关SQL安装和ACL的问题,但为防万一,可能值得将它们放置在安装点文件夹中。例如:C:\ SQLMountPoints \ SQL_Data,C:\ SQLMountPoints \ SQL_Log
Nic

真正。曾经有一次我这样做,我有一个“ SQLDATA”文件夹,然后有“ data”,“ Log”和“ backup”挂载点。或类似的东西。
CaM

8

除了CM_Dayton的答案和Sean Gallardy的答案之外,Mount Points尚未发现的一个问题与安全性有关。引用在挂载点文件夹上设置SQL权限的准则

尽管挂载点根文件夹看起来像常规文件夹,并且以与访问文件夹相同的方式进行访问,但它们不是常规文件夹。因此,在安装点根文件夹上设置权限时,权限不会像常规文件夹一样从“父卷”继承。实际上,它们根本不是继承的。这是因为尽管挂载的卷看起来是“父卷”的子卷,但事实并非如此。您只需通过“父卷”中的路径访问已安装的卷。

简而言之,如果要利用安装点根文件夹,则必须以不同的方式分配对“安装文件夹”的权限。您不必像对普通文件夹那样分配权限,而必须对卷分配权限。同样,在同一篇文章中(重点是微软的文章):

陷阱

不幸的是,仍然可以通过Windows资源管理器设置/查看安装点根文件夹的权限,这可能会导致意外结果,因为安装点根文件夹的权限似乎有效并且您可以看到“正确的”继承权限,但是这些不是应用于已安装卷的权限。

指导方针

  1. 建议不要将任何文件直接放置在安装点根文件夹中。这将使权限管理更加简单,因为趋势是始终检查文件夹权限,在这种情况下,这会引起误解。而是在安装点根文件夹下创建一个子文件夹,然后为该子文件夹设置适当的权限。由于子文件夹是常规文件夹,因此您观察和设置的文件夹权限确实是正在应用的权限。因此,使用前面的示例,您将要创建一个新文件夹:D:\ FolderForVol3 ** SubfolderXYZ **。现在,像平常一样,对新的SubfolderXYZ文件夹设置文件夹权限。
  2. 如果绝对必须将项目直接放置在安装点根文件夹中(不建议这样做),则需要设置卷权限,而不是文件夹权限。回想一下,这是因为安装点根文件夹权限不是实际在安装的卷上设置的权限(因为安装点根文件夹不是真实文件夹)。您可以如下设置卷权限:
  3. 如果要添加供SQL使用的新文件夹,请注意SQL访问所需的权限:

如果您不想按照MS的建议将所有内容都嵌套在Mount Point下的子文件夹中,我发现最容易分配权限的方法是通过cacls.exe实用程序。有关详细说明,请参见“ 无法在Windows Server 2003中将权限应用于NTFS文件系统卷的根目录”

我认为这尚未完全解决。最近一个具有安装点权限问题的SQL Server FCI安装问题表明,在Windows 2012和SQL Server 2016上仍然可以发生。

根据要分配的安全性,命令可能会有所不同,但是测试是成功的关键,因此,在对实时装入点运行命令之前,请先熟悉该命令,因为如果您忘记了\E标志之类的简单内容,可以迅速提高安全性。


以前的高级DBA并未意识到此安全问题(ack!),直到这篇文章我也没有意识到。我将汇总一个CMS查询以查找所有受影响的数据库文件。Cacls似乎是一条不错的路线(尽管我将寻找基于PoSh的产品)。@JohnEisbrener-锁定为独占使用时,是否在设置db文件上的ACL时遇到问题?如果是这样,下一步是什么?
SQL_Underworld

1
@SQL_Underworld,我建议您在维护时段内使用cacls进行任何操作,在此期间您可以使数据库实例脱机。虽然可能没有必要,但它将减少可能发生的变量数量。
John Eisbrener

8

基于大量Internet搜索的结果,我找不到任何不使用挂载点的原因(SQL Server 2000之后)。

主要原因是某人对他们的经历不好(或者相反,对他们没有经验),并且彻底摆脱了他们……永远。这就是所谓的个人喜好。

现在,你不能使用他们的一些原因。我能想到的第一个原因是第三方驱动程序或应用程序/工具(认为过滤器驱动程序,磁盘复制等)不支持它。一个简单的例子就是块级磁盘复制工具,它不支持NTFS以外的任何功能,它只有特定的群集大小,并且任何特定的卷都不能超过2 TB。

有人知道Windows OS与此主题有关的限制吗?

不,您可以建立许多很多挂载点。实际上,在达到Windows Server内部任何明显的限制之前,您通常会遇到设备接口问题(假设您使用的Windows Server版本不超过17年)。

•最近,我一直在听到“操作系统无法识别挂载点”的说法。(不正确,基于我对我们使用的Windows Server版本的研究)。

如果操作系统无法识别挂载点,那么它将如何让您使用挂载点?那根本没有道理。

如果操作系统无法识别挂载点,为什么还要跟踪它们并查询其元数据?另外,请注意,挂载点是操作系统可能支持或可能不支持的文件系统的构造。并非您遇到的所有文件系统都可能支持安装点,但是Windows Server中最常见的文件系统是NTFS,实际上它确实支持安装点,并且有一段时间了。

只是为了把这个不真实的东西带回家。Windows群集具有称为群集共享卷(CSV)的名称,它实际上使用卷的安装点...这是使用技术的本机项目。我必须说,无论谁告诉你,这件事都应该在问题上得到教育。

是否有任何基于证据或经验的原因不将装载点用于SQL Server?

是的,总是有一台运行Windows NT 4的服务器...不要在那里使用它。您可能还需要确保运行的是受支持的Windows Server版本并保持最新。

但是,如上所述,可能存在一些不支持或无法正常使用的第三方项目。我会说放弃那个提供商,然后找到一个新的提供商。

据我了解,挂载点对于隔离工作负载非常有用。

挂载点非常有用。有很多使用它们的方法,最常见的是绕开Windows的驱动器号限制(例如,只有这么多)。下一个最常见的用途是使用较小的可管理大小的驱动器(例如LUN,虚拟磁盘[VMDK,VHDX])来帮助摆脱庞大而很少管理的整体卷(管理10TB范围的驱动器确实是一个问题,因为单个LUN,虚拟磁盘等),尤其是在实施量少于可能使用量的旧版NTFS上。例如,在旧版Windows中,最大NTFS大小为2TB。

工作负载隔离是另一个很好的用途。可以肯定地看到,有很多用途,这取决于您的个别用例。还有一些不正确的使用方式...例如发表笼统的声明,即一切都必须是挂载点。那时,这只是疯狂的管理开销。


3

挂载点是具有共享应用程序的服务器或跨多个数据分区(不仅仅是典型DZ卷)的一种方式。

例如,您可以在e:驱动器上安装所有一个应用程序数据,日志和临时文件。E:/MP_1可以具有业务A的数据文件,E:/MP_2可以具有日志文件,E:/mp_3可以具有业务A的临时文件,依此类推。然后,在F:驱动器上的挂载点上有业务B。每个安装点都有自己的空间。

操作系统绝对没有MP的问题。群集和永远在线对MP没有问题。我在一家非常知名的银行工作,该银行的大多数SQL Server安装在MP上。一旦DBA使用了它们并理解了这些概念,它将推动它们在需要它的商店中提供更简单的解决方案。

有人提到不要在MP根目录上安装任何东西。没错 作为示例,MP根目录上没有任何内容,就像您不会在D的根目录上安装任何内容一样。

诸如Foglight,Guardiam,EMS和PBM之类的审核和监视解决方案也没有安装点问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.