部署nfs服务器
一、 nfs服务器
nfs服务器是什么?
网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
nfs服务器的作用?
保证网站数据的一致性 不管负载均衡器将请求分配到哪台后台服务器 客户机看到的内容是一样的
nfs服务器的优缺点
优点:随便一台Linux服务器都可以搭建,成本非常低,构建非常容易
缺点:读取速度有限,跟网络质量,磁盘IO,cpu,内存等因素有关,在传统的tcp/ip网络上传输的
SAN的优缺点
SAN 存储区域网络 (storage area network)
优点:读写性能好,有灾备
缺点:需要费用
二、部署nfs服务器
centos8默认安装nfs-utils
1.安装nfs相关软件
yum install nfs-utils -y
2.启动nfs服务
systemctl start nfs-server #启动nfs服务
查看服务是否正常启动
1.查看进程
[root@nfs_server ~]# ps aux| grep nfs
root 10765 0.0 0.3 50104 2844 ? Ss 11:57 0:00 /usr/sbin/nfsdcld
root 10774 0.0 0.0 0 0 ? S 11:57 0:00 [nfsd]
root 10775 0.0 0.0 0 0 ? S 11:57 0:00 [nfsd]
root 10776 0.0 0.0 0 0 ? S 11:57 0:00 [nfsd]
root 10777 0.0 0.0 0 0 ? S 11:57 0:00 [nfsd]
root 10778 0.0 0.0 0 0 ? S 11:57 0:00 [nfsd]
root 10779 0.0 0.0 0 0 ? S 11:57 0:00 [nfsd]
root 10780 0.0 0.0 0 0 ? S 11:57 0:00 [nfsd]
root 10781 0.0 0.0 0 0 ? S 11:57 0:00 [nfsd]
root 11609 0.0 0.1 12320 1080 pts/1 S+ 13:08 0:00 grep --color=auto nfs
2.查看端口号
netstat -anplut | grep nfs
netstat -anplut | grep rfc #查看rfc服务的端口
- nfs服务和rfc服务到底是如何实现的?工作原理 RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number,并且回报给客户端,让客户端可以连结到正确的端口上去。 那 RPC 又是如何知道每个 NFS 的端口呢?这是因为当服务器在启动 NFS时会随机取用数个端口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口对应的 NFS 功能。
- nfs没有固定的端口 , nfs自己并没有去对外监听某个端口号,而是外包给了rpc服务,rpc帮助nfs去监听端口,然后告诉客户机和本机的那个进程对应的端口连续
3.共享文件
3.1 编辑/etc/exports文件,写好具体的共享的目录和权限
vim /etc/exports
/web 192.168.0.0/24(rw,all_squash,sync) #文件内容
- /web 是我们共享的文件夹的路径–>使用绝对路径 -->需要自己新建
- 192.168.0.0/24 允许过来访问的客户机的ip地址网段 (rw,all_squash,sync) 表示权限的限制
- rw 表示可读可写 read and write
- ro 表示只能读 read-only
- all_squash :任何客户机上的用户过来访问的时候,都把它认为是普通的用户
- root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器匿名用
- no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
- sync 同时将数据写入到内存与硬盘中,保证不丢失数据
- async 优先将数据保存到内存,然后再写入硬盘,效率更高,但可能丢失数据
3.2 创建首页文件
mkdir /web
cd /web
vim index.html
4.刷新输出文件的列表
[root@nfs_server ~]# exportfs -rv
exporting 192.168.0.106:/download
exporting 192.168.0.0:/web
5.关闭防火墙和selinux
[root@nfs_server download]# systemctl stop firewalld
[root@nfs_server download]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@nfs_server download]# setenforce 0
6.客户机上挂载nfs服务器上共享的/web和/downolad目录
6.1 安装nfs-utils软件,方便客户机上进行挂载,具有相关命令,例如:showmoun
yum install nfs-utils -y
6.2 查看nfs服务器上共享输出了哪些文件夹
[root@rs2 ~]# showmount -e 192.168.0.110
Export list for 192.168.0.110:
/download 192.168.0.106
6.3 挂载nfs服务器上的目录到本机上
在客户机的本地新建一个目录/web
mkdir /web
将nfs服务器上的/web目录挂载到本地的/web目录,今后访问本地的/web目录,就是访问到nfs服务器上的/web目录
mount 是挂载的命令,可以理解为一种映射
语法: mount nfs服务器的目录 本地的目录
[root@rs2 ~]# mount 192.168.0.110:/web /web
[root@rs2 ~]# cd /web
[root@rs2 web]# ls
index.html
6.4客户机修改共享文件无权限
客户机上能否有写的权限要看2种权限:
- 共享权限 --》/etc/exports文件里的权限,例如ro,rw
- 文件系统里的权限 --》/web 在linux里的权限
nfs修改文件权限
[root@nfs_server download]# ll -d /web
drwxr-xr-x. 2 root root 24 8月 2 11:39 /web
[root@nfs_server download]# ll -d /download
drwxr-xr-x. 2 root root 38 8月 2 13:25 /download
[root@nfs_server download]# chmod a+w /download/
[root@nfs_server download]# ll -d /download
drwxrwxrwx. 2 root root 38 8月 2 13:25 /download
[root@nfs_server download]# chmod a+w /web/
[root@nfs_server download]# ll -d /web
drwxrwxrwx. 2 root root 24 8月 2 11:39 /web
server验证
[root@rs2 web]# cd /download/
[root@rs2 download]# mkdir xx
[root@rs2 download]# ls
boot.tar.gz hosts xx
7.开机自动挂载nfs文件系统
可以在real-server上修改/etc/rc.local文件 或者 /etc/fstab文件
修改/etc/rc.local文件
[root@rs1 ~]# vim /etc/rc.local
mount 192.168.0.110:/web /usr/local/scxx/html #添加此行到文件中
修改/etc/fstab文件
[root@rs1 ~]# vim /etc/fstab
192.168.0.110:/web /usr/local/scxx99/html nfs defaults 0 0 #添加此行到文件中
- 192.168.0.110:/web 挂载的分区–>nfs的文件系统
- /usr/local/scxx/html 指定路径
- nfs 分区类型
- defaults 挂载选项
- 0 0 ( 是否支持dump命令进行备份 是否开机的时候进程分区的文件系统的检查,分区的文件系统是否有问题)
本文部分内容只示范了一台机器,其余机器作者这里不一一示范,按照文章内容即可完成对其余机器的部署。