标签: nfs

mount.nfs:在 Ubuntu 机器上安装时服务器拒绝访问?

我有三台机器在生产 -

machineA    10.66.136.129
machineB    10.66.138.181
machineC    10.66.138.183
Run Code Online (Sandbox Code Playgroud)

所有这些机器都安装了 Ubuntu 12.04,我对所有这三台机器都有 root 访问权限。

现在我应该在上面的机器上做下面的事情 -

Create mount point /opt/exhibitor/conf
Mount the directory in all servers.
 sudo mount <NFS-SERVER>:/opt/exhibitor/conf /opt/exhibitor/conf/
Run Code Online (Sandbox Code Playgroud)

/opt/exhibitor/conf如上所述,我已经在所有这三台机器中创建了目录。

现在我正在尝试创建一个挂载点。所以我遵循了以下过程 -

以上三台机器都安装NFS支持文件和NFS内核服务器

$ sudo apt-get install nfs-common nfs-kernel-server
Run Code Online (Sandbox Code Playgroud)

在以上三台机器上创建共享目录

$ mkdir /opt/exhibitor/conf/
Run Code Online (Sandbox Code Playgroud)

/etc/exports在以上三台机器中编辑并添加了这样的条目 -

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu nfs mount

75
推荐指数
5
解决办法
41万
查看次数

正确锁定 shell 脚本?

有时您必须确保同一时间只有一个 shell 脚本实例正在运行。

例如,通过 crond 执行的 cron 作业本身不提供锁定(例如默认的 Solaris crond)。

实现锁定的常见模式是这样的代码:

#!/bin/sh
LOCK=/var/tmp/mylock
if [ -f $LOCK ]; then            # 'test' -> race begin
  echo Job is already running\!
  exit 6
fi
touch $LOCK                      # 'set'  -> race end
# do some work
rm $LOCK
Run Code Online (Sandbox Code Playgroud)

当然,这样的代码有竞争条件。有一个时间窗口,其中两个实例的执行都可以在第 3 行之后才能访问$LOCK文件。

对于 cron 作业,这通常不是问题,因为两次调用之间有几分钟的间隔。

但是事情可能会出错——例如,当锁定文件在 NFS 服务器上时——挂起。在这种情况下,多个 cron 作业可以在第 3 行阻塞并排队。如果NFS服务器再次处于活动状态,那么你已经惊群并行运行的作业。

在网上搜索我发现工具lockrun似乎是该问题的一个很好的解决方案。使用它,您可以运行一个需要像这样锁定的脚本:

$ lockrun --lockfile=/var/tmp/mylock myscript.sh
Run Code Online (Sandbox Code Playgroud)

您可以将其放在包装器中或从您的 crontab 中使用它。

lockf()如果可用,它使用(POSIX) 并回退到flock()(BSD)。并且lockf()对 NFS …

cron nfs shell-script coreutils lock

71
推荐指数
6
解决办法
6万
查看次数

/etc/exports 文件中的 NFS 服务器更改需要服务重启?

我有 NFSv4 服务器(在 RHELv6.4 上)和 NFS 客户端(CentOSv6.4)。让我们说/etc/exports

/shares/website1      <ip-client-1>(rw,sync,no_subtree_check,no_root_squash)
/shares/website2      <ip-client-2>(rw,sync,no_subtree_check,no_root_squash)
Run Code Online (Sandbox Code Playgroud)

然后每当我对此进行一些更改时(假设更改仅适用于client-2),例如:

/shares/website1      <ip-client-1>(rw,sync,no_subtree_check,no_root_squash)
/shares/xxxxxxxx      <ip-client-2>(rw,sync,no_subtree_check,no_root_squash)
Run Code Online (Sandbox Code Playgroud)

然后我总是service nfs restart。然后最终..挂载点client-1没有响应 (无法打开其文件等)(为什么?因为RESTART?)

