首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当使用RAID10 + BBWC时,为什么将PostgreSQL数据文件与操作系统和事务日志分离比将它们保持在同一个数组中要好呢?

当使用RAID10 + BBWC时,为什么将PostgreSQL数据文件与操作系统和事务日志分离比将它们保持在同一个数组中要好呢?
EN

Server Fault用户
提问于 2012-10-01 14:32:35
回答 4查看 907关注 0票数 2

我在任何地方都看到过这样的建议(包括这里这里):将您的OS分区、DB数据文件和DB事务日志保存在不同的磁盘/数组上。一般的建议是对操作系统使用RAID1,对数据使用RAID10 (如果加载非常偏置,则使用RAID5 ),对事务日志使用RAID1。

但是,考虑到您至少需要6或8个驱动器来构建此设置,带BBWC的6-8驱动器的RAID10不更好吗?如果驱动器是SSD呢?

我说的是内部服务器驱动器,而不是SAN。

EN

回答 4

Server Fault用户

回答已采纳

发布于 2012-10-01 16:10:57

出现此建议的原因是为了避免重载一个磁盘组。考虑以下一组同时发生的事件:

  1. DB连接在大表上运行SELECT。
  2. 第二个DB连接在另一个表上运行一个大型插入或更新。
  3. 几个人一次登录到机器上(SSH)

如果您的系统运行在单个磁盘上,那么磁头现在需要在我们所在的表、SELECT所在的位置、/var所在的位置(记录登录)、预写日志的位置(记录INSERTUPDATE)、/home/bin中的各个位置之间弹跳,最终需要启动INSERTUPDATEd中的表。

所有这些磁盘头旅行都需要时间--当冲突请求的数量堆积在一起时,所需的时间变得可测量,并且可能会因为性能的影响而明显。

如果这三项中的每一项都发生在单独的磁盘组上(数据组为SELECTS,WAL组为INSERTs和UPDATE done,OS组为OS ),理论上上述三项中的每一项理论上都可以并行进行(以及在数据组方便时可以最终刷新预写日志)。

关键是,这是基于理论上数量较少的主轴-一个单一的磁盘,或一个小的RAID组2-4驱动器。

正如您和ewwhite所指出的那样,在某一点上,拥有更多的纺锤体可以缓解冲突的头部旅行请求,并且最终会使大多数工作负载的潜在性能损失黯然失色。

这里的关键是对工作负载进行基准测试(尽可能多)。

另外,正如已经指出的,SSD使主要的基本假设无效(SSD对于任何“扇区”都是固定时间访问--没有旋转或头部定位延迟),所以如果在设计中使用SSD,您应该记住这一点:您可能会看到从条带SSD中获得更多的好处,而不是通过分离它们来隔离活动,基于这样的假设,冲突的磁盘请求需要更多的时间重新定位机械磁头和平台。

票数 3
EN

Server Fault用户

发布于 2012-10-01 14:56:48

我并不想将OS与内部磁盘设置中的数据驱动器分开,因为拥有更多的纺锤体(在这种规模上)的好处大于拥有离散磁盘集的好处。

最好的方法是用你的设置和数据来测试.

记住,你在惠普控制器上。智能阵列控制器可以将一个由8个磁盘组成的集合(阵列)刻入不同RAID级别的多个逻辑驱动器中。因此,您可以将其划分为200 So的RAID 5、36 So的RAID 1+0、100 So的RAID 1+0和50 So的RAID 0,如果您愿意的话.如果可以的话,最好利用更多的磁盘。

SSD改变了一些事情。有了P410控制器,您真的不应该超过6个磁盘。高于这一水平的收益递减

票数 3
EN

Server Fault用户

发布于 2012-10-01 16:47:43

上面的答案都很好,但还有另一个原因可以将操作系统与数据和/或日志分开。这使得设置不同的反病毒策略变得更加容易。这也是数据库和web服务器保持数据与操作系统分离的安全最佳实践/要求。最后一件事是,您可以删除和重建操作系统,而不必担心数据。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/433671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档