Linux服务器Ubuntu系统共享硬盘

前言

由于实验室有多台服务器,每台服务器的GPU资源并不随时空闲,但在某个服务器构建了环境,发现这个时候GPU不空闲,就很麻,迁移环境和数据是一个很麻烦的事情,因此想着把数据和conda环境直接放在一个专属硬盘里面,哪个服务器有了这个硬盘就是我家(bushi),但硬盘在不同服务器移动也是一个麻烦事,干脆想的就是直接在不同服务器之间共享硬盘。

目标

多个Ubuntu系统之间共享同一硬盘

前提

拥有root管理员权限

正文

我们将硬盘挂在一个服务器上,这个共享服务器成为A服务器;另一个被共享的服务器称为B服务器。本次操作需要借助NFS(Network File System)来实现

(1)首先,在A服务器将硬盘共享出来,操作如下:

第一步,执行以下命令安装nfs,apt会自动安装nfs-common、rpcbind等13个软件包

sudo apt install nfs-kernel-server

第二步,编写配置文件:编辑/etc/exports 文件:

sudo vi /etc/exports

如下图,这个配置是重点,遇到了大坑!这个uid和gid是服务器B映射到A时作为匿名用户的uid和gid
1)当服务器B拥有root权限时,配置如下:
在这里插入图片描述第一列表示要共享的硬盘(需要改为你需要更改的硬盘路径),第二列是一些必要的参数,无需更改
2)当服务器B没有root权限时,配置如下:
在这里插入图片描述我在这里遇到坑是因为如果不去指定uid和gid的话那么我在服务器B访问共享硬盘时没有写权限!!!(原因是因为服务器B访问时会相应把B上的uid和gid映射到A上)
呜呜呜,肝了好久,熬夜了,直接睡实验室了

第三步,重启服务即完成服务器A的配置

sudo service nfs-kernel-server restart

除此之外,还有一些其他命令可用于查看配置情况

sudo showmount -e   #查看共享硬盘

在这里插入图片描述

sudo exportfs -rv  #将配置文件中的目录全部重新export一次,无需重启服务。
sudo nfsstat  #查看NFS的运行状态
sudo rpcinfo #查看rpc执行信息,可以用于检测rpc运行情况
sudo netstat -tu -4 #查看网络端口,NFS默认是使用111端口。

(2)配置服务器B,得到服务器A共享的硬盘

第一步,执行以下命令安装nfs,apt会自动安装nfs-common、rpcbind等13个软件包

sudo apt install nfs-kernel-server

第二步,重启服务即完成服务器A的配置

sudo service nfs-kernel-server restart

第三步,查看服务器A上的共享目录,显示服务器A上export出来的目录

sudo showmount -e localhostA  #localhostA指的是服务器A的地址

第四步,将A服务器共享硬盘挂载到B服务器上

sudo mount -t nfs localhostA:/data /mnt/data

正常情况下即完成所有配置。如果在这个地方遇到报错mount.nfs: Connection timed out,在确定网络没有问题的情况下,可以重启两边服务器的nfs-server试试

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值