1

如何使用 NFS 或 CIFS 导出 RAW 设备以供数据库使用?

4

2 回答 2

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
于 2012-06-27T17:05:36.847 回答
0

简短的回答:你不能!

长答案:

NFS 和 CIFS 都旨在处理文件,而不是设备。

就客户端内核而言,使用 NFS 在 Unix 上导出设备节点实际上是指客户端上的(可能不存在的)设备。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

请记住,如果您尝试将原始设备共享给多个节点,可能会出现严重的锁定问题 - 您需要支持分布式操作并一直锁定到您的数据库。

如果您在更高的层次上解释您想要做什么,您可能会得到更多帮助......

于 2010-11-17T13:45:29.390 回答