NFS服务

部署NFS服务端


1.yum -y install nfs-utils #安装NFS软件

------------------------------------------------

2  创建nfs运行的虚拟用户

服务端创建用户,默认是nfsnobody。为配合rsync备份数据,改成www用户。

groupadd -g 666 www

-----------------------------

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

---------------------------------------------

[root@nfs /data]# id  www

uid=666(www) gid=666(www) groups=666(www)

3.修改nfs服务端配置文件

vi  /etc/exports  #配置nfs服务

---------------------------

/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)  #配置内容

--------------------------------------------------------------------

cat /etc/exports    #检测

/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666) #检测结果

-----------------------------------------------------------------------

4.创建数据目录并授权

[root@nfs ~]# mkdir -p /data

---------------------------------------

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

---------------------------------------

5.启动rpcbind和nfs服务

systemctl start rpcbind    #打开rpc

--------------------------------------

systemctl status rpcbind #检测

---------------------------------------------

systemctl start nfs-server.service #打开NFS

--------------------------------------------------

systemctl status nfs-server.service #检测

---------------------------------------------------

设置开机自启:

systemctl enable rpcbind nfs-server #开机自启

-----------------------------------------------------------

systemctl restart rpcbind nfs-server #重启rpc

-----------------------------------------------------------------

6.服务端检查命令

[root@nfs ~]# showmount -e 172.16.1.31

----------------------------------------------

Export list for 172.16.1.31:

/data 172.16.1.0/24

7.查看端口

#rpc主端口:111

#nfs主端口:2049(随机的,可变)

[root@nfs /server/scripts]# rpcinfo -p localhost

  program vers proto  port  service

    100000    4  tcp    111  portmapper

    100000    3  tcp    111  portmapper

    100000    2  tcp    111  portmapper

    100000    4  udp    111  portmapper

    100000    3  udp    111  portmapper

    100000    2  udp    111  portmapper

    100005    1  udp  20048  mountd

    100005    1  tcp  20048  mountd

    100005    2  udp  20048  mountd

    100005    2  tcp  20048  mountd

    100005    3  udp  20048  mountd

    100005    3  tcp  20048  mountd

    100003    3  tcp  2049  nfs

    100003    4  tcp  2049  nfs

    100227    3  tcp  2049  nfs_acl

    100003    3  udp  2049  nfs

    100003    4  udp  2049  nfs

    100227    3  udp  2049  nfs_acl

    100021    1  udp  42622  nlockmgr

    100021    3  udp  42622  nlockmgr

    100021    4  udp  42622  nlockmgr

    100021    1  tcp  44645  nlockmgr

    100021    3  tcp  44645  nlockmgr

    100021    4  tcp  44645  nlockmgr



部署NFS客户端在【172.16.1.41】配置

1. yum -y install nfs-utils  #安装NFS软件

---------------------------------

2.启动rpcbind服务

#客户端只需要启动rpcbind,不需要启动nfs

systemctl start rpcbind    #启动rpc

systemctl enable rpcbind #开机自启

systemctl status rpcbind #检测

-------------------------------------------------

3 创建www虚拟用户

创建相同uid gid的用户,如果客户端没有创建这个用户 ,查看文件的时候显示的是666。

groupadd -g 666 www

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

--------------------------------------------------

4 查询NFS远程共享信息

使用showmount命令查看nfs共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。

