LINUX怎样安装和使用NFS服务!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX怎样安装和使用NFS服务!相关的知识,希望对你有一定的参考价值。

我机器上的NFS已经安装,PORTMAP也已经安装了,但是我现在用XP或者其他的REDHAT连到192.168.0.222都是无法连接的,
LINUX(IP192.168.0.2)下我用的mount 192.168.0.222:/tmp /mnt
XP(192.168.0.1)下我用的是\\192.168.0.222我的nfs配置如下
/home/ 192.168.0.0/2(ro,sync,all_aquash)
/tmp/ 192.168.0.222(rw,insecure,sync,no_root_squash)
请问是什么原因导致访问失败呢?

一、NFS服务器的安装

检查linux系统中是否安装了nfs-utils和portmap两个软件包(RHEL4系统默认已经安装了这两个软件包)

命令#rpm –q nfs-utils portmap

二、查看NFS服务器是否启动

命令#service nfs starus

#service portmap status

三、如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启)

命令#service nfs start

#service portmap start

四、指定NFS服务器的配置文件

NFS服务器的配置文件保存“/etc/”目录中,文件名称是“exports”,该文件用于被指NFS服务器提供的目录共享

命令#vi /etc/exports

配置“exports”文件格式如下

/home *(sync,ro)

Home:共享目录名

*:表示所有主机

(sync,ro):设置选项

exports文件中的“配置选项”字段放置在括号对(“( )”)中 ,多个选项间用逗号分隔

sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项

ro:设置输出的共享目录只读,与rw不能共同使用

rw:设置输出的共享目录可读写,与ro不能共同使用

exports文件中“客户端主机地址”字段可以使用多种形式表示主机地址

192.168.152.13 指定IP地址的主机

nfsclient.test.com 指定域名的主机

192.168.1.0/24 指定网段中的所有主机

*.test.com 指定域下的所有主机

* 所有主机

五、重新输出共享目录

Exportfs管理工具可以对“exports”文件进行管理

命令#exportfs –rv 可以让新设置的“exports”文件内容生效

六、显示NFS服务器的输出目录列表

显示当前主机中NFS服务器的输出列表

# showmount -e

七、显示NFS服务器中被挂载的共享目录

显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录

# showmount -d

八、在另外一个linux系统中挂在共享目录

显示NFS服务器的输出

# showmount -e 172.16.75.1

挂载NFS服务器中的共享目录

# mount -t nfs 172.16.75.1:/software /mnt/

九、查看mnt目录中的内容

Cd /mnt |ll

十、卸载系统中已挂载的NFS共享目录

命令# umount /mnt/

总结:

1、在配置NFS服务器之前用ping命令确保两个linux系统正常连接,如果无法连接关闭图形界面中的防火墙#service iptables stop

2、在配置中确保输入的命令是正确的

3、更改完“exports”文件后要输入exportfs –rv ,使得“exports”文件生效。

4、检查nfs服务是否开启,默认是关闭的。

5、卸载的时候不能在/mnt目录中卸载,必须注销系统后卸载
参考技术A www.sjzzyjx.com这上面有你要找的问题 参考技术B 服务起了没?192.168.0.0/2什么意思?

Linux——NFS使用+配置

文章目录


一、NFS服务

1. NFS是什么?

NFS(Network File System)网路文件系统
特点:

  • 主要用于Linux系统上实现文件共享的一种协议,其客户端主要是Linux
  • 没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只能在局域网中使用
  • 支持多节点同时挂载以及并发写入

企业应用:为集群中的WebServer提供后端存储

2.NFS的组成

该服务包括的组件:

  • RPC(Remote Procedure Call Protocol):远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。
  • rpcbind:负责NFS的数据传输,远程过程调用tcp/udp协议,端口号为111
  • nfs-utils:控制共享哪些文件,权限管理

3. 安装NFS软件

命令:yum -y install rpcbind nfs-utils

