如何使用NFS或CIFS导出RAW设备以供数据库使用?
答案 0 :(得分:2)
我记得这样做是为了满足Oracle安装的一些神秘要求。我想出了如何实现这一目标,但意识到在任何情况下我都不想实际实现这一点。
那就是说,如果你喜欢做出错误的选择:
创建一个您最终将作为原始设备公开的空文件:
dd if=/dev/zero of=/netapp/ocr/file bs=8k count=50000
制作原始设备:
mknod /dev/raw1 c 162 1
创建一个指向您要使用的文件的环回设备:
losetup /dev/loop1 /netapp/ocr/file
将原始设备绑定到环回设备:
raw /dev/raw/raw1 /dev/loop1
生成可确认原始设备绑定正确的输出:
raw -qa
答案 1 :(得分:0)
简短的回答:你不能!
答案很长:
NFS和CIFS都旨在处理文件,而不是设备。
在Unix上使用NFS导出设备节点实际上会引用客户端上的(可能不存在的)设备,就客户端的内核而言。 NFS也因锁定使任何并发(包括数据库事务)成为主要问题的问题而臭名昭着。 NFS上的ACID通常是禁止的。
我认为CIFS对特殊文件的支持也有限,尽管我可能会弄错。
也许您正在寻找像NBD(网络块设备),DRBD(分布式复制块设备)甚至iSCSI这样的东西?
http://en.wikipedia.org/wiki/ISCSI
http://en.wikipedia.org/wiki/Network_block_device
http://en.wikipedia.org/wiki/DRBD
请记住,如果您尝试将原始设备共享到多个节点,可能会出现非常严重的锁定问题 - 您需要支持分布式操作并一直锁定到您的数据库中。
如果您在更高级别解释了您想要做的事情,您可能会获得更多帮助......