linux挂载共享存储方法

步骤 1: 安装 NFS 客户端

大多数 Linux 发行版默认没有安装 NFS 客户端工具,请先安装:

Ubuntu/Debian:

sudo apt update
sudo apt install nfs-common

CentOS/RHEL/Fedora:

sudo dnf install nfs-utils # 对于较新的版本
# 或者
sudo yum install nfs-utils # 对于较旧的版本

步骤 2: 创建本地挂载点

创建一个目录作为挂载点,例如,我要挂载到 /mnt/nfs_share

sudo mkdir -p /mnt/nfs_share

步骤 3: 手动挂载

使用 mount 命令进行挂载:

sudo mount -t nfs <NFS服务器IP>:/<共享路径> /mnt/nfs_share

示例:
假设 NFS 服务器的 IP 是 192.168.1.100,它共享的目录是 /data/nfs,那么命令是:

sudo mount -t nfs 192.168.1.100:/data/nfs /mnt/nfs_share

步骤 4: 验证挂载

使用 df -h 或 mount 命令查看是否挂载成功:

df -h
# 你应该能看到类似这样的一行:
# 192.168.1.100:/data/nfs Size Used Avail Use% Mounted on /mnt/nfs_share

也可以直接进入挂载点查看文件:

ls -l /mnt/nfs_share

步骤 5: 卸载

当你不再需要时,可以使用 umount 命令卸载:

sudo umount /mnt/nfs_share

步骤 6: 配置开机自动挂载(通过 /etc/fstab)

sudo nano /etc/fstab

在文件末尾添加一行:

<NFS服务器IP>:/<共享路径>  /mnt/nfs_share  nfs  defaults  0 0

示例:

192.168.1.100:/data/nfs  /mnt/nfs_share  nfs  defaults  0 0

保存并退出。之后,你可以使用 sudo mount -a 命令来测试并挂载所有在 fstab 中定义的文件系统,如果没有任何报错,说明配置正确,下次开机就会自动挂载。

以下以centos7为例:

服务器一:192.168.40.148

服务器二:192.168.40.149

在148上分配一块40GB的盘

82fd9a89-7ec3-430c-aee6-428b1a73db79

 先将磁盘挂载到148本机

image

image

image

 

在 NFS 服务器 (192.168.40.148) 上执行以下操作:

步骤 1: 确认 NFS 服务已安装并运行

NFS 依赖 nfs-server 和 rpcbind 服务。

# 1. 检查 nfs-server 服务状态
systemctl status nfs-server

# 2. 检查 rpcbind 服务状态
systemctl status rpcbind

# 3. 如果它们没有运行,请启动并设置开机自启
systemctl enable --now nfs-server rpcbind

步骤 2: 检查防火墙是否放行了 NFS 流量

 这是最常见的原因之一。NFS 需要使用多个端口,最简单的方式是将NFS服务添加到防火墙放行规则。

# 永久添加 nfs 服务到防火墙放行规则,并重新加载
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload

# 确认规则已生效
firewall-cmd --list-all

以上步骤也可以直接关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

步骤3:在192.168.40.148上操作

148服务器上的 /etc/exports 文件配置允许客户端(149)的IP地址访问 /dbdata 共享。

cat /etc/exports

# 允许单个IP (192.168.40.149) 读写访问
/dbdata 192.168.40.149(rw,sync,no_root_squash)

# 允许整个网段 (192.168.40.0/24) 读写访问
/dbdata 192.168.40.0/24(rw,sync,no_root_squash)

# 允许所有客户端访问(不安全,仅用于测试)
/dbdata *(rw,sync,no_root_squash)

dd67d488-9f95-40fa-ae1b-563aef6a38a7

 步骤 4: 使新的导出配置生效

仅仅修改文件是不够的,需要让NFS服务重新读取配置.

# 重新导出所有共享配置
sudo exportfs -ra

# 详细显示当前所有导出的共享,确认 /dbdata 和 149 客户端出现在列表中
sudo exportfs -v

在 exportfs -v 的输出中,你应该能看到类似这样的一行:

/dbdata      192.168.40.149(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

步骤5:检查共享目录的本地文件系统权限

即使 exports 文件配置正确,如果Linux系统本身对 /dbdata 目录的权限设置过紧(例如,root用户才有权限),客户端也会被拒绝访问。

# 查看 /dbdata 目录的权限和所有者(/dbdata给了755权限)
ls -ld /dbdata

0e5ee856-96ac-44d4-9ae1-3fa6f7a334cf

 步骤6:首先检查SELinux是否开启:getenforce

如果返回 Enforcing,说明SELinux正在强制模式下运行,它可能是问题的根源。

回到 NFS 客户端 (192.168.40.149) 进行测试

在服务器上完成上述所有检查和修改后,回到客户端。

1、首先,再次查看服务器提供的共享列表,确认客户端现在被允许访问:

showmount -e 192.168.40.148

这个命令现在应该能成功并显示出 /dbdata

2、再次尝试挂载:

mount -t nfs 192.168.40.148:/dbdata /dbdata

3、验证挂载:

df -h | grep dbdata

mount | grep dbdata

b420cb1b-0b68-4bb3-997e-d7c44a4a34f3

如果成功,这些命令会显示NFS共享已挂载。

挂载完成后,经测试,149重启后看不到共享存储/dbdata,所以还缺一个自动挂载的步骤:

vim /etc/fstab

步骤 1: 在文件末尾添加一行挂载配置

例子:<服务器IP或主机名>:<共享路径> <本地挂载点> nfs <挂载选项> 0 0

192.168.40.148:/dbdata /dbdata nfs defaults,_netdev 0 0

a9c8605b-3b2d-48a7-974d-bd055a1a7ca0

 步骤 2: 测试配置是否正确(非常重要!)

在重启之前,务必测试新的 fstab 配置是否正确,否则错误的配置可能导致系统无法正常启动。

 

# 卸载当前已挂载的共享(如果已挂载)
sudo umount /dbdata

# 测试:尝试挂载所有在 fstab 中定义的文件系统
sudo mount -a

# 检查是否成功挂载
df -h | grep dbdata
mount | grep dbdata

步骤 3: 重启测试

reboot

df -h

 

posted @ 2025-08-23 20:10  缘来不是你我  阅读(466)  评论(0)    收藏  举报