如何配置linux内核具有nfs的功能

如何配置linux内核具有nfs的功能,第1张

1、使用的技术
NFS
2、测试环境
NFS服务器:19216825518
NFS客户端:19216825511
*** 作系统:REDHAT4
3、NFS服务器配置
(1)配置 /etc/hostsdeny
禁止任何客户端能和你的NFS服务器进行NFS连接:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
(2)配置/etc/hostsallow
允许那些你想要的客户端和你的NFS服务器建立连接。下列步骤将允许任何IP地址
以1921682开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。
### NFS DAEMONS
portmap: 192168255
lockd: 192168255
rquotad: 192168255
mountd: 192168255
statd: 192168255
(3)重启portmap
运行 $ /etc/initd/portmap restart 重启portmap daemon。
(4)配置/etc/exports
NFS挂载目录及权限由/etc/exports文件定义。比如要将我的/tmp目录让
192168255的IP共享, 则在该文件末尾添加下列语句:
/tmp 192168255(rw,sync,no_root_squash)
192168255 网段内的NFS客户端能够共享NFS服务器/tmp目录内容,且有读,写
权限,并且该用户进入/home/zp/share目录后的身份为root,最好加上sync,否则
$ sudo exportfs -r 时会给出警告, sync是NFS的默认选项。
(5)重启NFS服务
运行 $ /etc/initd/nfs-kernel-server restart 重启nfs服务)
(6)NFS服务器查看共享是否成功
$ Showmount –e 19216825518
/tmp 192168255
(6)NFS客户端启动NFS服务
service nfs start
(7)NFS客户端查看服务器共享目录
Showmount –e 19216825518
(8)挂载NFS服务器共享目录
mount –t nfs -o tcp19216825518:/tmp /tmp
4、错误排查
当/etc/exports设置的权限,不符合client端的来源时,则会出现以下错误信息:
mount: hostname:/dir failed, reason given by server: Permission denied

LINUX NFS安装和使用,具体步骤如下:
1 安装
需要安装 portmap和nfs-utils这两个包,下载rpm包后用rpm安装或者直接用yum安装都可以。
rpm -ivh portmap-40-65221i386rpm
rpm -ivh nfs-utils-109-50el5i386rpm

2 配置
配置文件是/etc/exports,如果不存在需要自己创建。

/etc/exports文件内容格式:
<输出目录> [客户端1域名/IP(选项(访问权限,用户映射,其他))] [客户端2域名/IP 选项(访问权限,用户映射,其他)]
NFS主要的选项有3类:
A 访问权限选项
设置输出目录只读:ro
设置输出目录读写:rw
B 用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash相反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash相反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
C 其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写 *** 作,如果有则将这些写 *** 作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写 *** 作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
例如,我们在namenode1机器上配置做如下配置
/home/dfs/nfs_share_edits/ namenode2(rw)
这个配置是把namenode1上的/home/dfs/nfs_share_edits目录设置成共享,可以给namenode2来访问,访问权限是可读写。
3 启动
sudo service portmap start
sudo service nfs start
查询状态
service portmap status
service nfs status
停止服务
service nfs stop
service portmap stop
4 客户端挂载
命令格式
mount NFS服务器IP/域名:共享目录本地挂载目录
例如,在namenode2机器上运行mount命令挂载namenode1的NFS共享目录
mkdir /home/dfs/nfs_share_edits
sudo mountnamenode1:/home/dfs/nfs_share_edits /home/dfs/nfs_share_edits
这是把namenode2把namenode1的NFS共享目录挂载到本地,这样就可以访问远程的共享目录了,挂载前需要先创建本地的挂载目录。
挂载之后,可以用mount命令查看挂载状态
sudo mount | grep -i nfs
卸载命令
sudo umount namenode1:/home/dfs/nfs_share_edits
5 相关的守护进程
nfsd
它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;
mountd
它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。

portmap
主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

6 相关的命令
#查看配置
exportfs
#默认查看共享的服务
showmount -e
#查看已经与客户端连接上的目录信息
showmount -a

举例,有台机器叫AAA,想把自己机器根下的一个叫abc的目录极其里面的所有文件都共享给一台叫BBB的机器。
在这里AAA就可看成是服务器,BBB为客户端,方法如下:
(在AAA上先配置)
1
vi /etc/exports
(用vi编辑器打开共享资源,在里面填写共享的属性,linux下nfs的共享资源路径为etc下的exports)
打开编辑器后,里面可能什么都没有,需要自己填写,然后保存即可,在这里填写
2
/abc BBB(ro)
之后按Esc停止文字录入,然后按Shift+;键,在出来的冒号后输入wq,表示保存退出!
(这个的格式是这样的:先给出要共享的路径,然后空格,后面写共享给谁,可以是IP地址或主机名。再后面的括号里表示以什么方式来共享,ro是客户端只能读,如果想让客户端可以改,可设为rw,即可读写)
3
service portmap start
service nfs start
ntsysv
(这是3行不同的命令,第一个是将portmap服务打开,也就是先打开nfs共享通讯的端口,第二个是开启nfs服务,第三步是进入一个图像画面,在里面找到nfs服务,然后用空格选择上,以保证下次机器启动时,系统会自动运行nfs服务的意思)
在客户段 *** 作如下:
mkdir /abc
mount AAA:/abc /abc
service portmap start
service nfs start
ntsysv
第一步是在本机的根上建立一个叫abc的目录
第二步是将AAA机器上的abc目录挂载到本机的abc目录上
第三步和第四步是启动客户端的端口和服务
最后一步是保证下次系统启动时自动运行什么服务
说了这么多,应该够详细了吧? ^_^