但如上所述,我只修改了该行client-2。一切client-1都还没有改变。

所以我的问题是:

  • 每当我修改时/etc/exports,我应该restart提供服务还是什么?
  • 如果 i service nfs restart,为什么其他客户端上的挂载点最终会受到影响?(对于那些没有对其进行任何更改的客户端机器/etc/exports。)

这意味着,每当我做出改变/etc/exportsrestart服务,我将需要去重新mount上的目录EVERY CLIENTS导出列表中,以具有安装点再次合作。

有什么想法吗?

nfs mount services

49
推荐指数
1
解决办法
20万
查看次数

如何确定 NFS 挂载是作为 v3 还是 v4 挂载的?

Red Hat 5/6 当我挂载时它说类型 nfs,我想知道如果它没有在挂载选项或 fstab 中列出,我想知道如何确定版本。请不要说用版本选项重新挂载它,我想知道如何确定当前挂载的NFS版本。我猜它会根据 NFS 服务器/客户端设置默认,但我如何确定它当前是什么?我很确定它是 NFS v3,因为似乎不支持 nfs4_setfacl。

linux acl nfs mount

44
推荐指数
4
解决办法
17万
查看次数

如何删除这个不可磨灭的目录?

我解压了一个损坏的 tar 文件,并设法得到了一些我无法删除的目录,如果我尝试删除它,似乎找不到ls它,但显示它存在,无论是使用 bash 还是使用 python 我得到类似的行为,除了在我尝试用 删除它之后rm -rfls抱怨它找不到它,然后它列出它(见下文rm -rf)。该find命令显示文件存在,但我仍然想不出删除它的方法。
这是我的尝试:

在这里你看到了两者lsfind同意我们有一个目录,

rl]$ ls
mikeaâ??cnt
rl]$ find -maxdepth 1 -type d -empty -print0  
./mikeaâcnt 
Run Code Online (Sandbox Code Playgroud)

但我无法删除它:

