• Linux NFS服务部署


    NFS的应用场景和特点

    • NFS的优势是客户端可以直接修改服务器端的文件,而不必像FTP一样将文件下载下来修改,再上传到服务器去。
    • NFS的不足是其只支持linux和unix系统;
    • 与NFS相对于的有微软的CIFS(网上邻居),CIFS只支持Windows系统。
    • 如果想让linux系统和Windows系统进行直接修改服务器端文件,需要使用SAMBA文件共享。

    一. 安装NFS服务

    rpm -qa | grep nfs 
    rpm -qa | grep rpcbind
    yum install nfs-utils        #如果检查的结果是没有安装,则使用该命令安装
    /etc/init.d/rpcbind start
    /etc/init.d/nfs start
    

    二. NFS的软件结构

    1. 主要配置文件:/etc/exports

    这个档案就是 NFS 的主要配置文件了!不过,系统并没有默认值,所以这个档案『 不一定会存在』,你可能必须要使用 vim 主动的建立起这个档案,方法如下。

    [root@www ~]# vim /etc/exports
    /tmp         192.168.100.0/24(ro)       localhost(rw)   *.ev.ncku.edu.tw(ro,sync)
    [分享目录]       [第一部主机(权限)]            [可用主机名]         [可用通配符]
    
    参数值 内容说明
    rw、ro 该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。
    sync、async sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘!
    no_root_squash、root_squash 客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!
    all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!
    anonuid、anongid anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。

    2. NFS 文件系统维护指令:/usr/sbin/exportfs

    这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享等等,指令用法如下。

    [root@www ~]# exportfs [-aruv]
    选项与参数:
    -a :全部挂载(或卸除) /etc/exports 档案内的设定
    -r :重新挂载 /etc/exports 里面的设定,此外,亦同步更新 /etc/exports及 /var/lib/nfs/xtab 的内容!
    -u :卸除某一目录
    -v :在 export 的时候,将分享的目录显示到屏幕上!
    

    3. 分享资源的登录档:/var/lib/nfs/*tab

    在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。

    [root@www ~]# tail /var/lib/nfs/etab
    /home/public    192.168.100.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,
    no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)
    # 上面是同一行,可以看出除了 rw, sync, root_squash 等等,
    # 其实还有 anonuid 及 anongid 等等的设定!
    

    4. 客户端查询服务器分享资源的指令:/usr/sbin/showmount

    这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源!

    [root@www ~]# showmount [-ae] [hostname|IP]
    选项与参数:
    -a :显示目前主机与客户端的 NFS 联机分享的状态;
    -e :显示某部主机的 /etc/exports 所分享的目录数据。
    

    三. NFS部署案例

    1. 就是要建立 /etc/exports

    [root@www ~]# vim /etc/exports
    /tmp         192.168.100.0/24(rw,no_root_squash)
    /home/nfs    192.168.100.0/24(ro)  *(ro,all_squash)
    /home/upload 192.168.100.0/24(rw,all_squash,anonuid=210,anongid=210)
    /home/andy   192.168.100.10(rw)
    

    2. 建立每个对应的目录的实际 Linux 权限

    # 1. /tmp
    [root@www ~]# ll -d /tmp
    drwxrwxrwt. 12 root root 4096 2011-07-27 23:49 /tmp
    
    # 2. /home/nfs
    [root@www ~]# mkdir -p /home/nfs
    [root@www ~]# chmod 755 -R /home/nfs
    # 修改较为严格的档案权限将目录与档案设定成只读!不能写入的状态,会更保险一点!
    
    # 3. /home/upload
    [root@www ~]# groupadd -g 210 nfs-upload
    [root@www ~]# useradd -g 210 -u 210 -M nfs-upload
    # 先建立对应的账号与组名及 UID 喔!
    [root@www ~]# mkdir -p /home/upload
    [root@www ~]# chown -R nfs-upload:nfs-upload /home/upload
    # 修改拥有者!如此,则用户与目录的权限都设定妥当!
    
    # 4. /home/andy
    [root@www ~]# useradd andy
    [root@www ~]# ll -d /home/andy
    drwx------. 4 andy andy 4096 2011-07-28 00:15 /home/andy
    

    3. 重新启动 nfs 服务

    [root@www ~]# /etc/init.d/nfs restart
    

    4. 在 192.168.100.10 这部机器上面演练一下

    # 1. 确认远程服务器的可用目录:
    [root@clientlinux ~]# showmount -e 192.168.100.254
    Export list for 192.168.100.254:
    /home/andy   192.168.100.10
    /home/upload 192.168.100.0/24
    /home/nfs    (everyone)
    /tmp         192.168.100.0/24
    
    # 2. 建立挂载点:
    [root@clientlinux ~]# mkdir -p /mnt/{tmp,nfs,upload,andy}
    
    # 3. 实际挂载:
    [root@clientlinux ~]# mount -t nfs 192.168.100.254:/tmp         /mnt/tmp
    [root@clientlinux ~]# mount -t nfs 192.168.100.254:/home/nfs    /mnt/nfs
    [root@clientlinux ~]# mount -t nfs 192.168.100.254:/home/upload /mnt/upload
    [root@clientlinux ~]# mount -t nfs 192.168.100.254:/home/andy   /mnt/andy
    
  • 相关阅读:
    关于Request.QueryString参数的重构
    简单剖析Asp.Net MVC 源码中的三个IoC注入点
    如何更优雅的实现ExtJS的前端MVC模式下一个App多个Controller的动态加载
    Cenos 7.X重置密码
    openwrt 旁路由设置
    必看的20个小众精品网站
    一句话PYTHON FTP
    ubuntu/kylin 安装FTP
    支付宝转账
    appium环境变量设置
  • 原文地址:https://www.cnblogs.com/wangzengyi/p/12516408.html
Copyright © 2020-2023  润新知