CN102566940A | 2012-07-11 | |||
JP2007164240A | 2007-06-28 |
MA, NA ET AL.: "Research of disk array storage systems performance testing software", COMPUTER ENGINEERING AND APPLICATIONS, vol. 46, no. 36, 31 December 2010 (2010-12-31), pages 74
LIU, RANGGUO ET AL.: "Research and Application of High Availability Based on Mass Spatial Database", COMPUTER ENGINEERING, vol. 34, no. 6, 31 March 2008 (2008-03-31), pages 263 - 265
MA, NI ET AL.: "Optimization Practice of ArcSDE for Oracle", BULLETIN OF SURVEYING AND MAPPING, vol. 10, 31 December 2007 (2007-12-31), pages 50 - 53
JI, YU ET AL.: "Optimization Practice for Terrain Data Storage in Oracle", GEOSPATIAL INFORMATION, vol. 9, no. 1, 28 February 2011 (2011-02-28), pages 50 - 52
权 利 要 求 1、 一种 I/O平衡处理方法, 其特征在于, 包括: 对磁盘上的 N个逻辑单元 LU 进行划分处理,将 m个 LU 设置为数据磁盘, 将 N-m个 LU 设置为预留磁盘, 其中, N和 m均为整数, 且均大于等于 1 ; 接收存储请求消息, 所述存储请求消息包括: 数据表、 所述数据表的预计 容量、所述数据表对应的数据块的大小以及存储所述数据表的磁盘标识;其中, 所述数据表包括至少一个数据文件; 根据所述数据表的预计容量、所述数据表对应的数据块的大小以及所述磁 盘标识对应的磁盘的总数量, 获取数据库信息, 所述数据库信息包括: 所述数 据表在每个所述磁盘标识对应的磁盘中的预计容量、每个所述磁盘标识对应的 磁盘中数据文件的个数以及所述数据文件的大小 根据所述存储请求消息和所述数据库信息, 生成第一 shell脚本, 并根据所 述第一 shell脚本, 创建数据库。 2、 根据权利要求 1所述的 I/O平衡处理方法, 其特征在于, 所述根据所述 数据表的预计容量、数据表对应的数据块的大小以及所述磁盘标识对应的磁盘 的总数量, 获取数据库信息, 所述数据库信息包括: 所述数据表在每个所述磁 盘标识对应的磁盘中的预计容量、每个所述磁盘标识对应的磁盘中数据文件的 个数以及所述数据文件的大小, 包括: 根据所述数据表的预计容量和所述磁盘标识对应的磁盘的总数量,获取所 述数据表在每个所述磁盘标识对应的磁盘中的预计容量; 根据所述数据表对应的数据块的大小,查询数据块大小与单个数据文件最 大容量的映射关系, 获取所述数据块的大小对应的单个数据文件最大容量; 并 根据所述数据表的预计容量、所述磁盘标识对应的磁盘的总数量和所述单个数 据文件最大容量, 获取每个所述磁盘标识对应的磁盘中数据文件的个数; 根据所述数据表的预计容量、所述磁盘标识对应的磁盘的总数量和每个所 述磁盘标识对应的磁盘中数据文件的个数, 获取所述数据文件的大小。 3、 根据权利要求 1所述的 I/O平衡处理方法, 其特征在于, 还包括: 接收 I/O性能检测请求消息, 所述 I/O性能检测请求消息包括检测磁盘标 当所述磁盘标识为预留磁盘标识时, 釆用输入输出状态, 在设置的抽样时 刻点, 分别釆集数据磁盘中的第一 I/O信息, 并分别釆集预留磁盘中的第二 I/O 信息; 将各个所述抽样时刻的所述第一 I/O信息与所述第二 I/O信息进行识别处 理和分析处理, 获取第一检测结果。 4、 根据权利要求 3所述的 I/O平衡处理方法, 其特征在于, 所述第一 I/O信 息和所述第二 I/O信息均包括读 I/O信息和写 I/O信息, 所述读 I/O信息包括读 IOPS信息和读带宽信息; 所述写 I/O信息包括写 IOPS信息和写带宽信息。 5、 根据权利要求 4所述的 I/O平衡处理方法, 其特征在于, 还包括: 当所磁盘标识为数据磁盘标识时, 釆用公式 Rni, = ( Rni-Rna ) /Rna, 获 取每个所述数据磁盘的第一 I/O信息中的读 I/O信息 Rni, ; 釆用公式 Wni, = ( Wni-Wna ) /Wna,获取每个所述数据磁盘中的第一 I/O 信息中的写 I/O信息 Wni, ; 釆用公式 Pn=Krni* I Rni, l+Kwni* I Wni' I , 获取加权平均数 Pn; 其中, Krni=l Rni' 1 / ( 1 Rni, I + 1 Wni' I) , Kwni= I Wni' 1 / ( 1 Rni, I + 1 Wni' I) , n表示抽样时刻, i表示数据磁盘标识, Rni表示在抽样时刻 n时第 i个数据磁 盘的第一 I/O信息中的读 I/O信息, Rna表示在抽样时刻 n所有数据磁盘的第一 I/O 信息中的读 I/O信息的平均值; Wni表示在抽样时刻 n时第 i个数据磁盘的第一 I/O信息中的写 I/O信息, Wna表示在抽样时刻 n时所有数据磁盘的第一 I/O信息 中的写 I/O信息的平均值。 6、 根据权利要求 3或 5所述的 I/O平衡处理方法, 其特征在于, 还包括: 根据所述第一检测结果和 /或所述加权平均数 Pn, 调整所述存储请求消息 和数据库信息; 根据调整后的存储请求消息和数据库信息, 生成第二 shell脚本, 并根据所 述第二 shell脚本, 重新创建数据库。 7、 一种 I/O平衡处理设备, 其特征在于, 包括: 划分模块, 用于对磁盘上的 N个 LU 进行划分处理, 将 m个 LU 设置为数 据磁盘, 将 N-m个 LU 设置为预留磁盘; 接收模块, 用于接收存储请求消息, 所述存储请求消息包括: 数据表、 所 述数据表的预计容量、所述数据表对应的数据块的大小以及存储所述数据表的 磁盘标识; 其中, 所述数据表包括至少一个数据文件; I/O平衡处理模块, 用于根据所述数据表的预计容量、 数据表对应的数据 块的大小以及所述磁盘标识对应的磁盘的总数量, 获取数据库信息, 所述数据 库信息包括: 所述数据表在每个所述磁盘标识对应的磁盘中的预计容量、每个 所述磁盘标识对应的磁盘中数据文件的个数以及所述数据文件的大小; 数据库创建模块, 用于根据所述存储请求消息和所述数据库信息, 生成第 一 shell脚本, 并根据所述第一 shell脚本, 创建数据库; 其中, N和 m均为整数, 且均大于等于 1。 8、 根据权利要求 7所述的 I/O平衡处理设备, 其特征在于, I/O平衡处理模 块包括: 预计容量获取单元,用于根据所述数据表的预计容量和所述磁盘标识对应 的磁盘的总数量,获取所述数据表在每个所述磁盘标识对应的磁盘中的预计容 量; 数据文件的个数获取单元, 用于根据所述数据表对应的数据块的大小, 查 询数据块大小与单个数据文件最大容量的映射关系,获取所述数据块的大小对 应的单个数据文件最大容量; 并根据所述数据表的预计容量、所述磁盘标识对 应的磁盘的总数量和所述单个数据文件最大容量,获取每个所述磁盘标识对应 的磁盘中数据文件的个数; 数据文件的大小获取单元, 用于根据所述数据表的预计容量、所述磁盘标 识对应的磁盘的总数量和每个所述磁盘标识对应的磁盘中数据文件的个数,获 取所述数据文件的大小。 9、 根据权利要求 7所述的 I/O平衡处理设备, 其特征在于, 所述接收模块 还用于接收 I/O性能检测请求消息, 所述 I/O性能检测请求消息包括检测磁盘标 识; 则当所述磁盘标识为预留磁盘标识时, 所述设备还包括: 预留磁盘检测模 块, 包括: 釆集单元, 用于釆用输入输出状态, 在设置的抽样时刻点, 分别釆集数据 磁盘中的第一 I/O信息, 并分别釆集预留磁盘中的第二 I/O信息; 检测单元, 用于将各个所述抽样时刻的所述第一 I/O信息与所述第二 I/O信 息进行识别处理和分析处理, 获取第一检测结果; 其中, 所述第一 I/O信息和所述第二 I/O信息均包括读 I/O信息和写 I/O信息, 所述读 I/O信息包括读 IOPS信息和读带宽信息;所述写 I/O信息包括写 IOPS信息 和写带宽信息。 10、 根据权利要求 8所述的 I/O平衡处理设备, 其特征在于, 则当所述磁盘 标识为预留磁盘标识时, 所述设备还包括: 数据磁盘检测模块, 包括: 读 I/O信息获取单元, 用于釆用公式 Rni, = ( Rni-Rna ) /Rna, 获取每个 所述数据磁盘的第一读 I/O信息中的读 I/O信息 Rni, ; 写 I/O信息获取单元, 用于釆用公式 Wni, = ( Wni-Wna ) /Wna, 获取每 个所述数据磁盘中的第一写 I/O信息中的写 I/O信息 Wni, ; 加权平均¾¾获取单元, 用于釆用公 Pn=Kmi* iRni' l+Kwni* I Wni' I , 获 口权平均¾¾; 其中, Krni=l Rni, 1 / ( 1 Rni, I + 1 Wni' I) , Kwni= I Wni' 1 / ( 1 Rni, I + 1 Wni' I) , n表示抽样时刻, i表示数据磁盘标识, Rni表示在抽样时刻 n时第 i个数据磁 盘的第一 I/O信息中的读 I/O信息, Rna表示在抽样时刻 n所有数据磁盘的第一 I/O 信息中的读 I/O信息的平均值; Wni表示在抽样时刻 n时第 i个数据磁盘的第一 I/O信息中的写 I/O信息, Wna表示在抽样时刻 n时所有数据磁盘的第一 I/O信息 中的写 I/O信息的平均值。 11、 根据权利要求 9或 10所述的 I/O平衡处理设备, 其特征在于, 还包括: 调整模块, 用于根据所述第一检测结果和 /或所述加权平均数 Pn, 调整所 述存储请求消息和数据库信息; 则所述数据库创建模块还用于根据调整后的存储请求消息和数据库信息, 生成第二 shell脚本, 并根据所述第二 shell脚本, 重新创建数据库。 |
技术领域
本发明涉及计算机技术, 尤其涉及一种 I/O平衡处理方法和设备。 背景技术 事务处理性能委员会 ( Transaction Processing Performance Council; 简称: TPC ) -C测试是测试建立在关系型数据库的在线事务 理性能的基本程序。 由 于存储单元的输入输出 (Input/output; 简称: I/O )性能能够提高存储利用率, 降低总所有成本((Total cost of ownership; 简称: TCO ), 并且有效地避免数 据库的性能问题, 因此, 该存储单元的 I/O性能是 TPC-C测试中主要考虑的 因素。 目前, I/O平衡部署能够充分发挥存储单元的 I/O性能, 因此数据库厂家 和存储厂家均有针对数据库和存储的 I/O平衡部署方案, 例如: 某些厂家釆用 曱骨文 (oracle ) 数据库 (database ) 的自动存储管理 ( Automatic Storage Management; 简称: ASM ) 实现 I/O平衡部署, 具体的, 在一组独立的磁盘 上创建一个单独的磁盘组, 实现单个磁盘组的 I/O平衡。但是, 由于现有的 I/O 平衡部署方案是对数据进行完全平衡部署, 即绝对平衡部署, 因此, 占用了磁 盘的存储空间较大, 并难以分析具体的热点表和热点数据。
发明内容 本发明的第一个方面是提供一种 I/O平衡处理方法, 包括:
对磁盘上的 N个 LU 进行划分处理 , 将 m个 LU 设置为数据磁盘 , 将 N-m 个 LU 设置为预留磁盘;
接收存储请求消息, 所述存储请求消息包括: 数据表、 所述数据表的预计 容量、所述数据表对应的数据块的大小以及存 储所述数据表的磁盘标识;其中, 所述数据表包括至少一个数据文件;
根据所述数据表的预计容量、数据表对应的数 据块的大小以及所述磁盘标 识对应的磁盘的总数量, 获取数据库信息, 所述数据库信息包括: 所述数据表 在每个所述磁盘标识对应的磁盘中的预计容量 、每个所述磁盘标识对应的磁盘 中数据文件的个数以及所述数据文件的大小;
根据所述存储请求消息和所述数据库信息, 生成第一 shell脚本, 并根据所 述第一 shell脚本, 创建数据库;
其中, N和 m均为整数, 且均大于等于 1。
本发明的另一个方面是提供一种 I/O平衡处理设备, 包括:
划分模块, 用于对磁盘上的 N个 LU 进行划分处理, 将 m个 LU 设置为数 据磁盘, 将 N-m个 LU 设置为预留磁盘;
接收模块, 用于接收存储请求消息, 所述存储请求消息包括: 数据表、 所 述数据表的预计容量、所述数据表对应的数据 块的大小以及存储所述数据表的 磁盘标识; 其中, 所述数据表包括至少一个所述数据文件;
I/O平衡处理模块, 用于根据所述数据表的预计容量、 数据表对应的数据 块的大小以及所述磁盘标识对应的磁盘的总数 量, 获取数据库信息, 所述数据 库信息包括: 所述数据表在每个所述磁盘标识对应的磁盘中 的预计容量、每个 所述磁盘标识对应的磁盘中数据文件的个数以 及所述数据文件的大小;
数据库创建模块, 用于根据所述存储请求消息和所述数据库信息 , 生成第 一 shell脚本, 并根据所述第一 shell脚本, 创建数据库;
其中, N和 m均为整数, 且均大于等于 1。
本发明的技术效果是:通过对磁盘上的 N个 LU 进行划分处理,将 m个 LU 设置为数据磁盘, 将 N-m个 LU 设置为预留磁盘; 接收存储请求消息, 并根据 存储请求消息中的数据表的预计容量、数据表 对应的数据块的大小以及磁盘标 识对应的磁盘的总数量, 获取数据库信息,再根据该存储请求消息和数 据库信 息, 生成第一 shell脚本, 并根据该第一 shell脚本, 创建数据库, 由于对磁盘进 行了划分, 将容量从而实现了相对平衡部署, 占用了磁盘的存储空间较少, 进 而提高了存储利用率。
附图说明 图 1为本发明 I/O平衡处理方法的一个实施例的流程图;
图 2为关系型数据库中存储划分的示意图; 图 3为本发明 I/O平衡处理方法的另一个实施例的流程图;
图 4为本发明 I/O平衡处理设备的一个实施例结构示意图;
图 5为本发明 I/O平衡处理设备的另一个实施例的结构示意图 。
具体实施方式 图 1为本发明 I/O平衡处理方法的一个实施例的流程图, 如图 1所示, 本实 施例的方法主要应用在关系型数据库中, 则该方法包括:
步骤 101、对磁盘上的 N个 LU 进行划分处理,将 m个 LU 设置为数据磁盘, 将 N-m个 LU 设置为预留磁盘。
其中, N和 m均为整数, 且均大于等于 1。
在本实施例中,对关系型数据库中的存储对应 的硬盘进行分组,每组均有 一个冗余磁盘阵列 ( Redundant Array of Independent Disk; 简称: RAID )控制 器控制, 并将分组后的硬盘映射到主机服务器上, 再将映射到主机服务器上的 每组硬盘分别划分成至少一个逻辑单元号码( Logical Unit Number; 简称: LU ) 。
举例来说, 图 2为关系型数据库中存储划分的示意图, 如图 2所示, 将关系 型数据库中的存储对应的硬盘分成四组, 每组均有 RAID控制器控制, 并将四 组硬盘映射到主机服务器上,再将映射到主机 服务器上的每组硬盘分别划分成 四个 LUN, 则主机服务器上可以共显示 16个 LUN。 另外, 可以将 16个 LUN进 行划分处理, 例如: 将 15个 LU 设置为数据磁盘, 将剩余的 1个 LU 设置为预 留磁盘。
在本实施例中, 优选地, 数据磁盘可以存储容量较大, 且性能较高的数据 表(table ) ; 预留磁盘可以存储容量较小, 且性能要求较低的数据表。
步骤 102、 接收存储请求消息, 该存储请求消息包括: 数据表、 该数据表 的预计容量、该数据表对应的数据块的大小以 及存储该数据表的磁盘标识; 其 中, 该数据表包括至少一个数据文件。
在本实施例中,数据表包括至少一个数据文件 。数据表的预计容量是指数 据表中所记录的所有数据文件要占用的存储空 间。数据表对应的数据块的大小 是指存储该数据表中的数据文件的数据块。
步骤 103、 根据该数据表的预计容量、 数据表对应的数据块的大小以及该 磁盘标识对应的磁盘的总数量, 获取数据库信息, 该数据库信息包括: 该数据 表在每个该磁盘标识对应的磁盘中的预计容量 、每个该磁盘标识对应的磁盘中 数据文件的个数以及该数据文件的大小。
步骤 104、 根据该存储请求消息和该数据库信息, 生成第一 shell脚本, 并 根据该第一 shell脚本, 创建数据库。
在本实施例中 , 通过对磁盘上的 N个 LUN进行划分处理 , 将 m个 LU 设置 为数据磁盘, 将 N-m个 LU 设置为预留磁盘; 接收存储请求消息, 并根据存储 请求消息中的数据表的预计容量、数据表对应 的数据块的大小以及磁盘标识对 应的磁盘的总数量, 获取数据库信息, 再根据该存储请求消息和数据库信息, 生成第一 shell脚本, 并根据该第一 shell脚本, 创建数据库, 由于对磁盘进行了 划分, 将容量从而实现了相对平衡部署, 占用了磁盘的存储空间较少, 进而提 高了存储利用率。
图 3为本发明 I/O平衡处理方法的另一个实施例的流程图, 如图 3所示, 本 实施例的方法主要应用在关系型数据库中, 则该方法包括:
步骤 201、对磁盘上的 N个 LU 进行划分处理,将 m个 LU 设置为数据磁盘, 将 N-m个 LU 设置为预留磁盘。
其中, N和 m均为整数, 且均大于等于 1。
步骤 202、 接收存储请求消息, 该存储请求消息包括: 数据表、 该数据表 的预计容量、 该数据表对应的数据块(block ) 的大小以及存储该数据表的磁 盘标识; 其中, 该数据表包括至少一个数据文件。
步骤 203、 根据数据表的预计容量和磁盘标识对应的磁盘 的总数量, 获取 数据表在每个磁盘标识对应的磁盘中的预计容 量。
步骤 204、 根据该数据表对应的数据块的大小, 查询数据块大小与单个数 据文件最大容量的映射关系 ,获取该数据块的大小对应的单个数据文件最 容 量; 并根据该数据表的预计容量、该磁盘标识对应 的磁盘的总数量和该单个数 据文件最大容量, 获取每个该磁盘标识对应的磁盘中数据文件的 个数。
步骤 205、 根据该数据表的预计容量、 该磁盘标识对应的磁盘的总数量和 每个该磁盘标识对应的磁盘中数据文件的个数 , 获取该数据文件的大小。
步骤 206、 根据该存储请求消息和该数据库信息, 生成第一壳 (shell )脚 本, 并根据该第一 shell脚本, 创建数据库; 其中, 该数据库信息包括: 该数据 表在每个该磁盘标识对应的磁盘中的预计容量 、每个该磁盘标识对应的磁盘中 数据文件的个数以及该数据文件的大小。
在本实施例中, 举例来说, 以 N为 20 , m为 19为例, 详细介绍本实施例的 技术方案。 具体的, 接收存储请求消息, 该存储请求消息包括四个数据表, 分 别为数据表 1、 数据表 2、 数据表 3和数据表 4 , 其中, 数据表 1的预计容量为 524288M,该数据表 1对应的数据块的大小为 2K,存储该数据表 1的磁盘标识为 数据磁盘标识; 数据表 2的预计容量为 1048576M, 该数据表 2对应的数据块的 大小为 16K, 存储该数据表 2的磁盘标识为数据磁盘标识; 数据表 3的预计容量 为 50M,该数据表 3对应的数据块的大小为 2K,存储该数据表 3的磁盘标识为预 留磁盘标识; 数据表 4的预计容量为 20480M, 该数据表 4对应的数据块的大小 为 2K , 存储该数据表 4的磁盘标识为预留磁盘标识。
对于数据表 1 , 根据数据表 1的预计容量和数据磁盘的总数量, 数据表 1在 每个数据磁盘中的预计容量 =524288M/19=27594.10526M;根据该数据表 1对应 的数据块的大小, 查询数据块大小与单个数据文件最大容量的映 射关系, 获取 该数据块的大小对应的单个数据文件最大容量 。 优选的, 在本实施例中, 数据 块大小与单个数据文件最大容量的映 可以如下表一所示:
数据表 1对应的数据块的大小为 2K, 则查询该表一, 获取单个数据文件最 大容量为 8G, 再根据该数据表 1的预计容量, 数据磁盘的总数量和该单个数据 文件最大容量, 获取每个数据磁盘中数据文件的个数, 其具体实现方式可以如 下所示: 每个数据磁盘中数据文件的个数 =[524288M/19/8G]=[3.368]=4 , 其中, 符号 []表示向上取整。 再根据数据表 1的预计容量、 数据磁盘的总数量和每个 数 据 磁 盘 中 数 据 文 件 的 个 数 , 获 取 数 据 文 件 的 大 小 =524288M/19/4=6898.526316M。
对于数据表 3 , 根据数据表 3的预计容量和预留磁盘的总数量, 数据表 1在 每个预留磁盘中的预计容量 =50M/1=50M; 该数据表 3对应的数据块的大小为 2K, 则查询表一, 获取该数据块的大小对应的单个数据文件最大 容量为 8G, 再根据该数据表 3的预计容量 ,预留磁盘的总数量和该单个数据文件最大容 , 获取每个预留磁盘中数据文件的个数, 其具体实现方式可以如下所示: 每个预 留磁盘中数据文件的个数 =[50M/1/8G]=[0.006]=1 ,其中,符号 []表示向上取整。 再根据数据表 3的预计容量、 预留磁盘的总数量和每个预留磁盘中数据文件 的 个数, 获取数据文件的大小 =50M/1/1=50M。
另夕卜,数据表 2由于存储在数据磁盘中, 因此实现原理与数据表 1的实现原 理相类似,数据表 4由于存储在预留磁盘中, 因此实现原理与数据表 3的实现原 理相类似, 此处不再赘述。 具体的, 数据表 1至数据表 4的存储请求信息和数据 库信息可以如下表二所示:
在本实施例中, 通过对磁盘上的 N个 LUN进行划分处理, 将 m个 LU 设置 为数据磁盘, 将 N-m个 LU 设置为预留磁盘; 接收存储请求消息, 并根据存储 请求消息中的数据表的预计容量、数据表对应 的数据块的大小以及磁盘标识对 应的磁盘的总数量, 获取数据库信息, 再根据该存储请求消息和数据库信息, 生成第一 shell脚本, 并根据该第一 shell脚本, 创建数据库, 由于对磁盘进行了 划分, 将容量从而实现了相对平衡部署, 占用了磁盘的存储空间较少, 进而提 高了存储利用率。
进一步的, 在本发明的又一个实施例中,在上述图 1或图 2所示方法实施例 的基础上, 该方法还可以包括: 接收 I/O性能检测请求消息 , 该 I/O性能检测请求消息包括检测磁盘标识; 当磁盘标识为预留磁盘标识时, 釆用输入输出状态( Input Output Statues; 简称: IOSTAT ) , 在设置的抽样时刻点, 分别釆集数据磁盘中的第一 I/O信 息, 并分别釆集预留磁盘中的第二 I/O信息;
将各个抽样时刻的第一 I/O信息与第二 I/O信息进行识别处理和分析处理, 获取第一检测结果。
在本实施例中, 该第一 I/O信息包括: 读 I/O信息和写 I/O信息, 其中,读 I/O 信息包括: 读每秒进行读写操作的次数 ( Input/Output Operations Per Second; 简称: IOPS )信息和读带宽信息等; 写 I/O信息包括写 IOPS信息和写带宽信息 等。
进一步的, 当磁盘标识为数据磁盘标识时, 该方法还可以包括: 釆用公式 Rni, = ( Rni-Rna ) /Rna, 获取每个数据磁盘的第一 I/O信息中 的读 I/O信息 Rni, ;
釆用公式 Wni, = ( Wni-Wna ) /Wna , 获取每个数据磁盘中的第一 I/O信 息中的写 I/O信息 Wni, ;
釆用公式 Pn=Krni* I Rni, l+Kwni* I Wni' I , 获取加权平均数 Pn。
其中, Krni=l Rni, 1 / ( 1 Rni, I + 1 Wni' I) , Kwni= I Wni' 1 / ( 1 Rni, I + 1 Wni' I) , n表示抽样时刻, i表示数据磁盘标识, Rni表示在抽样时刻 n时第 i个数据磁 盘的第一 I/O信息中的读 I/O信息, Rna表示在抽样时刻 n所有数据磁盘的第一 I/O 信息中的读 I/O信息的平均值; Wni表示在抽样时刻 n时第 i个数据磁盘的第一 I/O信息中的写 I/O信息, Wna表示在抽样时刻 n时所有数据磁盘的第一 I/O信息 中的写 I/O信息的平均值。
需要说明的是, 当 Pn越趋近于 0, 则表示该关系型数据库中的 I/O越平衡。 更进一步的, 该方法还可以包括:
根据上述第一检测结果和 /或上述加权平均数, 调整该存储请求消息和数 据库信息;
根据调整后的存储请求消息和数据库信息, 生成第二 shell脚本, 并根据该 第二 shell脚本, 重新创建数据库。
在本实施例中, 举例来说, 以上述表二为例, 通过对预留磁盘进行检测, 获取第一检测结果为: 预留磁盘中的数据表四性能要求较高, 适合存储在数据 磁盘中, 则调整存储请求消息和数据库信息, 具体的, 将磁盘标识进行修改, 将 "预留磁盘" 修改为 "数据磁盘" , 另外, 根据数据表 2的预计容量和数据 磁盘的总数量,数据表 1在每个数据磁盘中的预计容量 =20480M/19=1077.89M; 该数据表 2对应的数据块的大小为 2K, 则查询表一, 获取该数据块的大小对应 的单个数据文件最大容量为 8G, 再根据该数据表 2的预计容量, 数据磁盘的总 数量和该单个数据文件最大容量, 获取每个数据磁盘中数据文件的个数, 其具 体实现方式可以如下所示: 每个数据磁盘中数据文件的个数 =[20480M/19/8G]=[0.132]=1 , 其中,符号 []表示向上取整。再根据数据表 2的预 计容量、数据磁盘的总数量和每个数据磁盘中 数据文件的个数, 获取数据文件 的大小 =2048M/19/1=1077.89M。 则数据表四的存储请求消息和数据库信息可 以 ^口下表三所示:
根据调整后的存储请求消息和数据库信息, 生成第二 shell脚本, 并根据该 第二 shell脚本, 重新创建数据库。
在本实施例中, 通过对 I/O性能检测, 从而可以对数据表中的 I/O性能进行 准确和直观的评估, 并根据检测结果, 调整存储请求消息和数据库信息, 再根 据调整后的存储请求消息和数据库信息, 生成第二 shell脚本, 并根据该第二 shell脚本, 重新创建数据库, 进而有效地避免数据库性能问题, 降低了 TCO成 本。
图 4为本发明 I/O平衡处理设备的一个实施例结构示意图, 如图 4所示, 本 实施例的设备包括: 划分模块 11、 接收模块 12、 I/O平衡处理模块 13和数据库 创建模块 14, 其中, 划分模块 11用于对磁盘上的 N个 LUN进行划分处理, 将 m 个 LU 设置为数据磁盘, 将 N-m个 LU 设置为预留磁盘; 接收模块 12用于接收 存储请求消息, 该存储请求消息包括: 数据表、 该数据表的预计容量、 该数据 表对应的数据块的大小以及存储该数据表的磁 盘标识; 其中, 该数据表包括至 少一个数据文件; I/O平衡处理模块 13用于根据该数据表的预计容量、 数据表 对应的数据块的大小以及该磁盘标识对应的磁 盘的总数量, 获取数据库信息, 该数据库信息包括: 该数据表在每个该磁盘标识对应的磁盘中的预 计容量、每 个该磁盘标识对应的磁盘中数据文件的个数以 及该数据文件的大小;数据库创 建模块 14用于根据该存储请求消息和该数据库信息, 生成第一 shell脚本, 并根 据该第一 shell脚本, 创建数据库。
其中, N和 m均为整数, 且均大于等于 1。
本实施例的 I/O平衡处理设备可以执行图 1所示方法实施例的技术方案,其 实现原理相类似, 此处不再赘述。
在本实施例中 , 通过对磁盘上的 N个 LUN进行划分处理 , 将 m个 LU 设置 为数据磁盘, 将 N-m个 LU 设置为预留磁盘; 接收存储请求消息, 并根据存储 请求消息中的数据表的预计容量、数据表对应 的数据块的大小以及磁盘标识对 应的磁盘的总数量, 获取数据库信息, 再根据该存储请求消息和数据库信息, 生成第一 shell脚本, 并根据该第一 shell脚本, 创建数据库, 由于对磁盘进行了 划分, 将容量从而实现了相对平衡部署, 占用了磁盘的存储空间较少, 进而提 高了存储利用率。
图 5为本发明 I/O平衡处理设备的另一个实施例的结构示意图 ,如图 5所示, 在上述图 4所示实施例的基础上, 该 I/O平衡处理模块 13包括: 预计容量获取单 元 131、 数据文件的个数获取单元 132和数据文件的大小获取单元 133 , 其中, 预计容量获取单元 131用于根据该数据表的预计容量和该磁盘标识 对应的磁盘 的总数量, 获取该数据表在每个该磁盘标识对应的磁盘中 的预计容量; 数据文 件的个数获取单元 132用于根据该数据表对应的数据块的大小, 查询数据块大 小与单个数据文件最大容量的映射关系,获取 该数据块的大小对应的单个数据 文件最大容量; 并根据该数据表的预计容量、该磁盘标识对应 的磁盘的总数量 和该单个数据文件最大容量 ,获取每个该磁盘标识对应的磁盘中数据文件 个 数; 数据文件的大小获取单元 133用于根据该数据表的预计容量、 该磁盘标识 对应的磁盘的总数量和每个该磁盘标识对应的 磁盘中数据文件的个数,获取该 数据文件的大小。 进一步的, 当接收模块 12还用于接收 I/O性能检测请求消息, 该 I/O性能检 测请求消息包括检测磁盘标识, 且该磁盘标识为预留磁盘标识时, 该设备还包 括: 预留磁盘检测模块 15, 其包括: 釆集单元 151和检测单元 152, 其中, 釆集 单元 151用于釆用 IOSTAT,在设置的抽样时刻点,分别釆集数据磁 中的第一 I/O信息, 并分别釆集预留磁盘中的第二 I/O信息; 检测单元 152用于将各个该 抽样时刻的该第一 I/O信息与该第二 I/O信息进行识别处理和分析处理, 获取第 一检测结果。
另外, 当该磁盘标识为预留磁盘标识时, 该设备还包括: 数据磁盘检测模 块 16, 包括: 读 I/O信息获取单元 161、 写 I/O信息获取单元 162和加权平均数 Pn 获取单元 163, 其中, 读 I/O信息获取单元 161用于釆用公式 Rni, = ( Rni-Rna ) /Rna, 获取每个数据磁盘的第一 I/O信息中的读 I/O信息 Rni, ; 写 I/O信息获取 单元 162用于釆用公式 Wni, = ( Wni-Wna ) /Wna, 获取每个所述数据磁盘中 的第一 I/O信息中的写 I/O信息 Wni, ; 加权平均 »11获取单元 163, 用于釆用公式 Pn=Krni* iRni' l+Kwiii* IWni' I , 获取加权平均¾¾。
其中, Krni=l Rni, 1 / ( 1 Rni, I + 1 Wni' I) , Kwni= I Wni' 1 / ( 1 Rni, I + 1 Wni' I) , n表示抽样时刻, i表示数据磁盘标识, Rni表示在抽样时刻 n时第 i个数据磁 盘的第一 I/O信息中的读 I/O信息, Rna表示在抽样时刻 n所有数据磁盘的第一 I/O 信息中的读 I/O信息的平均值; Wni表示在抽样时刻 n时第 i个数据磁盘的第一 I/O信息中的写 I/O信息, Wna表示在抽样时刻 n时所有数据磁盘的第一 I/O信息 中的写 I/O信息的平均值。
本实施例的 I/O平衡处理设备可以执行图 3所示方法实施例的基础方案,其 实现原理相类似, 此处不再赘述。
更进一步的, 该设备还可以包括: 调整模块 17, 用于根据第一检测结果和 /或加权平均数 Pn, 调整所述数据库信息; 则数据库创建模块 14还用于根据调 整后的存储请求消息和数据库信息,生成第二 shell脚本,并根据第二 shell脚本, 重新创建数据库。
在本实施例中 , 通过对磁盘上的 N个 LUN进行划分处理 , 将 m个 LU 设置 为数据磁盘, 将 N-m个 LU 设置为预留磁盘; 接收存储请求消息, 并根据存储 请求消息中的数据表的预计容量、数据表对应 的数据块的大小以及磁盘标识对 应的磁盘的总数量, 获取数据库信息, 再根据该存储请求消息和数据库信息, 生成第一 shell脚本, 并根据该第一 shell脚本, 创建数据库, 由于对磁盘进行了 划分, 将容量从而实现了相对平衡部署, 占用了磁盘的存储空间较少, 进而提 高了存储利用率。 另外, 通过对 I/O性能检测, 从而可以对数据表中的 I/O性能 进行准确和直观的评估, 并根据检测结果, 调整存储请求消息和数据库信息, 再根据调整后的存储请求消息和数据库信息, 生成第二 shell脚本, 并根据该第 二 shell脚本, 重新创建数据库, 进而有效地避免数据库性能问题, 降低了 TCO 成本。
本领域普通技术人员可以理解:实现上述各方 法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成。前述的 程序可以存储于一计算机可读取 存储介质中。 该程序在执行时, 执行包括上述各方法实施例的步骤; 而前述的 存储介质包括: ROM, RAM,磁碟或者光盘等各种可以存储程序代码的 质。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对其 限制; 尽管参照前述各实施例对本发明进行了详细的 说明, 本领域的普通技术 人员应当理解: 其依然可以对前述各实施例所记载的技术方案 进行修改, 或者 对其中部分或者全部技术特征进行等同替换; 而这些修改或者替换, 并不使相 应技术方案的本质脱离本发明各实施例技术方 案的范围。
Next Patent: CONTROL SYSTEM FOR SINGLE-PHASE CONTROLLABLE RECTIFIER