『HPC运维点滴』第02期 - 卷组、逻辑卷与NFS配置

上期回顾

  • 上一期文章中我们探讨了从镜像源下载镜像、使用BalenaEtcher烧录、在Inspur集群安装Ubuntu Server 20.04、配置sysctl禁用IPv6、配置netplan静态IP与网关、配置SSH远程登录config及其端口转发与本地反向代理等问题,本期文章是在上一期文章环境的前提下进行配置的,请大家先粗略看一下上一期再看下文。

卷组与逻辑卷配置

物理卷、卷组与逻辑卷

  • 物理卷简称PV(Physical Volume),是一个个被选定的物理储存单元,在Linux中以块设备的形式存在;一般名称形如/dev/sda/dev/sdb2/dev/nvme0n1p4等等。
  • 卷组简称VG(Volume Group),是物理卷的集合,可看成是一个独立的抽象层面的设备。
  • 逻辑卷简称LV(Logical Volume),是从卷组中划分出一块区域而成的一个独立的逻辑(或虚拟)磁盘,亦以块设备的形式存在。
  • 架构图如下,此处为图片来源
    PV/VG/LVM架构图

使用原因

  1. 大容量磁盘:HPC集群业务中需要我们去挂载8TB大小的一个磁盘,然而我们却只有若干1TB与2TB大小的磁盘,如何去应对这种情况呢?当然是使用使用逻辑卷,将多个小容量的磁盘聚合为一个大的逻辑磁盘,这样就能满足需求。当然,再买一块8TB硬盘也不是不可以, 这种方法是在硬件条件有限的情况下使用。
  2. 方便拓展收缩:在前期规划磁盘时,我们并不能完全知道需要分配多少磁盘空间是合理的,如果直接使用物理卷,后期无法扩展和收缩,如果使用逻辑卷,可以根据后期的需求量,手动扩展或收缩。

创建物理卷

  • 本次是使用/dev/sda/dev/sdc/dev/sdd/dev/sde/dev/sdf/dev/sdg/dev/sdh七块硬盘进行合并。

注意:创建新的分区表将抹除该磁盘上所有分区及其一切数据,数据无价,请务必谨慎操作!除非看管不稀罕数据恢复的巨款。

最后,使用pvcreate命令创建物理卷,使之可纳入卷组中。

sudo pvcreate /dev/sd[ac-h]
  • 将后面的硬盘替换成看官自己的。
  • 然后使用以下命令查看物理卷:
pvdisplay
pvs
pvscan
  • 若有分区或磁盘不在此列,请对其重建分区表或修改ID(两者其一)后再次对其进行pvcreate。

重建分区表(使用parted)

  • 使用parted工具在硬盘上创建msdos分区表,若是类似/dev/sdb2的卷,则参考修改分区一栏即可。
  • 方法:
sudo parted /dev/sda
mklabel msdos
write
yes

修改分区ID(使用fdisk)

  • 如果要使用逻辑卷管理,需要将分区id改为8e,才能创建物理卷。
  • 方法:
sudo fdisk /dev/sdb2
t # 修改分区代码
2 # 选择2号分区
L # 列出可选择的修改代码
# 8e Linux LVM
8e # 选择8e
# Changed type of partition 'Linux' to 'Linux LVM'
w
# The partition table has been altered!

创建卷组

  • 创建卷组使用vgcreate命令。
sudo vgcreate dvg /dev/sd[ac-g]
  • 这里dvg是本人取的卷组名字。
  • 拓展卷组使用vgextend命令
sudo vgextend dvg /dev/sdh
  • 然后使用以下命令查看卷组:
vgdisplay
vgs
vgscan

创建逻辑卷

  • 创建逻辑卷使用lvcreate命令:
sudo lvcreate -n dvl -l 100%free dvg
  • 然后使用以下命令查看逻辑卷:
lvdisplay
lvs
lvscan
ls /dev/mapper/
# 可看到出现了一个符号链接 dvg-dvl
  • 此处dvg是卷组名称,dvl是逻辑卷名称

格式化并挂载逻辑卷

  • 格式化使用mkfs家族命令即可。本人将其格式化为BTRFS并挂载到/data/dataGPU01:
sudo mkfs.btrfs /dev/mapper/dvg-dvl
sudo mount /dev/mapper/dvg-dvl /data/dataGPU01

NFS环境配置

第一步:安装NFS相关包

  • 本环境采用Ubuntu 20.04 Server,故使用apt安装相关包。
sudo apt install nfs-common nfs-kernel-server -y
  • 其中nfs-common是NFS客户端工具,用于挂载远端NFS分区; nfs-kernel-server是NFS服务端工具。
  • 这里我们需要将gpu01节点上的/data/dataGPU01以NFS的形式挂载到登陆节点以及gpu02gpu03gpu04节点上;将gpu02节点上的/home以NFS的形式挂载到登陆节点以及gpu01gpu03gpu04节点上。

第二步:配置NFS服务端

  • gpu01节点上的/etc/exports加入以下内容:
/data/dataGPU01 *(rw,sync,no_root_squash)
  • gpu02节点上的/etc/exports加入以下内容:
/home *(rw,sync,no_root_squash)
  • 这里路径为分享出去的本地路径,*为表示内网中所有节点均有权,亦可指定部分IP;括号中的参数如下表:
参数作用
ro只读(read only)
rw读写(read write)
root_squash当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(nobody)
no_root_squash当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
syncNFS先写入缓存(内存),再同步到稳定存储(硬盘),sync表示写入硬盘成功后,才告诉客户端写入成功,保证不丢失数据,效率偏低
async写入缓存后就通知客户端写入成功,不关心硬盘是否成功;这样效率更高,但可能会丢失数据
secureNFS客户端必须使用NFS保留端口(通常是1024以下的端口),默认选项
insecure允许NFS客户端不使用NFS保留端口(通常是1024以上的端口)
anonuid指定匿名用户的uid,默认指向nobody
anongid指定匿名用户的gid, 即组id,默认指向nobody组

两者分别启动NFS服务端:

sudo service nfs-kernel-server start

NFS客户端配置

除服务端外,所有其他客户端使用mount挂载:

sudo mkdir -p /data/dataGPU01
sudo mount -t nfs gpu01:/data/dataGPU01 /data/dataGPU01
sudo mount -t nfs gpu02:/home /home

排错

  • 如果没有成功怎么办?看这里:
  • mount.nfs: access denied by server while mounting xxx:xxx
    说明/etc/exports指定目录未配置好或配置后未重启NFS服务端。
  • mount.nfs: Resource temporarily unavailable
    集群应该很少出现此问题,不过出现此问题可能是相关目录文件系统有所故障等
  • 其余自行搜索引擎或论坛搜索

结语

本期文章主要阐述了卷组、逻辑卷与NFS配置方法,大家有什么不明白的地方可评论区交流,有任何疏漏与意见可提出来。下期再见!😉

  • 43
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值