在Windows 2008 Server R2上(充当客户端)我安装了Windows Services for NFS的客户端和使用NFS安装为Y:的服务器.该服务器还支持CIFS.当我使用启动/运行打开到服务器的UNC路径时,它使用CIFS进行连接,但是当同一客户端上的应用程序通过使用NFS连接的相同UNC路径时.在两种情况下都使用完整的UNC路径(不是Y:驱动器号).
Windows如何确定在传递UNC路径时是使用NFS还是CIFS?
情景A:
要在同一主机上运行的两个进程之间共享读/写内存块,Joe会从两个进程中映射相同的本地文件.
情景B:
为了在两个不同主机上运行的两个进程之间共享读/写内存块,Joe在主机之间通过nfs共享文件,然后从两个进程mmaps共享文件.
有人试过Scenario B吗?场景B中出现的哪些额外问题不适用于场景A?
我需要找到一种方法来刷新客户端的NFS属性缓存.stat()调用从属性缓存中读取ctime而不是实际值,实际值最多需要3秒才能在缓存中反映出来.在安装工作时使用'noac'选项,但从长远来看会影响性能.
我遇到了解决方案,比如在文件的同一所有者上做了一个chown,但在执行stat()之前是否有适当的方法来刷新属性缓存?这个问题只发生在Redhat Linux而不是FreeBSD上.谁能解释一下?
背景:我曾经使用MAMP进行开发,并且在几个月/几年内我积累了一个大型的mysql数据库(几个演出),我用它来开发我的不同项目.我终于开始使用Vagrant设置一个虚拟机了,除了我的数据库之外,我已经完成了所有设置和工作.我在OSX主机上运行CentOS 6.5来宾框.
我的问题:我需要我的数据库是完全持久的,所以我可以根据我的需要流浪/销毁尽可能多的盒子,但是mysql仍然存在.
我的解决方案#1:我最初使用vboxsf安装了一个同步文件夹.这很好用,到目前为止似乎是我最好的选择,但性能非常糟糕.我的开发站点上的查询密集型页面需要1-3秒才能加载,而它们通常需要一秒钟才能加载.
我的解决方案#2:然后我尝试使用nfs挂载同步文件夹,因为性能应该更好.这里的问题是mysql抱怨b/c,鉴于nfs的性质,它无法将数据目录chown到mysql:mysql用户.尝试启动mysqld服务时出现以下错误:
chown: changing ownership of '/www/mysql': Operation not permitted
chmod: changing permissions of '/www/mysql': Permission denied
Sooo,我的问题是:有没有更好的方法来完成我需要的东西?我觉得NFS是最好的解决方案,但我不知道如何使用Vagrant自动解决整个所有权/权限问题.任何帮助,将不胜感激.
我有一个NFS_Server - NFS_Client系统.我的客户端挂载到NFS_Server 目录.我想通过使用扩展文件属性(xattr)通过NFS_Client挂载目录更改NFS_Server目录文件的属性.
当我尝试从客户端设置属性时,它给出以下答案:
root @ ubuntu:/ mnt/nfs/var/nfs#setfattr -n user.comment -v "some comment" test.txt
setfattr: nfs.txt: 权限被拒绝
我的问题是:
是否可以通过NFS使用扩展文件属性?
如果可能的话,我该怎么做?
更新:
服务器端:
$ more /etc/exports file has:
/var/nfs 192.168.56.123(rw,sync,no_subtree_check)
Run Code Online (Sandbox Code Playgroud)
客户端:
$ root@ubuntu:/# mount -t nfs
192.168.56.130:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=192.168.56.130,clientaddr=192.168.56.123)
Run Code Online (Sandbox Code Playgroud)
谢谢...
我有一个从官方mysql构建的数据库容器docker pull mysql.
我有一个app用Cake构建的前端应用程序.
我有一个cms使用Symfony构建的后端应用程序.
我有集装箱进行链接设置为两个app,并cms启动并自动连接到db.
一切都很好但是boot2docker的速度非常慢.
我一直在努力了解如何在NFS中使用Vagrant.
网上有一些不同的教程和例子,但到目前为止我一直无法上手.我已经安装了最新的Vagrant并使用了这个例子yungsang/boot2docker但是当我尝试最简单的命令时,docker images我不断收到错误FATA[0000] An error occurred trying to connect: Get https://localhost:2375/v1.16/images/json: tls: oversized record received with length 20527.
我发现,如果我vagrant ssh进入VM,我可以运行docker images等等,但这不是我想要的; 我习惯直接从Mac OS X终端运行docker命令.很明显我误解了一些东西.另外关于流浪博客使用教程rsync和--provider=docker这也似乎有必要不使用yungsang/boot2docker流浪汉框.
我会感激一些指导,感觉我在这个问题上耗尽了我的Google搜索功能.
参考文献:
https://www.vagrantup.com/blog/feature-preview-vagrant-1-6-docker-dev-environments.html https://github.com/boot2docker/boot2docker/issues/64 https:// vagrantcloud. COM/yungsang /盒/ boot2docker
为了保护NFS(网络文件系统),mount选项krb5p可用于加密文件服务器和NFS客户端之间的所有流量.身份验证和密钥交换基于Kerberos.以下是如何为Debian配置的示例:https://wiki.debian.org/NFS/Kerberos
不幸的是,似乎没有办法配置用于此传输加密的密码.使用什么密码以及如何配置,选择或强制执行此密码?
我正在复制控制器示例 [1] 中尝试 Kubernetes NFS 卷声明。
我已经设置了 NFS 服务器、PV 和 PVC。我的复制控制器看起来像这样
apiVersion: v1
kind: ReplicationController
metadata:
name: node-manager
labels:
name: node-manager
spec:
replicas: 1
selector:
name: node-manager
template:
metadata:
labels:
name: node-manager
spec:
containers:
-
name: node-manager
image: org/node-manager-1.0.0:1.0.0
ports:
-
containerPort: 9763
protocol: "TCP"
-
containerPort: 9443
protocol: "TCP"
volumeMounts:
- name: nfs
mountPath: "/mnt/data"
volumes:
- name: nfs
persistentVolumeClaim:
claimName: nfs
Run Code Online (Sandbox Code Playgroud)
当我尝试部署Replication Controller时,容器处于ContainerCreating状态,我可以在minion的日志中看到以下错误
Feb 26 11:39:41 node-01 kubelet[1529]: Mounting arguments: 172.17.8.102:/ /var/lib/kubelet/pods/0e66affa-dc79-11e5-89b3-080027f84891/volumes/kubernetes.io~nfs/nfs nfs []
Feb 26 11:39:41 node-01 …Run Code Online (Sandbox Code Playgroud) 我results.txt在服务器上有一个文件,多个 VM 通过 NFS 访问该文件。一个进程在每个 VM 上运行,它读取results.txt文件并修改它。如果两个进程,A和B,同时读取文件,则 A 或 B 的修改将results.txt根据进程写入文件的顺序出现。
如果进程A对文件有写锁,则进程B必须等到锁被释放才能读取results.txt文件。
我曾尝试使用 Python 实现这一点:
import fcntl
f = open("/path/result.txt")
fcntl.flock(f,fcntl.LOCK_EX)
#code
Run Code Online (Sandbox Code Playgroud)
它对本地磁盘上的文件按预期工作。
但是当我运行尝试锁定挂载路径上的文件时,出现以下错误:
Traceback (most recent call last):
File "lock.py", line 12, in <module>
fcntl.flock(f,fcntl.LOCK_EX)
IOError: [Errno 45] Operation not supported
Run Code Online (Sandbox Code Playgroud)
我试过了fcntl.fcntl,fcntl.flock但得到了同样的错误。这是我使用方式的问题fcntl吗?存储文件的服务器是否需要任何配置?
编辑:
这就是我使用的方式fcntl.fcntl:
f= open("results.txt")
lockdata = struct.pack('hhllhh', fcntl.F_RDLCK,0,0,0,0,0)
rv = fcntl.fcntl(f, fcntl.F_SETLKW, lockdata) …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 AWS EFS 挂载到我的本地 macbook(还有其他本地计算机)但是,在尝试了很多事情之后,它不起作用。
我的端口 22 和 2049 作为测试是完全开放的。
我尝试了几个命令
mount -t nfs4 -o nfservers=4.1 xxx.xxx.xxx.xxx:/ efs/
但我不断收到connection timed out错误。
我还尝试将此 EFS 安装到另一个 AWS 帐户 EC2 实例。但不断得到同样的错误。
例如。我在 Account1 中有 EFS,在 Account2(不同的 VPC)中有 EC2 并尝试
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 xxx.xxx.xxx.xxx:/ /efs/
它不工作。
它仅适用于我的 EC2 在同一个帐户(即 account1)中的情况。
有没有办法可以在不同的帐户或本地计算机上安装这个 EFS?
做了很多谷歌搜索和 AWS 论坛搜索......但没有运气。
encrypting-file-system nfs amazon-ec2 amazon-web-services amazon-efs
nfs ×10
linux ×3
nfsclient ×2
vagrant ×2
amazon-ec2 ×1
amazon-efs ×1
boot2docker ×1
caching ×1
cifs ×1
docker ×1
fcntl ×1
file-locking ×1
kerberos ×1
kubernetes ×1
mmap ×1
mount ×1
mysql ×1
osx-yosemite ×1
python ×1
python-2.7 ×1
stat ×1
unc ×1
vagrantfile ×1
virtualbox ×1
windows ×1
xattr ×1