zoukankan      html  css  js  c++  java
  • NFS服务部署及使用详述

    服务部署

    服务端操作(nfs server部署及配置)

    [root@Q1 ~]# yum -y install rpcbind nfs-utils

    [root@Q1 ~]# systemctl start rpcbind.service

    [root@Q1 ~]# systemctl start nfs.service

    [root@Q1 ~]# rpcinfo -p localhost

    [root@Q1 ~]# id nfsnobody

    uid=65534(nfsnobody) gid=65534(nfsnobody) 组=65534(nfsnobody)

    # yum安装服务后会自动生成对应的用户及组

    [root@Q1 ~]# systemctl enable rpcbind.service

    [root@Q1 ~]# systemctl enable nfs-server.service

    [root@Q1 ~]# systemctl list-unit-files |egrep "rpc|nfs"

    [root@Q1 ~]# mkdir -pv /data

    [root@Q1 ~]# chown -R nfsnobody.nfsnobody /data

    [root@Q1 ~]# cat /etc/exports

    #share /data by kazihuo for tom at 20170925

    /data 192.168.11.0/24(rw,sync)

    [root@Q1 ~]# systemctl reload nfs.service

    [root@Q1 ~]# showmount -e 192.168.11.11 # 查询共享目录

    export list for 192.168.11.11:

    /data 192.168.11.0/24

     

    客户端操作(nfs client部署及挂载使用)

    [root@Q2 ~]# yum -y install rpcbind nfs-utils

    [root@Q2 ~]# systemctl start rpcbind.service

    [root@Q2 ~]# systemctl enable rpcbind.service

    [root@Q2 ~]# mkdir /kazihuo

    [root@Q2 ~]# mount -t nfs 192.168.11.11:/data /kazihuo

    [root@Q2 ~]# df -h #查看

    客户端开机自启挂载情况优选

    法一

    将挂载命令写入/etc/rc.local;

    #偶尔开机挂载失败;

     

    法二

    将挂载命令写入/etc/fstab;

    # fstab会优于网络被系统加载,网络没启动时执行fstab会导致连不上NFS服务器端,无法实现开机挂载,所以一般不用此方式;

     

    使用法三将完美解决问题(不会因为nfs服务器无法与客户端建立连接而导致客户端服务器无法启动)!亲测!

    法三

    autofs服务实现自动挂载

    /etc/auto.master #文件定义本地挂载点

    /etc/auto.misc #设置需要挂载的文件系统类型及选项

     

    # 以下是Q2服务器开机自动挂载Q1共享的nfs磁盘,实现基于以上部署及配置环境!

     

    客户端操作

    [root@Q2 ~]# yum -y install autofs

    [root@Q2 ~]# cat /etc/auto.master

    # For details of the format look at auto.master(5).

    #

    /misc    /etc/auto.misc

    /tmp/kazihuo /etc/auto.nfs

    #前段是要将服务器端共享的存储挂载在本机的指定目录下,后段是挂载时配置设置,可自定义

    #

    # NOTE: mounts done from a hosts map will be mounted with the

    [root@Q2 ~]# cat /etc/auto.nfs

    nfs -fstype=nfs 192.168.10.11:/data

    #将服务器端的data目录挂载到本机/tmp/kazihuo/nfs目录

    [root@Q2 ~]# systemctl start autofs.service

    [root@Q2 ~]# systemctl enable autofs.service

    # 重启后查看挂载情况

    [root@Q2 ~]# mount |grep kazihuo

    /etc/auto.nfs on /tmp/kazihuo type autofs (rw,relatime,fd=12,pgrp=1554,timeout=300,minproto=5,maxproto=5,indirect)

     

    注:以上操作将服务器端共享的存储挂载到本地/tmp/kazihuo/nfs目录下,需要cd /tmp/kazihuo/nfs进去,触发才能自动挂载,同时nfs目录不能提前自动创建,自动挂载时系统自动创建nfs目录。

     

    进一步探讨:

    当服务端和客户端失去联系时,客户端能正常启动系统,而后又与服务端建立了连接,此刻,nfs是否能自动挂载上,情况带跟进!!!

    挂载配置说明

    公司挂载实例

    [root@master(35.100) ~]# cat /etc/exports

    /r2 192.168.52.0/8(insecure,rw,no_root_squash)

    指定NFS客户端地址的配置说明

    客户端地址

    具体地址

    说明

    授权指定地址

    192.168.10.10

    生产环境不常用

    授权整个网段

    192.168.10.0/24

    生产环境常见配置

    授权整个网段

    192.168.10.*

    不推荐使用

    授权指定域名客户端

    nfs.kazihuo.com

    生产环境不常用

    授权整个域名客户端

    *.kazihuo.com

    生产环境不常用

     

    NFS配置权限常用参数说明

    参数

    说明

    rw

    read-write 可读写

    ro

    read-only 只读

    sync

    将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

    async

    将数据先保存在内存缓冲区中,必要时才写入磁盘

    no_root_squash

    来访的root用户保持root帐号权限;

    root_squash(默认)

    将来访的root用户映射为匿名用户或用户组;

    all_squash

    无论访问共享目录的用户身份如何,其权限将被镇压为匿名用户,同时它的UID和GID通常会变成nfsnobody账号身份

    no_all_squash(默认)

    访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;

    anonuid

    匿名用户UID设置值,可自行设置,但必须在/etc/passwd中存在;在多台客户端共享一个nfs目录时,可通过此参数使得不同的客户端写入的数据保持相同的用户权限

    anongid

    匿名用户组

    secure(默认)

    限制客户端只能从小于1024的tcp/ip端口连接服务器;

    insecure

    允许客户端从大于1024的tcp/ip端口连接服务器;

    wdelay(默认)

    检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;

    no_wdelay

    若有写操作则立即执行,应与sync配合使用;

    subtree_check(默认)

    若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;

    no_subtree_check

    即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

     

    在生产中配置NFS的重要技巧

    确保所有客户端对共享目录具有相同的用户访问权限;

    all_squash把所有客户端都镇压为固定的匿名用户(UID相同);

    就是anonuid、anongid指定的UID和GID用户;

    所有的客户端和服务端都需要有一个相同的UID和GID用户

     

    企业生产场景配置实例

    格式

    共享目录 客户端地址(参1,参2···)

    说明

    样例一

    /data 192.168.10.0/24(rw,sync)

    允许客户端读写,且数据同步写到服务端的磁盘

  • 相关阅读:
    日期格式化
    面向对象高级编程——使用__slots__
    面向对象编程——实例属性和类属性(六)
    面向对象编程——获取对象信息(五)
    面向对象编程——类方法和静态方法(八)
    面向对象编程——多重继承(七)
    面向对象高级编程——使用@property
    python常用模块——logger模块
    python常用模块——hashlib模块
    面向对象编程——super进阶(十)
  • 原文地址:https://www.cnblogs.com/kazihuo/p/13130120.html
Copyright © 2011-2022 走看看