免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5814 | 回复: 11
打印 上一主题 下一主题

认识Quick I/O 和Cached Quick I/O (vxfs) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-14 10:48 |只看该作者 |倒序浏览
首先,来介绍一下什么是Quick I/O合Cached Quick I/O。VERITAS Quick I/O是VXFS为oracle数据库提供的一种特殊的功能。数据库和文件系统有机的整合在一起同时更好的帮助系统管理员和数据库管理员进行oralce数据库服务器的配置。同时,VERITAS Quick I/O还为普通文件的创建提供裸设备接口。它避开了一定得文件系统开销的操作方式(比如:数据锁层面的操作)同时提供kernel的异步I/0(KAIO),因此,Quick I/O为文件系统管理和裸设备性能方面带来的便捷。Cached Quick I/O是一种增强型Quick I/O,它能够帮助oracle DBA更好的使用大系统内存的效率。\r\n换句话来说,传统的文件系统,由于对文件的single write lock存在,导致文件系统在并发环境中读写效率比较低。而裸设备则不存在这个问题。Quick I/O其实就是消除了单写锁,提高文件系统的效率。\r\nCached Quick I/O是对Quick I/O的一种增强处理,核心的思想就是不断的记录访问的文件的频度,将最热的文件放在cache中,提高cache的命中率,从而提高文件系统的效率。\r\n使用Cached Quick I/O可以更好的在文件系统下运行数据库。\r\n能够方便的提供系统生产环境下的文件I/O统计。\r\n收集在用文件的文件I/O统计。\r\n使用Cached Quick I/O能够方便的分析文件的I/O统计。\r\n不使用Cached Quick I/O在命中率上差异较大。\r\n可以简单的理解这两个特性:\r\n1)Quick I/O解决的是传统的unix文件系统的single write lock问题。\r\n2)Cached Quick I/O解决的是cache的命中率问题。\r\n\r\n先来介绍一下Quick I/O。\r\n首先确认使用的文件系统是vxfs。这是VERITAS storage foundation的特性。\r\n需要购买veritas license\r\n使用veritas提供的脚本来创建需要转化的数据文件列表\r\n $/opt/VRTSdbed/bin/qio_getdbfiles执行该脚本可以将vxfs下所有需要转化的数据文件都输出到mkqio.dat文件中。脚本目录在/opt/VRTSdbed/bin。在老的版本中这个脚本名称为:getdbfiles.sh.\r\n   这个脚本会自动排除所有类型为temproary的数据文件。这些文件在转化之后,oracle将无法进行写入。\r\n mkqio.dat文件也可以自己手工创建。但必须要注意排除temporary datafiles。文件中包含数据文件和大小,样例如下:\r\n\r\n$cat mkqio.dat\r\n/db01/file1 210358\r\n/db01/file2 157996\r\n/db01/file3 38098\r\n/db01/file4 394935\r\n/db01/file5 911787\r\n/db01/redo_t04.log 209715\r\n在上面的过程中,数据库需要打开。\r\n\r\n $/opt/VRTSdbed/bin/qio_convertdbfiles,执行该脚本转化mkqio.dat列表中的数据文件。在老的版本中这个脚本名称为:mkqio.sh\r\n在转化之前,必须先关闭数据库。\r\n这些脚本都以oracle用户执行。\r\n那么现在再来说如何启动Cached Quick I/O呢?可以通过使用命令vxtunefs命令将qio_cache_enable标志改为1来设定。命令如下:\r\n\r\n# vxtunefs -s -o qio_cache_enable=1 /mount_point\r\n\r\n比如:\r\n\r\n# /opt/VRTSvxfs/sbin/vxtunefs -s -o qio_cache_enable=1 /happy\r\n\r\nvxfs vxtunefs: Parameters successfully set for /happy\r\n\r\n接下来看如何关闭Cached Quick I/O呢?可以通过使用命令vxtunefs命令将qio_cache_enable标志改为0来设定。命令如下:\r\n\r\n# vxtunefs -s -o qio_cache_enable=0 /mount_point\r\n\r\n比如:\r\n\r\n# /opt/VRTSvxfs/sbin/vxtunefs -s -o qio_cache_enable=0 /happy1\r\n\r\nvxfs vxtunefs: Parameters successfully set for /happy1\r\n\r\n如果想让Cached Quick I/O设置固定不受重启的影响,就需要在/etc/vx/tunefstab文件下面增加qio_cache_enable条目。\r\n如果tunefstab不存在的话,需要手工加一个就可以了。\r\n举例:\r\n/dev/vx/dsk/datadg/datavol  qio_cache_enable=1\r\n/dev/vx/dsk/datadg/myvol    qio_cache_enable=1\r\n\r\n可以通过vxtunefs命令来查看Cached Quick I/O的情况。\r\n命令如下:\r\n# vxtunefs  /mount_point\r\n\r\n举例:\r\n# /opt/VRTSvxfs/sbin/vxtunefs /happy\r\nFilesystem i/o parameters for /happy\r\nread_pref_io = 65536\r\nread_nstream = 1\r\nread_unit_io = 65536\r\nwrite_pref_io = 65536\r\nwrite_nstream = 1\r\nwrite_unit_io = 65536\r\npref_strength = 10\r\nbuf_breakup_size = 131072\r\ndiscovered_direct_iosz = 262144\r\nmax_direct_iosz = 1048576\r\ndefault_indir_size = 8192\r\nqio_cache_enable = 1\r\nwrite_throttle = 15104\r\nmax_diskq = 1048576\r\ninitial_extent_size = 8\r\nmax_seqio_extent_size = 2048\r\nmax_buf_data_size = 8192\r\nhsm_write_prealloc = 0   \r\n\r\n# /opt/VRTSvxfs/sbin/vxtunefs  /happy1\r\nFilesystem i/o parameters for /happy1\r\nread_pref_io = 65536\r\nread_nstream = 1\r\nread_unit_io = 65536\r\nwrite_pref_io = 65536\r\nwrite_nstream = 1\r\nwrite_unit_io = 65536\r\npref_strength = 10\r\nbuf_breakup_size = 131072\r\ndiscovered_direct_iosz = 262144\r\nmax_direct_iosz = 1048576\r\ndefault_indir_size = 8192\r\nqio_cache_enable = 0\r\nwrite_throttle = 15104\r\nmax_diskq = 1048576\r\ninitial_extent_size = 8\r\nmax_seqio_extent_size = 2048\r\nmax_buf_data_size = 8192\r\nhsm_write_prealloc = 0    \r\n\r\n同时还可以为个别文件设置Cached Quick I/O。使用qioadmin命令来设置文件的Cached Quick I/O。使用qiostat或者其他的分析工具来分析文件的Cached Quick I/O。当打开和关闭个人文件的Cached Quick I/O时,需要数据库是运行的。通过使用qiostat命令来观察文件的缓存命中率是否发生足够的改变打开或者关闭Cached Quick I/O对于个人文件也需要考虑设置cache.\r\n关闭个人文件的Cached Quick I/O使用qioadmin命令设置标志位OFF。\r\n命令如下:\r\n# qioadmin -S file=OFF mount_point\r\n举例:\r\n# /opt/VRTSvxfs/sbin/qioadmin -S myfile=OFF /happy\r\n\r\n打开个人文件的Cached Quick I/O使用qioadmin命令设置标志位ON。\r\n命令如下:\r\n# qioadmin -S file=ON mount_point\r\n举例:\r\n# /opt/VRTSvxfs/sbin/qioadmin -S myfile=ON /happy\r\n\r\n如果想让设置一直生效不受重启的影响需要在文件/etc/vx/qioadmin下增加相应的条目。\r\n如果这个文件不存在,可以手工添加上去。\r\ncache建议使用qioadmin来存储时需要加上Inode属性。这些设置可以在重新mount和系统重启中一直生效,但是,这些属性通过一般的备份方法并不能被备份。他们是不能恢复的,因此,任何一次文件系统的恢复都需要重新设置属性。如果在/etc/vx/qioadmin增加了Quick I/O文件系统条目的话,这些工作可以不需要做。\r\n\r\n/etc/vx/qioadmin的文件内容如下:\r\n以happy文件系统为例:\r\ndevice=/dev/vx/dsk/datadg/datavol\r\nmyfile, OFF\r\nmydata, ON\r\n\r\n可以通过是使用qioadmin命令的-P选项来查看现在文件的Cached Quick I/O情况。\r\n命令如下:\r\n# qioadmin -P file mount_point\r\n\r\n例如:\r\n\r\n# /opt/VRTSvxfs/sbin/qioadmin -P myfile /happy\r\n\r\nmyfile,OFF \r\n\r\n# /opt/VRTSvxfs/sbin/qioadmin -P mydata /happy\r\n\r\nmydata,ON\n\n[ 本帖最后由 风之幻想 于 2009-5-14 11:51 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-05-14 13:22 |只看该作者
用的太少,反正我没见过

论坛徽章:
0
3 [报告]
发表于 2009-05-14 13:30 |只看该作者
多强大的东西啊 ,可惜一直没机会碰

论坛徽章:
0
4 [报告]
发表于 2009-05-14 14:54 |只看该作者
veritas的很多的理念真的是很不错。

论坛徽章:
5
荣誉会员
日期:2011-11-23 16:44:17CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-09-18 15:15:45未羊
日期:2014-02-25 14:37:19射手座
日期:2014-12-26 22:55:37
5 [报告]
发表于 2009-05-14 16:13 |只看该作者
cached quick IO,能保证数据库写是durable的么?难道只是读做了cache?

论坛徽章:
0
6 [报告]
发表于 2009-05-14 17:04 |只看该作者
I/O on files using read() and write() system calls typically results in data being copied\r\ntwice: once between user and kernel space, and later between kernel space and disk. In\r\ncontrast, I/O on raw devices is direct. That is, data is copied directly between user space\r\nand disk, saving one level of copying. As with I/O on raw devices, Quick I/O avoids the\r\nextra copying.

论坛徽章:
0
7 [报告]
发表于 2009-05-15 02:23 |只看该作者
veritas版本的裸设备。\r\n和传统的单纯的裸设备比较,下面一段话是不错的总结\r\nVERITAS Quick I/O has been developed to combine the performance advantages of raw volumes with the maintenance advantages of a journaled file system. Studies conducted at the Large Systems Support Belmont data center showed performance benefits similar to raw volumes. The availability of the traditional UNIX file commands greatly improves the ability of the technical staff to manage the database files correctly and efficiently. VERITAS Quick I/O deserves serious consideration for implementation in any data center running Oracle databases on UNIX.

论坛徽章:
0
8 [报告]
发表于 2009-05-15 08:43 |只看该作者
那么, oracle 数据库的 datafile 是放在了 veritas 的文件系统上呢 还是 裸设备上?\r\n\r\n感觉楼主是放到了文件系统上了, 但是 oracle 有自己的 data buffer 呀, 还要经过veritas 的文件系统的cache 吗。 为什么不能直接将数据文件放到裸设备上,更省事啊。难道就是为了能够在裸设备上方便地使用 unix 命令进行操作吗?

论坛徽章:
0
9 [报告]
发表于 2009-05-15 09:18 |只看该作者
在原来IO性能是瓶颈的时候挺好,但是现在存储的IO性能大幅度提升,价格快速下降的时代,已经意义不大了。。。还不如把那个钱买好点的存储呢;另外ZFS等已经引入了这些概念,关键还是免费的。。。\n\n[ 本帖最后由 孔方兄 于 2009-5-15 22:15 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-05-15 09:42 |只看该作者
是啊 , 原来SUN的产品不尽如人意的时候, 需要牛逼的veritas罩着, 现在 SUN 在文件系统和集群方面取得进步后, 还需要veritas吗?可能就剩备份这块儿了吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP