当我们为我们的 MSSQL 盒设置 FC LUN 时,我们很少需要向它们提供超过 8 种不同类型的 LUN(Quorum、MSDTC、TempDB、数据、日志、备份和其他一些)。
我们有一位新的 Oracle DBA,他给了我一份他想要用于他的第一台新服务器的 LUN 列表 - 一共有 38 个!这是用于一个非常基本的 DB 盒,只有一个 DB。它们都是相当小的(100GB)LUN,并且它们显然以 LVM 类型的方式使用 ASM 连接在一起。
这是最好的方法吗?我确实不是 Oracle 专家,但对我来说这似乎过于复杂,您对此事有什么想法和经验?
答案1
我是一名 Oracle DBA。您的新 DBA 的行为与许多 Oracle DBA 一样,而且工程设计过度。
不,Oracle 不需要 38 个 LUN。我已将数据文件分散到大量 LUN 上,但这些 LUN 位于非常活跃且非常大的系统上。LUN 不一定映射到新的 RAID 组,对吗?因此,将文件放在单独的 LUN 上不一定会分散任何东西(我不是这方面的专家)。
这种文件条带化只会让 DBA 的工作量大大增加。这增加了他对团队的重要性。许多 Oracle DBA 试图让自己显得更重要,并一直过度设计事物。
将数据分离到不同的 RAID 组/LUN 并不是 Oracle 特有的。它基于使用情况。为了正确分布文件,您的 DBA 需要了解应用程序,以了解哪些内容被大量访问(顺便说一句,将索引与数据分离并不能提高性能,因为访问是串行的……)。他了解应用程序吗?他是否查看过数据库以了解哪些对象被大量访问?哪些内容需要分散?哪些内容是批量写入和读取的,需要隔离。
这听起来像是一个小型/中型数据库。活跃程度如何?他可能不知道。
通常在较小的数据库上,您不需要在文件系统级别做太多工作来提高性能。95%是 SQL,开发人员是否在循环中运行了太多的 SQL 语句。
编辑(多年后!):
我花了一些时间与 SAN 工程师交流,自发布此文以来,我对 SAN 和 LUN 的了解有所提高。首先,LUN 是“逻辑的”。它不一定映射到单独的 RAID 组、磁盘等... 这是由 SAN 工程师设置的,DBA 看不到。在 SAN 中分离 IO 还有很多事情要做,大多数人都不知道。
我正在开发一个活动水平非常高的大型系统。我们有数百个 LUN、RAID 组等……我们将文件分散到各处。我们与 SAN 工程师合作配置 LUN,以确保它们分散到 SAN 的不同部分。我们真的无法从操作系统级别了解 LUN 是如何映射的。新文件系统并不意味着我们将数据映射到 SAN 上的新位置。
至于 HP 关于条带化 ASM 的论文。在使用 SAN 时,这完全没有意义。条带化、镜像、RAID 等都是在表面下完成的。您不会在应用程序或数据库级别看到它。在 SAN 中配置 Oracle ASM 进行“条带化”也是毫无意义的,因为您只会跨可能使用 RAID 5 配置的逻辑卷进行条带化(绝大多数是由于控制成本。SAN 是数百万美元的投资)。您只会看到文件系统。它们不一定映射到 SAN 中的不同磁盘或不同位置。
IBM 显然有一项新功能,可以让 SAN 根据活动决定将数据写入磁盘的位置。我的观点是,优化 SAN 的人都是专家。你需要与他们合作。DBA 或应用程序开发人员无法看到是否有任何内容被分散。
据我所知,大多数商店都没有很好的 SAN 工程师。这往往是初级人员的工作。大多数优秀的 SAN 工程师往往是顾问。因此,很多时候您只是使用制造商的默认设置。重申一下,添加更多 LUN 可能不会分散任何数据,除非您有 SAN 工程师在幕后为您配置。最重要的是,您可以拥有 1 个 LUN 并让它为您分散。除非您有一位优秀的 SAN 工程师,否则所有这些都毫无意义。对我来说,很明显,有问题的 DBA 对 SAN 的了解还不够多,甚至不知道他什么都不知道。
99.9% 的时间里,标准配置都很好。除非您有特定的 IO 瓶颈,否则这是不必要的。如果有,那么您需要与 SA 和 SAN 工程师合作来确定问题所在。很多时候,这与 SAN 的布局无关。同样,DBA 和开发人员无法查看底层发生了什么,更不用说弄清楚这一点的知识了。SAN 非常复杂。
答案2
你可以试着用这,描述了 SAME(条纹和镜像一切)方法,非常简单。
答案3
我没有直接的答案,因为我们使用 MSSQL 和 mySQL。但每当我的 DBA 要求一些听起来很疯狂的东西时……就像那样。我要求他记录每个部分为什么是必需的。这有两个目的,一是很多时候他们会突然改变主意,做出更合理的事情,二是让我了解他们的思维过程,这样我就可以将一些系统逻辑应用到他们想要的东西上,并提出一个不那么不合时宜的替代方案。所以在这种情况下,我会要求提供一份文件,证明 38 个 LUN 中的每一个的必要性
答案4
我知道,对于 AIX 上的 DB2,我们的 DBA 每个数据库有 5 个卷 - 每个卷用于数据库的不同部分。一个用于数据库,一个用于主日志,一个用于存档日志,一个临时文件,还有一些其他文件。这些都是卷,它们不一定是 LUN,这取决于您喜欢如何管理存储。