【问题标题】:NFS mount point as a disk device linuxNFS 挂载点作为磁盘设备 linux
【发布时间】:2020-03-13 19:43:58
【问题描述】:
  1. 远程 NAS 服务器向 linux 客户端计算机提供 NFS 共享 (/myShare)
  2. 从 linux 客户端,我挂载了 NFS 共享(例如/mnt/myShare)

我的问题是,是否可以将此 /mnt/myShare 转换为磁盘设备(例如 /dev/mydevice)

我想将此磁盘用作物理磁盘本身到容器中以存储其数据。

设备映射器可以在这里提供帮助吗?任何线索都会在这里提供帮助

--kk

【问题讨论】:

  • 文件基本上是块设备的抽象。例如,Qemu 使用 qcow 文件。所以有可能。
  • 谢谢@stark。这是否意味着我们在挂载点上创建 qemu 文件并将其作为 virtio 块类型的设备指向来宾?

标签: linux mount nfs disk


【解决方案1】:

是否可以将此/mnt/myShare 转换为磁盘设备(例如./dev/mydevice)

答案是肯定的和否定的。是的,因为您可以将所有东西安装在任何地方,也就是说,您可以:

mount -t nfs nas:/myShare /dev/mydevice

(前提是/dev/mydevice目录存在)。

不,因为磁盘是 /dev 下的文件,它基本上公开了一组扇区(或集群) - 其他操作系统组件使用它来表示文件系统,然后将其挂载到其他地方。

相反,您已经拥有一个代表文件系统的文件。您可以将该文件系统挂载到任何您想要的位置。 99% 的操作系统和程序都不会在意。

但是您的共享不是磁盘,因为它是由另一台机器导出的东西(文件系统的目录部分)。而这种差异是无法回避的。我认为您可以毫无问题地接受这一点,但是,如果您的问题在字面上是正确的,那么不:导出的共享不是磁盘。

【讨论】:

    【解决方案2】:

    如果您想使用原始硬盘驱动器,则不需要文件系统。也许您的 NAS 服务器可以配置为将其存储导出为 iSCSI target

    NFS 本身并不将存储实现为块设备。

    但是你可以做的是:

    1. /myShare 挂载到/mnt/myShare
    2. 创建一个大小为所有myShare 的文件。例如,如果 myShare 的大小为 3TB,则执行 truncate -s 3T /mnt/myShare/loop.img。 (此时,如果您想要一个文件系统,您可以使用mkfs -t ext4 /mnt/myShare/loop.img)。
    3. 将文件设置为循环设备:sudo losetup /dev/loop7 /mnt/myShare/loop.img
    4. 您现在在 /dev/loop7 上有一个 3TB 块设备,您可以在 grep loop7 /proc/partitions 的输出中看到它。

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 2017-10-06
      • 2016-04-20
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 2013-11-22
      • 1970-01-01
      相关资源
      最近更新 更多