当前位置: 首页 > article >正文

Linux中网络文件系统nfs使用

一、nfs服务

NFS(Network File System) 是一种用于在网络中共享文件的协议,允许不同操作系统(如 Linux、Unix、MacOS 等)之间进行文件共享。

NFS 的工作原理基于客户端-服务器模型,服务器提供共享文件系统,客户端通过挂载这些文件系统来访问共享的文件。

二、安装配置nfs

1、准备两台虚拟机。

本文使用centos7和 fedora 27系统版本

server:192.168.18.134

client:192.168.18.130

确保两台机器都安装了nfs服务

# rpm命令查看是否安装,没有安装直接yum安装
# 服务端
[server root ~] # ip a|grep ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.18.134/24 brd 192.168.18.255 scope global noprefixroute ens33
[server root ~] # rpm -qa|grep nfs-utils
[server root ~] # yum -y install nfs-utils



# 客户端
[nfsclient root ~] # ip a|grep ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.18.130/24 brd 192.168.18.255 scope global ens33
[nfsclient root ~] # rpm -qa|grep nfs-utils
nfs-utils-2.1.1-6.rc5.fc27.x86_64

2、准备一个专门用作nfs的磁盘分区,格式化,挂载(server端)

# 这里使用sdb6作为nfs挂载点
[server root ~] # lsblk 
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                 8:0    0   40G  0 disk 
├─sda1              8:1    0  512M  0 part /boot
├─sda2              8:2    0    4G  0 part [SWAP]
└─sda3              8:3    0 35.5G  0 part /
sdb                 8:16   0   20G  0 disk 
├─sdb1              8:17   0    5G  0 part 
├─sdb2              8:18   0    1K  0 part 
├─sdb5              8:21   0    5G  0 part 
└─sdb6              8:22   0    6G  0 part 
sr0                11:0    1  4.4G  0 rom  
[server root ~] # df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  900M     0  900M   0% /dev
tmpfs          tmpfs     910M     0  910M   0% /dev/shm
tmpfs          tmpfs     910M  9.6M  901M   2% /run
tmpfs          tmpfs     910M     0  910M   0% /sys/fs/cgroup
/dev/sda3      xfs        36G  3.7G   32G  11% /
/dev/sda1      xfs       509M  138M  371M  28% /boot
tmpfs          tmpfs     182M     0  182M   0% /run/user/0

# 格式化分区
[server root ~] # mkfs.ext4 /dev/sdb6 
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
393216 inodes, 1572864 blocks
78643 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1610612736
48 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done                            
Writing inode tables: done                            
  eating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 

创建目录,挂载

[server root ~] # mkdir /nfs-share
[server root ~] # mount /dev/sdb6  /nfs-share/
[server root ~] # df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  900M     0  900M   0% /dev
tmpfs          tmpfs     910M     0  910M   0% /dev/shm
tmpfs          tmpfs     910M  9.6M  901M   2% /run
tmpfs          tmpfs     910M     0  910M   0% /sys/fs/cgroup
/dev/sda3      xfs        36G  3.7G   32G  11% /
/dev/sda1      xfs       509M  138M  371M  28% /boot
tmpfs          tmpfs     182M     0  182M   0% /run/user/0
/dev/sdb6      ext4      5.8G   24M  5.5G   1% /nfs-share

编写exports配置文件,直接写192.168.18.0/24整个网段

[server root ~] # cat /etc/exports
/nfs-share 192.168.18.0/24(rw)

重启nfs服务,关闭防火墙,selinux设置为disabled

[server root ~] # systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: active (exited) since Wed 2024-11-27 16:51:15 CST; 8s ago
  Process: 7636 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
  Process: 7619 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 7618 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 7619 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

Nov 27 16:51:15 server systemd[1]: Starting NFS server and services...
Nov 27 16:51:15 server systemd[1]: Started NFS server and services.
[server root ~] # systemctl stop firewalld
[server root ~] # setenforce 0
setenforce: SELinux is disabled

