当前位置:首页 » 云服务器 » linux怎么搭建nfs服务器

linux怎么搭建nfs服务器

发布时间: 2022-12-12 05:13:45

‘壹’ linux搭建NFS服务器

作者:SpookZanG
linux搭建NFS服务器
一、什么是NFS服务
NFS是Network
File
System的简写,即网络文件系统.
网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS.
NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。
二、NFS的优势
1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。
2.用户不必在每个网络上机器里头都有一个home目录。Home目录
可以被放在NFS服务器上并且在网络上处处可用。
3.诸如软驱,CDROM,和
Zip®
之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的可移动介质设备的数量。
NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工作,一些进程需要被配置并运行。
三、NFS的搭建
1、服务器端
安装NFS的服务程序
yum
install
-y
nfs-utils
写配置文件
写入
/music
192.168.0.0/255.255.255.0(rw,sync)
格式是:
要共享的目录
共享的IP及掩码或者域名(权限,同步更新)
启动服务
/etc/init.d/portmap
restart
/etc/init.d/nfs
restart
chkconfig
nfs
on
chkconfig
portmap
on
然后关闭防火墙以及更改Selinux关于NIS的选项
/etc/init.d/iptables
stop
(防护墙服务关闭)
chkconfig
iptables
off
system-config-selinux
(设置selinux)
2、客户端
编辑fstab文件,实现开机自动挂载
mount
-t
nfs
IP:/目录
挂载到的目录
(此为临时挂载)
如:mount
-t
nfs
192.168.0.9:/doce
/doc
编辑FSTAB文件
vim
/etc/init.d/fstab
IP:/目录
挂载到的目录
nfs
defaults
0
0
然后关闭防火墙以及更改Selinux关于NIS的选项
/etc/init.d/iptables
stop
(防护墙服务关闭)
chkconfig
iptables
off
system-config-selinux
(设置selinux)
至此,搭建完毕。

‘贰’ NFS服务器的安装与配置

由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程。

NFS 服务器可以让客户端将网络远程的 NFS 服务器分享的目录,直接挂载到本地端的机器当中。本地端的机器通过直接读写挂载的目录,就可以同步到NFS服务器之上。

系统平台:Ubuntu 14.04

NFS Server IP:192.168.1.2

iptables关闭: Firewall is disable.(NFS端口使用在默认情况下是不固定,所以若配置NFS服务器需要搭配防火墙使用的话,请配置固定端口)

SELINUX=disabled

NFS的安装只需要安装rpcbind与nfs-server就可以对外提供服务了。

NFS服务器的主要配置文件就是:/etc/exports。不过这个配置文件不一定会存在,可能需要使用 vim 主动新建这个文件。

/etc/exports文件由以下选项构成:

每一行最前面是要分享出来的目录,目录可以依照不同的权限分享给不同的主机。若权限参数不止一个时,则以逗号 (,) 分开。且主机名与小括号是连在一起的喔!其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay 当主机名或IP地址为空时,则代表共享给任意客户机提供服务。

下面是一些NFS共享的常用参数:

这里我们使用了NFS v3的配置,如下图所示:

配置完/etc/exports之后,接下来就可以启动NFS服务器了。

为了使NFS服务器能正常工作,需要启动rpcbind和nfs-kernel-server两个服务,并且rpcbind一定要先于nfs-kernel-server启动。

若要开机自启动nfs服务,可以通过sysv-rc-conf配置自启动服务。

客户端的挂载很简单,先建立一个挂载目录

之后客户端对应的文件目录便挂载上对应的文件系统了。

客户端可以通过命令配置开机自启动挂载NFS的文件系统。

将对应的命令 mount -t nfs 192.168.12:/tmp /mnt/nfs
添加至/etc/rc.d/local,不要尝试在直接在/etc/fstab/里挂载

小结 :梳理了一下在ubuntu之下NFS服务器的安装与配置。当然RedHat系列的发行版也是大同小异。若有疏漏,望指点斧正。

‘叁’ Linux NFS配置