[root@localhost ~]# rpm -q rpcbind
rpcbind-0.2.0-49.el7.x86_64
[root@localhost ~]# rpm -aq|grep ^nfs
nfs-utils-1.3.0-0.68.el7.2.x86_64 #nfs服务的一个脚本控制工具(服务端与客户端)
[root@localhost ~]# 

4. NFS的配置文件

命令:vim /etc/exports
注意:该配置文件默认为空

常用配置

# 共享目录	共享选项
/目录名		*(ro,sync)

共享主机:
*   :代表所有主机
192.168.0.0/24:代表共享给某个网段192.168.0.1 ~ 192.168.0.254
192.168.0.0/24(rw) 192.168.1.0/24(ro) :代表共享给不同网段
192.168.0.254:共享给某个IP
*.hhy.cn:代表共享给某个域下的所有主机(*.hhy.cn)

共享选项:
ro:只读
rw:读写
sync:实时同步,直接写入磁盘(安全性最高)
async:异步,先缓存数据在内存然后再同步磁盘(效率最高,但是有丢失文件风险)
anonuid:设置访问nfs服务的用户的uid,uid需要在/etc/passwd中存在
anongid:设置访问nfs服务的用户的gid
root_squash :默认选项 root用户创建的文件的属主和属组都变成nfsnobody,其他人nfs-server端是它自己,client端是nobody。(访问NFS服务器时,映射为匿名账号)
no_root_squash:root用户创建的文件属主和属组还是root,其他人server端是它自己uid,client端是nobody。(访问NFS服务器时,映射为root管理员账号)
all_squash: 不管是root还是其他普通用户创建的文件的属主和属组都是nfsnobody

说明:
anonuid和anongid参数和all_squash一起使用。
all_squash表示不管是root还是其他普通用户从客户端所创建的文件在服务器端的拥有者和所属组都是nfsnobody;服务端为了对文件做相应管理,可以设置anonuid和anongid进而指定文件的拥有者和所属组

二、NFS实战

由于业务驱动,为了提高用户的访问效率,现需要将原有web服务器上的静态资源文件分离出来,单独保存到一台文件服务器上

1. 任务要求

1.搭建NFS服务器(用于静态资源的存储如图片、视频、附件)
2. 使用mount指定对NFS服务器进行挂载,挂载到Web服务器中
3. 对NFS服务器中的静态资源进行实时备份(inotify + rsync)

2. 环境准备

主机名ip用处
web192.168.44.140Web服务器
nfs192.168.44.141NFS服务器
backup192.168.44.142备份服务器

第一步:设置主机名
命令:hostnamectl set-hostname [名称]

第二步:配置静态ip

TYPE="Ethernet"
BOOTPROTO="static" #静态
IPADDR=192.168.44.140 #ip
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.44.2 # 网关
DNS1=8.8.8.8 
DNS2=114.114.114.114
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"

第三步:关闭防火墙和SELinux

# systemctl stop firewalld
# systemctl disable firewalld

# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

第四步:配置yum源
可以使用本地也可以配置网络源(阿里、华为…)

# 清除Yum缓存
yum clean all
# 从新建立缓存
yum makecache

3. 搭建NFS服务器

1)安装NFS

第一步:安装NFS相关服务软件
命令:yum -y install rpcbind nfs-utils

第二步:创建一个共享目录/share
命令:mkdir /share

2)编写NSF配置文件

命令:vim /etc/exports

写入

#共享目录	共享选项
/share	192.168.44.0/24(rw,sync)
  • 表示共享的目录为share
  • 共享给192.168.44.*这个网段的机器
  • rw:表示对这个目录可读可写
  • sync:实时同步,直接写入磁盘(比较安全)

3)启动相关的NFS服务

  • systemctl start rpcbind
  • systemctl start nfs

查看是否有111端口
命令:ss -naltp | grep 111

4. 搭建Web服务器

1)安装httpd服务

安装Apache:yum install httpd -y
启动Apache服务:systemctl start httpd
通过命令查看httpd服务的端口号:ss -naltp | grep httpd


