zoukankan      html  css  js  c++  java
  • NFSv4 相关;NFSv4文件锁

    本博客是和nfsv4相关文章:

    操作参考:https://help.ubuntu.com/community/NFSv4Howto

    关于NFS安装请参考:https://www.cnblogs.com/xuyaowen/p/NFS_install.html

    NFSv4:https://linux.die.net/man/5/nfs 

    NFSv4扩展阅读:

    https://www.snia.org/sites/default/files/SNIA_An_Overview_of_NFSv4-3_0.pdf

    https://www.netapp.com/us/media/tr-3580.pdf

    https://www.netapp.com/us/media/tr-4067.pdf

    本文章操作系统:

    NAME="Ubuntu"
    VERSION="18.04.5 LTS (Bionic Beaver)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 18.04.5 LTS"
    VERSION_ID="18.04"
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    VERSION_CODENAME=bionic
    UBUNTU_CODENAME=bionic

    apt show -a nfs-common:

    ➜  ~ apt show -a nfs-common
    Package: nfs-common
    Version: 1:1.3.4-2.1ubuntu5.3
    Priority: optional
    Section: net
    Source: nfs-utils
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Debian kernel team <debian-kernel@lists.debian.org>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 768 kB
    Provides: nfs-client
    Depends: libc6 (>= 2.15), libcap2 (>= 1:2.10), libcom-err2 (>= 1.01), libdevmapper1.02.1 (>= 2:1.02.97), libevent-2.1-6 (>= 2.1.8-stable), libgssapi-krb5-2 (>= 1.14+dfsg), libkeyutils1 (>= 1.5.9), libkrb5-3 (>= 1.6.dfsg.2), libmount1 (>= 2.19.1), libnfsidmap2, libtirpc1 (>= 0.2.4), libwrap0 (>= 7.6-4~), rpcbind, adduser, ucf, lsb-base (>= 1.3-9ubuntu3), keyutils
    Recommends: python3
    Suggests: open-iscsi, watchdog
    Conflicts: nfs-client
    Breaks: nfs-kernel-server (<< 1:1.2.8-6~)
    Replaces: mount (<< 2.13~), nfs-client, nfs-kernel-server (<< 1:1.2.8-6~)
    Homepage: http://nfs.sourceforge.net/
    Supported: 5y
    Download-Size: 206 kB
    APT-Manual-Installed: yes
    APT-Sources: http://mirrors.aliyun.com/ubuntu bionic-updates/main amd64 Packages
    Description: NFS support files common to client and server
     Use this package on any machine that uses NFS, either as client or
     server.  Programs included: lockd, statd, showmount, nfsstat, gssd,
     idmapd and mount.nfs.
    
    Package: nfs-common
    Version: 1:1.3.4-2.1ubuntu5
    Priority: optional
    Section: net
    Source: nfs-utils
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Debian kernel team <debian-kernel@lists.debian.org>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 766 kB
    Provides: nfs-client
    Depends: libc6 (>= 2.15), libcap2 (>= 1:2.10), libcomerr2 (>= 1.01), libdevmapper1.02.1 (>= 2:1.02.97), libevent-2.1-6 (>= 2.1.8-stable), libgssapi-krb5-2 (>= 1.14+dfsg), libkeyutils1 (>= 1.5.9), libkrb5-3 (>= 1.6.dfsg.2), libmount1 (>= 2.19.1), libnfsidmap2, libtirpc1 (>= 0.2.4), libwrap0 (>= 7.6-4~), rpcbind, adduser, ucf, lsb-base (>= 1.3-9ubuntu3), keyutils
    Recommends: python3
    Suggests: open-iscsi, watchdog
    Conflicts: nfs-client
    Breaks: nfs-kernel-server (<< 1:1.2.8-6~)
    Replaces: mount (<< 2.13~), nfs-client, nfs-kernel-server (<< 1:1.2.8-6~)
    Homepage: http://nfs.sourceforge.net/
    Supported: 5y
    Download-Size: 205 kB
    APT-Sources: http://mirrors.aliyun.com/ubuntu bionic/main amd64 Packages
    Description: NFS support files common to client and server
     Use this package on any machine that uses NFS, either as client or
     server.  Programs included: lockd, statd, showmount, nfsstat, gssd,
     idmapd and mount.nfs.

    apt show -a nfs-kernel-server:

    apt show -a nfs-kernel-server
    Package: nfs-kernel-server
    Version: 1:1.3.4-2.1ubuntu5.3
    Priority: optional
    Section: net
    Source: nfs-utils
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Debian kernel team <debian-kernel@lists.debian.org>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 345 kB
    Provides: knfs, nfs-server
    Depends: libblkid1 (>= 2.16), libc6 (>= 2.15), libcap2 (>= 1:2.10), libsqlite3-0 (>= 3.5.9), libtirpc1 (>= 0.2.4), libwrap0 (>= 7.6-4~), nfs-common (= 1:1.3.4-2.1ubuntu5.3), ucf, netbase, lsb-base (>= 1.3-9ubuntu3), keyutils
    Conflicts: knfs, nfs-server
    Replaces: knfs, nfs-server
    Homepage: http://nfs.sourceforge.net/
    Supported: 5y
    Download-Size: 93.8 kB
    APT-Manual-Installed: yes
    APT-Sources: http://mirrors.aliyun.com/ubuntu bionic-updates/main amd64 Packages
    Description: support for NFS kernel server
     The NFS kernel server is currently the recommended NFS server for use
     with Linux, featuring features such as NFSv3 and NFSv4, Kerberos
     support via GSS, and much more. It is also significantly faster and
     usually more reliable than the user-space NFS servers (from the
     unfs3 and nfs-user-server packages). However, it is more difficult to
     debug than the user-space servers, and has a slightly different
     feature set.
     .
     This package contains the user-space support needed to use the
     NFS kernel server. Most administrators wishing to set up an NFS server
     would want to install this package.
    
    Package: nfs-kernel-server
    Version: 1:1.3.4-2.1ubuntu5
    Priority: optional
    Section: net
    Source: nfs-utils
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: Debian kernel team <debian-kernel@lists.debian.org>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 344 kB
    Provides: knfs, nfs-server
    Depends: libblkid1 (>= 2.16), libc6 (>= 2.15), libcap2 (>= 1:2.10), libsqlite3-0 (>= 3.5.9), libtirpc1 (>= 0.2.4), libwrap0 (>= 7.6-4~), nfs-common (= 1:1.3.4-2.1ubuntu5), ucf, netbase, lsb-base (>= 1.3-9ubuntu3), keyutils
    Conflicts: knfs, nfs-server
    Replaces: knfs, nfs-server
    Homepage: http://nfs.sourceforge.net/
    Supported: 5y
    Download-Size: 94.0 kB
    APT-Sources: http://mirrors.aliyun.com/ubuntu bionic/main amd64 Packages
    Description: support for NFS kernel server
     The NFS kernel server is currently the recommended NFS server for use
     with Linux, featuring features such as NFSv3 and NFSv4, Kerberos
     support via GSS, and much more. It is also significantly faster and
     usually more reliable than the user-space NFS servers (from the
     unfs3 and nfs-user-server packages). However, it is more difficult to
     debug than the user-space servers, and has a slightly different
     feature set.
     .
     This package contains the user-space support needed to use the
     NFS kernel server. Most administrators wishing to set up an NFS server
     would want to install this package.

     dpkg -L nfs-common:

    /.
    /etc
    /etc/default
    /etc/default/nfs-common
    /etc/init.d
    /etc/init.d/nfs-common
    /etc/request-key.d
    /etc/request-key.d/id_resolver.conf
    /lib
    /lib/systemd
    /lib/systemd/system
    /lib/systemd/system/auth-rpcgss-module.service
    /lib/systemd/system/nfs-client.target
    /lib/systemd/system/nfs-config.service
    /lib/systemd/system/nfs-idmapd.service
    /lib/systemd/system/nfs-utils.service
    /lib/systemd/system/proc-fs-nfsd.mount
    /lib/systemd/system/rpc-gssd.service
    /lib/systemd/system/rpc-statd-notify.service
    /lib/systemd/system/rpc-statd.service
    /lib/systemd/system/rpc-svcgssd.service
    /lib/systemd/system/run-rpc_pipefs.mount
    /sbin
    /sbin/mount.nfs
    /sbin/osd_login
    /sbin/rpc.statd
    /sbin/showmount
    /sbin/sm-notify
    /usr
    /usr/lib
    /usr/lib/systemd
    /usr/lib/systemd/scripts
    /usr/lib/systemd/scripts/nfs-utils_env.sh
    /usr/sbin
    /usr/sbin/blkmapd
    /usr/sbin/mountstats
    /usr/sbin/nfsidmap
    /usr/sbin/nfsiostat
    /usr/sbin/nfsstat
    /usr/sbin/rpc.gssd
    /usr/sbin/rpc.idmapd
    /usr/sbin/rpc.svcgssd
    /usr/sbin/rpcdebug
    /usr/sbin/start-statd
    /usr/share
    /usr/share/bug
    /usr/share/bug/nfs-common
    /usr/share/bug/nfs-common/control
    /usr/share/bug/nfs-common/script
    /usr/share/bug/nfs-utils
    /usr/share/bug/nfs-utils/control
    /usr/share/bug/nfs-utils/presubj
    /usr/share/doc
    /usr/share/doc/nfs-common
    /usr/share/doc/nfs-common/README.Debian.nfsv4
    /usr/share/doc/nfs-common/changelog.Debian.gz
    /usr/share/doc/nfs-common/copyright
    /usr/share/lintian
    /usr/share/lintian/overrides
    /usr/share/lintian/overrides/nfs-common
    /usr/share/man
    /usr/share/man/man5
    /usr/share/man/man5/nfs.5.gz
    /usr/share/man/man5/nfsidmap.5.gz
    /usr/share/man/man5/nfsmount.conf.5.gz
    /usr/share/man/man8
    /usr/share/man/man8/blkmapd.8.gz
    /usr/share/man/man8/gssd.8.gz
    /usr/share/man/man8/idmapd.8.gz
    /usr/share/man/man8/mount.nfs.8.gz
    /usr/share/man/man8/mountstats.8.gz
    /usr/share/man/man8/nfsiostat.8.gz
    /usr/share/man/man8/nfsstat.8.gz
    /usr/share/man/man8/rpcdebug.8.gz
    /usr/share/man/man8/showmount.8.gz
    /usr/share/man/man8/sm-notify.8.gz
    /usr/share/man/man8/statd.8.gz
    /usr/share/man/man8/svcgssd.8.gz
    /usr/share/man/man8/umount.nfs.8.gz
    /usr/share/nfs-common
    /usr/share/nfs-common/conffiles
    /usr/share/nfs-common/conffiles/idmapd.conf
    /usr/share/nfs-common/conffiles/nfs-common.default
    /var
    /var/lib
    /var/lib/nfs
    /var/lib/nfs/sm
    /var/lib/nfs/sm.bak
    /var/lib/nfs/state
    /lib/systemd/system/nfs-common.service
    /sbin/mount.nfs4
    /sbin/umount.nfs
    /sbin/umount.nfs4
    /usr/share/man/man8/rpc.gssd.8.gz
    /usr/share/man/man8/rpc.idmapd.8.gz
    /usr/share/man/man8/rpc.sm-notify.8.gz
    /usr/share/man/man8/rpc.statd.8.gz
    /usr/share/man/man8/rpc.svcgssd.8.gz

    dpkg -L nfs-kernel-server:

    /.
    /etc
    /etc/init.d
    /etc/init.d/nfs-kernel-server
    /lib
    /lib/systemd
    /lib/systemd/system
    /lib/systemd/system/nfs-blkmap.service
    /lib/systemd/system/nfs-mountd.service
    /lib/systemd/system/nfs-server.service
    /sbin
    /sbin/nfsdcltrack
    /usr
    /usr/sbin
    /usr/sbin/exportfs
    /usr/sbin/rpc.mountd
    /usr/sbin/rpc.nfsd
    /usr/share
    /usr/share/bug
    /usr/share/bug/nfs-kernel-server
    /usr/share/bug/nfs-kernel-server/script
    /usr/share/doc
    /usr/share/doc/nfs-kernel-server
    /usr/share/doc/nfs-kernel-server/NEWS.Debian.gz
    /usr/share/doc/nfs-kernel-server/copyright
    /usr/share/lintian
    /usr/share/lintian/overrides
    /usr/share/lintian/overrides/nfs-kernel-server
    /usr/share/man
    /usr/share/man/man5
    /usr/share/man/man5/exports.5.gz
    /usr/share/man/man7
    /usr/share/man/man7/nfsd.7.gz
    /usr/share/man/man8
    /usr/share/man/man8/exportfs.8.gz
    /usr/share/man/man8/mountd.8.gz
    /usr/share/man/man8/nfsd.8.gz
    /usr/share/man/man8/nfsdcltrack.8.gz
    /usr/share/nfs-kernel-server
    /usr/share/nfs-kernel-server/conffiles
    /usr/share/nfs-kernel-server/conffiles/etc.exports
    /usr/share/nfs-kernel-server/conffiles/nfs-kernel-server.default
    /var
    /var/lib
    /var/lib/nfs
    /var/lib/nfs/etab
    /var/lib/nfs/rmtab
    /var/lib/nfs/v4recovery
    /var/lib/nfs/xtab
    /lib/systemd/system/nfs-kernel-server.service
    /usr/share/doc/nfs-kernel-server/changelog.Debian.gz
    /usr/share/man/man8/rpc.mountd.8.gz
    /usr/share/man/man8/rpc.nfsd.8.gz

     导出文件系统:

    # /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)
    #
    /home/yaowen/nfsv4 192.168.0.0/24(rw,nohide,insecure,no_subtree_check,no_root_squash,sync)

    重启:

    systemctl restart nfs-kernel-server.service
    systemctl restart nfs-idmapd.service

    查看挂载:

    showmount -e 192.168.0.125
    mount -t nfs4 -o proto=tcp,port=2049 192.168.0.125:/home/yaowen/nfsv4 /mnt/nfs
    mount -t nfs4 -o proto=tcp,port=2049,nfsvers=4.2 192.168.0.125:/home/yaowen/nfsv4 /mnt/nfs
    192.168.0.125:/home/yaowen/nfsv4 nfs4      352G   16G  318G   5% /mnt/nfs

    查看挂载命令说明: man mount.nfs / man mount.nfs4

    Under  Linux  2.6.32  and later kernel versions, mount.nfs can mount all NFS file system versions.  Under earlier Linux kernel versions, mount.nfs4 must be used for mounting NFSv4
    file systems while mount.nfs must be used for NFSv3 and v2.

    NFS中文件锁:

    The  Network  Lock  Manager protocol is a separate sideband protocol used to manage file locks in NFS version 2 and version 3.  To support lock recovery after a
    client or server reboot, a second sideband protocol -- known as the Network Status Manager protocol -- is also required.  In NFS version 4, file locking is sup‐
    ported directly in the main NFS protocol, and the NLM and NSM sideband protocols are not used.

    我最理想的nfsv4导出方式:

    /home/yaowen/nfsv4 192.168.0.0/24(rw,insecure,sync,nohide,no_subtree_check,no_root_squash)
    To apply changes to this file, run exportfs -ra or restart the NFS server.

    我最理想的nfsv4挂载方式:

    mount -t nfs4 -o nfsvers=4.2,hard,retrans=5,rsize=1048576,wsize=1048576,ac,sharecache,proto=tcp,port=2049,lock,cto,local_lock=none 192.168.0.125:/home/yaowen/nfsv4 /mnt/nfs

    尝试进行读写;保持更新;

  • 相关阅读:
    combiner中使用状态模式
    了解Shell
    优秀工具推荐
    linux安装weblogic10.3
    FastDFS上传下载(上)
    java压缩工具类
    06链表
    05数组
    04时间复杂度
    03复杂度
  • 原文地址:https://www.cnblogs.com/xuyaowen/p/nfsv4.html
Copyright © 2011-2022 走看看