![raid 卷和分区之间有显著差异吗?](https://linux22.com/image/608321/raid%20%E5%8D%B7%E5%92%8C%E5%88%86%E5%8C%BA%E4%B9%8B%E9%97%B4%E6%9C%89%E6%98%BE%E8%91%97%E5%B7%AE%E5%BC%82%E5%90%97%EF%BC%9F.png)
我是否可以选择创建单个 raid 卷并在操作系统中对其进行分区,或者创建多个 raid 卷(每个分区一个)?
- 两者之间的性能或访问时间有何差异?
- 它们的处理方式是否不同?如果是,它们各自的优缺点是什么?
答案1
这个问题的答案完全取决于具体情况。
您需要评估您的特定环境和特定需求,以决定 RAID 卷布局和分区方案。
两种处理方式的区别在于“一个 RAID 卷还是多个 RAID 卷”。
使用一个 RAID 卷,您可以获得简单性 - 您正在划分一个大块空间。
这种简单性是以牺牲性能为代价的:您的所有请求都击中一个 RAID 卷,因此随着您扩展并添加更多请求,您将更接近饱和该卷中的可用带宽。
请求之间没有区别,因此如果您的机器交换频繁和同时尝试从数据库读取数据时,这两个任务将尝试访问同一个磁盘带宽池,并可能导致资源争用,最终降低性能。
多个 RAID 卷允许您将“请求类型”拆分到不同的磁盘组,甚至不同的 RAID 控制器,以最大化可用带宽。
使用我们上面的“交换与数据库”之争,如果交换空间和数据库位于不同的 RAID 卷上,它们就不会互相干扰:交换请求击中交换卷的磁盘,而数据库请求击中数据库卷的磁盘。这消除了资源争用,并实现了更好的性能。
性能也有代价——您失去了“一大块空间”设计的简单性,并且必须更仔细地考虑将磁盘分配给 RAID 卷,以确保不会耗尽空间。您可能还需要购买更多磁盘才能正确构建此类环境。
以下三个例子可能具有说明性:
基本“前端”服务器
对于简单的“前端”服务器(仅运行网站并将其所有请求发送到后端系统/数据库),由操作系统分区的单个 RAID 通常是有意义的。
您不会在此盒子上存储数据,并且读/写性能通常并不重要,因为磁盘 I/O 量很低并且您的应用程序代码通常适合 RAM/缓存 - 您想要的只是系统在丢失磁盘时继续工作。
文件服务器(“文件转储”)
文件服务器(或“文件转储”)通常可以分为两个 RAID 卷:
- 操作系统
- 文件存储
在这种情况下,“操作系统内容”将按照与上述相同的方式细分,但“文件存储” RAID 卷可能是一个大分区或多个分区。
这样做的原因之一可能是提供不同的 RAID 级别(RAID 1 用于操作系统内容,RAID 0 用于数据(如果您不关心冗余而只需要空间),可能跨越不同类别的驱动器(快速文件存储,较慢/较便宜的操作系统磁盘)。
数据库服务器
数据库服务器与“前端”服务器完全相反。
通常,您会将它们分成多个 RAID 卷,用于:
- 静态操作系统文件,以及可能的操作系统日志文件
- 交换空间,尽管你希望永远不会使用它
- 数据库表空间
- 如果数据量很大,可能需要多个表空间
- 数据库事务日志空间
- 数据库备份(转储)
其中第一个可能会由操作系统进一步细分,但其余部分通常是位于离散专用 RAID 阵列之上的分区。
这里,RAID 卷布局(和分区)实际上是由数据库性能因素决定的,您通常会遵循数据库供应商(或 DBA)的建议,这些建议将重点放在多个主轴(有时在多个控制器上)以最大化磁盘吞吐量。