NFS网络文件系统的使用

NFS网络文件系统的使用

1、安装

[root@vm99-lz-65-test-3059 ~]# yum install -y nfs-utils rpcbind

2、配置NFS服务端

  NFS服务的默认配置文件路径为:/etc/exports,并且默认是空的。

[root@vm99-lz-65-test-3059 ~]# vim /etc/exports
/data 192.168.30.0/24(rw,no_root_squash,no_all_squash,sync)

##这里我们选择共享/data目录给192.168.30.0/24的网段主机

/etc/exports文件参数介绍:

  • rw     read-write,表示可读写权限*
  • ro     read-only,表示只读权限
  • sync    请求或写入数据时,数据同步写入到NFS服务端的硬盘后才返回。数据安全不会丢,缺点,性能下降。
  • async    请求或写入数据是,先返回请求,再将数据写入到内存缓存和硬盘中,即异步写入数据。此参数可以提升NFS性能,但是会降低数据的安全。因此,一般情况下建议不用,如果NFS处于瓶颈状态,并且运行数据丢失的话可以打开此参数提升NFS性能。写入时数据会先写到内存缓冲区,等硬盘有空档再写入磁盘,这样可以提升写入效率,风险若服务器宕机或不正常关机,会损失缓冲区中未写入磁盘的数据(解决办法:服务器主板电池或加UPS不间断电源)。(电商秒杀是异步)
  • no_root_squash   访问NFS服务端共享目录的用户如果是root的话,它对该共享目录具有root权限。这个配置原本为无盘客户端准备的。用户应避免使用。
  • root_squash    对于访问NFS服务端共享目录的用户如果是root的话,则它的权限将被压缩成匿名用户,同时它的UID和GID通常会变成nfsnobody账号身份
  • all_squash   不管访问NFS服务端共享目录的用户身份如何,它的权限都被压缩成匿名用户,同时它的UID和GID都会变成nfsnobody账号身份。在早期多个NFS客户端同时读写NFS服务端数据时,这个参数很有用。*
  • anonuid   参数以anon*开头即值anonymous匿名用户,这个用户的UID设置值通常为nfsnobody的UID值,当然我们也可以自行设置这个UID值。但是,UID必须存在于/etc/passwd中。在多个NFS客户端时,如多台web服务器共享一个NFS目录时,通过这个参数可以使得不同的NFS客户端写入的数据对所有NFS客户端保持同样的用户权限,即为配置的匿名UID对应用户权限,这个参数很有用。
  • anongid   同anonuid,区别是把uid(用户id)换成gid(组id)。

3、开启服务并测试

  先启动rpcbind服务,再启动nfs,不然会出错,使用showmount -e测试能否挂载

[root@vm99-lz-65-test-3059 ~]# /etc/init.d/rpcbind start
正在启动 rpcbind:                                         [确定]
[root@vm99-lz-65-test-3059 ~]# /etc/init.d/nfs start
启动 NFS 服务:                                            [确定]
启动 NFS mountd:                                          [确定]
启动 NFS 守护进程:                                        [确定]
正在启动 RPC idmapd:                                      [确定]
[root@vm99-lz-65-test-3059 ~]# showmount -e localhost
Export list for localhost:
/data 192.168.30.0/24

4、客户端配置

4.1、安装服务并启动

  客户端只需开启rpcbind服务,但是nfs-utils和rpcbind都要安装

[root@vm99-lz-65-test-3059 ~]# yum install -y nfs-utils rpcbind
[root@vm99-lz-65-test-3059 ~]# /etc/init.d/rpcbind start
4.2、挂载
[root@vm96-yw-65-test-3060 ~]# mount -t nfs 192.168.30.59:/data /mnt

#使用df -h查看一下,可以看到,已经挂载成功
[root@vm96-yw-65-test-3060 ~]# df -h
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/vg_linux6-lv_root   36G  1.4G   32G   5% /
tmpfs                          3.9G     0  3.9G   0% /dev/shm
/dev/sda1                      485M   33M  427M   8% /boot
192.168.30.59:/data             36G  1.2G   33G   4% /mnt

  这里我们将192.168.30.59的/data目录挂载在了当前主机的/mnt目录下,你之后在本机/mnt下创建的文件或者目录都相当于创建在192.168.30.59的/data目录下,当你将/data目录umount掉后,/mnt目录会变成原来的样子,挂载/data目录时创建的文件都将不存在,但是你可以在59的/data目录下查找到挂载时创建在60下/mnt里面的文件。
  当然,你在60挂载/data目录时,往59的/data目录写入文件,60的/mnt下面也会显示出该文件。

你可能感兴趣的:(nfs,centos,服务)