1.安装
NFS服务端安装:
sudo apt install nfs-kernel-server(UOS系统自带了,不需要安装)
NFS客户端安装:
sudo apt install nfs-common (UOS系统自带了,不需要安装)
2.服务端配置
1)创建共享目录 sudo mkdir -p /data/nfs
2)配置 /etc/exports (NFS挂载目录及权限由/etc/exports文件定义) vi /etc/exports
/data/nfs 10.140.1.*(rw,sync,no_root_squash,no_subtree_check)
- /data/nfs 要共享的目录
- 10.140.1.* 可以挂载的ip,如果全部可挂载,可以直接写成 *
- rw 读写
- ro 只读
- sync 同步, 同时将数据写入到内存与硬盘中,保证不丢失数据
- async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据请注意
- root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 即 root用户的所有请求映射成如anonymous用户一样的权限(默认)
- no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 即NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限
- all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 即 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
- no_all_squash 保留共享文件的UID和GID(默认)
- subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
- no_subtree_check 和上面相对,不检查父目录权限。
- secure NFS通过1024以下的安全TCP/IP端口发送
- insecure NFS通过1024以上的端口发送
- wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
- no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
- hide 在NFS共享目录中不共享其子目录
- no_hide 共享NFS目录的子目录
- anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
- anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
【eg:网路段10.140.1.0到10.140.1.24网路段才可挂载且权限只读: /data/nfs 10.140.1.0/24(ro) 】
【 eg:/home/share 192.168.102.15(rw,sync) *(ro) (配置说明: 对192.168.102.15赋予读写权限,其他机器仅有只读权限。)】
检查配置是否有错: source /etc/exports
3)启动NFS服务
sudo /etc/init.d/rpcbind restart
sudo /etc/init.d/nfs-kernel-server restart (启动nfs,如后面再修改/etc/exports,需重启NFS才生效)
查询是否启动 ps -ef|grep nfs
4)exportfs
是不是我们每次修改了配置文件都需要重启Debian NFS服务器服务呢? 这个时候我们就可以用exportfs命令重新扫描/etc/exports文件,来使改动立刻生效。
比如:
# exportfs -au 卸载所有共享目录
# exportfs -rv 重新共享所有目录并输出详细信息
# man exportfs exportf 命令有软件包 nfs-kernel-server 提供,详细的 exportfs 命令说明请查看
3.客户端配置
1)使用showmount 命令查看nfs服务器共享信息。输出格式为“共享的目录名称 允许使用客户端地址”。 showmount命令参数:
-
- -a :显示目前主机与客户端的 NFS 联机分享的状态
- -e :显示/etc/exports 所分享的目录数据
2)映射服务端ip sudo vi /etc/hosts
3)挂载
查看挂载情况 df -h
创建要挂载的文件夹 sudo mkdir -p /mnt/nfs/share
挂载:mount -n -o nolock nfs.sharedir:/data/nfs /mnt/nfs/share -o nolock
检查:
4)解挂 umount /mnt/nfs/share
挂载命令:mount [-fnrsvw] [-t vfstype] [-o options] device dir
【 eg:mount -o nolock -t nfs 192.168.1.24:/home/test /mnt/nfs (-t nfs 文件系统类型为nfs, -o nolock 文件锁)】
-
device:指明要挂载的设备
- (1) 设备文件:例如/dev/sda5
- (2) 卷标:-L ‘LABEL‘, 例如 -L ‘MYDATA‘
- (3) UUID, -U ‘UUID‘:例如 -U ‘0c50523c-43f1-45e7-85c0-a126711d406e‘
- (4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
-
dir:挂载点
- (1)事先存在;建议使用空目录;
- (2)进程正在使用中的设备无法被卸载
-
常用命令选项:
- -t vsftype:指定要挂载的设备上的文件系统类型;通常不必指定。mount 会自动选择正确的类型。常用类型有光盘或光盘镜像:iso9660;DOS fat16文件系统:msdos;Windows 9x fat32文件系统:vfat;Windows NT ntfs文件系统:ntfs;Mount Windows文件网络共享:smbfs;UNIX(LINUX) 文件网络共享:nfs
- -r: readonly,只读挂载;
- -w: read and write, 读写挂载;
- -n: 不更新/etc/mtab;
- -a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
- -L ‘LABEL‘: 以卷标指定挂载设备;
- -U ‘UUID‘: 以UUID指定要挂载的设备;
- -B, --bind: 绑定目录到另一个目录上;
- -o options:(挂载文件系统的选项,主要用来描述设备或档案的挂接方式)
- (默认挂载选项:defaults:rw, suid, dev, exec, auto, nouser, and async)
- loop:用来把一个文件当成硬盘分区挂接上系统
- ro:只读
- rw:读写
- nolock 文件锁
- iocharset:指定访问文件系统所用字符集
- async:异步模式;
- sync:同步模式;
- atime/noatime:包含目录和文件;
- diratime/nodiratime:目录的访问时间戳
- auto/noauto:是否支持自动挂载
- exec/noexec:是否支持将文件系统上应用程序运行为进程
- dev/nodev:是否支持在此文件系统上使用设备文件;
- suid/nosuid:是否支持在此文件系统上使用特殊权限
- remount:重新挂载
- user/nouser:是否允许普通用户挂载此设备
- acl:启用此文件系统上的acl功能
- 注意:上述选项可多个同时使用,彼此使用逗号分隔;
注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts
fdisk -l 列出所有的分区,包括没有挂上的分区和usb设备 。(fdisk命令操作磁盘详解--添加、删除、转换分区等)
df -h 查看磁盘占用空间
blkid 查看文件系统类型、LABEL、UUID等信息 (blkid 查看所有设备的信息, blkid /dev/vda4 查看/dev/vda4设备的信息)
参考网址:
https://blog.csdn.net/daydayup654/article/details/78788310
https://baijiahao.baidu.com/s?id=1685378383477375934&wfr=spider&for=pc