1. NFS介绍 ....................................................... 1 2. NFS安装 ....................................................... 1
2.1. 2.2.
测试环境 ................................................................................................................................. 1 安装 ......................................................................................................................................... 2
3. NFS配置 ....................................................... 2
3.1. 3.2. 3.3.
NFS配置文件详解 .................................................................................................................. 2 服务端配置 ............................................................................................................................. 4 客户端配置 ............................................................................................................................. 4
4. 安装配置流程总结 ............................................... 6
4.1. 4.2.
服务端 ..................................................................................................................................... 6 客户端 ..................................................................................................................................... 6
5. 注意事项....................................................... 7
5.1. 5.2. 5.3.
安装前注意事项 ..................................................................................................................... 7 权限相关 ................................................................................................................................. 7 其他 ......................................................................................................................................... 7
6. 参考资料....................................................... 7
1. NFS介绍
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责信息的传输。
2. NFS安装
2.1. 测试环境
服务端: 机器类型:物理机
系统平台:Red Hat Enterprise Linux6.4 系统类型:x IP:192.168.61.237
防火墙已关闭/iptables: Firewall is not running. SELINUX=disabled 客户端1: 机器类型:虚拟机VirtualBox 系统平台:Ubuntu14.04 系统类型:x32 IP:DHCP动态分配
防火墙已关闭/iptables: Firewall is not running. SELINUX=disabled 客户端2: 机器类型:虚拟机VirtualBox 系统平台:Red Hat Enterprise Linux6.4 系统类型:x IP:192.168.61.77 防火墙已关闭/iptables: Firewall is not running. SELINUX=disabled
1
2.2. 安装 2.2.1. 服务端安装
使用chkconfig–list命令检查系统中是否安装了RPCBIND和NFS服务,未安装则继续下
一步。 将相关安装包上传到服务器,执行以下命令安装(命令有序): rpm -ivh keyutils-1.4-4.el6.x86_.rpm rpm -ivh libevent-1.4.13-4.el6.x86_.rpm rpm -ivh libgssglue-0.1-11.el6.x86_.rpm rpm -ivh libtirpc-0.2.1-5.el6.x86_.rpm rpm -ivhrpcbind-0.2.0-11.el6.x86_.rpm rpm -ivhnfs-utils-lib-1.1.5-6.el6.x86_.rpmnfs-utils-1.2.3-36.el6.x86_.rpm 执行以下命令开启服务(命令有序): servicerpcbind start service nfs start 2.2.2. 客户端安装
RedHat6.4:
在安装系统时选择“基本服务器安装”,即可安装RPCBIND 和NFS
chkconfig–list命令确保已安装。若未安装,则安装步骤同服务端。 Ubuntu14.04:
Ubuntu14.04中默认安装RPCBIND服务,使用sudo service --status-all命令确保已安装。 执行sudo apt-get install nfs-kernel-server安装NFS。
服务,用
3. NFS配置
3.1. NFS配置文件详解 3.1.1. NFS的常用目录
/etc/exports /usr/sbin/exportfs /usr/sbin/showmount /var/lib/nfs/etab /var/lib/nfs/xtab
NFS服务的主要配置文件 NFS服务的管理命令 客户端的查看命令
记录NFS分享出来的目录的完整权限设定值 记录曾经登录过的客户端信息
NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没
2
有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。
3.1.2. /etc/exports文件格式
/etc/exports文件内容格式为: <输出目录1> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]„ <输出目录2> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]„ „ <输出目录N> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]„ 输出目录:
输出目录是指NFS系统中需要共享给客户机使用的目录;
客户端:
客户端是指网络中可以访问这个NFS输出目录的计算机 客户端常用的指定方式
指定ip地址的主机:192.168.0.200
指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0 指定域名的主机:david.bsmart.cn 指定域中的所有主机:*.bsmart.cn 所有主机:* 选项:
选项用来设置输出目录的访问权限、用户映射等。 NFS主要有3类选项:
访问权限选项
ro:设置输出目录只读 rw:设置输出目录读写
用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置); no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx); 其它选项
secure:客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
3
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性; async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用; subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置); no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
3.2. 服务端配置 3.2.1. 创建共享目录
执行以下命令创建共享目录并修改目录权限: mkdir /home/nfstest chmod 777 /home/nfstest 3.2.2. 修改NFS配置文件
NFS主要配置文件:/etc/exports 在配置文件中追加一行:
/home/nfstest*(all_squash,rw,insecure) 其中,/home/nfstest为共享目录,*为对所有主机开放,all_squash为将所有用户映射为nfsnobody用户,rw为目录可读写,insecure为允许客户端从大于1024的TCP/IP端口连接服务器。
3.2.3. 启用NFS相关服务
在修改NFS配置文件后,可以执行以下命令平滑重启NFS服务: /etc/init.d/nfs reload //或 exportfs -r 执行以下命令设置服务开机启动: chkconfig –level 35rpcbind on chkconfig –level 35 nfs on 3.3. 客户端配置 3.3.1. 启用NFS相关服务
客户端只需安装NFS-util,无需启动NFS服务,但是需要启动RPCBIND服务: servicerpcbindstart 执行以下命令设置服务开机启动: chkconfig –level 35 rpcbind on 4
3.3.2. 临时挂载
创建挂载目录: mkdir/home/mounttest 执行以下命令即可临时挂载目录,重启后挂载失效: mount 192.168.61.237:/home/nfstest /home/mounttest 在挂载目录下使用touch1.txt创建名为1.txt的文件,执行ls -l得到如下结果: -rw-r—r— 1nobody nobody 0 Feb 24 14:52 1.txt 在服务端对应目录下执行ls -l得到如下结果: -rw-r—r— 1nfsnobodynfsnobody 0 Feb 24 14:52 1.txt 3.3.3. 开机自动挂载
3.3.3.1. /etc/fstab文件格式
Linux开机时会主动读取/etc/fstab文件中的内容,根据文件中的配置挂载磁盘,这样我们只需要将磁盘的挂载信息写入这个文件中,就不需要每次开机启动之后手动进行挂载了。
fstab文件中默认内容如下: # /etc/fstab # Created by anaconda on Fri Feb 24 11:00:15 2017 # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/vg_lichi-lv_root / ext4 defaults 1 1 UUID=86fb5eab-77-40a7-9bdc-6a996a11a6f7 /boot ext4 defaults 1 2 /dev/mapper/vg_lichi-lv_swap swap swap defaults 0 0 tmpfs /dev/shmtmpfs defaults 0 0 devpts /dev/pts devptsgid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 第一列:Device,磁盘设备文件或者该设备的Label或者UUID。 第二列:设备挂载点。
第三列:磁盘文件系统的格式,挂载NFS目录则填写nfs。
第四列:文件系统的参数。
async/sync:设置是否为同步方式运行,默认为async auto/noauto :当下载mount -a 的命令时,此文件系统是否被主动挂载,默认为auto
rw/ro:是否以以只读或者读写模式挂载
5
exec/noexec:此文件系统内是否能够进行\"执行\"的操作 user/nouser:是否允许用户使用mount命令挂载 suid/nosuid:是否允许SUID的存在
usrquota:启动文件系统支持磁盘配额模式
grpquota:启动文件系统对群组磁盘配额模式的支持
defaults:同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置
第五列:能否被dump备份命令作用。
0:不做备份
1:每天进行dump操作
2:不定日期进行dump操作 第六列:是否检验扇区。
0:不检验
1:最早检验(一般根目录会选择) 2:1级别检验完成之后进行检验
3.3.3.2. 配置/etc/fstab实现启动时挂载
在/etc/fstab中追加以下配置即可实现开机挂载: 192.168.61.237:/home/nfstest /home/mounttestnfs defaults 0 0 4. 安装配置流程总结
4.1. 服务端
1. chkconfig-list查看是否安装了RPCBIND和NFS服务,若未安装,跳转到2,若已安装,跳
转到4。
2. 若未安装RPCBIND,则将keyutils-1.4-4.el6.x86_.rpm、libevent-1.4.13-4.el6.x86_.rpm、
libgssglue-0.1-11.el6.x86_.rpm、libtirpc-0.2.1-5.el6.x86_.rpm和rpcbind-0.2.0-9.el6.x86_.rpm复制到服务端执行rpm-ivh文件名进行安装。
3. 若未安装NFS,则将nfs-utils-lib-1.1.5-4.el6.x86_.rpm和nfs-utils-1.2.3-26.el6.x86_.rpm
复制到服务端执行rpm-ivh文件名进行安装。
4. 执行servicerpcbindstart和servicenfsstart启动服务。
5. 在/etc/exports中追加NFS挂载配置并保存,如:/home/nfstest*(all_squash,rw,insecure) 6. 将挂载目录权限设置为777。
7. 执行exportfs-r或/etc/init.d/nfs -reload平滑重启NFS服务。
8. 执行chkconfig-level35rpcbindon和chkconfig-level35nfson设置服务开机启动。 9. 执行showmount -e 192.168.61.237查看当前被挂载的目录。
4.2. 客户端
1. chkconfig--list查看是否安装了RPCBIND和NFS服务,若未安装,进行跳转到2,若已安装,
跳转到4。
2. 若未安装RPCBIND,则将keyutils-1.4-4.el6.x86_.rpm、libevent-1.4.13-4.el6.x86_.rpm、
6
libgssglue-0.1-11.el6.x86_.rpm、libtirpc-0.2.1-5.el6.x86_.rpm和rpcbind-0.2.0-9.el6.x86_.rpm复制到服务端执行rpm-ivh文件名进行安装。
3. 若未安装NFS,则将nfs-utils-lib-1.1.5-4.el6.x86_.rpm和nfs-utils-1.2.3-26.el6.x86_.rpm
复制到服务端执行rpm-ivh文件名进行安装。 4. 执行servicerpcbindstart启动RPCBIND服务。
5. 执行chkconfig-level35rpcbindon设置服务开机启动。
6. 临时挂载目录,如:mount 192.168.61.237:/home/nfstest /home/mounttest。
7. 设置启动时自动挂载,在/etc/fstab中追加NFS挂载配置并保存,如:192.168.61.237:/ho
me/nfstest /home/mounttestnfs defaults 0 0。 8. 执行mount命令查看挂载是否成功。
5. 注意事项
5.1. 安装前注意事项
RedHat6安装光盘中自带RPCBIND和NFS,若安装系统时选择最小化安装,则不会安装。 RedHat5及以前版本和其他旧版本的Linux(如CentOS5)中NFS依赖的服务不是RPCBIND,
而是PORTMAP,新版本Linux中PORTMAP服务被RPCBIND取代。若需要在旧版本的系统中安装NFS,需要将涉及RPCBIND的文件和命令替换为PORTMAP的文件和命令。
5.2. 权限相关
在/etc/exports配置文件中,当用户映射设置为all_squash时,所有挂载此目录的客户端
创建的文件,所属用户和所属用户组都为nfsnobody(nfs匿名用户),即客户端用户映射为服务端的nfsnobody用户,所以在创建挂载目录时注意将目录的权限设为777或者更改挂载目录的所属用户和所属用户组为nfsnobody,否则客户端挂载成功后在创建文件时会提示没有相应权限。
5.3. 其他
重启环境时,需要保证服务端先启动。当客户端配置了开机自动挂载,如果载入NFS
服务时若服务端未启动,客户端开机会卡在Mounting NFSFilesystems无法进入系统。 安装前需要注意将各机器之间的时间同步,否则设置自动挂载后,客户端重启后会卡在
Mounting NFSFilesystems无法进入系统。
服务端需要启动NFS和RPCBIND两个服务,客户端只需要启动RPCBIND就可以了。
6. 参考资料
RHEL6.4 NFS文件共享服务器搭建 Linux NFS服务器的安装与配置 NFS配置及其自动挂载配置 详细讲解NFS配置过程
Linux中fstab文件的配置和理解
7
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务