zoukankan      html  css  js  c++  java
  • CentOS 7.2 搭建NFS文件系统

    NFS服务简介

    NFS是Network File System的缩写及网络文件系统。它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

    NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

    NFS一般用来存储共享视频,图片等静态数据。

    CentOS 7.2 系统下 NFS服务器部署

    1,让我们先来准备2台服务器

    服务器系统

    角色

    内网IP

    主机名

    挂载目录

    CentOS 7.2

    NFS服务端

    eth1:192.168.14.10

    DEV-COM-NFS-01

    /data/nfs

    CentOS 7.2

    NFS客户端

    eth1:192.168.14.10

    DEV-APP-MSG-01

    /data/nfsdata

    2,服务器安装nfs

    [root@DEV-COM-NFS-01 ~]# yum -y install nfs-utils

    安装过程就此省略了,知道看到如下输出,就表示安装成了

    以上省略若干报文
    ......
    "/etc/exports" 1L, 49C written                                                                                                                                                                                                                
      Verifying  : selinux-policy-targeted-3.13.1-60.el7.noarch                                                                                                                                                                                               32/45 
      Verifying  : libsemanage-2.1.10-18.el7.x86_64                                                                                                                                                                                                           33/45 
      Verifying  : systemd-sysv-219-19.el7.x86_64                                                                                                                                                                                                             34/45 
      Verifying  : libgudev1-219-19.el7.x86_64                                                                                                                                                                                                                35/45 
      Verifying  : systemd-219-19.el7.x86_64                                                                                                                                                                                                                  36/45 
      Verifying  : selinux-policy-3.13.1-60.el7.noarch                                                                                                                                                                                                        37/45 
      Verifying  : krb5-libs-1.13.2-10.el7.x86_64                                                                                                                                                                                                             38/45 
      Verifying  : systemd-libs-219-19.el7.x86_64                                                                                                                                                                                                             39/45 
      Verifying  : libselinux-utils-2.2.2-6.el7.x86_64                                                                                                                                                                                                        40/45 
      Verifying  : cryptsetup-libs-1.6.7-1.el7.x86_64                                                                                                                                                                                                         41/45 
      Verifying  : libselinux-python-2.2.2-6.el7.x86_64                                                                                                                                                                                                       42/45 
      Verifying  : libsepol-2.1.9-3.el7.x86_64                                                                                                                                                                                                                43/45 
      Verifying  : policycoreutils-2.2.5-20.el7.x86_64                                                                                                                                                                                                        44/45 
      Verifying  : libselinux-2.2.2-6.el7.x86_64                                                                                                                                                                                                              45/45 
    
    Installed:
      nfs-utils.x86_64 1:1.3.0-0.65.el7                                                                                                                                                                                                                             
    
    Dependency Installed:
      gssproxy.x86_64 0:0.7.0-26.el7       keyutils.x86_64 0:1.5.8-3.el7       libbasicobjects.x86_64 0:0.1.1-32.el7  libcollection.x86_64 0:0.7.0-32.el7     libevent.x86_64 0:2.0.21-4.el7  libini_config.x86_64 0:1.3.1-32.el7  libnfsidmap.x86_64 0:0.25-19.el7 
      libpath_utils.x86_64 0:0.2.1-32.el7  libref_array.x86_64 0:0.1.5-32.el7  libtirpc.x86_64 0:0.2.4-0.16.el7       libverto-libevent.x86_64 0:0.2.5-4.el7  lz4.x86_64 0:1.7.5-3.el7        quota.x86_64 1:4.01-19.el7           quota-nls.noarch 1:4.01-19.el7   
      rpcbind.x86_64 0:0.2.0-48.el7        tcp_wrappers.x86_64 0:7.6-77.el7   
    
    Updated:
      selinux-policy.noarch 0:3.13.1-252.el7_7.6                                                                                           systemd.x86_64 0:219-67.el7_7.2                                                                                          
    
    Dependency Updated:
      cryptsetup-libs.x86_64 0:2.0.3-5.el7   krb5-libs.x86_64 0:1.15.1-37.el7_7.2   libgudev1.x86_64 0:219-67.el7_7.2     libselinux.x86_64 0:2.5-14.1.el7                      libselinux-python.x86_64 0:2.5-14.1.el7   libselinux-utils.x86_64 0:2.5-14.1.el7  
      libsemanage.x86_64 0:2.5-14.el7        libsepol.x86_64 0:2.5-10.el7           policycoreutils.x86_64 0:2.5-33.el7   selinux-policy-targeted.noarch 0:3.13.1-252.el7_7.6   systemd-libs.x86_64 0:219-67.el7_7.2      systemd-sysv.x86_64 0:219-67.el7_7.2    
    
    Complete!

    3,配置NFS

    vim /etc/exports
    /data/nfs * (rw,sync,all_squash)
    /data/nfs 192.168.13.0/24(rw,sync,all_squash)

    /data/nfs  共享目录的路径

    * 这里标识没有限制,也可用限制ip替换

    参数

    参数作用

    rw*

    读写权限

    ro

    只读权限

    root_squash

    当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)

    no_root_squash

    当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)

    all_squash

    无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用)

    no_all_squash

    无论NFS客户端使用什么账户访问,都不进行压缩

    sync*

    同时将数据写入到内存与硬盘中,保证不丢失数据

    async

    优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

    anonuid*

    配置all_squash使用,指定NFS的用户UID,必须存在系统

    anongid*

    配置all_squash使用,指定NFS的用户UID,必须存在系统

    4,启动服务,并将服务加入开机启动

    [root@DEV-COM-NFS-01 data]# systemctl enable rpcbind nfs-server
    Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
    [root@DEV-COM-NFS-01 data]# systemctl start rpcbind nfs-server

    5,检查端口

    [root@DEV-COM-NFS-01 data]# netstat -nltp

      Active Internet connections (only servers)
      Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
      tcp 0 0 0.0.0.0:50317 0.0.0.0:* LISTEN 11278/rpc.statd
      tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
      tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 11279/rpc.mountd
      tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 668/sshd
      tcp 0 0 0.0.0.0:41561 0.0.0.0:* LISTEN -
      tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
      tcp6 0 0 :::41480 :::* LISTEN -
      tcp6 0 0 :::33226 :::* LISTEN 11278/rpc.statd
      tcp6 0 0 :::111 :::* LISTEN 1/systemd
      tcp6 0 0 :::20048 :::* LISTEN 11279/rpc.mountd
      tcp6 0 0 :::22 :::* LISTEN 668/sshd
      tcp6 0 0 :::2049 :::* LISTEN -

    6,检查共享的内容

    [root@DEV-COM-NFS-01 data]# cat /var/lib/nfs/etab               
    /data/nfs       *(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash)

    7,检查匿名用户对应的真实账户,并授权共享目录为nfsnobody

    [root@DEV-COM-NFS-01 data]# grep "65534" /etc/passwd
    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    [root@DEV-COM-NFS-01 data]# chown -R nfsnobody.nfsnobody /data/nfs

    8,客户端安装nfs,先放我们来看下客户端目前的磁盘情况

    [root@DEV-COM-MSA-01 data]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vda1        20G  1.9G   17G  11% /
    devtmpfs        1.9G     0  1.9G   0% /dev
    tmpfs           1.9G     0  1.9G   0% /dev/shm
    tmpfs           1.9G   17M  1.9G   1% /run
    tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/vdc         50G   33M   50G   1% /data
    tmpfs           379M     0  379M   0% /run/user/0

    9,安装nfs

    [root@DEV-COM-MSA-01 data]# yum install -y nfs-utils

    安装过程同上面第二步

    10,启动rpcbind服务

    [root@DEV-COM-MSA-01 data]# systemctl enable rpcbind
    [root@DEV-COM-MSA-01 data]# systemctl start rpcbind

    11,查看服务端提供的可挂载nfs信息

    [root@DEV-COM-MSA-01 data]# showmount -e 192.168.14.10
    Export list for 192.168.14.10:
    /data/nfs *

    12,执行挂载命令

    [root@DEV-COM-MSA-01 data]# mount -t nfs 192.168.14.10:/data/nfs /data/nfsdata   

    13,查看挂载信息

    [root@DEV-COM-MSA-01 data]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/vda1                 20G  1.9G   17G  11% /
    devtmpfs                 1.9G     0  1.9G   0% /dev
    tmpfs                    1.9G     0  1.9G   0% /dev/shm
    tmpfs                    1.9G   17M  1.9G   1% /run
    tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
    /dev/vdc                  50G   33M   50G   1% /data
    tmpfs                    379M     0  379M   0% /run/user/0
    192.168.14.10:/data/nfs  100G   32M  100G   1% /data/nfsdata

    14,关掉客户端重启后,发现挂载信息不见了,还需要手动挂载一次?

    [root@DEV-APP-MSA-01 ~]# echo '192.168.14.10:/data/nfs       /data/nfsdata                   nfs     defaults        0 0' >> /etc/fstab

    [root@DEV-APP-MSA-01 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Fri Jul 11 06:33:31 2014 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=277fd82b-0856-4e23-8371-1f11823281b7 / ext4 defaults 1 1 LABEL=YUNIFYSWAP swap swap defaults 0 0 192.168.14.10:/data/nfs /data/nfsdata nfs defaults 0 0

    重启后发现就可以自动挂载了

    也可通过如下命令,来验证我们的fstab是否设置成功

    #卸载挂载
    umount /data/nfsdata
    #将/etc/fstab的所有内容重新加载。
    mount -a
  • 相关阅读:
    Redis 之 数据持久化、主从复制、哨兵、集群
    Linux 之 MySQL(mariadb) 主从复制
    python 面试题
    Linux 之 nginx相关
    Linux 之redis 的安装及使用
    Linux 之 安装虚拟环境virtualenvwrapper
    Vue使用Element-ui走马灯功能动态改变图片和容器大小
    文本信息抽取的方法
    python3 将文本用utf-8编码方式写入txt文件
    一个比celery更简单的python异步模块rq
  • 原文地址:https://www.cnblogs.com/blueskyli/p/12167855.html
Copyright © 2011-2022 走看看