RAW设备导出

发布于 2024-10-02 13:23:32 字数 40 浏览 4 评论 0原文

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

How can I export a RAW device for database use using NFS or CIFS?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

三生路 2024-10-09 13:23:32

我记得这样做是为了满足 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

I remember doing this to fulfill some arcane requirement for an Oracle installation. I figured out how to make this happen but realized that under no circumstance would I want to actually implement this.

That said, if you like making bad choices:

Create an empty file that you're eventually going to expose as a raw device:

   dd if=/dev/zero of=/netapp/ocr/file bs=8k count=50000

Make a raw device:

mknod /dev/raw1 c 162 1

Create a loopback device that points to the file you want to use:

losetup /dev/loop1 /netapp/ocr/file

Bind the raw device to the loopback device:

raw /dev/raw/raw1 /dev/loop1

Produce output that can confirm the raw device is bound correctly:

raw -qa
零度° 2024-10-09 13:23:32

简短的回答:你不能!

长答案:

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

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

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

Short answer: you cannot!

Long answer:

Both NFS and CIFS are designed to handle files, not devices.

Exporting a device node on Unix using NFS will actually refer to a (maybe non-existent) device on the client, as far as the client's kernel is concerned. NFS is also notorious for locking issues that make anything concurrent (including DB transactions) a major problem. ACID on NFS is generally a no-no.

I believe CIFS has limited support for special files as well, although I may be mistaken.

Perhaps your are looking for something like NBD (Network Block Device), DRBD (Distributed Replicated Block Device) or even iSCSI?

http://en.wikipedia.org/wiki/ISCSI

http://en.wikipedia.org/wiki/Network_block_device

http://en.wikipedia.org/wiki/DRBD

Keep in mind that there can be atrocious locking issues if you try to share a raw device to multiple nodes - you'd need to have support for distributed operation and locking all the way up to your database.

You would probably get more help if you explained what you want to do at a higher level...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文