您的位置:首页 > 其它

关于 ASM+rawdevices 以及 ASM+block devices with or without ASMLIB的讨论

2010-02-18 19:37 369 查看
- on raw-bound character devices (/dev/raw/raw*)
- on block devices (/dev/hd**) with ASMLib installed
- on block devices (/dev/hd**) without ASMLib installed

这三种asm管理的方式实际都是基本类似,raw-bound实际就是把把block devices O_DIRECT标志位打开,直接读磁盘,不经过缓存查询,异步I/O

而on block devices with or without asmlib实际上也是实现了异步I/O non buffer,

不过推荐是使用asm+asmlib这样免去了对于添加和删除磁盘而造成的设备名称变更的麻烦。

basically, if you give blockdevices to oracle, it will now automatically open with O_DIRECT and by default do async io. so whether you give /dev/raw or /dev/hd (or /dev/sd) to asm or to oracle in general, it will be exactly the same.

even tho as you stated elsewhere dev/raw is deprecated, reality is that all that /dev/raw was in the end was (open (/dev/blockdevice, O_DIRECT) literally nothing more. so there is no difference there.

the suggested use definitely is using asmlib and just provide the blockdevice to it. it will then take care of making sure discovery is right, naming is less of an issue and you still get asynchronous IO on pure raw non buffered disk performance

so using asm without asmlib on blockdevices dont buffer, oracle will open odirect and do async io. using asmlib will do the same type of io, it's a different actual codepath but in effect does similar stuff

I was continuously trying to convince my colleagues that
Linux raw-bound device interface was nothing else but a fatamorgana, a mirage of something called
"Sun Solaris native raw character device interface", doing nothing else but opening a block device
with O_DIRECT. Thanks a lot.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