这可能是几个问题,但我觉得这是一个类似的问题。安装的可执行文件在哪台计算机上执行?这会随着 like sshfs
、nfs
、 or的改变而改变吗ln
?就像如果你有一个存储服务器和一个计算服务器,存储服务器上的可执行包可以在计算服务器上运行吗?
由于某种原因,属于特定组的用户(该组在 NFS 目录上有 rwx)无法 cd 进入该目录。我在这里不知所措,一定有我想念的东西。客户端和服务器都是 Debian 11 服务器
在 NFS 客户端上,这里是用户/组信息:
root@client:/# ls -lisa /media/
total 17
4 drwxr-xr-x 5 root root 4096 Apr 15 14:33 .
4 drwxr-xr-x 17 root root 4096 Aug 16 05:14 ..
4 drwxrwx--- 5 media media 4096 Sep 2 20:41 Download
root@client:/# ls -lisa /media/Download/
total 36
2 4 drwxrwx--- 6 media media 4096 Sep 3 09:05 .
783361 4 drwxr-xr-x 5 root root 4096 Sep 3 09:04 ..
11 16 drwxrwx--- 2 media media 16384 Apr 11 17:55 lost+found
11272193 4 drwxr-xr-x 2 media media 4096 Sep 3 09:05 testdir
12 0 -rw-r--r-- 1 media media 0 Sep 3 09:04 test.txt
root@client:/# id media
uid=1090(media) gid=1090(media) groups=1090(media)
root@client:/# id user
uid=1000(user) gid=1000(user) groups=1000(user),1090(media)
root@client:/# cat /etc/passwd | egrep "user|media"
user:x:1000:1000:user,,,:/home/user:/bin/bash
media:x:1090:1090::/home/media:/usr/sbin/nologin
root@client:/# mount
192.168.24.10:/media/Download on /media/Download type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.24.5,local_lock=none,addr=192.168.24.100)
user@client:~$ whoami | id
uid=1000(user) gid=1000(user) groups=1000(user),1090(media)
user@client:~$ ls -lisa /media/Download/
ls: cannot open directory '/media/Download/': Permission denied
为什么用户被拒绝访问下载文件夹?它们是组媒体的一部分,并且该文件夹具有该组的 rwx。这里有什么问题?
在 NFS 服务器上:
root@server:/# ls -lisa /media/
total 16
128771 4 drwxr-xr-x 4 root root 4096 Apr 15 04:32 .
2 4 drwxr-xr-x 18 root root 4096 Aug 16 08:12 ..
2 4 drwxrwx--- 6 media media 4096 Sep 3 08:05 Download
root@server:/# ls -lisa /media/Download/
total 36
2 4 drwxrwx--- 6 media media 4096 Sep 3 08:05 .
128771 4 drwxr-xr-x 4 root root 4096 Apr 15 04:32 ..
11 16 drwxrwx--- 2 media media 16384 Apr 11 16:55 lost+found
11272193 4 drwxr-xr-x 2 media media 4096 Sep 3 08:05 testdir
12 0 -rw-r--r-- 1 media media 0 Sep 3 08:04 test.txt
root@server:/# id media
uid=1090(media) gid=1090(media) groups=1090(media)
root@server:/# cat /etc/exports
/media/Download 192.168.24.5/32(rw,anonuid=1090,anongid=1090,no_subtree_check,root_squash)
root@server:/# cat /etc/passwd | grep media
media:x:1090:1090::/home/media:/usr/sbin/nologin
如果我将 NFS 服务器目录权限更改为 777,那么我可以从客户端读取和写入下载。但显然我宁愿限制更多,只让允许的用户在该目录中读/写。
我已经多次重新启动客户端和服务器,但同样的权限被拒绝。
我正在尝试在企业网络环境中部署 podman 用户服务,在该环境中,所有 Linux 用户的主目录都从公共文件服务器 NFS 挂载。当我的用户在每台机器上的主目录被 nfs 挂载到同一个共享时,我不确定如何拥有特定于计算机的用户级服务。
为了让 podman 能够干净地使用网络主目录,我发现我需要将设置graphroot
设置为指向每台本地机器上的某个位置,否则每台机器上的容器将尝试使用相同的存储并感到困惑。好的,我可以做到(尽管需要与 IT 部门合作进行设置)。
将 pod/容器转换为用户级服务(使用podman generate systemd
)时,我通常会将.service
文件放入其中,~/.config/systemd/user
但这也在网络共享中,因此会影响我在每个位置的用户。
有没有解决这个问题的标准方法?我如何在每台机器上拥有用户级服务(即我可能希望不同的机器拥有不同的服务,特别是如果这些服务是由它们的 ID 引用的容器)?
奖金问题扩展:我也打算设置loginctl enable-linger
. 由于 NFS 主目录是延迟挂载的,这实际上会导致服务在启动时启动吗?
如何查看nfsd
我的 Mac 上正在运行的服务人员数量?
语境
我正在使用一个非常慢的 Vagrant 环境。tcpdump -i any port not 22
从虚拟机内部看,我可以看到网络接口的负担很大。并查看盒子内的bpytop 。
我可以从这两篇文章中读到:
...可以通过更改nfsd
-daemon 正在运行的服务人员数量来改进 NFS。但是他们关于如何做到这一点的指南是 Unix 特定的——我在 Mac 上。
而且我很难弄清楚,我是如何看到我运行了多少服务人员的。
解决方案尝试
- 我试着看
nfsstat
,但在那里看不到它。 - 我试着
nfsstat
用这个命令每秒运行一次:while true; do nfsstat; echo " \n\n --------- \n\n $(date '+%H:%M:%S') \n\n"; sleep 1; done
- 看看我是否能在某个地方发现任何重大变化。 - 我看了看,
/etc/nfs.conf
但那是空的(忽略顶部的评论)。 - 我也看了看
/etc/exports/
,但这只是列出了已安装的文件夹。 - 我试着看
ps aux | egrep "nfs|PID"
,但我真的看不到那里有任何重要的东西。
我正在尝试使用选项在 Windows 上安装 NFS 共享,但出现错误。
PS C:\Users\cclloyd> mount 10.0.40.1:/srv/Config H: -o nolock
New-PSDrive: Parameter cannot be processed because the parameter name 'o' is ambiguous. Possible matches include: -OutVariable -OutBuffer.
为什么我会收到此错误?所有指南和教程都显示此命令运行良好。我也在 Windows 中安装了所有 NFS 服务。
让 Free/TrueNAS 设备愉快地为 SMB/AFP 提供服务,但对 NFS 不太满意 =(
TrueNAS 设置:
[X] 启用 NFSv4
[ ] NFSv4 的 NFSv3 所有权模型
[] NFSv4 需要 Kerberos
[] 服务器 UDP NFS 客户端
[X] 允许非 root 挂载
[ ] 支持 >16 组
[] 记录 mountd(8) 请求
[ ] 记录 rpc.statd(8) 和 rpc.lockd(8)
(选中/未选中“启用 NFSv4”的结果相同)
我添加了一个 NFS 共享,具有默认设置服务器/客户端上都存在
相同的用户(UID/GID)
在
内设置以下内容fstab
以允许从非 root 安装:
192.168.1.50:/mnt/tank/bob /mnt/nfs/bob nfs defaults 0 0
发出以下结果会导致超时:
% mount -vvv 192.168.1.50:/mnt/tank/bob /mnt/nfs/bob
mount.nfs: timeout set for Thu Jan 14 17:26:42 2021
mount.nfs: trying text-based options 'vers=4.2,addr=192.168.1.50,clientaddr=192.168.1.51'
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out
我还在/etc/host
两台机器上添加了条目:
服务器:
192.168.1.51 myhost myhost.mydomain.com
客户端:
192.168.1.50 serverhost serverhost.mydomain.com
从客户端,nfs-ls
可以列出共享上的内容就好了:
nfs-ls nfs://192.168.1.50/mnt/tank/bob
-rw-r--r-- 1 1234 1234 212 .rhosts
-rw------- 1 1234 1234 1572 .history
-rw-r--r-- 1 1234 1234 983 .cshrc
-rw------- 1 1234 1234 37 .lesshst
-rw-r--r-- 1 1234 1234 782 .shrc
-rw-r--r-- 1 1234 1234 301 .mail_aliases
-rw-r--r-- 1 1234 1234 267 .mailrc
-rw-r--r-- 1 1234 1234 91 .login_conf
-rw-r--r-- 1 1234 1234 881 .profile
-rw-r--r-- 1 1234 1234 323 .login
这个问题适用于 debian 附带的 nfsv4 实现。
如果两台主机都挂载了 nfs 共享,并且 fs 中存在一个套接字,那么两台主机上的进程可以通过这个套接字相互通信吗?
我们有一个具有 32 个计算节点的中型科学集群。头节点为 RAID-6 的 54TB 存储提供服务。它由 22 个 3TB HDD(2 个奇偶校验单元)和 256K 的条带大小组成。NFS 是 /home。我们最近一直在经历糟糕的 I/O 性能。当我执行时,xfs_info /home
我看到以下内容
meta-data=/dev/sdb1 isize=256 agcount=55, agsize=268435455 blks
= sectsz=512 attr=2, projid32bit=0
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=14648380928, imaxpct=1
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=521728, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
有人指出 sunit 和 swidth 应该匹配 RAID 配置。在我们的例子中,sunit 必须是 256K,swidth 必须是 20。显然,我可以重置这些值的唯一方法是通过 mkfs.xfs。但是,我有点犹豫,我害怕丢失用户数据
我的问题是:使用 mkfs.xfs 重新配置分区表是否可能会丢失用户数据?更改单位和宽度最安全的方法是什么?
我会很感激你的意见和建议
谢谢