NFS的创建和使用及其快捷脚本

说明

NFS是网络文件系统,公司内部使用NFS做文件的共享。在集群管理中,比如php的应用,可以让集群机器mount相同的NFS目录使得数据可以同步。如果需要使用NFS的高可用集群,可以采用现有的存储集群软件。

安装

rpcbind提供远程调用接口,默认会随着nfs-utils安装包依赖安装。在服务器上,要同时启动rpcbind和nfs服务。

1. yum install nfs-utils

2. 创建准备共享的文件

mkdir -p /data/share

3. 修改暴露文件的配置

tee /etc/exports <<EOF
/data/share 192.168.10.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
EOF

关于此文件的配置

说明一下,这里配置后边有很多参数,每个参数有不同的含义,具体可以参考下边。此处,我配置了将 /data/share 文件目录设置为允许 IP 为该 10.222.77.0/24 区间的客户端挂载,当然,如果客户端 IP 不在该区间也想要挂载的话,可以设置 IP 区间更大或者设置为 * 即允许所有客户端挂载,例如:/home *(ro,sync,insecure,no_root_squash) 设置 /home 目录允许所有客户端只读挂载。

参数说明
ro只读访问
rw读写访问
sync所有数据在请求时写入共享
asyncnfs 在写入数据前可以响应请求
securenfs 通过 1024 以下的安全 TCP/IP 端口发送
insecurenfs 通过 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_squashroot 用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squashroot 用户具有根目录的完全管理访问权限
anonuid=xxx指定 nfs 服务器 /etc/passwd 文件中匿名用户的 UID
anongid=xxx指定 nfs 服务器 /etc/passwd 文件中匿名用户的 GID

4. 启动服务器

systemctl start rpcbind && systemctl start nfs

5.查看本地能够共享的软件

[root@sv14-143 ~]# showmount -e localhost
Export list for localhost:
/data/share 192.168.10.0/24

6.至此安装介绍

使用

在客户机器上,注意客户机器的IP必须在192.168.10.0/24网段。

1.安装ntfs-utils包

2.创建目录并且进入目录修改文件

[root@sv10-141 ~]# mkdir -p /mnt/share
[root@sv10-141 ~]# mount 192.168.10.143:/data/share /mnt/share
[root@sv10-141 ~]# cd /mnt/share
[root@sv10-141 share]# touch aa bb cc
[root@sv10-141 share]# ll
total 0
-rw-r--r-- 1 root root 0 Dec 10 23:43 a
-rw-r--r-- 1 root root 0 Dec 11 11:52 aa
-rw-r--r-- 1 root root 0 Dec 10 23:44 b
-rw-r--r-- 1 root root 0 Dec 11 11:52 bb
-rw-r--r-- 1 root root 0 Dec 11 11:52 cc
[root@sv10-141 share]# df -Th
Filesystem                 Type      Size  Used Avail Use% Mounted on
devtmpfs                   devtmpfs  874M     0  874M   0% /dev
tmpfs                      tmpfs     885M     0  885M   0% /dev/shm
tmpfs                      tmpfs     885M  8.6M  877M   1% /run
tmpfs                      tmpfs     885M     0  885M   0% /sys/fs/cgroup
/dev/mapper/centos-root    xfs       8.0G  1.6G  6.5G  20% /
/dev/vda1                  xfs      1014M  193M  822M  19% /boot
tmpfs                      tmpfs     177M     0  177M   0% /run/user/0
192.168.10.143:/data/share nfs4      8.0G  1.4G  6.7G  18% /mnt/share

提供一个脚本创建指定用途的nfs脚本

#!/bin/bash
[ $# -lt 4 ] && echo " usage: $0 pdir cdir from to " && exit 1
NFS=/home/share
PDIR=$1
CDIR=$2
FROM=$3
TO=$4
for num in `seq -s ' ' $FROM  $TO `
do
        mkdir -p $NFS/$PDIR/$CDIR-$num
        if grep -q "$NFS/$PDIR/$CDIR-$num" /etc/exports ; then
                continue
        else
                echo "$NFS/$PDIR/$CDIR-$num *(rw,no_root_squash,sync)" >>/etc/exports
        fi
done
        exportfs -a

 

3 结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老骥又出发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值