一、NFS服务器的安装
检查linux系统中是否安装了nfs-utils和portmap两个软件包(RHEL4系统默认已经安装了这两个软件包)
命令#rpm –q nfs-utils portmap
二、查看NFS服务器是否启动
命令#service nfs starus
#service portmap status
三、如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启)
命令#service nfs start
#service portmap start
四、指定NFS服务器的配置文件
NFS服务器的配置文件保存“/etc/”目录中,文件名称是“exports”,该文件用于被指NFS服务器提供的目录共享
命令#vi /etc/exports
配置“exports”文件格式如下
/home (sync,ro)
Home:共享目录名
:表示所有主机
(sync,ro):设置选项
exports文件中的“配置选项”字段放置在括号对(“( )”)中 ,多个选项间用逗号分隔
sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项
ro:设置输出的共享目录只读,与rw不能共同使用
rw:设置输出的共享目录可读写,与ro不能共同使用
exports文件中“客户端主机地址”字段可以使用多种形式表示主机地址
19216815213 指定IP地址的主机
nfsclienttestcom 指定域名的主机
19216810/24 指定网段中的所有主机
testcom 指定域下的所有主机
 所有主机
五、重新输出共享目录
Exportfs管理工具可以对“exports”文件进行管理
命令#exportfs –rv 可以让新设置的“exports”文件内容生效
六、显示NFS服务器的输出目录列表
显示当前主机中NFS服务器的输出列表
# showmount -e
七、显示NFS服务器中被挂载的共享目录
显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录
# showmount -d
八、在另外一个linux系统中挂在共享目录
显示NFS服务器的输出
# showmount -e 17216751
挂载NFS服务器中的共享目录
# mount -t nfs 17216751:/software /mnt/
九、查看mnt目录中的内容
Cd /mnt |ll
十、卸载系统中已挂载的NFS共享目录
命令# umount /mnt/
总结:
1、在配置NFS服务器之前用ping命令确保两个linux系统正常连接,如果无法连接关闭图形界面中的防火墙#service iptables stop
2、在配置中确保输入的命令是正确的
3、更改完“exports”文件后要输入exportfs –rv ,使得“exports”文件生效。
4、检查nfs服务是否开启,默认是关闭的。
5、卸载的时候不能在/mnt目录中卸载,必须注销系统后卸载

服务器端

1检查所需要的包

[root@app71 ~]# rpm -qa | grep nfs

nfs-utils-123-36el6x86_64

nfs4-acl-tools-033-6el6x86_64

nfs-utils-lib-115-6el6x86_64

2 配置输出选项

[root@app71 ~]# vi /etc/exports

/mnt/iso 19216811(rw,sync,no_root_squash)

3 启动NFS服务

[root@app71 ~]# service nfs start

4 查看共享

[root@app71 ~]# showmount -e

Export list for app71:

/mnt/iso 3232990/24

5 开机启动

[root@app71 ~]# chkconfig --level 35 nfs on

客户端

创建挂载点mkdir -p /mnt/bk

mount -t nfs 192168110:/mnt/iso /mnt/bk

使用df -h查看/mnt/bk是否挂载成功。

将/etc/mtab中关于nfs的行增加到/etc/fstab中,实现自动挂载,注意先启动服务器。使用mount -av来查看自动挂载是否正常,正常情况文件系统挂载点无任何变化。

如果是oracle备份需要指定参数,包括读写缓冲,版本,超时等。更多信息可查看man 手册

方法/步骤
首先确认自己的服务器上面是否有portmap和nfs包,一般情况下都会有
查询命令:
rpm
-qa
|
grep
portmap
rpm
-qa
|
grep
nfs
如果有就接着向下走
启动portmap和nfs,但是portmap的先于nfs启动,因为portmap为nfs动态分配端口
查看是有启动正常用如下命令
prcinfo
-p
如果看到portmap和nfs表示启动正常
设置你要共享的文件和目录
编辑vi
/etc/exports
格式如下:
共享目录
允许访问的主机ip(权限)
输出共享目录和文件
1要不重启nfs服务
2使用exportfs
-rv命令
接着到另一台服务器上面去挂载nfs服务器输出的文件和目录
1新建你要挂载的目录
2查看nfs服务器的输出目录
showmount
-e
nfs的ip
挂载目录或文件
格式如下:
mount
nfs服务器地址:/usr/local/web
/mnt/websites
查看挂载结果
df
-h
测试共享时候成功,在web1上面下面的挂载目录下面新建一个文件然后随便写点东西看web2上面时候同步
卸载目录的命令:
umount
/mnt/websites


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10279043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存