Linux

Linux远程挂载网络硬盘详解 (NFS共享)


前言

在Linux或Windows乃至其他的系统,我们经常会需要进行磁盘的挂载。通常从挂载的方式的上分为本地挂载和远程挂载。Linux的本地挂载就不介绍了,这篇文章介绍的是远程挂载网络磁盘。


远程挂载网络磁盘

实际上,这个操作与使用nfs共享一个文件的方法是相同的。思路是服务端将一块磁盘空间本地挂载到一个目录,然后通过网络使用nfs将这个目录进行共享,客户端最后将服务端共享的目录挂载到自己本地的一个目录,这样就使客户端拥有了一块网络磁盘。

优点是:服务端的同一块磁盘可以挂载到不同的客户端,实现文件的共享;可以扩充客户端的存储空间。
缺点是:依赖网络,当网络联通失败,客户端挂载的网络磁盘会无法使用。

做网络挂载,服务端与客户端网络要联通,最好是在同一局域网内,还要注意防火墙的设置。


NFS简介

Sun公司于1984年发布。

NFS 是一种可分散式的网络文件系统。

可以通过网络使不同的机器、不同的操作系统,能够分享资料,使客户端能通过网络访问并分享文件到位于服务端的磁盘中。

NFS在文件传送或信息传送过程中依赖于RPC协议。RPC负责负责信息的传输。


服务端操作

一、安装NFS程序

[root@Master ~]# yum -y install nfs*

rpcbind,在centos6以前自带的yum源中为portmap。
使用yum安装nfs时会下载依赖,因此只要下载nfs即可,无需再下载rpcbind.

二、查看是否安装了nfs与rpcbind

[root@Master ~]# rpm -qa | grep rpcbind
rpcbind-0.2.0-16.el6.x86_64
[root@Master ~]# rpm -qa | grep nfs
nfs-utils-1.2.3-78.el6_10.2.x86_64
nfs-utils-lib-1.1.5-13.el6.x86_64

三、创建共享的目录并共享(如要共享的目录已存在请跳过创建)

[root@Master ~]# mkdir /mnt/nfs01

四、配置要共享的目录

[root@Master ~]# vim /etc/exports

/data 10.10.10.10(rw,no_root_squash,no_all_squash,sync)

具体配置详解参考下表

配置


/mnt/nfs01 10.10.10.0/24 (rw,no_root_squash,no_all_squash,sync)

要共享的目录 要分享给的客户端 客户端对此共享目录的权限


----------


客户端指定


192.168.1.125 指定特定的的IP可以共享nfs目录

* 指定所有网段及ip都可以共享nfs目录

192.168.1.0/24 指定子网中的所有主机都可以共享nfs目录

2018fs.wxyonghe.com 指定域名的主机可以共享nfs目录


----------


权限


rw 可读可写

ro 只读(还与文件系统的rwx有关)

sync   数据同步写入到内存与硬盘中

async 数据先暂存于内存当中,不会直接写入硬盘

wdelay 当有写操作,就会检查是否有相关的写操作,并在一起执行(默认设置)

no_wdelay 当有写操作就立即执行,通常要与sync配合使用

root_squash 当客户端登陆NFS的身份为root用户时,将客户端的root用户及所属组都映射为匿名用户或用户组(默认设置)

no_root_squash   使客户端可以使用root身份及权限来操作共享的目录

all_squash 无论客户端登陆NFS的身份为何,都将映射为匿名用户

no_all_squash 无论客户端登陆NFS的身份为何,都将映射为root用户(默认设置)

anonuid 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户

anongid 将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户

secure 使客户端只能从小于1024的tcp/ip端口连接服务端(默认设置)

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

subtree 当共享的目录是一个子目录,服务端会检查其父目录的权限(默认设置)

no_subtree 当共享的目录是一个子目录,服务端不检查其父目录的权限

五、启动rpcbind,nfs,并设为开机自启 (切记先启动rpcbind)

(centos7)
[root@Master ~]# systemctl start rpcbind
[root@Master ~]# systemctl start nfs
[root@Master ~]# systemclt enable rpcbind
[root@Master ~]# systemctl enable nfs

(centos6)
[root@Master ~]# service rpcbind start
[root@Master ~]# service nfs start
[root@Master ~]# chkconfig rpcbind on
[root@Master ~]# chkconfig nfs on

六、查看是否共享成功

[root@Master ~]# showmount -e localhost
Export list for localhost:
/mnt/nfs01 10.10.10.10
[root@Master ~]# 

客户端操作

一、安装NFS程序

[root@Slaver ~]# yum -y install nfs*

二、启动nfs

(centos7)
[root@Slaver ~]# systemctl start rpcbind
[root@Slaver ~]# systemctl start nfs
[root@Slaver ~]# systemclt enable rpcbind
[root@Slaver ~]# systemctl enable nfs

(centos6)
[root@Slaver ~]# service rpcbind start
[root@Slaver ~]# service nfs start
[root@Slaver ~]# chkconfig rpcbind on
[root@Slaver ~]# chkconfig nfs on

三、创建挂载目录

[root@Slaver ~]# mkdir /data/nfsone

四、查看是否共享成功

[root@Slaver ~]# showmount -e nfs服务端IP

[root@Slaver ~]# showmount -e 10.10.20.212

五、网络挂载

[root@Slaver ~]# mount -t nfs -o nolock 服务端IP:共享目录绝对路径 本地挂载目录
[root@Slaver ~]# mount -t nfs -o nolock 10.10.20.212:/mnt/nfs01 /data/nfsone

centos7的nfs默认使用的是nfs4,所以mount -t 无需指定nfs4也可以

六、查看是否成功

[root@Slaver ~]# df -Th

七、卸载网络磁盘

[root@Slaver ~]# umount /data/nfsone

或

[root@Slaver ~]# umount 10.10.20.212:/mnt/nfs01

八、重启自动挂载

[root@Slaver ~]# vi /etc/fstab

在最后添加

10.10.20.212:/mnt/nfs01 /data/nfsone                   nfs     rw,hard,intr            0 0

 

 

 

Linux
electerm,免费开源的SSH桌面终端,像xshell、termius一样好用
还没有评论哦,快来抢沙发吧!