body{
line-height:200%;
}
Linux
NFS配置
文件传输服务的种类:
1.NFS(Network
File
System),将远程主机的目录挂载到本地,实现文件共享与远程访问。
UNIX和UNIX之间的文件传输
UNIX和LINUX之间的文件传输
LINUX和LINUX之间的文件传输
2.Samba
WINDOWS和LINUX之间的文件传输
3.TFTP
常用于LINUX和开发板之间的文件传输
一、NFS服务器的搭建
1.在NFS服务器主机中进行设置
安装NFS服务器软件包
设置NFS共享目录输出
启动NFS服务器程序
2.在NFS客户机中进行设置
使用mount命令挂载NFS服务器中的NFS共享目录到文件系统中
通过NFS文件系统的挂载点目录访问NFS服务器中的共享内容
(1)NFS服务器的配置文件
"/etc/exports"文件用于配置NFS服务器中输出的共享目录
例如:
/home/share

*(sync,ro)
NFS服务器配置
以root
身份登陆Linux
服务器,编辑/etc
目录下的共享目录配置文件exports,指定共享目录及权限等。
执行如下命令编辑文件/etc/exports:
#
vi
/etc/exports
在该文件里添加如下内容:
/home/work
192.168.0.*(rw,sync,no_root_squash)
然后保存退出。
添加的内容表示:允许ip
地址范围在192.168.0.*的计算机以读写的权限来访问/home/work
目录。
/home/work
也称为服务器输出共享目录。
括号内的参数意义描述如下:
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS
服务器共享目录用户的属性,如果用户是
root,那么对于这个共享目录来说就具有
root
的权限。
接着执行如下命令,启动端口映射:
#
/etc/rc.d/init.d/portmap
start
sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都是用该选项
ro:设置输出的共享目录只读,与rw不能共同使用
rw:设置输出的共享目录可读写,与ro不能共同使用
二、NFS服务器的架势
防火墙修改
SELinux的修改

‘肆’ linux如何安装nfs系统

您好,方法
1、用rpm或者yum源方式安装nfs,两个软件包nfs-utils和nfs-utils-lib(这里已经装过了)。
2、创建共享目录 share,并在其文件夹下面创建一个a的文本文件。
3、修改nfs配置文件 vi /etc/exports 设置允许192.168.4.122用户以读写方式来挂载/share,
4、启动nfs服务service nfs start ,并关闭防火墙。
5、查看本机nfs共享目录信息,用命令exportfs。
6、客户端测试,用rpm -qa nfs-utils 查看是否安装,没有安装的话可以使用yum安装。
7、在客户端进行查看并挂载,用mount -t 命令进行挂载。
在客户端查看是否可以看到服务器端的数据,卸载umount。

‘伍’ 怎么搭建Linux的nfs服务

1. 查看系统有没有nfs功能
cat /proc/filesystes
2. ntsysv 命令选中nfs
service nfs restart,看能否启动,如不能正常,可以查看相应的出错信息
tali /var/log/messages
3. 配置/etc/exports
eg: /home/mis *(rw)
此文件是配置相关的文件和一些权限,上面的设置表示,所有的用户对/home/mis都有读写的权限4. 执行exportfs -a 表示将所有的更新.
5. service nfs restart
6. 执行mount命令
eg: mount 10.0.1.153:/home/mis /mnt/mis
7. 常用的命令
showmount
repcinfo
8. 如果在开机时就加载,可在/etc/fstab中加入
ip:/home.mis /mnt/mis nfs intr

‘陆’ 搭建NFS服务器

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procere Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的。

NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS等等分布式文件系统。

1. 环境准备两台Centos7.6虚拟机:

服务端:192.168.199.180

客户端:192.168.199.190

2.创建用户,指定用户访问共享文件夹:

useradd test   #创建test用户

                                   passwd   test  #设置test密码为123456

6.编辑nfs主配置文件/etc/exports;并添加以下内容:

/www  192.168.199.190(rw,sync,root_squash,no_all_squash,anonuid=1002,anongid=1002)     

参数详解:

NFS安装完毕,需要创建共享目录,共享目录在/etc/exports文件里面配置,可配置参数如下:

/www  192.168.199.190(rw,sync,root_squash,no_all_squash,anonuid=1002,anongid=1002)

第一列/www 表示需要共享的目录

IP表示允许哪个客户端访问

IP后括号里的设置表示对该共享文件的权限

ro                      只读访问

rw                      读写访问

sync                    所有数据在请求时写入共享

hide                    在NFS共享目录中不共享其子目录

no_hide                 共享NFS目录的子目录

all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。

no_all_squash           保留共享文件的UID和GID(默认)

root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squas           root用户具有根目录的完全管理访问权限

anonuid                 指定用户UID

anongid                 指定用户组ID

7.启动nfs服务:systemctl start nfs

8.查看nfs及rpc端口是否启动成功:

9. rpcinfo -p 192.168.199.180 查看,如图所示:

RPC命令详解: rpcinfo 命令会向 RPC 服务器发出 RPC 调用,并将得到的结果显示出来。rpcinfo 会列出所有在主机 host 上向 rpcbind 注册的 RPC 服务。

10. 使用showmount -e localhost 命令用于查询NFS服务器的相关信息,显示NFS服务器的输出清单。

11. 创建共享文件夹目录www ;并在www目录下新建jfe.txt并加入内容,授予www用户用户组的nfsnobody.nfsnobody权限

mkdir -p /www                       #创建www共享目录

touch  /www/jfe.txt               #在www目录下创建jfe.txt文件

chown  -R  test:test  /www  #授权用户用户组test给www目录

二、安装客户端:(192.168.199.190)

1. yum  install nfs-utils  -y

客户端上不需要启动nfs服务,只是为了使用showmount工具

2. 查看RPC端口是否启动:netstat -ntpl

3.使用showmount -e 192.168.199.180命令显示NFS服务器输出结果:

4.远程挂载www共享目录到客户端的/mnt目录下:mount -t nfs 192.168.199.180:/www /mnt

5. 进入到/mnt挂载盘符目录下cd /mnt  ;确认是否有jfe.txt文件存在及查看文件权限属于谁:

确认文件已存在,用户用户组均为test用户所属,其他用户不能操作此目录下的文件及文件夹;包括root用户都不能操作删除及修改文件,例如root用户都不能删除jfe.txt文件:

6.如果也只需要客户端的test用户去对www共享文件夹有增删改查权限的话,需要以下步骤:

a. 在客户端创建相同的test用户,并保证UID一致的情况下才能对共享目录有权限进行操作

b. 设置tets用户密码为123456

c. 查看test用户UID参数值是多少  cat /etc/passwd

d. 那么问题来了,服务端的test用户UID为1002,客户端test用户UID为1004,共享目录在客户端的权限也为1002,那么1004是没有权限去访问共享目录的,可参考下目前状态的错误图;首先切换到test用户,然后进入到/mnt目录下进行jfe.txt文件删除看是否报错:

e. 经过测试同样的tets用户,但是客户端的用户UID跟服务端不一致,所以是没有权限删除文件的,首先退出tets用户,切换root用户后,需要修改客户端test用户UID跟服务端一致即可解决问题,命令:usermod -u 1002  tets

7.修改完客户端test用户UID为1002后,切换到test用户,查看是否有jfe.txt文件存在;然后追加新内容123456到jfe.txt中;最后新建123.txt文件成功,代表NFS共享目录指定用户读取(增删改查)成功。

8. 在NFS服务端把NFS跟RPC服务加入开机自启动:

systemctl enable nfs-server

systemctl enable rpcbind

9. 在客户端将NFS远程共享目录挂载命令加入fstab配置,不然服务器重启挂载点将消失,加入以下配置到/etc/fstab配置文件

192.168.199.180:/www     /mnt       nfs     defaults   0 0

‘柒’ Linux 环境下搭建NFS服务

NFS(Network File System),网络文件存储系统,它最早是由 Sun 公司开发的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过TCP/IP 网络共享资源。通过 NFS 协议,我们本地 NFS 的客户端应用可以透明的读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以透过网络,让不同的主机,不同的操作系统可以共享存储的服务。
NFS 在文件传送或信息传送过程中依赖 RPC(Remote Procere Call)协议,即远程过程调用,NFS的各项功能都必须向 RPC 来注册,如此一来 RPC 才能了解 NFS 这服务的各项功能 Port,PID,NFS 在服务器所监听的 IP 等,而客户端才能透过 RPC 的询问找到正确对应的端口,所以 NFS 必须要有 RPC 存在是才能成功的提供服务,简单的理解二者关系:NFS 是一个文件存储系统,而 RPC 是负责信息的传输。

通过上面的简介,我们知道 NFS 服务需要依赖 RPC 服务,所以这里 NFS 服务端需要安装 rpcbind 和 nfs-utils ,客户端只需要安装 nfs-utils 即可,由于我们选用 CentOS 系统,所以可以使用 yum 快速的安装。

然后安装 NFS 服务

另:Ubuntu 16.04 安装命令

我们在服务端创建一个共享目录 /data/share ,作为客户端挂载在远端入口,然后设置权限

然后,修改 NFS 配置文件 /etx/exports

说明一下,这里配置后边有很多参数,每个参数有不同的含义,具体可以参考下边。此处,我配置了将 /data/share 文件目录设置为允许IP为 192.168.0.0/24 区间的客户端挂载。然后,如果客户端IP不在该区间也想要挂载的话,可以设置IP区间更大或者设置为 * 即允许所有客户端挂载,例如: /home *(ro, sync,insecure,no_root_squash) 设置 /home 目录允许所有客户端只读挂载。

接下来,我们先启动 RPC 服务

我们发现,启动了 NFS 服务后,RPC 注册的端口列表明显增多。现在服务端都启动起来了,在服务端看下是否正确加载了设置的 /etc/exports 配置

最后,在另一台Linux虚拟机上测试一下,是否能够正确挂载。首先,我们可以在客户端查看下NFS服务端设置可共享的目录信息

然后,在客户端创建挂载目录/share

最后,挂载远端目录到本地 /share 目录

可以看到,可以正确将远端 NFS 目录挂载到本地。注意:挂载点 /share 目录必须已经存在,而且目录中没有文件或子目录
最后,我们在 NFS 服务端 /data/share 目录下创建一个文件,看下客户端能否正确读取并修改

都可以了,这里因为上面设置了 NFS 远端目录权限为 rw 拥有读写权限,如果设置为 ro ,那么客户端只能读取,不能写入。根据实际应用场景合理配置。
NFS 默认使用 UDP协议进行挂载,为了提供 NFS 的稳定性,可以使用 TCP 协议挂载,那么客户端挂载命令如下:

最后,卸载命令

‘捌’ 如何利用Linux系统做一个NFS服务器

创建文件夹
新建文件夹名为testfs1,并且在该文件夹里面新建一个文件:touch a.txt
以ROOT身份登录Linux服务器,编辑/etc/exports,指定共享目录及权限。
添加的信息如下:
/testfs1/ xxx.xxx.xxx.*(rw,sync,no_root_squash)
添加的内容表示:
允许ip 地址范围在xxx.xxx.xxx.*的计算机以读写的权限来访问/testfs1 目录; 其中*.*.*.*表示
括号内的参数意义描述如下
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘.
no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
启动端口映射
执行以下命令:/etc/rc.d/init.d/portmap start
开启nfs服务:#service nfs start
关闭nfs服务:#service nfs stop

‘玖’ NFS服务搭建及数据无缝迁移

五一节办公室要停电,机房虽有UPS,但也支撑不了8小时。
因生产环境有业务系统挂了办公室机房的NAS存储,故需要进行迁移,步骤记录如下:

先闲谈下技术-----------------------
NFS和samba的区别
samba是混合型网络中的共享服务,windows服务器可建samba服务,linux服务器也可建samba服务
nfs只面向unix、linux间的共享,linux服务器可建nfs服务(winodws系统也可以挂载nfs,就是有点不稳定)

NFS服务器上的操作--------------------------

nfs服务器操作系统版本:
[root@c7110 ~]# more /etc/system-release
CentOS Linux release 7.9.2009 (Core)

nfs服务器安装nfs服务
[root@c7110 ~]# yum -y install nfs-utils rpcbind

创建nfs目录,并授权
[root@c7110 ~]# mkdir /opt/nfs-test
[root@c7110 ~]# chmod 777 /opt/nfs-test

编辑nfs服务配置文件
[root@c7110 ~]# vi /etc/exports
内容如下:
/opt/nfs-test *(rw,root_squash,all_squash,sync)

重新加载nfs配置:
[root@c7110 ~]# exportfs -r

nfs服务设置开机启动
[root@c7110 ~]# systemctl enable rpcbind
[root@c7110 ~]# systemctl enable nfs
[root@c7110 ~]# systemctl enable nfs-lock
[root@c7110 ~]# systemctl enable nfs-idmap

启动nfs服务
[root@c7110 ~]# systemctl start rpcbind
[root@c7110 ~]# systemctl start nfs
[root@c7110 ~]# systemctl start nfs-lock
[root@c7110 ~]# systemctl start nfs-idmap

查看nfs服务启动后,所监听的端口信息:
[root@c7110 ~]# rpcinfo -p

linux服务器服务器上操作-------------------------------
业务服务器安装nfs软件客户端
[root@c7111 ~]# yum -y install nfs-utils

建立一个挂载目录
[root@c7111 ~]# mkdir /opt/test-m

挂载nfs服务器共享出来的目录
[root@c7111 ~]# mount -t nfs 10.x.x.10:/opt/nfs-test /opt/test-m/

查看下已挂载的nfs
[root@c7111 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.5G 0 1.5G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 8.8M 1.5G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/mapper/centos-root 97G 2.3G 95G 3% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 297M 0 297M 0% /run/user/0
10.x.x.6:/opt/nfs-test 97G 4.1G 93G 5% /opt/test-m

经测试,数据可读可写,证明nas服务没有问题,于是进行数据同步,数据同步用rsync命令。

rsync -avp [email protected]::nas_6 /mnt/guidang/ --password-file=/root/rsync_pass --bwlimit=100000

数据同步完,通知研发进行挂载切换。研发同事在测试时,发现文件属性中的uid及gid与原来的不一致,有些担心,于是又小完善了一下NFS服务。

编辑nfs服务配置文件
[root@c7110 ~]# vi /etc/exports
内容如下:
/opt/nfs-test *(no_all_squash,anonuid=600,anongid=600)

重新加载nfs配置:
[root@c7110 ~]# exportfs -r

‘拾’ Linux实用工具-nfs

nfs服务器建立

本文介绍Linux环境下nfs服务的搭建过程。

nfs服务的作用是让其他机器可以通过网络把将本地的nfs目录挂载,然后通过访问挂载目录访问本地机器。在嵌入式开发中经常会将运行的开发板上的整个文件系统,做为本地的一个主目录,然后开发板启动的时候通过nfs服务,将本地的这个目录挂载上去,作为根文件系统。
这里分别介绍在Ubuntu和CenterOS上面nfs服务的配置过程。

编辑/etc/exports,在其中增加要共享的目录


其中 /home/quietheart/nfs,10.1.14.0/24代表共享给哪个子网,rw是可读写权限

然后

建立好了nfs之后,如果板子里面的内核支持网络和nfs,需要板子和你的机器各有一个网线和网口,两者在同一个网段,配置好了就能互访。也可以把机器和板子用一根网线链接(板子有独立的网口),这样不需要网关,就能使板子挂载机器的nfs系统了,但是机器也不能够上网了。

添加类似如下一行:

在配置NFS之前先查看“rpm -q nfs-utils portmap“两个软件包是否安装,默认都是安装的。

这里,'<your nfs directory>'是你本地的nfs目录,可以随意设置。具体含义参见"info exports".

这一步有时候可以不用做。

具体在:"系统"->"管理"->"安全级别和防火墙"

至此nfs服务搭建完毕.

这里说一下测试nfs是否好用的方法:

在其它机器上运行:

如果成功则完毕。

无。

通过以上可知,在Linux上面配置nfs服务的过程大致一样。

热点内容
制作自解压安装 发布:2025-03-20 05:41:49 浏览:302
华为连接电视密码是多少 发布:2025-03-20 05:31:11 浏览:492
算法第五版 发布:2025-03-20 05:17:57 浏览:730
湖南台访问 发布:2025-03-20 05:10:32 浏览:38
脚本和秒抢 发布:2025-03-20 05:06:29 浏览:591
b35锁如何设置密码 发布:2025-03-20 05:06:27 浏览:905
淘宝如何租云服务器 发布:2025-03-20 05:05:12 浏览:213
编程忌讳 发布:2025-03-20 04:58:35 浏览:427
国家知识产权专利数据库 发布:2025-03-20 04:54:29 浏览:416
win7怎么给文件夹设密码 发布:2025-03-20 04:52:38 浏览:725