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

2025 年 5 月 1 日
 k1rin

背景

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

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

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

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

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

问题

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

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

3275 次点击
所在节点    NAS
17 条回复
czk1997
2025 年 5 月 1 日
TrueNAS 的 iSCSI 得做 zVOL.

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

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

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

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

1. iscsi 直接不考虑共享问题的,但你这是单 client 所以无所谓
2. iscsi 本质上就是通过网络暴露 scsi 块设备接口,所以一样可以挂载
3. 不手动做分区隔离或者是本身就支持多 client 的 fs (VMFS 之类的),那就是不支持,会炸
billlee
2025 年 5 月 1 日
我现在就是差不多的架构,一台 NAS 装 truenas 提供 iSCSI, 另一台计算服务器装 PVE 跑虚拟机,用 iSCSI 块设备做数据盘。
hullopanda
2025 年 5 月 1 日
iSCSI 是否支持多个客户端同时连接呢?
hullopanda
2025 年 5 月 1 日
@hullopanda 常规意义下是不行的,iSCSI(san )结构不支持多客户端(操作系统)访问,特例只是拿来做主备双活来用懒得。
scegg
2025 年 5 月 1 日
@hullopanda 支持。但文件系统是否支持就不一定了。毕竟 iscsi 只是提供了通路。就像 sas 硬盘的两条线同时都会活着,但是否可以同时读写而不会损坏硬盘里的数据结构,那就要看数据结构是如何定义和操作的了。
shalingye
2025 年 5 月 1 日
Windows 的 iSCSI 实现是服务器创建了一个虚拟硬盘文件 vhdx ,把这个虚拟硬盘挂载为另一台计算机的本地硬盘,就好像真有这么一块物理硬盘一样,可以用磁盘管理软件操作。对此硬盘的任何操作都会先在本地缓存,然后静默同步到服务器,是一对一的绑定关系。连接优先级很高,可以在系统启动时自动挂载。甚至,可以通过类似 wireguard 这样的 vpn 软件进行外网访问。
jamos
2025 年 5 月 3 日
我就是 iSCSI 分配 20G 空间给虚拟机 win08 ,微信,QQ 的目录放在里面,稳定运行 2 年了
xiafengjieying
2025 年 11 月 23 日
@jamos 如果这个虚拟机挂了,这个文件系统还可以挂载到虚拟机或者其他 win 么?
jamos
2025 年 11 月 23 日
可以的, 把他理解为单独的一块硬盘。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1129271

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX