zoukankan      html  css  js  c++  java
  • How to configure NFS on Linux

    Copy From:   http://linuxconfig.org/how-to-configure-nfs-on-linux

    How to configure NFS on Linux

     

    1. Introduction

    The Network File System is certainly one of the most widely used network services. Network file system (NFS) is based on the Remote procedure call which allows the client to automatically mount remote file systems and therefore transparently provide an access to it as if the file system is local.

    If you still have some questions after reading this article please try our new LinuxCareer Forum.

    2. Scenario

    In this scenario we are going to export the file system from the an IP address 10.1.1.50 ( NFS server ) host and mount it on an a host with an IP address 10.1.1.55 ( NFS Client ). Both NFS server and NFS client will be running Ubuntu Linux.

    3. Prerequisites

    At this point, we assume that the NFS service daemon is already installed on your system, including portmap daemon on which NFS setup depends.

    If you have not done so yet simply install nfs-common package on both NFS client and NFS server using using apt-get tool.

    # apt-get install nfs-common

    The command above will fetch and install all support files common to NFS client and NFS server including portmap.

    Additionally we need to install extra package on our NFS server side.

    apt-get install nfs-kernel-server

    This package is the actual NFS daemon listenning on both UDP and TCP 2049 ports.

    Execute rpcinfo -p to check correctness of your NFS installation and to actually confirm that NFS server is indeed running and accepting calls on a port 2049:

    # rpcinfo -p | grep nfs
        100003    2   udp   2049  nfs
        100003    3   udp   2049  nfs
        100003    4   udp   2049  nfs
        100003    2   tcp   2049  nfs
        100003    3   tcp   2049  nfs
        100003    4   tcp   2049  nfs
    

    Furthermore, before we start exporting and mounting NFS directories, your system needs to actually support network file system. To check whether your system supports NFS grep /proc/filesystems and search for nfs.

    # cat /proc/filesystems | grep nfs
    nodev   nfs
    nodev   nfs4
    

    If you do not see any output it means that NFS is not supported or the NFS module have not been loaded into your kernel. To load NFS module execute:

    # modprobe nfs

    When installed correctly, the NFS daemon should be now listening on both UDP and TCP 2049 port and portmap should be waiting for instructions on a port 111.

    At this point you should have portmap listening on both NFS server and NFS client:

    rpcinfo -p | grep portmap
        100000    2   tcp    111  portmapper
        100000    2   udp    111  portmapper
    

    4. Server export file

    All directories we want to share over the network using NFS need to be defined on the server side of this communication and more specifically they need to be defind with /etc/exports file. In the next section you will see most common NFS exports:

    4.1. Most common exports options

    Here are the most common NFS export techniques and options:

    /home/nfs/ 10.1.1.55(rw,sync) export /home/nfs directory for host with an IP address 10.1.1.55 with read, write permissions, and synchronized mode
    /home/nfs/ 10.1.1.0/24(ro,sync) export /home/nfs directory for network 10.1.1.0 with netmask 255.255.255.0 with read only permissions and synchronized mode
    /home/nfs/ 10.1.1.55(rw,sync) 10.1.1.10(ro,sync) export /home/nfs directory for host with IP 10.1.1.55with read, write permissions, synchronized mode, and also export /home/nfs directory for another host with an IP address 10.1.1.10 with read only permissions and synchronized mode
    /home/nfs/ 10.1.1.55(rw,sync,no_root_squash) export /home/nfs directory for host with an IP address 10.1.1.55with read, write permissions, synchronized mode and the remote root user will be treated as a root and will be able to change any file and directory.
    /home/nfs/ *(ro,sync) export /home/nfs directory for any host with read only permissions and synchronized mode
    /home/nfs/ *.linuxcareer.com(ro,sync) export /home/nfs directory for any host within linuxconfig.org domain with a read only permission and synchronized mode
    /home/nfs/ foobar(rw,sync) export /home/nfs directory for hostname foobar with read, write permissions and synchronized mode

    4.2. Edit exports file

    Now that we have familiarized our selfs with some NFS's export options we can define our first NFS export. Open up your favorite text editor, for example, vim and edit /etc/exports file by adding a line /home/nfs/ *(ro,sync) which will export /home/nfs directory for any host with read only permissions. Instead of text editor you can simply insert your NFS export line into /etc/exports file using echo command:

    # echo '/home/nfs/ *(ro,sync)' > /etc/exports 
    # tail -1 /etc/exports 
    /home/nfs/ *(ro,sync)
    

    Be sure that the directory you are about to export by NFS exists. You can also create a file inside the /home/nfs directory which will help you troubleshoot once you mount /home/nfs/ remotely.

    # touch /home/nfs/nfs-test-file
    

    NOTE: The default behavior of NFS kernel daemon is to include additional option to your export line which is "no_subtree_check". Be aware of this fact when you attempt to configure your NFS exports further.

    4.3. Restart NFS daemon

    Once you have edited /etc/exports file you need to restart your NFS daemon to apply any changes. Depending on your Linux distribution the restarting procedure of NFS may differ. Ubuntu and Debian users:

    # /etc/init.d/nfs-kernel-server restart 

    Redhat and Fedora users

    # /etc/init.d/nfs restart 

    If you later decide to add more NFS exports to the /etc/exports file, you will need to either restart NFS daemon or run command exportfs:

    # exportfs -ra 

    5. Mount remote file system on client

    First we need to create a mount point:

    # mkdir /home/nfs_local 

    If you are sure that the NFS client and mount point are ready, you can run the mount command to mount exported NFS remote file system:

    # mount 10.1.1.50:/home/nfs /home/nfs_local 

    In case that you need to specify a filesystem type you can do this by:

    # mount -t nfs 10.1.1.50:/home/nfs /home/nfs_local 

    You may also get and an error message:

    mount: mount to NFS server failed: timed out (retrying). 

    This may mean that your server supports higher NFS version and therefore you need to pass one extra argument to your nfs client mount command. In this example we use nfs version 3:

    # mount -t nfs -o nfsvers=3 10.1.1.50:/home/nfs /home/nfs_local 

    In any case now you should be able to access a remote /home/nfs directory locally on your NFS client.

    # ls /home/nfs_local/
    nfs-test-file
    # cd /home/nfs_local/
    # ls
    nfs-test-file
    # touch test
    touch: cannot touch `test': Read-only file system
    

    The above output proves that a remote NFS export is mounted and that we can access it by navigating to a local /home/nfs_local/ directory. Please notice that the touch command reports that the filesystem is mounted as read-only which was exactly our intention.

  • 相关阅读:
    Android之在linux终端执行shell脚本直接打印当前运行app的日志
    webpack打包vue项目之后生成的dist文件该怎么启动运行
    Android工程中javax annotation Nullable找不到的替代方案
    绝对良心提供百度网盘的jdk1.8源码下载包含sun包的
    上周热点回顾(12.23-12.29)团队
    上周热点回顾(12.16-12.22)团队
    k8s 开船记:升级为豪华邮轮(高可用集群)与遇到奇怪故障(dns解析异常)团队
    上周热点回顾(12.9-12.15)团队
    k8s 开船记-修船:改 readinessProbe ,去 DaemonSet ,上 Autoscaler团队
    k8s 开船记-触礁:四涡轮发动机撞坏3个引发502故障团队
  • 原文地址:https://www.cnblogs.com/onetaste/p/4255281.html
Copyright © 2011-2022 走看看