我最近尝试安装一个有流浪汉的虚拟机,但"流浪汉"总是失败并出现错误:
挂载NFS共享文件夹失败.这通常是由于未在客户机上安装NFS客户端软件引起的.请验证NFS客户端软件是否已正确安装,并查阅您正在使用的Linux发行版的任何特定资源,以获取有关如何执行此操作的更多信息.
NFS客户端已正确安装在我的计算机上,因此我查找了其他错误原因,并找到一篇博文说明我的/ etc/exports可能已损坏.我恢复了exportsbak(只包含注释的例子),希望流浪者能够正确地重新配置该文件......但它没有,并且错误仍然存在.
如何强制vagrant重新生成该文件或修复它?谢谢.
我想问一下测试可用于测试Linux文件系统的套件.我正在寻找更多压力和负载测试套件,这可能会给系统带来压力,通过验证它所写的数据来查找损坏等等.
是否有这样的工具可用于本地FS(如ext*)和网络协议(如NFS/CIFS)?
提前致谢.
我正在尝试在python 3x和linux/macOS中实现"记录管理器"类.这个类相对容易和直接,我想要的唯一"硬"的东西是能够在多个进程上访问相同的文件(保存结果).
从概念上讲,这似乎很简单:保存时,获取文件的独占锁.更新您的信息,保存新信息,释放文件的独占锁定.很容易.
我正在使用fcntl.lockf(file, fcntl.LOCK_EX)获得独家锁.问题是,在网上看,我发现很多不同的网站都说这不可靠,它在Windows上不起作用,对NFS的支持是不稳定的,并且macOS和macOS之间的事情可能会发生变化. Linux操作系统.
我已经接受了代码不能在Windows上运行,但我希望能够在macOS(单机)和linux(在多个NFS服务器上)上运行.
问题是我似乎无法做到这一点; 经过一段时间的调试和在macOS上传递测试后,一旦我在使用linux(ubuntu 16.04)的NFS上尝试它们,它们就失败了.问题是多个进程保存的信息之间存在不一致 - 某些进程缺少修改,这意味着锁定和保存过程出现问题.
我相信,有什么我做错了,我怀疑这可能与我在网上读到有关的问题.那么,通过NFS处理在macOS和linux上运行的同一文件的多个访问权限的正确方法是什么?
编辑
这就是将新信息写入磁盘的典型方法如下:
sf = open(self._save_file_path, 'rb+')
try:
    fcntl.lockf(sf, fcntl.LOCK_EX)  # acquire an exclusive lock - only one writer
    self._raw_update(sf) #updates the records from file (other processes may have modified it)
    self._saved_records[name] = new_info
    self._raw_save() #does not check for locks (but does *not* release the lock on self._save_file_path)
finally:
    sf.flush()
    os.fsync(sf.fileno()) #forcing the OS to write to disk
    sf.close() #release …假设有两个python脚本想要将数据写入同一个表,该表使用该sqlite3模块存储在SQLite文件中.SQLite文件存储在NFS文件系统中.在SQLite-FAQ中我读到:
SQLite使用读取器/写入器锁来控制对数据库的访问.[...]但请注意:如果数据库文件保存在NFS文件系统上,则此锁定机制可能无法正常工作.这是因为许多NFS实现都会破坏fcntl()文件锁定.如果多个进程可能同时尝试访问该文件,则应避免将SQLite数据库文件放在NFS上.
这是否意味着它根本不可能或者是否有某种方法可以确保一个进程等待另一个进程完成?
INSERT并不复杂.一些:
INSERT_STATEMENT = "INSERT INTO some_table (row, col, val) VALUES (?, ?, ?)"
connection.executemany(INSERT_STATEMENT, triples)
并且插入的集合是不相交的.
另一个问题:当两个进程尝试写入同一个表或尝试写入同一个数据库(这是一个文件)时,是否会出现NFS问题?让每个进程在同一个数据库(文件)中创建自己的表并写入该表是否是一种解决方法?
Grunt watch(grunt-contrib-watch)用于触发浏览器中的Web应用程序重新加载.但是,在使用NFS同步文件夹的Vagrant虚拟机中运行时,发现文件更改的速度很慢.更改文件仅在大约5秒后触发重新加载,尽管预计几乎立即发生.为什么grunt看起来如此缓慢地检测到变化?有没有办法让它更快?
使用VirtualBox同步文件夹,grunt watch几乎可以立即检测到文件更改.但是,由于VirtualBox同步文件夹对于大量文件上的某些其他操作来说速度慢得令人无法接受,遗憾的是在这种情况下不能恢复为它.
我最近开始在本地集群中使用 NFS 卷。这对我来说是最简单和最好的解决方案,但在实际的安装选项方面似乎相当有限。
是否可以在volume.yml 文件中的节点/集群上设置挂载选项?
我的应用程序需要特定版本以及这些性能安装选项。
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs
spec:
  capacity:
    storage: 1Mi
  accessModes:
    - ReadWriteMany
  nfs:
    # FIXME: use the right IP
    server: 10.244.1.4
    path: "/"
无论如何要在这里添加安装标志吗?
我正在尝试从我的Qnap安装一个NFS共享到运行Manjaro(Arch Linux)的笔记本电脑但是我一直被服务器拒绝访问,我无法弄清楚问题是什么!
$ sudo mount 10.0.2.6:/backup /mnt/nas/backup
mount.nfs: access denied by server while mounting 10.0.2.6:/backup
装载点:
$ showmount -e 10.0.2.6
Export list for 10.0.2.6:
/backup      
/Web         
/Recordings  
/Public      
/Multimedia  
/Download    
/Containers  
我在我的单个容器EB部署中使用亚马逊提供的新弹性文件系统.我无法弄清楚为什么挂载的EFS无法映射到容器中.
EFS挂载已在/ efs-mount-point上的主机上成功执行.
提供给Dockerrun.aws.json是
{
  "AWSEBDockerrunVersion": "1"
  "Volumes": [
    {
      "HostDirectory": "/efs-mount-point",
      "ContainerDirectory": "/efs-mount-point"
    }
  ]
}
然后,一旦卷开始运行,就会在容器中创建卷.但是它已映射hosts目录/ efs-mount-point,而不是实际的EFS挂载点.我无法弄清楚如何让Docker映射到安装在/ efs-mount-point而不是主机目录的EFS卷中.
NFS卷与Docker一起玩得好吗?
我有以下持久量和音量声明:
kind: PersistentVolume
apiVersion: v1
metadata:
  name: kloud
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    server: 172.21.51.42
    path: /
    readOnly: false
和:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: kloud
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Gi
nfs服务器是AWS EFS.我特意ssh到k8s master并检查我可以手动挂载NFS卷.但是,当我使用kubectl创建卷和声明时,它会无限期挂起,等待:
$ kubectl get pvc
NAME      STATUS    VOLUME    CAPACITY   ACCESSMODES   STORAGECLASS   AGE
kloud     Pending                                      gp2            8s
如果我将模式更改为ReadWriteOnce,它将按预期工作,不会挂起.
$ kubectl get pvc
NAME      STATUS    VOLUME                                     CAPACITY   ACCESSMODES   STORAGECLASS   AGE
kloud     Bound     pvc-c9a01bff-94d0-11e7-8ed4-0aec4a0f734a   100Gi      RWO           gp2       
有什么我想念的吗?如何使用k8s和EFS创建RWX声明?
nfs ×10
linux ×5
kubernetes ×2
locking ×2
python ×2
vagrant ×2
cifs ×1
docker ×1
filesystems ×1
performance ×1
qnap ×1
sqlite ×1
testing ×1