或者防火墙开启nfs访问,重新启动nfs服务

server root ~] # firewall-cmd --zone=public --add-service=nfs --permanent
success
[server root ~] # firewall-cmd --reload
success
[server root ~] # systemctl restart nfs-server
[server root ~] # 

 

nfs服务已正常挂载,挂载目录为/nfs-share

[server root ~] # cat /etc/exports
/nfs-share 192.168.18.0/24(rw)
[server root ~] # exportfs 
/nfs-share    	192.168.18.0/24
[server root ~] # df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  900M     0  900M   0% /dev
tmpfs          tmpfs     910M     0  910M   0% /dev/shm
tmpfs          tmpfs     910M  9.6M  901M   2% /run
tmpfs          tmpfs     910M     0  910M   0% /sys/fs/cgroup
/dev/sda3      xfs        36G  3.7G   32G  11% /
/dev/sda1      xfs       509M  138M  371M  28% /boot
tmpfs          tmpfs     182M     0  182M   0% /run/user/0
/dev/sdb6      ext4      5.8G   24M  5.5G   1% /nfs-share

3、客户端访问

首先先创建目录,然后挂载服务端IP+目录

[nfsclient root ~] # df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                   tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                   tmpfs     2.0G  4.6M  2.0G   1% /run
tmpfs                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/fedora-root xfs        15G  5.2G  9.9G  35% /
tmpfs                   tmpfs     2.0G     0  2.0G   0% /tmp
/dev/nvme0n1p1          ext4       40G  182M   37G   1% /data
/dev/sda1               ext4      976M  117M  793M  13% /boot
tmpfs                   tmpfs     394M     0  394M   0% /run/user/0

[nfsclient root ~] # mkdir /nfs-mountpoint
[nfsclient root ~] # mount -t nfs 192.168.18.134:/nfs-share /nfs-mountpoint
[nfsclient root ~] # df -TH
Filesystem                Type      Size  Used Avail Use% Mounted on
devtmpfs                  devtmpfs  2.1G     0  2.1G   0% /dev
tmpfs                     tmpfs     2.1G     0  2.1G   0% /dev/shm
tmpfs                     tmpfs     2.1G  4.9M  2.1G   1% /run
tmpfs                     tmpfs     2.1G     0  2.1G   0% /sys/fs/cgroup
/dev/mapper/fedora-root   xfs        17G  5.6G   11G  35% /
tmpfs                     tmpfs     2.1G     0  2.1G   0% /tmp
/dev/nvme0n1p1            ext4       43G  191M   40G   1% /data
/dev/sda1                 ext4      1.1G  123M  831M  13% /boot
tmpfs                     tmpfs     413M     0  413M   0% /run/user/0
192.168.18.134:/nfs-share nfs4      6.3G   26M  5.9G   1% /nfs-mountpoint

4、测试创建文件或者目录是否正常访问

# server端正常创建文件
[server root /nfs-share] # ls
lost+found
[server root /nfs-share] # touch test

# 客户端创建失败了
[nfsclient root /nfs-mountpoint] # ll
total 16
drwx------ 2 root root 16384 Nov 27 16:31 lost+found
-rw-r--r-- 1 root root     0 Nov 28 08:48 test
[nfsclient root /nfs-mountpoint] # touch test2
touch: cannot touch 'test2': Permission denied

因为服务端设置的other权限是r+x权限,没有写的权限,所有需要加w权限

[server root /nfs-share] # cat /etc/exports
/nfs-share 192.168.18.0/24(rw)
[server root /nfs-share] # ls -ld /nfs-share/
drwxr-xr-x 3 root root 4096 Nov 28 08:48 /nfs-share/
[server root /nfs-share] # ls -ld /nfs-share/
drwxr-xrwx 3 root root 4096 Nov 28 08:48 /nfs-share/


# 客户端重新创建文件
[nfsclient root /nfs-mountpoint] # touch test2
[nfsclient root /nfs-mountpoint] # ls
lost+found  test  test2
[nfsclient root /nfs-mountpoint] # ls -ld /nfs-mountpoint/
drwxr-xrwx 3 root root 4096 Nov 28 08:50 /nfs-mountpoint/
[nfsclient root /nfs-mountpoint] # mkdir KFC
[nfsclient root /nfs-mountpoint] # ls -l
total 20
drwxr-xr-x 2 nobody nobody  4096 Nov 28 09:45 KFC
drwx------ 2 root   root   16384 Nov 27 16:31 lost+found
-rw-r--r-- 1 root   root       0 Nov 28 08:48 test
-rw-r--r-- 1 nobody nobody     0 Nov 28 08:50 test2

5、配置永久挂载

客户端配置/etc/fstab,重启reboot

[nfsclient root /nfs-mountpoint] # vim /etc/fstab 

# 
# /etc/fstab
# Created by anaconda on Wed Dec 21 10:49:11 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/fedora-root /                       xfs     defaults        0 0
UUID=8d0e84a0-5871-47cb-80b1-ccdc548d1443 /boot                   ext4    defaults        1 2
/dev/mapper/fedora-swap swap                    swap    defaults        0 0
/dev/nvme0n1p1 /data                        ext4    defaults        0 0
192.168.18.134:/nfs-share       /nfs-mountpoint nfs     defaults 0 0
~                                                                                              
~   


[nfsclient root /nfs-mountpoint] # reboot
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(fedora) at 08:52:25.

......
Connecting to 192.168.18.130:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Wed Nov 27 16:15:42 2024 from 192.168.18.1
[nfsclient root ~] # df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
devtmpfs                  devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                     tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                     tmpfs     2.0G  4.6M  2.0G   1% /run
tmpfs                     tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/fedora-root   xfs        15G  5.2G  9.9G  35% /
tmpfs                     tmpfs     2.0G     0  2.0G   0% /tmp
/dev/nvme0n1p1            ext4       40G  182M   37G   1% /data
/dev/sda1                 ext4      976M  117M  793M  13% /boot
192.168.18.134:/nfs-share nfs4      5.8G   24M  5.5G   1% /nfs-mountpoint
                                                                                   


http://www.kler.cn/a/414983.html

相关文章:

  • vue3 发送 axios 请求时没有接受到响应数据
  • Windows10+VirtualBox+Ubuntu:安装虚拟机VirtualBox,虚拟机中安装Ubuntu
  • ubuntu22开机自动登陆和开机自动运行google浏览器自动打开网页
  • 火山引擎VeDI在AI+BI领域的演进与实践
  • 技术文档的艺术:在信息与理解之间架起桥梁
  • golang debug调试
  • S4 UPA of AA :新资产会计概览
  • 如何使用PHP爬虫获取店铺详情:一篇详尽指南
  • 初识 Django
  • 2024第六次随堂测验参考答案
  • leetcode 208. 实现 Trie (前缀树)
  • pico-sdk(八)-程序架构之自定义预处理变量
  • 【opencv-python】的cv2.imdecode()与cv2.imencode()
  • 力扣--LCR 148.验证图书取出顺序
  • 二维码有哪些网络安全风险隐患?
  • 【C语言篇】探索 C 语言结构体:从基础语法到数据组织的初体验
  • 力扣,88. 合并两个有序数组
  • [2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(1))
  • 项目整合logback日志打印线程id
  • GraphRAG访问模式和知识图谱建模
  • HarmonyOS-初级(一)
  • 【ANC系统】主动噪声控制系统结构分类
  • 前端——自定义组件
  • ubuntu防火墙入门(一)——设置服务、关闭端口
  • 重塑视频新语言,让每一帧都焕发新生——Video-Retalking,开启数字人沉浸式交流新纪元!
  • elasticsearch的索引模版使用方法