|NO.Z.00022|——————————|^^ 构建 ^^|——|文件存储之NFS|——|2台server|

一、NFS简介:
### --- NFS发展史
~~~     NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,
~~~     它允许网络中的计算机之间通过TCP/IP网络共享资源,
~~~     在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,
~~~     就像访问本地文件一样
~~~     NFS最早是由Sun公司发展出来的,后被逐渐完整及整合至Linux内核

### --- 功能:
~~~     它就是是可以透过网络,让不同的主机,不同的操作系统可以共享存储
### --- 原理

~~~     NFS在文件传送或信息传送过程中依赖于RPC(远程过程调用,NFS用的是RPC协议的传输,
~~~     NFS只是在进行RPC协议的控制,不负责传输,以及文件系统的控制或者提供)协议,
~~~     远程过程调用(Remote Procedure Call)是能是客户端执行其他系统中程序的一种机制
~~~     NFS文件系统
### --- NFS优点:

~~~     节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,
~~~     那么本地终端将可以自身存储空间的使用
~~~     用户不需要在网络中的每个机器上都建有Home目录,
~~~     Home目录可以放在NFS服务器上且可以在网络上被访问使用
~~~     一些存储设备CDROM和Zip等都可以在网络上被别的机器使用。
~~~     这可以减少整个网络可以移动介质设备的数量;
~~~     很多设备是不可以进行CDROM的共享的,而NFS是可以的。
二、NFS构建
### --- 系统硬件环境规划

~~~     HA-server1:10.10.10.11:部署nfs主程序包
~~~     HA-server2:10.10.10.12:作为验证client
三、NFS构建:实验专题
### --- 在HA-server1下配置
### --- 安装nfs主程序包

[root@server11 ~]# yum install -y rpcbind nfs-utils
[root@server11 ~]# mkdir  /nfs1                                             // 创建共享点:nfs1
[root@server11 ~]# mkdir  /nfs2                                             // 创建共享点:nfs2
[root@server11 ~]# chown -R nobody:nobody /nfs1/ /nfs2 
### --- 修改配置文件

[root@server11 ~]# vim /etc/exports
/nfs1 10.10.10.12(rw,async,no_root_squash)
/nfs2 10.10.10.0/24(ro,async,no_root_squash)            
[root@server11 ~]# service rpcbind restart                                  // 重启一下rpcbind让其读取一下当前的信息
Stopping rpcbind:                                          [  OK  ]
Starting rpcbind:                                          [  OK  ]
[root@server11 ~]# service nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Shutting down RPC idmapd:                                  [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ] 
[root@server11 ~]# showmount -e 10.10.10.11                                 // 查看10.10.10.11共享了那些服务
Export list for 10.10.10.11:
/nfs2 10.10.10.0/24
/nfs1 10.10.10.12
### --- 验证:在HA-server2下操作
 
[root@server12 ~]# showmount -e 10.10.10.11                                 // 在10.10.10.12主机是哪个也是可以查询到的
Export list for 10.10.10.11:
/nfs2 10.10.10.0/24
/nfs1 10.10.10.12   
[root@server12 ~]# mkdir /nfsmount1/                                        // 挂载点:nfs1
[root@server12 ~]# mkdir  /nfsmount2/                                       // 挂载点:nfs2
[root@server12 ~]# chown -R nobody:nobody /nfsmount1/ /nfsmount2/
[root@server11 ~]# cp -a nfs1-HA-server1 /nfs1/
[root@server11 ~]# cp -a nfs2-HA-server2 /nfs2/ 
~~~     挂载
 
[root@server12 ~]# mount -t nfs 10.10.10.11:/nfs1/ /nfsmount1/
[root@server12 ~]# mount -t nfs 10.10.10.11:/nfs2/ /nfsmount2/
[root@server12 ~]# mount
10.10.10.11:/nfs1/ on /nfsmount1 type nfs (rw,vers=4,addr=10.10.10.11,clientaddr=10.10.10.12)
10.10.10.11:/nfs2/ on /nfsmount2 type nfs (rw,vers=4,addr=10.10.10.11,clientaddr=10.10.10.12)
[root@server12 ~]# ll /nfsmount1/
-rw-r--r-- 1 root root 26 Jan 23 03:02 nfs1-HA-server1
[root@server12 ~]# ll /nfsmount2/
-rw-r--r-- 1 root root 0 Jan 23 02:53 nfs2-HA-server2
~~~     在nfs1中配置是rw可以正常保存退出,没有问题。
[root@server12 ~]# vim /nfsmount1/nfs1-HA-server1
this is HA server2 write
 
~~~     在nfs中配置是ro,只可读,不可写,所以写入失败:告警:你正在修改一个只读文件。
~~~     在HA-server11下也是可以看到修改记录后的文件内容。
[root@server12 ~]# vim /nfsmount2/nfs2-HA-server2 
this is write false

附录一:NFS安装:
1、NFS安装:
### --- 程序说明
~~~     nfs-utils: 这个是NFS服务主程序(包含rpc.nfsd、rpc.mountd、daemons)
~~~     rpcbind:这个是CentOS6.x的RPC主程序(CentOS5.X的为portmap)

### --- server端安装并开启的服务
yum install -y rpcbind nfs-utils
/etc/init.d/rpcbind status                                              // 查看rpcbind当前状态
### --- NFS server配置代码记录

LANG=en                                                                 // 查看当前语言
lsof -i :111    
rpcinfo -p localhost    
/etc/init.d/nfs status          
lsof  -i :2049
2、配置说明
### --- 配置文件说明:

~~~     /etc/exports是NFS程序的配置文件
~~~     /etc/exports文件的配置格式为:
~~~     NFS共享目录NFS客户端地址1(参数1,参数2,参数3......)客户端地址2(参数1,参数2,参数3......)
~~~     NFS共享目录NFS客户端地址(参数1,参数2,参数3......)
shuwmount -e ip                                                         // 查看挂载情况
mount -t nfs ip:/file /filel
### --- 权限

~~~     rw:read-write,可读写,注意,仅仅这里设置成读写客户端还是不能正常写入,还要正确设置共享目录的权限
~~~     ro:read-only,只读
~~~     sync:文件同时写入硬盘和内存
~~~     async:文件暂存于内存,而不是直接写入内存
~~~     no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限,显然开启这项是不安全的。
~~~     root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份
~~~     all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限
~~~     anonuid:匿名用户的UID值,通常是nobody或nfsnobody可以在此处自行设定
~~~     anongid:匿名用户的GID值

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on 2022-03-22 15:49  yanqi_vip  阅读(27)  评论(0)    收藏  举报

导航