关于 smaba 和 nfs 的区别?

2022-04-25 14:18:03 +08:00
 Lighthughjiajin

想把家里的树莓派作为文件共享中心,其它的 PC(Windows 、Mac) 和 手机 (IOS 、Android) 可以映射 树莓派里的某一目录,还提供 对应的 web 访问文件的形式,目前在用的是 smaba 。 想了解下 smaba 和 nfs 有什么区别? 或者类似的工具还有哪些?又或者有没什么大佬家里有类似的场景采用的其它方案的~

3993 次点击
所在节点    程序员
17 条回复
julyclyde
2022-04-25 14:28:06 +08:00
samba 是“以某身份 mount 共享出来的文件”
nfs 是“先 mount 上,然后再以某身份访问”
你细品
codefever
2022-04-25 14:28:27 +08:00
samba 就能解决 win 和 linux,linux 和 linux 之间的共享,但是 SMB 协议是 MS 的,SMB 的高级特性是和 windows 的特性联系紧密的.linux 是向 windows 靠拢才用的 smb,但是累赘而且力不从心.
比如我的 debian,安装 nfs-server 和 client 只要 800K, 安装 smbclient 就要 19M, 这其中的差别是显而易见的.
NFS 更简洁,方便,更原生,兼容性更好.

smb 好处是和 windows 集成,可以利用 windows 域等
zhouzm
2022-04-25 14:30:12 +08:00
nfs 不行的,缺乏用户管理机制,如果你是 linux <-> linux 可以使用。

通常 samba 就够了啊,如何你有通过公网访问的需求,可以考虑 webdav
Lighthughjiajin
2022-04-25 14:32:07 +08:00
那就是如果使用 nfs 的话,那 windows 就不能添加一个网络位置 挂到树莓派上?
libook
2022-04-25 14:43:32 +08:00
我目前的方案是,NAS 上开 NFS ,mount 到另一台 Docker Host 上,然后跑容器的时候从这个挂载目录里面挂载子目录作为卷。

NFS 的缺点就是本身没有用户权限管理机制,但优点也是没有用户权限管理机制,就只负责传达文件操作和数据,具体认证和鉴权是由服务端系统自己的用户权限机制来完成的。对我上述的使用场景来说,我不同的容器可能会以不同的用户 ID 和组 ID 来操作卷里的文件,NFS 就比较合适,如果是 SMB 、SSHFS 之类的协议,就不大合适。

但 NFS 对网络质量要求可能会高一些。

另外用 NFS 的时候要注意安全问题,因为它本身没有认证和保密措施,你如果十分信任当前网络的话可以忽略,否则只能套些其他方案来确保安全。
eason1874
2022-04-25 14:49:56 +08:00
nfs 是协议(网络文件系统),smb 是软件(网络文件分享)

nfs 权限验证是系统级的,smb 权限是用户级的

主机之间的文件读写用 nfs ,用户之间的文件分享用 smb ,跨系统通常也是用 smb ,所以你用 smb 是对的,实际上你跨平台要想用 nfs 也是非常麻烦的
Linken404
2022-04-25 14:56:35 +08:00
windows 对 nfs 兼容不好,如果有 windows 下挂载的需求就不要选 nfs 。对大小写的兼容以及对中文目录的兼容都有问题。
Donahue
2022-04-25 15:51:04 +08:00
跨平台 samba 兼容性最好,各个系统都能用
davidyin
2022-04-25 19:31:00 +08:00
对于速度也有很大差别
emberzhang
2022-04-25 19:35:03 +08:00
macOS 开的 smb 共享,PVE 567 三个大版本都无法访问
dilu
2022-04-25 19:36:49 +08:00
无脑 smba 就行了 别纠结
ysc3839
2022-04-25 21:29:22 +08:00
@eason1874 NFS 和 SMB 都是协议,Samba 是支持 SMB 协议的一个软件。除了 Samba ,ksmbd 也支持 SMB 协议。
FrankHB
2022-04-25 21:50:54 +08:00
@eason1874 实现是 samba 。SMB 是 Server Message Block ,也是一种协议。SMB 的一个早期版本又叫 CIFS(Common Internet File System),也是“文件系统”。Linux 内核的 SMB 实现也直接叫 cifs 。
ziseyinzi
2022-04-25 22:12:11 +08:00
NFS 太老了,连用户认证都不自带,想要用户认证需要配 Kerberos/LDAP 那套东西。SMB 的缺点是性能有问题,尤其是有些客户端还在用老旧的 SMB 实现,速度超慢。
eason1874
2022-04-26 04:10:48 +08:00
@ysc3839 @FrankHB 确实,我不该用 smb 作为 samba 缩写,还得分开
chengyiqun
2022-04-26 09:52:01 +08:00
别纠结了,
我用树莓派接硬盘盒, NTFS 文件系统, samba 共享文件, windows 访问, 我是用千兆交换机连接的.
反正, 看高清视频是没啥问题的. 想要跑满硬盘, 对 cpu 要求会高, 但是对于 4b 来说不是事.
当然速度比不过那些 NAS 就是了. 但也够用了
zjsxwc
2022-04-26 09:58:43 +08:00
个人体会是在 vagrant 虚拟机开发时,cifs 的 samba 读写速度与稳定性都比 nfs 好

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

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

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

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

© 2021 V2EX