ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DB2 最佳实践: DB2 数据库和 IBM General Parallel File System

DB2 最佳实践: DB2 数据库和 IBM General Parallel File System

原创 Linux操作系统 作者:ArtCode 时间:2010-06-23 15:32:45 0 删除 编辑

转自http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1006db2gpfs/index.html

简介

IBM General Parallel File System™ (GPFS™) 文件系统是高性能的共享磁盘文件管理解决方案,它支持从两台计算机直到数百个系统快速可靠地访问相同的文件数据集。GPFS 文件系统与环境集成,它把各种服务器和存储组件连接起来,提供企业文件数据的统一视图。

结合使用 GPFS 文件系统和 DB2 for Linux, UNIX, and Windows 数据库可以为高性能数据库系统提供一个强大的平台。为 DB2 部署使用 GPFS 有以下好处:

  • 增强可用性 – 可以使用 GPFS 的高级复制功能对单一站点或多个位置的数据进行镜像。可以通过配置文件系统在发生磁盘或服务器故障时自动地保障可用性。
  • 通过动态基础设施提供灵活性 – 把 DB2 数据库部署在 GPFS 上,就能够轻松地把 DB2 数据部署到不同的机器上,而不需要跨存储设备转移数据或修改现有的文件系统。不需要为了访问数据把数据复制到另一台机器上,只需把这台机器添加到 GPFS 集群中,就可以挂装数据并从新机器访问数据,不需要转移任何数据。
  • 连续的高性能 – GPFS 允许通过自动的数据重新平衡来扩展存储,这对于应用程序是透明的。GPFS 还提供与 JFS2 等文件系统相当的性能。
  • 提高操作效率 – GPFS 能够简化存储管理,这有助于降低总拥有成本。前沿的文件系统技术(比如集成的基于策略的存储管理)有助于自动化执行许多存储管理任务。

IBM 已经使用 GPFS 文件系统优化了 DB2 9.7 ,开发了一套在 GPFS 上部署 DB2 时可以应用的最佳实践。这些最佳实践有助于让在 GPFS 上运行的 DB2 数据库实现最好的效果。

本文档讨论结合使用 GPFS 和 DB2 的好处,包括在 GPFS 上部署 DB2 数据库的最佳实践。

本文档的目标读者是负责部署 DB2 和 DB2 所在的系统的 IT 人员。本文档假设读者具备中等程度的 DB2 和 UNIX 系统管理知识。

本文档中的示例基于安装在 AIX® 6.1TL3 SP2 上的 DB2 9.7 和 GPFS 3.2.1.11 ,但是也适用于更高版本和其他受支持的平台。关于受支持的 DB2/GPFS 配置,请参见以下站点:

在以下站点上可以找到关于 DB2 和 GPFS 软件的更多信息:


为什么要使用  GPFS ?

GPFS 交付可靠、卓越的性能

为数据库选择的文件系统必须具有非常出色的性能特征和可靠性。GPFS 文件系统的性能与本地文件系统相近,但是具备集群文件系统的灵活性和可伸缩性。IBM 通过测试证明了 GPFS 上的 DB2 的性能特征与本地文件系统相当。除了高性能之外,在使用 GPFS 时可以动态地添加主机和存储,这样就可以满足不断增长的处理需求。

GPFS 有助于降低总拥有成本

GPFS 文件系统易于部署和管理,可以提高硬件利用率,可以让数据工作流更顺畅,这些都可以提高操作效率。GPFS 提供标准的文件系统接口,环境中许多不同的应用程序都可以使用这个接口。大文件系统支持、存储池和自动的文件管理让用户可以更好地利用现有硬件。滚动式更新以及对混合硬件和操作系统的支持让用户可以快速地集成新的服务器和存储硬件,满足不断变化的需求和预算。

GPFS 存储基础设施有助于减少数据复制操作和数据处理时间,因为可以从多台机器直接访问数据,这可以降低存储成本和管理存储空间所需的工作量。

GPFS 提供前沿技术

GPFS 提供一个全局名称空间,这意味着可以从多台机器同时访问数据,同时仍然保证数据完整性。这允许从环境中的任何机器灵活地访问数据,就像数据在本地一样。GPFS 提供比其他文件系统更前沿的技术,让用户能够更好地满足企业的需求。这些特性包括:

  • 高性能的文件系统:
    • 直接 I/O – 直接输入 / 输出让 DB2 可以使用自己的内部缓冲区,绕过文件系统内的缓冲区。DB2 数据库以这种模式使用 GPFS 就可以避免双重缓冲,这会显著提高性能。
    • 宽条带 – GPFS 把所有数据分成条带并行写入到存储池中的所有磁盘上。这可以优化单一池的性能。
    • 处理工作流优化 – 数据库存储可以与应用程序数据共享相同的名称空间。当由多台机器负责不同的数据处理步骤时,这可以大大提高工作流的效率。所有主机都可以看到所有数据,所以在每个处理步骤之间不需要复制数据。
  • 基于策略的存储
    • 存储池 – 可以通过创建多个存储池在单一文件系统中提供多种性能或可靠性水平。
    • 逻辑管理容器 – 可以通过创建文件集把文件系统名称空间划分为逻辑容器,这可以简化管理。
    • 基于规则的文件管理 – 可以使用基于规则的策略根据文件属性自动地确定文件的初始位置,透明地处理文件迁移。

GPFS 提供高级的高可用性特性

在当今竞争极其激烈的环境中,数据是关键的资产,必须确保连续的数据可用性。GPFS 提供的许多特性有助于实现可用性目标:

  • 数据一致性
    • 磁盘租赁协议 – 只有活跃的主机可以获取磁盘租约来读写磁盘。如果这个主机发生故障,集群中的另一个主机等待授予的磁盘租约过期,然后对受影响的主机执行恢复。这个协议防止发生故障的主机修改数据,可以保证数据完整性,同时仍然提供非常快的故障恢复。
    • 分布式锁管理 – 不需要为从多个节点同时访问文件操心;GPFS 有可靠的分布式锁管理解决方案,能够处理对单一文件系统或文件的数千个并发访问。
  • 快照和数据复制
    • 文件系统快照 – 可以通过快照建立 GPFS 文件系统的特定时间点拷贝。可以非常快地部署数据的特定时间点拷贝,而使用的磁盘空间很少。
    • 数据复制 – 在 GPFS 中,数据复制是基于软件的,可以跨站点内的多个存储阵列或跨 WAN 执行同步镜像。数据复制提供额外的冗余,可以满足任务关键数据的可用性需求。
    • 备份和灾难恢复 – 可以使用快照、复制和与 IBM Tivoli® Storage Manager 的集成实现备份和灾难恢复。Tivoli Storage Manager 可以对 GPFS 文件系统进行集成的备份,从而进一步增强数据保护策略。
  • 高可用性设计
    • 快速的故障转移 – GPFS 支持 SCSI-3 Persistent Reserve ,这可以减少在发生主机故障时恢复数据操作所需的时间。在发生主机故障时,一旦检测到故障,未发生故障的主机会停止故障主机的写能力。通过立即“驱逐”故障主机,可以更快地在剩余的主机上继续执行正常处理。
    • 集成的集群管理 – 集群管理特性与 GPFS 软件集成。不需要用单独的集群软件管理集群中的主机。
    • 集群 quorum – 在 GPFS 中,大多数节点集和 tie-breaker 磁盘的 quorum 选项都是可用的。Quorum 以可靠的方法决定主机什么时候可以读或写文件系统,从而确保数据一致性。

DB2 和 GPFS 的使用模型

GPFS 可以在多个方面增强 DB2 数据库环境。下面讨论其中一部分。

动态系统增长

假设您最初只部署单主机 DB2 。您很快意识到需要更多处理能力来支持应用程序,必须购买新的服务器。通过使用 GPFS ,可以在不停止数据库的情况下把文件系统扩展到新机器。然后可以在新机器上配置 DB2 实例,让它使用 GPFS 上存储的数据库,停止老机器上的 DB2 实例,然后启动新机器上的 DB2 实例。最后,可以让 DB2 客户机访问新机器,或者使用自动的客户机重路由技术。

处理工作流优化

组织依靠数据分析来保持竞争优势。组织希望减少处理数据和提供关键统计信息所花费的时间。

假设您有一个交易处理系统,它收集客户的交易数据,由另一个环境执行提取、转换和装载 (ETL) 处理。当 ETL 处理完成时,把数据装载到 DB2 数据仓库中。通过结合使用 GPFS 和 DB2 可以把处理过程连接在一起,不需要在系统之间复制数据。


部署  GPFS 的最佳实践

这些基本建议基于在 GPFS 文件系统上对 DB2 数据库做的大量测试。这些提示有助于在功能和性能方面实现最好的效果。

GPFS 集群设计

利用 quorum 设计 – 对于最多 8 个节点的集群,把所有节点定义为 quorum 节点并使用 tiebreaker 磁盘。对于超过 8 个节点的集群,使用 quorum 节点(没有 tiebreaker 磁盘)。

确保通信带宽足以支持多站点操作 – 可以在单一站点内或跨多个位置部署集群。如果需要跨站点复制数据,站点之间的通信带宽和延迟必须能够满足应用程序的响应需求。

存储配置

带 tiebreaker 磁盘的 quorum – 在定义 tiebreaker 磁盘时,可以使用文件系统中的任何网络共享磁盘 (NSD) 。

存储 RAID 级别 – 通常根据容量和可用性选择 RAID 级别。在部署 DB2 数据库时,通常使用 Raid 5 和 Raid 1+0 。

选择支持 SCSI-3 PR 的存储 - 为了优化故障转移性能,应该使用支持 SCSI-3 协议 Persistent Reserve 特性的存储服务器。在发生节点故障时,GPFS 使用 Persistent Reserve 提供快速的集群故障转移。在 GPFS 中,使用带 usePersistentReserve=yes 选项的 mmchconfig 命令启用这个特性。