rl]$ find -maxdepth 1 -type d -empty -print0 |  xargs -0 rm -f -v 
rm: cannot remove `./mikeaâ\302\201\302\204cnt': Is a directory
rl]$ ls
mikeaâ??cnt
Run Code Online (Sandbox Code Playgroud)

我可以cd,但它是空的:

rl]$ cd mikeaâ^Á^Äcnt/
mikeaâ^Á^Äcnt]$ ls
mikeaâ^Á^Äcnt]$ pwd
.../rl/mikeaâcnt


mikeaâ^Á^Äcnt]$ cd ../
rl]$ ls
mikeaâ??cnt …
Run Code Online (Sandbox Code Playgroud)

directory nfs rm files

40
推荐指数
3
解决办法
5万
查看次数

在 linux 上使用“&gt;&gt;”时,bash 是否会打开 O_APPEND 中的文件?

如果我们使用,echo 1234 >> some-file则文档说明输出已附加。

我的猜测是,如果 some-file 不存在,那么 O_CREAT 将创建一个新文件。如果>使用,则 O_TRUNC 将截断现有文件。

的情况下 >>:文件是否会被打开为 O_WRONLY(或 O_RDWR)并寻求结束并完成写入操作,模拟 O_APPEND?还是将文件作为 O_APPEND 打开,将其留给内核以确保发生附加?

我问这个是因为当输出文件来自 NFS 挂载点时,保存进程正在覆盖由 echo 插入的一些标记,并且 NFS 文档说服务器不支持 O_APPEND,因此客户端内核将不得不处理它。我猜保护进程正在使用 O_APPEND ,但不确定 bash>>在 linux 上,因此在这里提出问题。

linux nfs glibc files

38
推荐指数
4
解决办法
3682
查看次数

为什么 Linux NFS 服务器在内核中实现而不是在用户空间中实现?

我只是想知道为什么 Linux NFS 服务器是在内核中实现的,而不是用户空间应用程序?

我知道存在用户空间 NFS 守护程序,但这不是提供 NFS 服务器服务的标准方法。

我认为将 NFS 服务器作为用户空间应用程序运行将是首选方法,因为它可以提供额外的安全性,让守护程序在用户空间而不是内核中运行。它也符合做一件事并做好它的常见 Linux 原则(并且守护进程不应该是内核的工作)。
事实上,我能想到的在内核中运行的唯一好处是上下文切换带来的性能提升(这是一个有争议的原因)。

那么是否有任何记录在案的原因,为什么它是这样实施的?我尝试谷歌搜索,但找不到任何东西。


似乎有很多混乱,请注意我不是在问挂载文件系统,我问的是提供网络文件系统服务器端。有一个非常明显的区别。在本地挂载文件系统需要内核支持文件系统,前提是它不支持(例如 samba 或 unfs3)。

linux kernel nfs

36
推荐指数
3
解决办法
2万
查看次数

有人可以通过互联网嗅探 NFS 吗?

我想使用 NFS 从工作中连接到我的家庭服务器。我试过 sshfs 但有人说它不如 NFS 可靠。

我知道 sshfs 流量是加密的。但是 NFS 呢?有人可以嗅探我的流量并查看我正在复制的文件吗?

我在 LAN 中使用 NFSv4,效果很好。

security nfs

30
推荐指数
3
解决办法
4万
查看次数

在局域网上复制大文件的快速方法

我在使用 NFS 时遇到了一些问题,我想尝试仅使用普通的旧 TCP。

不过,我不知道从哪里开始。

在硬件方面,我使用以太网交叉电缆连接两台上网本。

为了联网它们,我输入

$ sudo ifconfig eth0 192.168.1.1 up && ping -c 10 -s 10 192.168.1.2 && sudo /etc/init.d/nfs-kernel-server start
Run Code Online (Sandbox Code Playgroud)

在第一台上网本和

$ sudo ifconfig eth0 192.168.1.2 up
$ ping -c 10 -s 10 192.168.1.1
$ mount /mnt/network1
Run Code Online (Sandbox Code Playgroud)

在第二

其中/mnt/network1在 /etc/fstab 中指定为

192.168.1.1:/home /mnt/network1 nfs noauto,user,exec,soft,nfsvers=2 0 0

以及/etc/exports(使用该文件的语法),在第一台上网本上。

以上工作正常,但文件和目录很大。这些文件平均每块大约半 GB,目录大小都在 15 到 50 GB 之间。

我正在rsync用来传输它们,命令(上192.168.1.2)是

$ rsync -avxS /mnt/network1 ~/somedir
Run Code Online (Sandbox Code Playgroud)

我不确定是否有办法调整我的 NFS 设置以更好地处理大文件,但我想看看rsync在普通旧 TCP 上运行守护程序是否比 …

networking nfs file-copy tcp

30
推荐指数
2
解决办法
7万
查看次数

如何正确导出和导入具有子目录作为挂载点的 NFS 共享?

服务器使用选项通过 NFSA导出目录。内的子目录,是一个使用NFS服务器上的其他位置安装点的选择,像/srvnohide/srv/srv/foo--bind

server# mount --bind /bar/foo/ /srv/foo/

客户端使用 NFSB导入A:/srv并安装它/mnt/srv。的内容/mnt/srv是 的内容A:/srv

问题是那/mnt/srv/foo是空的,而我期待看到A:/bar/foo/那里的内容。

如何正确导出和导入具有子目录作为挂载点的 NFS 共享?

nfs mount

28
推荐指数
3
解决办法
9万
查看次数

标签 统计

nfs ×10

linux ×4

mount ×4

files ×2

acl ×1

coreutils ×1

cron ×1

directory ×1

file-copy ×1

glibc ×1

kernel ×1

lock ×1

networking ×1

rm ×1

security ×1

services ×1

shell-script ×1

tcp ×1

ubuntu ×1