NSF服务实验
nfs的应用场景
- 多个机器共享一台cdrom或者其他设备。这对于在多台机器中安装软件来说更加便宜与方便。
- 在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。
- 不同客户端可在NFS上观看影视文件,节省本地空间。
- 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。
NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行
nfs的优点
- 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
- 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
- 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
nfs的缺点
- 单点故障,如果nfs server宕机,所有客户端无法连接
- 高并发场合,NFS效率低(2千万的PV/日网站不是瓶颈,除非网站架构性能太差)
- 客户端认证时候基于ip和主机名,权限是根绝ID识别,安全性一般,(放置于内网比较好)
- NFS数据传输是明文,对数据完整性不做完整
- 多台机器挂载NFS时候,连接管理麻烦,尤其服务器端出问题,所有NFS 客户端都是挂掉状态
1.手动搭建一个nfs服务器。
- 开放/nfs/shared目录
- 开放/nfs/upload目录为192.168.226.0/24网段的数据上传目录并将所有用户及所属的用户组都映射为nfs-upload,其UID与GID均为300
实验环境要求:需要两台虚拟来模拟实验,一台做为客户端,一台做为服务端。客户端ip为192.168.226.128,服务端ip为192.168.226.129。
- 首先我们来配置服务端
- 1.在服务端安装nfs服务,并开启nfs服务。
yum install -y nfs-utils,systemctl start rpcbind nfs-server - 2.看2049端口是否开启,判断nfs服务状态。
- 在服务端创建一个目录/nfs/shared,在目录下创建一个文件test,文件内容hello
修改nfs主配置文件/etc/exports,定义nfs的输出目录。将我们刚刚创建的目录添加进去
vim /etc/exports
/nfs/shared *(ro,sync) //<共享目录> [客户端(选项1,选项2…)] [客户端2(选项1,选项2,…..)]- 使用showmount -e [服务端地址]命令可以查看所有输出目录
- 关闭客户端和服务端的防火墙服务
- 然后在客户端挂载nfs文件系统
mount -t nfs 192.168.226.129:/nfs/shared /nfs - 这时我们就可以在客户端查看到服务端共享文件的内容
cat /nfs/test
第二个小实验
[root@localhost ~]# mkdir /nfs/upload
[root@localhost ~]# chmod 777 /nfs/upload
[root@localhost ~]# touch /nfs/upload/aaa
[root@localhost ~]# echo xixihaha >> /nfs/upload/aaa
[root@localhost ~]# cat /nfs/upload/aaa
xixihaha
[root@localhost ~]# vim /etc/exports
/nfs/shared *(ro,sync)
/nfs/upload 192.168.226.0/24(rw,sync,anonuid=300,anongid=300)
[root@localhost ~]# exportfs -ar
[root@localhost ~]# showmount -e 192.168.226.129
- 然后在客户端挂载测试。
[root@Hongxiande ~]# mkdir -p /nfs/upload
[root@Hongxiande ~]# mount -t nfs 192.168.226.129:/nfs/upload /nfs/upload
[root@Hongxiande ~]# cat /nfs/upload/aaa
xixihaha
[root@Hongxiande ~]# cd /nfs/upload/
[root@Hongxiande upload]# touch bbb
[root@Hongxiande upload]# echo 123 >> /nfs/upload/bbb
[root@Hongxiande upload]# ls
aaa bbb