Mount实现Linux之间数据互相共享
我们的目的通过Mount挂载共享目录,然后通过软连接的方式进行共用数据。具体环境见下:
IP:192.168.5.20
Role:nfs server
IP:192.168.5.21
Role:nfs client
IP:192.168.5.22
Role:nfs client
我们首先在192.168.5.20 --nfs server 上/DATA/目录下创建一个目录sharedir
mkdir sharedir
最终的目录
/DATA/sharedirchmod 755 默认是755安装nfs server yum install -y nfs-utilsyum install rpcbind (系统默认已经有了,可查看下)vim /etc/exports添加以下内容:
/DATA/sharedir *(rw,sync,no_root_squash)下面是一些NFS共享的常用参数:
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
生效 exportfs -r
exportfs -r
保存退出后
systemctl start rpcbind systemctl enable rpcbind systemctl start nfs systemctl enable nfs然后我们查看端口监听状态
netstat -lt然后在需要nfs客户端的服务器上执行以下命令:
192.168.5.21
192.168.5.22
我们需要首先要创建一个挂载目录
然后安装nfs-utils
yum install -y nfs-utils
注意:客户端不需要启动nfs服务
然后启动rpcbind服务
systemctl enable rpcbind查看测试共享目录:
查看已共享的目录,命令:
本机:showmount -e 其他:showmount -e IP showmount -e nfsserver showmount -e 192.168.5.20mount -t nfs 192.168.5.20:/DATA/sharedir /DATA/sharedir然后我们通过df -h进行查看
最后我们为了保证能够启动启动挂载
vim /etc/fstab 192.168.5.20:/DATA/sharedir /DATA/sharedir nfs defaults 0 0最后我们做一下测试,我们创建测试文件
我们在nfs客户端上从创建文件
接着我们在nfs服务器上进行查看
最后做一下软连接
我们同样在/DATA目录下创建一个目录,然后命名为fileslink
我们需要将该文件夹连接到sharedir目录下
我们同样也需要在共享目录中创建一个同名的文件夹
最后我们做一下软连接
ln -s 源文件 目标文件,在目标文件下建立虚拟链接(快捷键)
/OAFS/mount/3 是真实存在的数据----共享磁盘数据
/OAFS/software/1/2/ 下没有数据3,我们通过软链接,将共享磁盘中的3,连接到2目录下
ln -s /OAFS/mount/3 /OAFS/software/1/2/3进入2后,看见的3目录是从共享磁盘的数据