[root@backup ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

--------------------------------------

5 客户端挂载并查看

在 NFS 客户端创建一个挂载目录, 使用 mount 命令并结合-t 参数, 指定要挂载的文件系统的类型, 并在命令后面写上服务器的 IP 地址, 以及服务器上的共享目录, 最后需要写上要挂载到本地系统(客户端)的目录

mkdir -p /data

mount -t nfs 172.16.1.31:/data /data

#查看是否挂载成功

[root@backup ~]# df -h

Filesystem                    Size  Used Avail Use% Mounted on

/dev/mapper/centos_mode-root  37G  1.8G  36G  5% /

devtmpfs                      476M    0  476M  0% /dev

tmpfs                        488M    0  488M  0% /dev/shm

tmpfs                        488M  7.6M  480M  2% /run

tmpfs                        488M    0  488M  0% /sys/fs/cgroup

/dev/sda1                    1014M  130M  885M  13% /boot

tmpfs                          98M    0  98M  0% /run/user/0

172.16.1.31:/data              37G  2.8G  35G  8% /data

------------------------------------------------------------------------

6 写入开机自动挂载

[root@backup ~]# tail -1  /etc/fstab

172.16.1.31:/data   /data      nfs    defaults     0 0

----------------------------------------------------------------------

mount -a  #重新加载/etc/fstab,不用重启直接挂载。

-----------------------------------------------------

7 卸载

umount /data/

umount -rl /data #强制卸载

#卸载的时候如果提示"umount.nfs: /nfsdir: device is busy"先切换到其他目录再卸载


nfs 服务程序的配置文件为/etc/exports,需要严格按照共享目录的路径 允许访问的 NFS 客户端(共享权限参数)格式书写,定义要共享的目录与相应的权限,具体书写方式如下图所示

![image-20200330175531035](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200330175531035.png)

扩展


NFS天坑

1.如果在客户端挂载172.16.1.31:/data后,服务端重启网卡,会导致客户端查看data目录卡顿。

解决:强制卸载后重新挂载

umount-rl/data

mount-tnfs172.16.1.31:/data /data

2.如果nfs服务挂了,访问客户端data目录会卡住。

解决:1.服务端重启nfs即可 2.客户端强制卸载umunt-rl/data

3.如果客户端设置了开机自动挂载,服务端nfs挂掉了,重启客户端会卡住很久,会一直在等挂载。

解决:

#如果是物理服务器

    1、观察读秒时间,如果比较短,宁愿等1分42秒(看读秒),也不进单用户模式。进单用户模式会花费至少五分钟以上。

#如果是云服务器

    1.不愿意等就进单用户模式,注释掉开机自动挂载的参数。

#进入单用户模式的方法:

   开机启动时按e,然后光标移动到倒数第二行尾部添加rd.break

ctrl+x

mount-oremount,rw /sysroot/

chroot/sysroot/   

NFS共享多个目录


1.配置文件修改

[root@nfs ~]# cat /etc/exports

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

/data2 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

2.重启nfs服务

systemctl restart nfs

3.客户端挂载测试

    showmount -e 172.16.1.31

    Export list for 172.16.1.31:

    /data  172.16.1.0/24

    /data2 172.16.1.0/24

NFS固定端口号

1.固定NFS随机端口

    [root@nfs01 ~]# vim /etc/sysconfig/nfs

    RQUOTAD_PORT=4001

    LOCKD_TCPPORT=4002

    LOCKD_UDPPORT=4002

    MOUNTD_PORT=4003

    STATD_PORT=4004

    --------------------------------------------------------

    [root@nfs01 ~]# tail -5 /etc/sysconfig/nfs #尾部追加

2.重启rpcbind和nfs

systemctl restart rpcbind.service nfs-server.service

3.查看端口

[root@nfs /data]# rpcinfo -p

  program vers proto  port  service

    100000    4  tcp    111  portmapper

    100000    3  tcp    111  portmapper

    100000    2  tcp    111  portmapper

    100000    4  udp    111  portmapper

    100000    3  udp    111  portmapper

    100000    2  udp    111  portmapper

    100005    1  udp  4003  mountd

    100005    1  tcp  4003  mountd

    100005    2  udp  4003  mountd

    100005    2  tcp  4003  mountd

    100005    3  udp  4003  mountd

    100005    3  tcp  4003  mountd

    100003    3  tcp  2049  nfs

    100003    4  tcp  2049  nfs

    100227    3  tcp  2049  nfs_acl

    100003    3  udp  2049  nfs

    100003    4  udp  2049  nfs

    100227    3  udp  2049  nfs_acl

    100021    1  udp  4002  nlockmgr

    100021    3  udp  4002  nlockmgr

    100021    4  udp  4002  nlockmgr

    100021    1  tcp  4002  nlockmgr

    100021    3  tcp  4002  nlockmgr

    100021    4  tcp  4002  nlockmgr

4.firewalld开放端口(C7)

firewall-cmd --add-service=nfs --permanent

    firewall-cmd --add-service=mountd --permanent

    firewall-cmd --add-service=rpc-bind --permanent

    firewall-cmd --reload

5.iptables开放端口(C6)

vim /etc/sysconfig/iptables

        -A INPUT -p tcp -m tcp --dport 111 -j ACCEPT

        -A INPUT -p udp -m udp --dport 111 -j ACCEPT

        -A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT

        -A INPUT -p udp -m udp --dport 2049 -j ACCEPT

        -A INPUT -p tcp -m tcp --dport 4001:4004 -j ACCEPT

        -A INPUT -p udp -m udp --dport 4001:4004 -j ACCEPT


    iptables-save #保存配置

iptables -nL

NFS小结


#NFS 存储优点

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

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

#NFS 存储局限

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

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

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

#NFS 应用建议

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容