假设三台机器10.3.92.1,10.3.92.2,10.3.92.3,其中10.3.92.1是nfs的server,另外两台机来挂载
安装nfs
1 | # 三台机子分别安装,挂载机如果不做nfs server服务,可只安装rpcbind |
开启nfs服务端
启动对应的nfs服务,rpcbind是用来做服务通信,nfs-utils包含nfs服务
1 | # 设置开机启动 |
nfs server设置nfs卷输出
提前创建好目录/data0/dir1,/data0/dir2
1 | # 编辑/etc/exports,内容如下: |
说明:
- rw – 允许对共享目录进行读写
- ro — 只读
- sync – 同步模式,内存中数据时时写入磁盘
- async — 不同步,把内存中数据定期写入磁盘中
- no_root_squash – 允许root访问,不安全
- root_squash – 把uid/gid 0映射到匿名uid/gid
- all_squash – 不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通匿名用户
- no_subtree_check – 如果卷的一部分被输出,从客户端发出请求文件的一个常规的调用子目录检查验证卷的相应部分。如果是整个卷输出,禁止这个检查可以加速传输
- anonuid/anongid – 要和root_squash或者all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid
- insecure_locks/no_auth_nlm – 两个等同,不进行锁请求的验证。一般NFS server要求一个锁请求必须持有获取文件锁的验证。
生效配置
1 | $ exportfs -arv # a表示all,r表示重新加载,v表示打印输出 |
说明:
- a :全部挂载或者卸载;
- r :重新挂载;
- u :卸载某一个目录;
- v :显示共享的目录;
nfs client配置nfs挂载
查看可挂载的server目录
1 | $ showmount -e 10.3.92.1 |
挂载nfs目录
/etc/fstab格式:
1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|
fs_spec | fs_file | fs_type | fs_options | fs_dump | fs_pass |
- Fs_spec: 定义希望加载的文件系统所在的设备或远程文件系统,对于nfs则设为IP:/共享目录
- Fs_file: 本地挂载点
- Fs_type: 挂载类型
- Fs_options: 挂载参数
- Fs_dump: 该选项被“dump”命令使用来检查一个文件系统该以多快频率进行转储,若不需转储即为0
- Fs_pass: 该字段被fsck命令使用来决定在启动时需要被扫描的文件系统的顺序,根文件系统“/”对应该字段值为1,其他文件系统为2,若该文件系统无需在启动时被扫描则为0
挂载参数的说明
参数 | 代表意义 | 系统默认值 |
---|---|---|
suid/nosuid | suid | |
rw/ro | 读写,只读 | rw |
dev/nodev | 是否保留装置档案的特殊功能, 一般只有/dev这个目录才会有特殊的装置 | dev |
exec/noexec | 是否具有执行binary file的权限 | exec |
user/nouser | 是否允许使用者进行档案的挂载与卸除功能 | nouser |
auto/noauto | mount -a时,会不会被挂载. 若不需要这个 partition 随时被挂载, 可设定为noauto | auto |
fg/bg | 执行挂载时,挂载的行为会在前景(fg)还是在背景(bg)执行. 若fg时,则mount会持续尝试挂载,直到成功或timeout为止; 若bg时,则mount会在背景持续多次进行mount,而不会影响到前景的程序操作 | fg |
soft/hard | 若hard,则当两者之间有任何一部脱机,则RPC会持续的呼叫,直到对方恢复联机为止; 若soft,RPC会在timeout后重复呼叫,而非持续呼叫,系统延迟会比较不明显 | hard |
intr | 当使用hard方式挂载,intr表示当RPC持续呼叫中,呼叫是可以被中断的(interrupted) | 没有 |
rsize/wsize | 读出(rsize)与写入(wsize)的区块大小(block size),最大只能设置到1M,即1048576 | rsize=1024,wsize=1024 |
lock/nolock | 使用NLM协议对nfs-server上的文件进行锁文件; nolock也可以锁文件,但仅仅对相同客户机进行锁文件,远程应用不受此锁的影响。 当NFS挂载到/var目录下,或者NFS server不支持NLM协议,则必须设置成nolock.(见[fstab_手册]) | lock |
1 | # 编辑/etc/fstab,10.3.92.2添加如下内容 |
挂载
1 | $ mount -a |
查看挂载状态
1 | $ df -h -T |