V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
Ploter
V2EX  ›  NAS

求教:使用 iSCSI 共享能否解决 SMB/NFS 的权限冲突问题

  •  
  •   Ploter · 50 天前 · 2099 次点击
    这是一个创建于 50 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    我有一台 Proxmox VE 主机,虚拟化了两台 VM:

    • TrueNAS Core:作为存储服务器。
    • Playground ( Debian ):运行 Docker 容器,部署服务。

    两者通过 PVE 的 VirtIO 网络连接。

    需求:我想将 TrueNAS 的存储共享给 Playground 作为扩展磁盘,供 Docker 容器使用。

    尝试过 SMB 和 NFS ,但遇到问题:某些 Docker 容器会修改文件权限(所有者或读写权限),导致权限冲突或“Permission denied”错误,可能是 SMB/NFS 的用户映射问题。

    我听闻 iSCSI 是块共享协议,但感觉上手有点复杂,所以先来问问大佬们。

    问题

    1. iSCSI 是否能有效解决 SMB/NFS 的权限冲突/用户映射问题?
    2. 使用 iSCSI 共享后,文件是否只能通过 iSCSI 客户端查看?能否在 TrueNAS 上访问相同数据?
    3. iSCSI 是否支持多个客户端同时连接呢?

    能想到的暂时就这些了,有经验的大佬可以补充一下。

    15 条回复    2025-05-03 14:32:33 +08:00
    czk1997
        1
    czk1997  
       50 天前   ❤️ 2
    TrueNAS 的 iSCSI 得做 zVOL.

    1. iSCSI 不涉及权限问题,因为本身只做块共享,不做文件,权限是文件提供的。你可以理解为共享了一块虚拟磁盘出去。至于这个磁盘是什么格式是你自己决定的。
    2. 文件只能通过 iSCSi 查看,TrueNAS 无法查看。
    3. 支持多客户端链接,但是实际操作中建议不要这么做,容易丢数据。
    ruidoBlanco
        2
    ruidoBlanco  
       50 天前
    beating around the bush
    XY problem

    那么多人用 NFS 、smb 没问题,那你有问题就解决问题,别绕来绕去制造新的问题。

    其实这复杂度是没必要,为什么会有个 trueNAS 在里面呢?直接 pve 开虚拟盘给虚机或者 container 用不好么?甚至说直接 bind mount 宿主目录到 lxc 里面不也行么。
    Ploter
        3
    Ploter  
    OP
       50 天前
    @czk1997 明白了,谢谢。多客户端只是顺带问问,没有使用场景。
    dilidilid
        4
    dilidilid  
       50 天前
    1. iSCSI 能不用就不用,这东西在家庭环境可以直接忽略。在 samba 挂载上运行 docker 的人多了去了,你会遇到问题是你自己 smb.conf 配置的锅,不如请教一下 ChatGPT 怎么解决。SMB 的用户映射逻辑非常直接,根本没啥坑,最多就是全挂成可读写损失权限安全性。
    2. 如果你一定要用 VM 层面的虚拟挂载,考虑 virtfs ,这东西比 samba/NFS 更底层但依然是文件层面的共享。在最新版的 PVE 里已经提供 GUI 支持了,至于 TrueNAS 是不是支持我就不太清楚了
    Ploter
        5
    Ploter  
    OP
       50 天前
    @ruidoBlanco 直接使用 PVE 管理磁盘是个思路,我用 TrueNAS 主要是想要一个统一的存储管理服务,而且应该比 PVE 操作起来要简单一点。等之后我想通了或许就会用老哥提供的思路。
    Ploter
        6
    Ploter  
    OP
       50 天前
    @dilidilid 好的,其实我也不是很想要 iSCSI ,感觉配置起来好复杂,所以先来问问,防止白折腾。

    我再看看 SMB 吧,主要是我之前遇到过容器直接修改挂载路径所有者,SMB 支持这种操作吗
    Autonomous
        7
    Autonomous  
       50 天前   ❤️ 1
    iSCSI 的使用场景应该是企业或者网吧搞无盘电脑的吧,便于集中统一管理数据。
    webcape233
        8
    webcape233  
       50 天前 via iPhone   ❤️ 1
    块文件没法共享,不然都写到底听谁的?不得数据乱套
    GrayXu
        9
    GrayXu  
       50 天前   ❤️ 1
    其实 iscsi 配置也挺简单的吧

    1. iscsi 直接不考虑共享问题的,但你这是单 client 所以无所谓
    2. iscsi 本质上就是通过网络暴露 scsi 块设备接口,所以一样可以挂载
    3. 不手动做分区隔离或者是本身就支持多 client 的 fs (VMFS 之类的),那就是不支持,会炸
    billlee
        10
    billlee  
       50 天前   ❤️ 1
    我现在就是差不多的架构,一台 NAS 装 truenas 提供 iSCSI, 另一台计算服务器装 PVE 跑虚拟机,用 iSCSI 块设备做数据盘。
    hullopanda
        11
    hullopanda  
       50 天前
    iSCSI 是否支持多个客户端同时连接呢?
    hullopanda
        12
    hullopanda  
       50 天前   ❤️ 1
    @hullopanda 常规意义下是不行的,iSCSI(san )结构不支持多客户端(操作系统)访问,特例只是拿来做主备双活来用懒得。
    scegg
        13
    scegg  
       50 天前   ❤️ 1
    @hullopanda 支持。但文件系统是否支持就不一定了。毕竟 iscsi 只是提供了通路。就像 sas 硬盘的两条线同时都会活着,但是否可以同时读写而不会损坏硬盘里的数据结构,那就要看数据结构是如何定义和操作的了。
    shalingye
        14
    shalingye  
       50 天前 via Android   ❤️ 2
    Windows 的 iSCSI 实现是服务器创建了一个虚拟硬盘文件 vhdx ,把这个虚拟硬盘挂载为另一台计算机的本地硬盘,就好像真有这么一块物理硬盘一样,可以用磁盘管理软件操作。对此硬盘的任何操作都会先在本地缓存,然后静默同步到服务器,是一对一的绑定关系。连接优先级很高,可以在系统启动时自动挂载。甚至,可以通过类似 wireguard 这样的 vpn 软件进行外网访问。
    jamos
        15
    jamos  
       48 天前
    我就是 iSCSI 分配 20G 空间给虚拟机 win08 ,微信,QQ 的目录放在里面,稳定运行 2 年了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:24 · PVG 22:24 · LAX 07:24 · JFK 10:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.