【问题标题】:kubernetes creating empty directories on nfskubernetes 在 nfs 上创建空目录
【发布时间】:2019-08-02 20:40:43
【问题描述】:

我在集群上运行 mongodb pod。我已将 pod 卷设置为 nfs 共享。 mongodb的/data目录存储在nfs主机上,nfs主机中的路径为/var/nfs/general。问题是我可以在/var/nfs/general 中找到db 和configdb,但它们是空的。 dirs的树形结构如下:

nfs/
└── general
    ├── configdb
    └── db 

我正在使用 nfs 将数据/日志写入我的 nfs 服务器。所以这些应用程序可以有嵌套的日志目录。

文件/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 NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/var/nfs/general   *(rw,no_subtree_check)

任何帮助/建议将不胜感激。

【问题讨论】:

    标签: kubernetes nfs


    【解决方案1】:

    您是否指定了正确的 NFS 挂载选项? (bg、nolock 和 noatime) 见here:

    在 Kubernetes 1.13 中,您可以在 NFS PersistentVolume 定义中指定“mountOptions”。以下示例直接取自 Kuberenetes 文档:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv0003
    spec:
      capacity:
        storage: 5Gi
      volumeMode: Filesystem
      accessModes:
        - ReadWriteOnce
      persistentVolumeReclaimPolicy: Recycle
      storageClassName: slow
      mountOptions:
        - hard
        - nfsvers=4.1
      nfs:
        path: /tmp
        server: 172.17.0.2
    

    通常不建议在 NFS 上运行数据库,因为您可能会遇到:

    1. 性能下降,因为在网络文件系统中锁定和存储数据通常比本地 FS 慢。此外,MongoDB 还使用基于内存映射文件的 MMAPv1 引擎,这些文件非常频繁地写入磁盘。

    2. 当多个装载写入同一个数据库时可能会丢失数据。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-24
      • 1970-01-01
      • 2022-09-28
      • 2017-09-07
      • 1970-01-01
      • 2020-10-04
      • 2021-04-13
      • 1970-01-01
      相关资源
      最近更新 更多