NFS部署过程

Posted 223zhp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFS部署过程相关的知识,希望对你有一定的参考价值。

课前回顾 及 NFS

NFS部署过程

1)安装服务端

yum install -y nfs-utils rpcbind

2)修改配置文件

vim /etc/exports
#共享目录       IP网段           参数
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

3)nfs自带用户:nfsnobody 65534,自己创建用户

groupadd www -g 666
useradd www -u 666 -g 666 -s /sbin/nologin -M

4)创建共享目录

mkdir /data
chown -R www.www /data

5)启动服务

systemctl start rpcbind nfs-server

客户端部署

1)安装rpcbind和nfs

yum install -y rpcbind nfs-utils

2)启动rpcbind

systemctl start rpcbind

3)查看可挂载点

showmount -e 172.16.1.31

4)挂载

mount -t nfs 172.16.1.31:/data /var/www/html/tupian

5)开机挂载

vim /etc/fstab
172.16.1.31:/data /var/www/html/tupian nfs defaults 0 0

6)使用mount -a 检测

[root@backup ~]# mount -a

7)卸载

umount /var/www/html/tupian
#强制卸载
umount -lf /var/www/html/tupian

8)nfs挂载文件

[root@nfs01 ~]# cat /var/lib/nfs/etab

9)增加挂载的安全性

#通过mount -o指定挂载参数,禁止使用suid,exec,增加安全性能
[root@nfs-client ~]# mount -t nfs -o nosuid,noexec,nodev 172.16.1.31:/data /mnt

nfs配置参数

rw:共享目录的权限是 可读 可写

sync:同时将数据写入内存和磁盘,增强数据的安全性,保证数据不丢失

all_squash:无论使用什么用上传或者访问,一律压缩成 nfs的匿名用户

anonuid:指定一个匿名用户,必须是系统存在的uid

anongid:指定一个匿名用户组,必须是系统存在的gid

----------------------------------------------不常用--------------------------------------------

root_squash当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
no_all_squash无论NFS客户端使用什么账户访问,都不进行压缩
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
ro只读权限
   

 

NFS存储小结

  • NFS存储优点

    • 1)NFS文件系统简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求。

      2)NFS文件系统内存放的数据都在文件系统之上,所有数据都是能看得见。

     

    • NFS存储局限

      • 1)存在单点故障, 如果构建高可用维护麻烦web->nfs()->backup

      • 2)NFS数据明文, 并不对数据做任何校验。

      • 3)客户端挂载NFS服务没有密码验证, 安全性一般(内网使用)

         

3.NFS应用建议 1)生产场景应将静态数据尽可能往前端推, 减少后端存储压力

2)必须将存储里的静态资源通过CDN缓存jpg\png\mp4\avi\css\js

3)如果没有缓存或架构本身历史遗留问题太大, 在多存储也无用

rsync+nfs实战,解决nfs的单点故障

服务器系统角色IP
CentOS 7.5 NfsServer(A) 172.16.1.31
CentOS 7.5 NfsClient(B) 172.16.1.41
CentOS 7.5 NfsClient(C) 172.16.1.7

1)安装服务端

yum install -y rpcbind nfs-utils

2)编辑服务端的配置文件

vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

3)创建用户

groupadd www -g 666
useradd www -u 666 -g 666 -s /sbin/nologin -M

4)创建目录并授权

mkdir /data
chown -R www.www /data

5)启动服务

systemctl start rpcbind nfs-server

6)检查

cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)

配置客户端

1)安装客户端服务

yum install -y rpcbind nfs-utils

2)启动rpc

systemctl start rpcbind

3)查看挂载点

showmount -e 172.16.1.31

4)挂载

mount -t nfs 172.16.1.31:/data /var/www/html/tupian

结合rsync

1)NFS安装rsync

yum install -y rsync

2)客户端与服务端的关系

 

3)使用免密的方式

export RSYNC_PASSWORD=123456

 

rsync服务端操作(backup)

1)创建www用户

groupadd www -g 666
useradd www -u 666 -g 666 -s /sbin/nologin -M

2)统一rsync服务的用户和用户组(修改配置文件)

vim /etc/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[zls]
comment = welcome to oldboyedu backup!
path = /backup

[nfs]
comment = welcome to oldboyedu nfs!
path = /data

3)创建目录并授权

[root@backup ~]# mkdir /data
[root@backup ~]# chown -R www.www /data/

4)编写备份脚本

vim rsync.sh 
#!/bin/bash

PATH=‘/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin‘
H=`hostname`
I=`ifconfig eth1|awk ‘NR==2print $2‘`
D=`date +%F`
S=$H_$I_$D
BD=/backup
export RSYNC_PASSWORD=123456

mkdir -p $BD/$S

tar zcf $BD/$S/conf.tar.gz /etc/passwd &>/dev/null

md5sum $BD/$S/conf.tar.gz  > /backup/$I.txt

rsync -az $BD/ rsync_backup@172.16.1.41::zls
rsync -az --delete /data/ rsync_backup@172.16.1.41::nfs
find $BD -type d -mtime +7|xargs rm -fr

5)安装nfs服务端

[root@backup ~]# yum install -y rpcbind nfs-utils

6)编辑配置文件

[root@backup ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

7)启动服务

[root@backup ~]# systemctl start rpcbind nfs-server
[root@backup ~]# systemctl enable rpcbind nfs-server

web01客户端写脚本

#!/bin/bash

check_nfs=`df -h|grep ‘/var/www/html/tupian‘|wc -l`
if [ $check_nfs -eq 0 ];then
        showmount -e 172.16.1.31 &>/dev/null
        if [ $? -eq 0 ];then
                mount -t nfs 172.16.1.31:/data /var/www/html/tupian
        else
                mount -t nfs 172.16.1.41:/data /var/www/html/tupian
        fi
fi

 

5.录视频

以上是关于NFS部署过程的主要内容,如果未能解决你的问题,请参考以下文章

部署NFS过程

NFS服务部署实践过程

NFS部署过程

NFS部署

02—NFS服务器的原理和部署

02—NFS服务器的原理和部署