配置 GPFS 文件系统

在主要关注性能和可靠性的环境中,使用两个 GPFS 文件系统 – 创建两个 GPFS 文件系统,一个用于数据库数据,另一个用于数据库日志,这是因为数据和日志的访问模式很不一样。

在主要关注管理的简便性的环境中,使用一个 GPFS 文件系统 – 使用一个 GPFS 文件系统可以最小化管理费用。单一文件系统与 DB2 自动存储的组合让用户可以动态地添加存储容量,甚至是添加主机,而不需要创建另一个文件系统。

使用 1 MB 的块大小 - 让 GPFS 文件系统使用 1 MB 的块大小。更大的块可以提高使用页面池的效率。

GPFS 调优参数

使用直接 I/O (DIO) - DB2 9.7 可以直接使用 GPFS 中的直接 I/O 。从 9.7 版开始,所有 DB2 文件(包括活跃的日志文件)都用 DIO 打开。这可以加快磁盘访问,避免在 DB2 和文件系统缓存中双重缓冲数据。在这种模式下,DB2 选择需要访问的文件和应该放在缓存中的数据。与以 DIO 模式挂装整个文件系统相比,允许 DB2 使用 DIO 打开文件更合适。

启用更高的并发度 – 建议把 GPFS 的 worker1Threads 参数值从默认的 40 提高到 256 。这个参数控制 GPFS 文件系统上并发文件操作的最大数量。prefetchThreads 参数值和 worker1Threads 参数值的和必须小于 550 。

增加文件系统缓存 - GPFS 页面池用于缓存用户数据、文件系统元数据和其他内部数据。建议增加页面池大小,把 pagepool 参数值从默认的 64 MB 提高到至少 256 MB 。页面池固定在内存中,所以要确保系统上有足够的空闲内存,否则这一修改会导致系统分页,会对总体性能产生负面影响。

修改 GPFS 配置参数

使用 mmchconfig 命令修改这些 GPFS 配置参数。例如,要想通过设置 pagepool 参数把页面池大小改为 256 MB ,应该执行以下命令:

 mmchconfig pagepool=256m 
 

可以使用 mmlsconfig 命令查看当前值。mmlsconfig 的输出只显示设置为非默认值的参数。

要想让这些修改生效,必须先卸载 GPFS 文件系统,然后重新启动 GPFS 守护进程。


配置示例

下面是一组命令示例,演示如何按照本文档中描述的最佳实践部署 GPFS 。这里给出的所有 GPFS 命令都在 /user/lpp/mmfs/bin 目录中。

1. 在机器 db2server 上创建 GPFS 集群。

 mmcrcluster – A – N db2server:manager-quorum – p db2server 
 

2. 启动 GPFS 集群:

 mmstartup – a 
  

3. 创建一个名为 nsd_mappng 的文件,它包含用来创建 GPFS 文件系统的磁盘列表 (LUNS) 。下面的示例使用 6 个磁盘分区。分隔空列的冒号表示使用的默认值。(关于文件格式的更多信息,参见 GPFS 文档中对 mmcrnsd 命令的说明。)由用户选择网络共享磁盘 (NSD) 名称。

 /dev/hdisk1:::::Data1: 
 /dev/hdisk2:::::Data2: 
 /dev/hdisk3:::::Data3: 
 /dev/hdisk4:::::Data4: 
 /dev/hdisk10:::::DBLog1: 
 /dev/hdisk11:::::DBLog2: 
  

4. 使用刚才创建的 nsd_mapping 文件创建 GPFS 网络共享磁盘:

 mmcrnsd – F nsd_mapping 
  

5. 停止 GPFS 集群并指定 tiebreaker 磁盘:

 mmshutdown – a 
 mmchconfig tiebreaker=”Data1;Data2;Data3”
  

6. 根据 DB2 on GPFS 最佳实践设置 GPFS 配置参数:

 mmchconfig worker1Threads=256 
 mmchconfig pagepool=256M 
 mmchconfig usePersistentReserve=yes 
  

7. 启动 GPFS 集群:

mmstartup -a 

8. 为数据和日志各创建一个 GPFS 文件系统,使用 1 MB 的块大小:

 mmcrfs – T /db2data db2data Data1,Data2,Data3,Data4 – B 1M 
 mmcrfs – T /db2log db2log DBLog1,DBLog2 – B 1M 
  

确认挂装点 /db2data 和 /db2log 已经创建了。

9. 挂装 GPFS 文件系统:

 mmmount db2data -a mmmount db2log -a 
  


结束语

灵活的存储管理是下一代动态数据中心的关键。下一代动态数据中心通过优化硬件利用率和降低管理成本提供经济有效性,可以在需要时把数据处理和存储基础设施部署到需要的地方。通过结合使用 GPFS 的高级存储管理和 DB2 for Linux, UNIX, and Windows 的水平伸缩架构,可以实现非常适合下一代动态数据中心的优秀解决方案。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15082138/viewspace-665982/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-05

  • 博文量
    269
  • 访问量
    609668