IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

一个使用PC服务器的高可用性方案介绍

Alibaba DBA Team 2009-11-18 09:19:36 累计浏览 2,982 次
本机暂存

     以Intel Nehalem CPU的强劲性能和SSD盘的高iops为使用高性能pc服务器加SSD硬盘取代传统小型机加存储的方案成为可能。现在2颗4核的Intel Nelhalem cpu的性能已经达到或超过了一般的小型机的性能。单块SLC SSD硬盘的iops就可以达到10000以上,所以使用多块SSD硬盘的iops将超过或达到高端存储的IOPS的性能。

     然而在pc服务器中缺乏与小型机系统上相应的成熟高可用方案,让大家对如何实现使用Intel Nehalem+SSD盘取带小型机成为困难,在这里我介绍一种目前在我们的一个应用场景中使用的一个高可用方案:

     两台可插24块盘的宝德的PC服务器(Nelhalem CPU),可以混插SAS硬盘和SSD盘,我们这边大部分插了SSD盘,也插了少量SAS硬盘,混插的目的是数据库中有一些空间不是需要高IOPS的,如归档文件的空间,这样使用SAS硬盘既可以获得大空间,又可以减少成本(因为SSD盘还是比SAS硬盘贵很多),操作系统安装了Linux,数据库使用了oracle11g。

    把两台机器的硬盘通过iscsi互相输出到对端机器上,iscsi是走的专用的网卡通道,然后在oracle asm中把本机的硬盘与另一台机器通过iscsi输过来的硬盘之间做镜像。正常工作时,数据库运行在一个节点上,为描述方便,本节点称为A机器,如果A机器的硬盘出现问题了,由于与另一台机器B机器的硬盘是在ASM中的做的镜像,所以数据库仍然能正常工作。如果A机器出问题了,则通过heartbeat做切换,数据库切换到B机器上运行,当A机器修好后,使用了oracle11g的快速同步功能,重新同步把A机器硬盘与B机器上硬盘进行同步,由于使用了oracle11g的快速同步功能,不需要做全量同步,只需要做一个增量同步就可以了,也就是说即使现在的数据库有2T大小,当A机器坏后到A机器修好后,数据库只发生了100G的变化量的话,重新同步只需要同步这100G的变化量的数据。这样就大大减少了恢复时间。

    出现各种异常的解决办法:

    假设数据库运行在A机器上:

  1.  A机器的cpu、内存、主板坏,使用heartbeat做切换,数据库切换到B机器上运行。 等A机器修好了后,重新在asm中做磁盘同步就可以了。数据库不需要再切换回A机器运行。
  2.  A机器操作系统出问题,使用heartbeat做切换,数据库切换到B机器上运行。
  3.  A机器的硬盘坏,由于硬盘做了跨机器的镜像,同时Linux也支持在线换硬盘,可以在线换硬盘,换完后,再在asm中做磁盘同步。
  4. B机器坏,修好B机器后,在asm做快速增量同步。

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. 我对技术方向的一些反思 (累计阅读 11,319)
  2. MacBook Air与工作效率 (累计阅读 10,661)
  3. 架构师的思考 (累计阅读 10,524)
  4. SSD的主要缺陷及Wear Leveling技术详解 (累计阅读 10,167)
  5. 基于SSD的数据库性能优化 (累计阅读 8,843)
  6. 腾讯后台开发技术总监浅谈过载保护 小心雪崩效应 (累计阅读 7,115)
  7. mac系统更换硬盘及初始化开发环境的记录 (累计阅读 6,624)
  8. 可扩展的分布式数据库架构 (累计阅读 6,394)
  9. Ubuntu工作机使用FlashCache技术加速 (累计阅读 6,090)
  10. fatcache源码浅析 (累计阅读 6,051)