您的位置:首页 > 数据库

关于ZFS和数据库存储性能的优化设计

2012-03-22 21:20 645 查看
Copyright © 2009, The e. Publishing Dept. of Morpho Studio (Spruce Int. Found.® ) All rights reserved.
zfs的recordsize属性用于设置zfs文件系统中文件的基本数据块大小(默认为128k),是文件系统每次物理读写的基本数据量单位。ZFS 会根据为典型的访问模式优化的内部算法来自动调整块大小但对于创建很大的文件但访问较小的随机块中的文件的数据库而言(特别是OLAP一类的应用),这些算法可能不是最优的。将zfs的recordsize 指定为大于或等于数据库的记录大小的值可以显著提高性能。
一般可以将zfs 文件系统vdisk/iscsi_luns 的默认recordsize 设置为8k ,使之与Oracle默认的数据文件的默认db_block size相匹配。
通常认为将Oracle数据库块大小提高一倍,可以提高50%查询密集型操作的性能。所以对于使用本地zfs文件系统的数据库,我们可以在一个(或多个)zfs 存储池上可以创建不同recordsize的ZFS文件系统用于存储不同db_block_size的Oracle数据库数据文件来优化数据库的存储性能。
对于使用ASM的数据库,我们可以使用zvol作为本地裸磁盘设备,并用作ASM磁盘组的成员设备。在创建zvol时,我们可以指定zvol的volblocksize (默认为8K,最大为128K)属性使之匹配相应的db_block_size。即创建多个不同recordsize 的zfs,然后在不同的zfs上创建相应volblocksize的zvol,将相同volblocksize的zvol作为一个ASM磁盘组。
另外在基于solaris 的RAC环境中,我们可以使用zvol 作为iSCSI LU,通过COMSTAR iSCSI Target软件为RAC节点主机提供ISAN共享存储。此时,我们也可以像使用ASM的方案时一样的方法,使iSCSI Lu的blocksize和将要存放的数据文件的db_block_size 相匹配。本文出自 “zfs存储世界” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: