发新话题
打印

讨论多os共享lun,以及文件系统,数据库方面的问题!

ok,不说了,我错了。
但是我坚持我的。
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

引用:
原帖由 冬瓜头 于 2007-1-29 17:11 发表





这个矛盾太那个了,fengwy可能没有注意到自己都矛盾了。

另外关于buffer。
你说:系统调用借口-----文件系统---------裸设备或者块设备(文件系统和块设备之间不能直接交互,他们中间还有高速 ...
你如果不清楚就不要随便怀疑别人,要么你拿出证据,顺便问一下,我哪里矛盾了

TOP

我是开玩笑的,别往心里去,sorry
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

引用:
原帖由 冬瓜头 于 2007-1-29 17:12 发表
还有,你说的这个顺序:

系统调用借口-----文件系统---------裸设备或者块设备(文件系统和块设备之间不能直接交互,他们中间还有高速缓冲)-----------硬件控制器----------硬件

这里的块设备或者裸设备 ...
裸设备和块设备都是文件的一种,他们都是设备文件,还在驱动程序之上,他们怎么会在硬件控制器之下?

TOP

大家讨论吗,有什么介意的,

TOP

引用:
原帖由 fengwy 于 2007-1-29 17:44 发表

裸设备和块设备都是文件的一种,他们都是设备文件,还在驱动程序之上,他们怎么会在硬件控制器之下?
对,这个倒是。如果认为设备是一个“文件”的话,是应该处于这一层。
不管对于windows还是linux,unix,设备虚拟到上层,就是文件,但是这个文件不是fs中所谓的文件,只是在内存中虚拟出来的而已,就像linux的vfs,就是一个目录树。这个设备文件准确来说因该是一个object。
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

不过还是请您落实一下,”只有通过fs才能访问raw设备“这句话。
您可以给董大叔发短信,看看他是否认同他当时是被我的无知给忽悠了,才说出这句话的
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

LZ就是想问一些使用raw device的应用怎么识别raw中的数据,怎么处理并发读写的问题吧?

我对存储不熟悉,对oracle小有了解,说的不对请指正。

oracle有自己的db_block,一般是4kb,8kb,16kb,这些块的内部结构都可以通过oracle的转储命令dump出来,而且还是格式化好的,有兴趣可以自己试试。举个不太严谨的例子,一个数据文件当中可能有的数据对象有表、索引、簇等。每个对象都有自己的头和内容部分,其所占的块个数可能不一样,但是每个块都是严格的一致的大小,这个大小就是在创建数据库的时候指定的。一个数据库的默认db block size是不变的。

如果使用文件系统,那么在需要向磁盘写数据的时候,oracle的DBWn进程通知操作系统去IO。

如果使用裸设备,oracle自己IO,绕过操作系统。

oracle使用裸设备,在性能方面好处多多,比如不用OS的IO cache。这样就节省了内存和cpu时间等。
oracle有自己的一套庞大的内存结构,还有一套复杂的进程。这些都是为数据库应用优化的,而操作系统是普适的。

http://www.ixora.com.au/tips/avoid_buffered_io.htm

raw device是不会阻止用户去毁坏自己的数据的,预防机制是由应用来实现的,oracle就有,看一下oracle的多版本和锁机制就明白怎么回事了。

再说一下RAC为什么要么选择raw要么选择cfs,原因就在于它们可以提供同时写的能力,比如在同一时间node1向file1的第10个block(db block)写数据,node2向file1的第20个block写数据(但是不可能同时向同一个block写数据,能力是有的,但是oracle不许这么做)。(这个file1是/dev/rawn的soft link)

在你看来是不是这个file1已经不一致了?恰好不是这样,反而这种机制提高了oracle的并发能力和数据的一致性。

唉,到此为止。说的不好,自己都不忍心看了。

[ 本帖最后由 feelfall 于 2007-2-9 18:20 编辑 ]

TOP

raw lun 上能被多个主机同时读写, raw lun 不会有硬件上的错误.

但是, 主机上看到的逻辑数据就有错误了. 对raw数据的解释就是文件系统

的功能之一. 如果主机间共用一个文件系统, 且有同步访问的控制机制, 就能

正常用一个raw lun.

TOP

引用:
原帖由 <i>feelfall</i> 于 2007-2-9 18:13 发表
如果使用裸设备,oracle自己IO,绕过操作系统
感谢这位仁兄的数据库方面的解释,受教了,不过有一句话我不同意:
“如果使用裸设备,oracle自己IO,绕过操作系统”
oracle使用裸设备也绕过os么?oracle有自己的磁盘控制器驱动?和os是两套驱动程序?如果其它程序也要访问磁盘,他和oarcle怎么协调?
我认为绕过的只是os的fs,而不是底层driver。
http://space.doit.com.cn/35700
存储界的首本个性之作《大话存储-网络存储系统原理精解与最佳实践》,将于9月初由清华大学出版社隆重出版!敬请关注!

TOP

发新话题