NFS网络文件系统配置

NFS网络文件系统配置,第1张

配置流程适用于Debian\Ubuntu等的衍生发行版
Server:Armbian\1921682225
Client:Deepin\1921682222

增添一行

将 /root/share 共享给1921682222 ,客户端权限rw
其中共享对象可以用通配符,比如 代表所有地址。

rw: 读写

ro :只读

fsid=0 : 指定/root/share为nfs的根目录

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async:是大数据时使用,是先写到缓存区,必要时再写到磁盘里。

all_squash:所有访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;

root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限;

wdelay(默认):检查是否有相关的写 *** 作,如果有则将这些写 *** 作一起执行,这样可以提高效率;
no_wdelay:若有写 *** 作则立即执行,应与sync配合使用;

subtree_check :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check(默认):即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

看到最后有 1921682225:/ 15G 93G 52G 65% /mnt

不能写入,没有密码

五一节办公室要停电,机房虽有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 792009 (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 10xx10:/opt/nfs-test /opt/test-m/

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

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

rsync -avp gdsz@108756::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

nfs服务器建立

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

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

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


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

然后

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

添加类似如下一行:

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

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

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

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

至此nfs服务搭建完毕

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

在其它机器上运行:

如果成功则完毕。

无。

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

配置tftp
配置tftp服务的步骤:
1、安装相关软件包:tftpd(服务端),tftp(客户端),xinetd
sudo apt-get install tftpd tftp xinetd
2、建立配置文件
在/etc/xinetdd/下建立一个配置文件tftp
sudo vi tftp
在文件中输入以下内容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/intftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
保存退出
3、建立tftp服务文件目录(上传文件与下载文件的位置),
并且更改其权限
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot -R
4、重新启动服务
sudo /etc/initd/xinetd restart
至此tftp服务已经安装完成了,下面可以对其进行一下测试。
(假设在当前目录下有一个测试文件testtxt)
$tftp 127001
tftp> put testtxt
Sent 1018 bytes in 00 seconds
tftp> get testtxt
Received 1018 bytes in 01 seconds
tftp> quit
$
通过get命令,可以把当前目录下的testtxt文件,
通过tftp上传到它的服务文件目录。
这时,在/tftpboot下面会出现testtxt文件。
通过put命令,可以从/tftpboot下,下载testtxt文件。
这样就验证了tftp服务配置的正确性。
当文件上传与下载结束后,可以通过quit命令退出。
严格按照以上步骤配置tftp服务,一般都可以成功。
如果出现无法get或者put的时候,可以查看一下防火墙是否关闭。
配置nfs服务器
在ubuntu下安装、配置nfs服务的步骤如下:
1、安装nfs
Ubuntu上默认是没有安装nfs服务器的,因此我们首先安装nfs服务器端:
$sudo apt-get install nfs-kernel-server
在一些文档中,提出还需要使用apt-get来手动安装nfs的客户端nfs-common,
以及端口映射器portmap,
但其实这是没有必要的,因为在安装nfs-kernel-server时,
apt会自动为我们把它们安装好。
2、配置/etc/exports
nfs允许挂载的目录及权限在文件/etc/exports中进行了定义。
例如,我们要将根目录下的rootfs目录共享出来,
那么我们需要在/etc/exports文件末尾添加如下一行:
/rootfs (rw,sync,no_root_squash)
其中:/rootfs是要共享的目录,
代表允许所有的网络段访问,
rw是可读写权限,
sync是资料同步写入内存和硬盘,
no_root_squash是nfs客户端分享目录使用者的权限,
如果客户端使用的是root用户,那么对于该共享目录而言,
该客户端就具有root权限。
其它nfs常用的参数有:
ro 只读访问
rw 读写访问sync 所有数据在请求时写入共享
async nfs在写入数据前可以响应请求
secure nfs通过1024以下的安全TCP/IP端口发送
insecure nfs通过1024以上的端口发送
wdelay 如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay 如果多个用户要写入nfs目录,则立即写入,
当使用async时,无需此设置。
hide 在nfs共享目录中不共享其子目录
no_hide 共享nfs目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,
强制nfs检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,
适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID
3、重启服务
$sudo /etc/initd/portmap restart
$sudo /etc/initd/nfs-kernel-server restart
4、测试nfs
此时可以运行以下命令来显示一下共享出来的目录:
$showmount -e
或者可以使用以下命令把它挂载在本地磁盘上,例如将/rootfs挂载到/mnt下:
$ sudo mount -t nfs localhost:/rootfs /mnt
可以运行df命令查看是否挂载成功。查看后可以使用以下命令卸载:
$ sudo umount /mnt

用指令"rpm -qa | grep minicom"来确认是否安装了minicom,回车后会显示minicom 的版本信息
#minicom -s
启动
出现配置菜单:选serial port setup
进入串口配置
输入A配置串口驱动为/dev/ttyS0
输入E配置速率为115200 8N1
输入F将 Hardware Flow Control 设 为 NO
回车 退出

在配置菜单 选Save setup as df1保存(一定要记得这一步)
选Exit退出
下次在输入minicon 即可直接进入。
命令minicom是进入串口超级终端画面,而minicom -s为配置minicom。
说明/dev/ttyS0 对应为串口0 为你连接开发板的端口。
注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK,这几个文件阻止了minicom的运行,将它们删除后即可恢复

tftp是FTP服务文件上传下载用的,NFS server可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样。
配置tftp
方法一:(推荐方法)Ubuntu1004 测试通过
1安装TFTP软件
sudo apt-get install tftp-hpa tftpd-hpa
tftp-hpa是客户端,tftpd-hpa是服务器端
2建立tftpboot目录,作为服务器的目录
sudo mkdir ~/tftpboot
释放权限:(服务器目录,需要设置权限为777,chomd 777)
sudo chmod 777 ~/tftpboot
3配置TFTP服务器
sudo gedit /etc/default/tftpd-hpa
将原来的内容为:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
#TFTP_DIRECTORY="/var/lib/tftpboot" #修改为自己需要的路径,与上面创建的目录一致
TFTP_ADDRESS="0000:69"
#TFTP_OPTIONS="--secure" #可以通过查看mantftpd,看各种参数的意义
#修改为
TFTP_DIRECTORY="/home/shenhao/tftpboot"
TFTP_OPTIONS="-l -c -s"
3重新启动TFTP服务
sudo service tftpd-hpa restart
4测试下
$ cd ~/tftpboot echo "hello tftp service">>atxt
$ echo "hello tftp service,put to tftp serive">>btxt
$ tftp localhost
tftp> get atxt
tftp> put btxt
tftp> quit
其中get是取得文件,put是将文件上传到TFTP服务器上。
方法二:
配置tftp服务的步骤:
1、安装相关软件包:tftpd(服务端),tftp(客户端),xinetd
sudo apt-get install tftpd tftp xinetd
2、建立配置文件(蓝色的目录是可以更改为其他地址的,例如/home/user/tftpboot)
在/etc/xinetdd/下建立一个配置文件tftp
sudo vi tftp
在文件中输入以下内容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/intftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
保存退出
3、建立tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限
sudo mkdir /tftpboot
sudu chmod 777 /tftpboot
4、重新启动服务
sudo /etc/initd/xinetd restart
至此tftp服务已经安装完成了,下面可以对其进行一下测试。(假设在当前目录下有一个测试文件testtxt)
$tftp 192168162 (本机的ip地址)
tftp> get testtxt
tftp> quit
$
通过get命令,可以把当前目录下的testtxt文件,通过tftp上传到它的服务文件目录。这时,在/tftpboot下面会出现testtxt文件。通过put命令,可以从/tftpboot下,下载testtxt文件。这样就验证了tftp服务配置的正确性。当文件上传与下载结束后,可以通过quit命令退出。
严格按照以上步骤配置tftp服务,一般都可以成功。如果出现无法get或者put的时候,可以查看一下防火墙是否关闭。
-----------------------------------------------------------------------------------------------------
配置nfs服务器

在ubuntu下安装、配置nfs服务的步骤如下:
1、安装nfs
Ubuntu上默认是没有安装nfs服务器的,因此我们首先安装nfs服务器端:
$sudo apt-get install nfs-kernel-server
在一些文档中,提出还需要使用apt-get来手动安装nfs的客户端nfs-common,以及端口映射器portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时,apt会自动为我们把它们安装好。
2、配置/etc/exports
nfs允许挂载的目录及权限在文件/etc/exports中进行了定义。
例如,我们要将根目录下的rootfs目录共享出来,那么我们需要在/etc/exports文件末尾添加如下一行:
/rootfs (rw,sync,no_root_squash)
其中: /rootfs是要共享的目录,
代表允许所有的网络段访问,
rw是可读写权限,sync是资料同步写入内存和硬盘,
no_root_squash是nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限。
其它nfs常用的参数有:
ro
只读访问
rw 读写访问sync 所有数据在请求时写入共享
async
nfs在写入数据前可以响应请求
secure
nfs通过1024以下的安全TCP/IP端口发送
insecure
nfs通过1024以上的端口发送
wdelay
如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay
如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。
hide 在nfs共享目录中不共享其子目录
no_hide
共享nfs目录的子目录
subtree_check
如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
no_subtree_check
和上面相对,不检查父目录权限
all_squash
共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash
保留共享文件的UID和GID(默认)
root_squash
root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas
root用户具有根目录的完全管理访问权限
anonuid=xxx
指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx
指定nfs服务器/etc/passwd文件中匿名用户的GID
3、重启服务
$sudo /etc/initd/portmap restart
$sudo /etc/initd/nfs-kernel-server restart
4、测试nfs
此时可以运行以下命令来显示一下共享出来的目录:
$showmount -e
或者可以使用以下命令把它挂载在本地磁盘上,例如将/rootfs挂载到/mnt下:
$sudo mount -t nfs localhost:/rootfs /mnt
可以运行df命令查看是否挂载成功。查看后可以使用以下命令卸载:
$ sudo umount /mnt


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12601186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存