您的位置:首页 > 运维架构 > Linux

NFS安装和配置 分类: Linux 2015-07-25 00:16 303人阅读 评论(0) 收藏

2015-07-25 00:16 627 查看
------------------------------------------------------------------------------------------------------------------
NFS就是NetworkFileSystem的缩写,最早是由Sun公司发展开发出来的,它最大的功能就是可以通过网络,让不同计算机,不同操作系统,可以共享资源文件。用户和程序可以像访问本地文件一样访问NFS上的文件
因为NFS支持的功能相当的多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据
NFS需要依赖RPC(RemoteProcedureCall),RPC最主要的功能就是在指定每个NFS功能所对应的端口号,并且将其反馈给客户端,让客户端可以连结到正确的端口号上去
所以要启动NFS之前,RPC就要先启动了,否则NFS会无法向RPC注册
rpc.nfsd:
这个daemon主要的功能就是在管理Client是否能够登入主机的权限,其中还包含这个登入者的ID的判断!
rpc.mountd
这个daemon主要的功能,则是在管理NFS的文件系统!当Client端顺利的通过rpc.nfsd而登入主机之后,在他可以使用NFS服务器提供的档案之前,还会经过文件权限(就是那个-rwxrwxrwx与owner,group那几个权限)的认证程序!他会去读NFS的配置文件/etc/exports来比对Client的权限,当通过这一关之后Client就可以取得使用NFS文件的权限了!(注:这个也是我们用来管理NFS分享之目录的权限与安全设定的地方)
rpc.lockd
这个进程可以用在管理文件的锁定(lock)用途。为何文件需要『锁定』呢?因为既然分享的NFS档案可以让客户端使用,那么当多个客户端同时尝试写入某个文件时,就可能对于该文件造成一些问题啦!这个rpc.lockd则可以用来克服这个问题。但rpc.lockd必须要同时在客户端与服务器端都开启才行喔!此外,rpc.lockd也常与rpc.statd同时启用。
rpc.statd
可以用来检查文件的一致性,与rpc.lockd有关!若发生因为客户端同时使用同一文件造成文件可能有所损毁时,rpc.statd可以用来检测并尝试恢复该文件。与rpc.lockd同样的,这个功能必须要在服务器端与客户端都启动才会生效。
rpc.rquotad
处理当用户通过nfsmount到远程服务器时的配额
NFS/etc/exports配置含义
/data1/storage*(rw,async,no_root_squash,no_subtree_check)
/data1/storage是要共享的目录
*是允许访问的计算机,可以是以下内容
单个机器:一个全限定域名(能够被服务器解析)、主机名(能够被服务器解析)或IP地址。
通配符指定的主机名,使用*或?字符来指定一个字符串匹配,IP地址中不使用通配符,*代表允许所有计算机访问共享目录
IP网络:使用a.b.c.d/z,a.b.c.d是网络,z是子网掩码中的位数(如192.168.0.0/24)。另一种可以接受的格式是a.b.c.d/netmask,a.b.c.d是网络,netmask是子网掩码(如192.168.70.8/255.255.255.0)。
()内是共享选项
rw是指客户端拥有读写权限,还有一个ro选项,代表只读
sync同步写入到内存与硬盘中
async异步写入,写入时会先放到内存,等硬盘有空档再写入
root_squash客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash客户端使用root访问共享目录时还是拥有root权限,
root_squash:如果客户端使用root访问共享目录,会被当作匿名用户(也就是说,权限变的很小,比较安全)
all_squash:无论客户端使用什么用户访问共享目录都会被当作匿名用户
subtree_check如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check和上面相对,不检查父目录权限
其它选项参考manexports
------------------------------------------------------------------------------------------------------------------
#安装NFS(所有节点都要安装)
yum-yinstallnfs-utils
#创建NFS存储目录
mkdir-p/data/storage
#修改/etc/exports
vi/etc/exports
/data/storage*(rw,async,no_root_squash,no_subtree_check)
#修改/etc/sysconfig/nfs
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
#修改/etc/sysconfig/iptables
-AINPUT-s192.168.32.0/24-mstate--stateNEW-pudp--dport111-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-ptcp--dport111-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-ptcp--dport2049-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-ptcp--dport32803-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-pudp--dport32769-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-ptcp--dport892-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-pudp--dport892-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-ptcp--dport875-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-pudp--dport875-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-ptcp--dport662-jACCEPT
-AINPUT-s192.168.32.0/24-mstate--stateNEW-pudp--dport662-jACCEPT
#重启防火墙
serviceiptablesrestart
#启动NFS
servicerpcbindstart
servicenfsstart
chkconfigrpcbindon
chkconfignfson
#在KVM的主机上挂载NFS
mount-tnfs192.168.32.170:/data/storage/mnt/storage
#启动虚拟机时会出现权限的问题
error:Failedtostartdomaincentos-nfs
error:internalerrorprocessexitedwhileconnectingtomonitor:2015-07-16T21:37:17.473018Zqemu-kvm:-drivefile=/mnt/storage/centos.qcow2,if=none,id=drive-virtio-disk0,format=qcow2:couldnotopendiskimage/mnt/storage/centos.qcow2:Permissiondenied
#关闭所有机器的SELinux
sed-i's/SELINUX=enforcing/SELINUX=permissive/'/etc/selinux/config
sed-i's/SELINUX=enforcing/SELINUX=permissive/'/etc/sysconfig/selinux
setenforce0
#然后重新启动libvirt
servicelibvirtdrestart

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: