nfs

头像
达龙
    阅读 5 分钟

    博文参考

    
    http://www.it610.com/article/3148177.htm
    http://www.cnblogs.com/xiaocen/p/3712912.html

    安装

    CENTOS或RHL默认就已安装,如果没有安装的话,通过yum安装即可:
    yum install nfs-utils
    yum install portmap

    UBUNTU系统,通过apt-get安装:
    apt-get install nfs-kernel-server

    配置

    配置文件定义

    NFS的配置文件为 /etc/exports,内容格式如下:
    <共享目录> 客户端1(选项) [客户端2(选项) ...]
    共享目录:NFS共享给客户机的目录。
    客户端:网络中可以访问此目录的主机。多个客户端以空格分隔。
    选项:设置目录的访问权限、用户映射等,多个选项以逗号分隔。
    例如:
    /opt/public 192.168.1.0/24(rw,insecure,sync,all_squash,anonuid= 65534,anongid=65534)

    客户端的指定方式

    指定ip地址的主机:192.168.0.100
    指定子网中的所有主机:192.168.0.0/24 或 192.168.0.0/255.255.255.0
    指定域名的主机:nfs.test.com
    指定域中的所有主机:*.test.com
    所有主机:*

    选项说明

    ro:共享目录只读;
    rw:共享目录可读可写;
    all_squash:所有访问用户都映射为匿名用户或用户组;
    no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
    root_squash(默认):将来访的root用户映射为匿名用户或用户组;
    no_root_squash:来访的root用户保持root帐号权限;
    anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
    anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
    secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
    insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
    sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
    async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
    wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
    no_wdelay:若有写操作则立即执行,应与sync配合使用;
    subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
    no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

    NFS相关命令

    exportfs

    不重启nfs服务应用更新,相关选项如下:
    -a 全部挂载或卸载 /etc/exports中的内容
    -r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
    -u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
    -v 在export的时候,将详细的信息输出到屏幕上。

    nfsstat

    查看NFS的运行状态。

    rpcinfo

    查看rpc服务注册情况。
    相关选项:
    -p 显示所有的端口与程序信息。
    示例:
    rpcinfo -p localhost #列出本机的RPC注册状况。

    showmount

    查询nfs共享目录信息,相关选项如下:
    -a 显示已经于客户端连接上的目录信息
    -e IP或者hostname 显示此IP地址分享出来的目录

    示例:
    showmount -e localhost #查询本机nfs共享目录情况
    showmount -a localhost #查询本机共享目录连接情况

    linux客户端挂载共享目录

    临时挂载

    通过mount挂载,例如:
    mount -t nfs 192.168.1.1:/opt/public /mnt/public

    启动挂载

    将挂载信息写入fstab文件
    vi /etc/fstab
    192.168.1.1:/opt/public /mnt/public nfs defaults
    保存退出
    mount -a

    基于autofs自动挂载

    autofs可以在使用到挂载文件系统时自动挂载,当长时间不使用时自动卸载,配置灵活方便。
    安装autofs:
    centos,rhl:
    yum install autofs
    ubuntu:
    apt-get install autofs

    编辑主配置文件/etc/auto.master,在末尾添加需挂载的目录信息。
    格式为:本机挂载主目录 对应的加载配置文件名 -挂载参数
    挂载参数同mount的挂载参数,多个参数以逗号分隔。此处的挂载参数可以与对应的加载配置文件中定义的参数产生叠加作用。
    示例:
    vi /etc/auto.master

    本机挂载主目录为/mnt,与之对应的加载配置文件为/etc/auto.nfs

    /mnt /etc/auto.nfs
    保存退出

    编辑加载配置文件,添加需要挂载的文件系统。
    格式为:挂载目录 -挂载参数 挂载文件系统
    挂载参数同mount的挂载参数,多个参数以逗号分隔。
    示例:
    vi /etc/auto.nfs
    public -rw,bg,soft,rsize=32768,wsize=32768,nosuid,noexec,nodev 192.168.1.1:/opt/public
    保存退出

    重启autofs
    /etc/init.d/autofs restart

    windows客户端挂载共享目录

    1、到M$网站下载SFU3.5,下载地址:http://www.microsoft.com/en-u...

    2、在本地建立group文件,内容如下:
    root0:

    3、在本地建立passwd文件,内容如下:
    root0:0:root:/root:/bin/bash

    4、解压并安装SFU,选择定制安装,在 User Name Mapping界面,选择Password and group files,进入下一步分别输入前面建立的passwd和group文件完整路径,点击下一步完成安装。

    5、配置SFU
    在开始菜单的程序中找到Windows Services for Unix,点击Services for Unix Administration。在设置界面点击User Name Mapping,切换到Map标签页,点击 show group Maps,在windows group name 和unix group name框中分别输入guests和root,然后点击add。然后点击 show User Maps,在windows user name 和unix user name框中分别输入guest和root,然后点击add。最后点击右上角的apply应用设置。

    6,确保windows系统中的guest帐号可用
    运行gpedit.msc
    在Computer Configuration->Windowns Settings->Security Settings->Local Policies->User Right Assignment->Deny access to this computer from the network:去掉Guest。 并检查其它相关项是否有允许Guest访问。
    在 Computer Configuration->Windowns Settings->Security Settings->Local Policies->Security Options->Network access->Sharing and security model for local accounts:选择经典方式:Classic-Local users authenticate as themselves。

    7、通过网上邻居映射网络驱动器、cmd下mount(例如:mount \192.168.1.100optpublic z:)或者直接在地址栏输入地址(例如:\192.168.1.100optpublic)挂载共享目录。

    NFS权限设定

    普通用户

    if ( 设置了all_squash ) then
         访问用户强制映射为指定nfs匿名用户;
    else
         if ( NFS server上有同名用户 ) then
              访问用户映射为服务器上的同名用户;
         else
             访问用户映射成nfsnobody;

    root

    if ( 同时设置了no_root_squash和all_squash ) then
         访问用户映射为指定nfs匿名用户;
    else
         if ( 设置了no_root_squash ) then
              来访root映射为指定服务器上的root用户;
         else
              if ( 设置了all_squash ) then
                   访问用户映射为指定nfs匿名用户;
              else
                  访问用户映射成nfsnobody;

    mount相关参数

    ro 以只读模式加载。
    rw 以可读写模式加载。
    sync 以同步方式执行文件系统的输入输出动作。
    async 以非同步的方式执行文件系统的输入输出动作。
    defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。
    atime 每次存取都更新inode的存取时间,默认设置,取消选项为noatime。
    noatime 每次存取时不更新inode的存取时间。
    dev 可读文件系统上的字符或块设备,取消选项为nodev。
    nodev 不读文件系统上的字符或块设备。
    exec 可执行二进制文件,取消选项为noexec。
    noexec 无法执行二进制文件。
    auto 必须在/etc/fstab文件中指定此选项。执行-a参数时,会加载设置为auto的设备,取消选取为noauto。
    noauto 无法使用-a参数来加载。
    suid 启动set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位,取消选项为nosuid。
    nosuid 关闭set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位。
    user 普通用户可以执行加载操作。
    nouser 普通用户无法执行加载操作,默认设置。
    remount 重新加载设备。通常用于改变设备的设置状态。
    rsize 读取数据缓冲大小,默认设置1024。
    wsize 写入数据缓冲大小,默认设置1024。
    fg 以前台形式执行挂载操作,默认设置。在挂载失败时会影响正常操作响应。
    bg 以后台形式执行挂载操作。
    hard 硬式挂载,默认设置。如果与服务器通讯失败,让试图访问它的操作被阻塞,直到服务器恢复为止。
    soft 软式挂载。如果服务器通讯失败,让试图访问它的操作失败,返回一条出错消息。这项功能对于避免进程“挂”在无关紧要的安装操作上来说非常有用。
    retrans=n 指定在以软方式安装的文件系统上,在返回一条出错消息之前重复发出请求的次数。
    nointr 不允许用户中断,默认设置。
    intr 允许用户中断被阻塞的操作(并且让它们返回一条出错消息)。
    timeo=n 设置请求的超时时间(以十分之一秒为单位)。

    注:
    automounter专用参数
    fstype= 用于指定一个文件系统的类型(如果要挂载的文件系统不是NFS的话),mount是不能用的。

    注意事项

    1、NFS服务器关机时要确保NFS没有客户端连接,否则无法正常关机 。可以先强制停止或杀死nfs服务。
    2、windows客户端挂载共享目录不支持utf-8编码,因此可能会出现中文乱码。可以通过修改服务器local的默认编码来解决。


    达龙
    250 声望19 粉丝

    天才是重复次数最多的人!