linux挂载新硬盘并提供nfs服务
现有一台linux服务器,需要把新添加的硬盘挂载为nfs对外提供服务:
环境准备:
- 一块2T的硬盘
- 一台Linux服务器(ip:10.10.10.114)我这个是阿里龙蜥8.10系统,类似于centos
先把2T的硬盘插入服务器的硬盘口,重启服务器


一、Linux挂载新的硬盘
使用如下命令查看磁盘情况:
lsblk

可知,现在一共有2块盘,sda是linux系统本身的磁盘(64G);还有一块名叫sdb的磁盘是我们刚刚装上的2T的硬盘。(至于sr0是笔者插入的一张rom光盘,这里不必理会)
现在我们先把新插入的sdb硬盘格式化并挂载到Linux系统,使其能被直接使用(就是可以让我们能直接读写数据)
使用如下命令进入Linux自带的磁盘管理工具:
# /dev是必须的,而后面的/sdb必须和你上面看到的磁盘名字一样,
# 我上面lsblk看到的那块2T磁盘名字叫做sdb 所以合起来就是以下命令fdisk /dev/sdb

按m是获取帮助,按p是查看分区信息,按n是新建分区

我们输入 n 新建分区

如上图:直接默认回车就是选择 p主分区,默认分区号是1,默认第一个扇区是2048,然后回车默认4294967294
最后w保存并退出

看一下/dev目录下就有了我们刚刚创建的分区
ls /dev/sdb*

这个 /dev/sdb1 就是我们需要的!
使用如下命令格式化 /dev/sdb1 分区
mkfs.ext4 /dev/sdb1

最后挂载这个新的硬盘:
这里新建一个叫 /k8s-nfs 的目录,我准备把硬盘挂载在 /k8s-nfs 目录下:
mkdir -p /k8s-nfs

使用mount命令完成挂载
第一个参数是创建的新分区/dev/sdb1 第二个参数是准备挂载的目录,请按实际情况选择
mount /dev/sdb1 /k8s-nfs

这里虽然已经挂载成功,但是重启系统后挂载就失效了,我们需要让系统在重启的时候依然挂载,所以必须执行如下步骤:
使用 blkid 查看挂载点的编号

使用 echo 把挂载规则写入/etc/fstab 中,这样系统重启后会自动读到挂载配置并完成挂载:
echo " UUID=39ccd3ec-2dcf-4a10-b47b-f9fe873f9ae2 /k8s-nfs ext4 defaults 0 0 " >> /etc/fstab
注意各种值要正确,UUID值是上一步blkid看到的值, /k8s-nfs 是你要挂载的目录 ,ext4也是上一步blkid看到的TYPE的值 ,采用defaults默认挂载,第一个0是不备份,第二个0是不检测磁盘

重启后挂载依然有效:

至此到这一步你已经成功的把新的硬盘挂载到Linux系统里了,已经可以使用了。下面的步骤是安装nfs服务
二、搭建nfs服务
关于nfs介绍请看: https://developer.aliyun.com/article/1420265
安装nfs服务组件
yum install -y yum-utils nfs-utils rpcbind

启动nfs服务(同时配置开机自启动)
systemctl enable nfs-server --now
systemctl enable rpcbind --now

配置防火墙放行nfs服务(也可以关闭防火墙)
firewall-cmd --permanent --add-service=nfs
firewall-cmd --reload

创建并配置共享文件目录,这里我决定将最上面的那个2T磁盘挂载的 /k8s-nfs 设置为共享目录,你也可以设置为其他目录:
vim /etc/exports
写入如下配置:
/k8s-nfs/ 10.10.10.0/24(insecure,rw,sync,no_root_squash,no_subtree_check)
然后重新加载nfs服务 systemctl reload nfs-server 如下图:

注意如果是搭建k8s集群里基于nfs的数据卷存储,请先执行chmod 777 /k8s-nfs 然后请配置成这样 /k8s-nfs/ 10.10.10.0/24(insecure,rw,sync,no_root_squash,no_subtree_check) 否则k8s中某些组件无法写入文件,例如k8s搭建基于elasticsearch的日志系统不这么配置写入nfs就会报错(这是与目录读写权限有关),我这里直接开放所有权限,安全性虽然降低,但是后面不需要配置各种文件路径的读写权限,如果您有安全性需求,就需要麻烦一点,得配置nfs的权限,参考如下
配置参数解释:
然后是客户端配置
这里我开了另一台服务器10.10.10.211去链接nfs服务器(nfs所在的linux服务器的IP为10.10.10.114)
使用如下命令查看是否可以访问到nfs服务
showmount -e 10.10.10.114

如果访问不到,你应该检查nfs服务器的防火墙是否放行了nfs服务(实在不行就直接关掉防火墙吧🤣🤣🤣)
客户端(10.10.10.211所在的服务器是客户端)挂载nfs
mkdir -p /mnt/mount-test #客户端创建一个文件夹vim /etc/fstab # 和最上面一样在文件系统里创建挂载点,最下面添加如下行(和最上面挂载磁盘其实是一样的)10.10.10.114:/k8s-nfs /mnt/mount-test nfs defaults 0 0

使用 sudo mount -a 命令使得挂载生效

如上图挂载成功!
如果我的文章对你有帮助,麻烦扫一下红包码呗😎

