前言
在Linux或Windows乃至其他的系统,我们经常会需要进行磁盘的挂载。通常从挂载的方式的上分为本地挂载和远程挂载。Linux的本地挂载就不介绍了,这篇文章介绍的是远程挂载网络磁盘。
远程挂载网络磁盘
实际上,这个操作与使用nfs共享一个文件的方法是相同的。思路是服务端将一块磁盘空间本地挂载到一个目录,然后通过网络使用nfs将这个目录进行共享,客户端最后将服务端共享的目录挂载到自己本地的一个目录,这样就使客户端拥有了一块网络磁盘。
优点是:服务端的同一块磁盘可以挂载到不同的客户端,实现文件的共享;可以扩充客户端的存储空间。
缺点是:依赖网络,当网络联通失败,客户端挂载的网络磁盘会无法使用。
做网络挂载,服务端与客户端网络要联通,最好是在同一局域网内,还要注意防火墙的设置。
NFS简介
- Sun公司于1984年发布。
- NFS 是一种可分散式的网络文件系统。
- 可以通过网络使不同的机器、不同的操作系统,能够分享资料,使客户端能通过网络访问并分享文件到位于服务端的磁盘中。
- NFS在文件传送或信息传送过程中依赖于RPC协议。RPC负责负责信息的传输。
服务端操作
# 1、安装NFS程序
yum -y install nfs*
rpcbind,在centos6以前自带的yum源中为portmap。
使用yum安装nfs时会下载依赖,因此只要下载nfs即可,无需再下载rpcbind.
# 2、查看是否安装了nfs与rpcbind
rpm -qa | grep nfs
rpm -qa | grep rpcbind
# 3、创建需要共享的目录,如要共享的目录已存在请跳过创建
mkdir -p /usr/local/elasticsearch-6.4.1/plugins/elasticsearch-analysis-ansj/library
# 4、配置文件以实现共享,打开文件 /etc/exports并输入以下内容
/usr/local/elasticsearch-6.4.1/plugins/elasticsearch-analysis-ansj/library 10.0.2.96: (rw,no_root_squash,no_all_squash,sync)
要共享给客户端的目录 | /usr/local/elasticsearch-6.4.1/plugins/elasticsearch-analysis-ansj/library |
客户端地址 | 10.0.2.96 |
客户端的权限 | (rw,no_root_squash,no_all_squash,sync) |
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 | 当共享的目录是一个子目录,服务端不检查其父目录的权限 |
# 5、启动nfs,rpcbind,并设为开机自启
# centos7
systemctl start rpcbind
systemctl start nfs
systemctl enable nfs
systemctl enable rpcbind
# centos6
service nfs start
service rpcbind start
# 6、查看是否共享成功
showmount -e localhost
可看到共享的目录及客户端,即为成功
客户端操作
# 1、安装NFS程序
yum -y install nfs*
# 2、启动nfs
# centos7
systemctl start rpcbind
systemctl start nfs
systemctl enable nfs
systemctl enable rpcbind
# centos6
service rpcbind start
service nfs start
chkconfig nfs on
chkconfig rpcbind on
# 3、创建挂载目录
mkdir /home/ansj
# 4、查看是否共享成功
showmount -e 10.0.2.177
# 5、网络挂载
mount -t nfs -o nolock 10.10.2.177:/usr/local/elasticsearch-6.4.1/plugins/elasticsearch-analysis-ansj/library /home/ansj
centos7的nfs默认使用的是nfs4,所以mount -t 无需指定nfs4也可以
# 6、查看是否成功
df -Th
# 7、 卸载网络磁盘,与卸载本地挂载相同
umount /home/ansj
# 或
umount 10.10.2.177:/usr/local/elasticsearch-6.4.1/plugins/elasticsearch-analysis-ansj/library