NFS的基本概念:
块大小
mount命令的
risize和wsize指定了server端和client端的传输的块大小。
如果没有指定,那么,系统根据nfs的版本来设置缺省的risize和wsize大小。大多数情况是4K(4096bytes),
对于nfs v2,最大是8K,
对于nfs v3,在server端设置risize和wsize的限制,
最大块大小在kernel的常量 NFSSVC_MAXBLKSIZE,
该常量在usr/src/linux2.4/include/linux/nfsd/const.h.
所有的2.4 的client都支持最大32K的传输块。
测试时文件 /testfs/testfile 的大小至少是系统RAM的两倍,
每次测试都使用umount 和mount对/testfs进行挂载,
通过比较不同的块大小,得到优化的块大小。
nfs挂载的优化参数
timeo:如果超时,客户端等待的时间,以十分之一秒计算。
retrans:超时尝试的次数。
bg:后台挂载,很有用
hard:如果server端没有响应,那么客户端一直尝试挂载。
wsize:写块大小
rsize:读块大小
intr:可以中断不成功的挂载
noatime:不更新文件的inode访问时间,可以提高速度。
async:异步读写。
NFS的部署:
[root@hadoop000 data]# rpm -qa |grep nfs 查看nfs是否安装
nfs-utils-1.2.3-39.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-6.el6.x86_64
[root@hadoop000 data]# rpm -qa |grep rpcbind 查看RPC是否安装
rpcbind-0.2.0-11.el6.x86_64
rpcbind-0.2.0-11.el6.i686
2:启动服务并设为开机启动
[root@hadoop000 data]# service nfs start
[root@hadoop000 data]# service rpcbind start
[root@hadoop000 data]# chkconfig rpcbind on
[root@hadoop000 data]# chkconfig nfs on
3:备份nfs配置文件
[root@hadoop000 data]# cp /etc/exports /etc/exports.bak
4:编辑配置文件实现需求1,2要求
[root@hadoop000 data]# vim /etc/exports
[root@hadoop000 data]# cat /etc/exports
/root 192.168.4.11(insecure,rw,sync,no_root_squash)
/data 192.168.4.11(insecure,rw,async)
5:重启服务
[root@hadoop000 data]# service nfs restart
[root@hadoop000 data]# service rpcbind restart
6:服务器端设置/usr/src本地写权限
[root@hadoop000 data]# chmod o+w /data/
7:客户机测试
[root@client ~]# mkdir -p /data/orabak
[root@client ~]# mount 192.168.4.12:/data /data/orabak/
[root@client ~]# mount |tail -1
写速度测试方法:
[root@dg1 ~]# mount -t nfs -o nolock,rsize=32768,wsize=32768,timeo=15 192.168.4.12:/data /data/nfsbak/
[root@dg1 ~]# time dd if=/dev/zero of=/data/nfsbak/nfs_test.flv bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 21.3745 s, 50.2 MB/s
第二种挂载方式(一般这两种就够了)
[root@dg1 ~]# mount 192.168.4.12:/data /data/nfsbak/ -o rsize=32768,wsize=32768,timeo=14,intr
[root@dg1 ~]# time dd if=/dev/zero of=/data/nfsbak/nfs_test.flv bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 19.1536 s, 56.1 MB/s
大概50M每秒。
在nfs上查看是这个用户【只有root会这样,其他用户正常,rman备份可以直接备份到NFS上,但是不太稳定】,需要再研究
[root@hadoop000 data]# ll
total 1048580
-rw-r--r--. 1 nfsnobody nfsnobody 1073741824 Sep 16 02:18 nfs_test.flv
[oracle@dg1 nfsbak]$ touch 2
-rw-r--r--. 1 oracle dba 0 Sep 16 2017 2
块大小
mount命令的
risize和wsize指定了server端和client端的传输的块大小。
如果没有指定,那么,系统根据nfs的版本来设置缺省的risize和wsize大小。大多数情况是4K(4096bytes),
对于nfs v2,最大是8K,
对于nfs v3,在server端设置risize和wsize的限制,
最大块大小在kernel的常量 NFSSVC_MAXBLKSIZE,
该常量在usr/src/linux2.4/include/linux/nfsd/const.h.
所有的2.4 的client都支持最大32K的传输块。
测试时文件 /testfs/testfile 的大小至少是系统RAM的两倍,
每次测试都使用umount 和mount对/testfs进行挂载,
通过比较不同的块大小,得到优化的块大小。
nfs挂载的优化参数
timeo:如果超时,客户端等待的时间,以十分之一秒计算。
retrans:超时尝试的次数。
bg:后台挂载,很有用
hard:如果server端没有响应,那么客户端一直尝试挂载。
wsize:写块大小
rsize:读块大小
intr:可以中断不成功的挂载
noatime:不更新文件的inode访问时间,可以提高速度。
async:异步读写。
NFS的部署:
首先在两台服务器上确保用户组一致,如果不一致的话,需要修改用户id和组id,不然会重叠。
实验目标:将192.168.4.12 /data 挂载到 192.168.4.11 /data/nfsbak
1:查看nfs程序是否安装[root@hadoop000 data]# rpm -qa |grep nfs 查看nfs是否安装
nfs-utils-1.2.3-39.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-6.el6.x86_64
[root@hadoop000 data]# rpm -qa |grep rpcbind 查看RPC是否安装
rpcbind-0.2.0-11.el6.x86_64
rpcbind-0.2.0-11.el6.i686
2:启动服务并设为开机启动
[root@hadoop000 data]# service nfs start
[root@hadoop000 data]# service rpcbind start
[root@hadoop000 data]# chkconfig rpcbind on
[root@hadoop000 data]# chkconfig nfs on
3:备份nfs配置文件
[root@hadoop000 data]# cp /etc/exports /etc/exports.bak
4:编辑配置文件实现需求1,2要求
[root@hadoop000 data]# vim /etc/exports
[root@hadoop000 data]# cat /etc/exports
/root 192.168.4.11(insecure,rw,sync,no_root_squash)
/data 192.168.4.11(insecure,rw,async)
5:重启服务
[root@hadoop000 data]# service nfs restart
[root@hadoop000 data]# service rpcbind restart
6:服务器端设置/usr/src本地写权限
[root@hadoop000 data]# chmod o+w /data/
7:客户机测试
[root@client ~]# mkdir -p /data/orabak
[root@client ~]# mount 192.168.4.12:/data /data/orabak/
[root@client ~]# mount |tail -1
写速度测试方法:
time dd if=/dev/zero of=/data/nfsbak/nfs_test.flv bs=1M count=1024
[root@dg1 ~]# mount -t nfs -o nolock,rsize=32768,wsize=32768,timeo=15 192.168.4.12:/data /data/nfsbak/
[root@dg1 ~]# time dd if=/dev/zero of=/data/nfsbak/nfs_test.flv bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 21.3745 s, 50.2 MB/s
第二种挂载方式(一般这两种就够了)
[root@dg1 ~]# mount 192.168.4.12:/data /data/nfsbak/ -o rsize=32768,wsize=32768,timeo=14,intr
[root@dg1 ~]# time dd if=/dev/zero of=/data/nfsbak/nfs_test.flv bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 19.1536 s, 56.1 MB/s
大概50M每秒。
在nfs上查看是这个用户【只有root会这样,其他用户正常,rman备份可以直接备份到NFS上,但是不太稳定】,需要再研究
[root@hadoop000 data]# ll
total 1048580
-rw-r--r--. 1 nfsnobody nfsnobody 1073741824 Sep 16 02:18 nfs_test.flv
[oracle@dg1 nfsbak]$ touch 2
-rw-r--r--. 1 oracle dba 0 Sep 16 2017 2