目录
前言
一、NFS共享存储服务
1.1 NFS概述
NFS (Network File System)网络文件系统(做文件存储,共享)
NFS一般用来存储共享视频,图片等静态数据。
它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。
NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;
依赖于RPC (远端过程调用)客户端访问服务器的过程由RPC服务管理
需安装nfs-utils、rpcbind软件包
系统服务: nfs、 rpcbind
共享配置文件: /etc/exports (唯一 一个配置文件为空的文件)
1.2 NFS工作与原理
客户机存在RPC服务,RPC服务会向NFS服务器索要开放的端口号,(NFS服务不是固定的端口对外开放服务,端口具有随机性),所以RPC服务是专门用来管理端口的。NFS服务启动时RPC同时启动,在启动过程中NFS会向RPC服务申请要开放的端口号,客户端的RPC服务也会通过TCP/IP协议连接到服务端的RPC服务询问客户端需要的访问的端口号,这时,服务端RPC服务告知客户端PRC服务开放的端口号。之后客户端通过访问服务器IP和从RPC服务获取的端口号来访问NFS服务,访问同时NFS服务映射了一个本地文件访问的路径去访问本地磁盘里的文件。所以RPC是在此过程中的中间调度的一个程序。
二、使用NFS服务发布及访问
2.1 使用NFS发布共享资源
2.11 安装nfs-utils、rpcbind软件包
[root@localhost ~]# yum -y install nfs-utils rpcbind
[root@localhost ~]# systemctl enable nfs 服务开启
[root@localhost ~]# systemctl enable rpcbind 服务开启
2.12 设置共享目录
[root@localhost ~]# mkdir -p /opt/wwwroot
[root@localhost ~]# vi /etc/exports
/opt/wwwroot 192. 168.7.0/24(rw,sync,no_ root_ squash)
/var/ftp/pub 192.168.4.11(ro) 192. 168.4.110(rw)
共享目录 开放范围 开放权限
(ro)权限是只读,不允许更改
rw 是读写权限,
sync是服务器和客户机间开启同步,添加文件双方都可见
no_ root_ squash表示可以是root身份访问服务器
2.13 启动NFS服务程序,
2.14 查看本机发布的NFS共享目录
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# netstat -anpt | grep rpc (没有固定的端口号)
tcp 0 00.0.0.0:20048 0.0.0.0:* LISTEN 10508/rpc.mountd
tcp0 00.0.0.0:52732 0.0.0.0:* LISTEN 10495/rpc.statd
tcp6 0 0 ::20048 ...* LISTEN 10508/rpc.mountd
tcp6 00 ::47669 ...* LISTEN 10495/rpc.statd
[root@localhost ~]# showmount -e 查看本机发布的NFS共享目录
/opt/wwwroot 192. 168.7.0/24
/var/ftp/pub 192.168.4.110,192.168.4.11
2.2 在客户机中访问NFS共享资源
2.21 安装rpcbind软件包,并启动rpcbind服务
[root@localhost ~]# yum -y install rpcbind nfs-utils
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# showmount -e 192.168.7.250 服务器的IP
查看NFS服务器共享了那些目录
Export list for 192. 168.7.250:
/opt/wwwroot 192. 168.7.0/24
/var/ftp/pub 192.168.4.110,192.168.4.11
查看rpc安装情况
[root@server1 ~]# rpm -qa rpcbind 默认rpc安装,启动
rpcbind-0.2.0-42.el7.x86_64
2.22 手动挂载NFS共享目录
[root@localhost ~]# mount 192.168.7.250:/opt/wwwroot /var/www/html 网页的站点目录
[root@localhost ~]# tahl -1 /etc/mtab 查看挂载情况
192.168.7.250:/opt/wwwroot /var/www/html nfs4
rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,
timeo=60O,retrans=2,sec=sys, clientaddr= 192. 168.7.21,local_ lock=none,
addr=192.168.7.250 0 0
[root@localhost ~]# vi /var/www/html/index.html
Real Web Server Document
读 写 权限 rw
2.23 fstab自动挂载设置
[root@localhost ~]# vi /etc/fstab
//省略部分信息 挂载设备需要网络
192.168.7.250:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0
defaults,_netdev:代表权限
2.24 强制卸载NFS
[root@localhost ~]# umount /mnt
umount: /mnt: device is busy
[root@localhost ~]# umount -If /mnt
[root@localhost ~]#
三、NFS项目配置
项目准备
三台设备,两台客户机,一台服务器
项目解析
服务器 fw:20.0.0.12 需要安装rpcbind和nfs软件包
客户机1 kh1:20.0.0.10 预装apache
客户机2 kh2:20.0.0.11 预装apache
nfs-utils来实现nfs的共享发布与访问,rpcbind依赖rpc (远程过程调用),充当nfs客户端与服务器的中介,完成远程到本地的映射过程。
项目需求
利用nfs存储服务来实现制作两个不同的网页,将这两个网页分别作为两个网站的主页。
项目具体流程
1.两台客户机上安装apache 服务器安装nfs
[root@kh1 ~]# yum -y install httpd
[root@kh2 ~]# yum -y install httpd
服务器上
[root@fw1 ~]# yum -y install nfs-utils
2.创建共享目录
[root@fw1 ~]# mkdir /opt/web1 创建目录
[root@fw1 ~]# mkdir /opt/web2
[root@fw1 ~]# cd /opt/web1
[root@fw1 web1]# vi index.html 网页编辑
<html><title>web1</title><body><h1>this is web1!!</h1></body></html>
[root@fw1 web1]# cp index.html /opt/web2
[root@fw1 web1]# cd /opt/web2
[root@fw1 web2]# vi index.html
<html><title>web2</title><body><h1>this is web2!!</h1></body></html>
[root@fw1 web2]# cd
3.发布,服务启动
[root@fw1 ~]# vi /etc/exports
/opt/web1 20.0.0.10(ro)
/opt/web2 20.0.0.11(ro)
[root@fw1 ~]# systemctl start nfs 服务开启
[root@fw1 ~]# systemctl start rpcbind 服务开启
4.查看服务启动情况
[root@fw1 ~]# systemctl status nfs
[root@fw1 ~]# systemctl status rpcbind
5.在服务器上,查看本机发布的NFS共享目录
[root@fw1 ~]# showmount -e
/opt/web2 20.0.0.11
/opt/web1 20.0.0.10
客户机上
6,在客户机上分别进行查看NFS服务器共享了那些目录
在客户机1上
[root@kh1 ~]# showmount -e 20.0.0.12
/opt/web2 20.0.0.11
/opt/web1 20.0.0.10
进行挂载
[root@kh1 ~]# mount 20.0.0.12:/opt/web1 /var/www/html/
[root@kh1 ~]# df -Th
[root@kh1 ~]# cd /var/www/html/
[root@kh1 html]# ls -lh
[root@kh1 html]# vi index.html
在客户机2上
[root@kh2 ~]# showmount -e 20.0.0.12
/opt/web2 20.0.0.11
/opt/web1 20.0.0.10
[root@kh2 ~]# mount 20.0.0.12:/opt/web2 /var/www/html/
[root@kh2 ~]# df -Th
[root@kh2 ~]# cd /var/www/html/
[root@kh2 html]# ls -lh
[root@kh2 html]# vi index.html
7.在客户机上开启网页网站服务
[root@kh1 ~]# systemctl start httpd
8,进入客户机网页进行测试
http://localhost
总结
通过以上的学习了解,认识到大多数的负载均衡群集,使用NFS协议来共享数据存储是比较常见的做法。但是NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性较差,一般只在局域网中使用。