当Apache软件启动完毕后,会自动占用计算机的80端口。

80端口指向Web服务器的目录 => /var/www/html

所以项目源代码都可以直接存放于/var/www/html目录下

2)测试httpd服务

[root@web html]# touch /var/www/html/demo.html
[root@web html]# echo "<h1>NCF实战</h1>" >> /var/www/html/demo.html
[root@web html]#

通过Web服务器的ip在浏览器访问

3)在Web服务器中挂载NFS

第一步:创建挂载目录
命令:mkdir /var/www/html/static

第二步:安装nfs工具(防止挂载失败)
命令:yum -y install nfs-utils nfs-utils-lib nfs4-acl-tools

第三步:把nsf挂服务器的/share载到/var/www/html/static下,就可以获取/share的文件了

命令:mount -t nfs 192.168.44.141:/share /var/html/media或者mount.nfs 192.168.44.141:/share /var/www/html/media

通过df -h命令查看是否挂载成功

5. 上传视频文件到NFS服务器

第一步:上传视频文件到NFS服务器的/share目录下

第二步:在Web服务器中,查看 /var/www/html/static目录
NFS服务器上传的视频文件自动同步到了Web服务器

6. 在html网页中调用视频文件文件

编辑html文件:vim /var/www/html/demo.html

<video width="800" height="450" controls>
        <source src="static/mv.mp4">
</video>

7. 对NFS服务器进行实时备份

对NFS服务器进行实时备份:只要/share目录有变化,马上rsync进行同步到backup备份服务器的/backup目录

1)安装inotify工具

先用命令安装**c/c++**编译器:yum install gcc gcc-c++ ncurses-devel -y
第一步:安装inotify工具(在NFS服务器上)

[root@nfs file]# tar -xf inotify-tools-3.14.tar.gz
[root@nfs file]# cd inotify-tools-3.14
[root@nfs inotify-tools-3.14]# ls
aclocal.m4  config.guess  config.sub    COPYING  install-sh       Makefile.am  missing  src
AUTHORS     config.h.in   configure     depcomp  libinotifytools  Makefile.in  NEWS
ChangeLog   config.log    configure.ac  INSTALL  ltmain.sh        man          README
[root@nfs inotify-tools-3.14]# ./configure && make && make install 

编译+安装:./configure && make && make install

2)设置免密同步

设置nfsbackup服务器的免密同步
nfs主机生成非对称密钥:ssh-keygen -t rsa -P ""
把公钥发送给backuo服务器:ssh-copy-id root@192.168.44.142

3)编写rsync.sh脚本

只要nfs主机的/share目录下的文件发生变化,马上就同步到backup主机的/backup目录

/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /share |while read events
do
rsync -a --delete /share/ 192.168.44.142:/backup/
echo "`date +%F\\ %T`出现事件$events" >> /var/log/rsync.log 2>&1
done

手动创建日志文件:touch /var/log/rsync.log

rsync.sh添加可执行权限:chmod +x rsync.sh

4)创建备份目录

在backup服务器中创建一个/backup目录,用于实时备份
命令:mkdir /backup

5)在nfs和backup安装rsync

在nfs和backup两台机器上都安装rsyncf
命令:yum -y install rsync
启动rsync服务
命令:systemctl start rsyncd

6)在NFS服务器中执行rsync脚本

命令:nohup ./rsync.sh &

  • & : 让inotify.sh在计算机后台运行,可以使用jobs命令查看,kill %编号结束,当我们退出终端时,这个执行会自动结束
  • nohup : 让程序一直在后台运行,即使我们关闭了终端

6)测试同步

nfs服务器上创建test.c文件,看看backup主机上是否自动同步

以上是关于LINUX怎样安装和使用NFS服务!的主要内容,如果未能解决你的问题,请参考以下文章

Linux centos 7 安装NFS服务

Linux NFS服务

Linux NFS服务

Linux NFS服务

nfs安装

简述安装nfs网络共享服务的步骤