Linux——卷

Linux——卷

介绍

最近做的项目,涉及到对系统的一些维护,有些盘没有使用,需要创建逻辑盘并挂载到指定目录下。有些软件需要依赖空的逻辑盘(LVM)。

先简单介绍一下卷的一些概念,有分区、物理存储介质、物理卷、卷组、逻辑卷。下面介绍一下概念:

概念介绍参考文章:

  • https://cloud.tencent.com/developer/article/2429857
  • https://blog.csdn.net/yufuloo/article/details/80929116
  • https://blog.csdn.net/qq_37871657/article/details/143209437
  • 分区(Partition) :是在物理存储介质上(磁盘)上划分出来的独立存储区域,每个分区可以视为一个独立的磁盘,格式化后可挂载到文件系统目录下使用。
  • 物理存储介质(The physical media) :这里指系统的存储设备:硬盘,如:/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。
  • 物理卷(physical volume,PV) :物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。是用来构建卷组的基本单元,通常不会被直接挂载,而是通过组合成卷组,然后从卷组中创建逻辑卷。
  • 卷组(Volume Group,VG) :LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。是逻辑卷的基础。
  • 逻辑卷(Logical Volume, LV) :LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。逻辑卷是卷组中的可分配存储空间,它类似于传统的磁盘分区,提供了更多的灵活性,可以在无需重新分区的情况下,动态调整大小。
  • 设备:无论是物理卷还是逻辑卷,都是/dev​下的块设备,可以通过块设备管理工具来对其直接操作,比如:k8s上的符合OCI标准的块设备Storage Class、PV、PVC

分盘

记录一下分盘实战操作。

第一个场景:VG中分配剩余的磁盘空间创建LVM

场景描述

c89b24d7e5db3242baaa934217e78b7

  • OS:ubuntu24.04
  • 系统磁盘有500GB,系统默认只给根分区分配了100GB,剩余400GB未分配LVM
  • 存在VG:/dev/mapper/ubuntu--vg
  • 存在LVM:/dev/mapper/ubuntu--vg-ubuntu--lv​,挂载到根分区
  • 任务:需要将VG中剩余的空间分配给系统目录使用
操作步骤
  1. 查看卷组信息:

    vgdisplay
    
  2. 分出可用空间

    如果卷组有可用的未分配空间,可以创建新的 LVM 逻辑卷:

    sudo lvcreate -L <size>G -n new_lv_name ubuntu--vg
    

    这里 <size>​ 是要分配的大小(如 10​),new_lv_name​ 是新逻辑卷名字,比如 data1​。

  3. 格式化新的逻辑卷:

    sudo mkfs.ext4 /dev/ubuntu--vg/new_lv_name
    
  4. 挂载新逻辑卷到文件系统:

    sudo mkdir /mnt/new_lv_name
    sudo mount /dev/ubuntu--vg/new_lv_name /mnt/new_lv_name
    
  5. 更新 /etc/fstab

    如果想要系统启动时自动挂载,请编辑 /etc/fstab

    echo '/dev/ubuntu--vg/new_lv_name /mnt/new_lv_name ext4 defaults 0 2' | sudo tee -a /etc/fstab
    

    <文件系统> <挂载点> <类型> <选项> <转储> <检查>

经过上面步骤的操作,顺利的将剩余磁盘分配出来,创建了新的LVM并挂载到文件系统使用,同时支持开机自动挂载。

可以使用如下命令查看相关信息:

  • LVM信息:

    lvdisplay
    
  • 卷的信息:

    lsblk
    

第二个场景:从已存在的LVM中分配出空间,分配给新的LVM

场景描述
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 50G 0 loop
sda 8:0 0 447.1G 0 disk
sda1 8:1 0 1G 0 part /boot/efi
sda2 8:2 0 2G 0 part /boot
sda3 8:3 0 444.1G 0 part
ubuntu--vg-ubuntu--lv 252:0 0 100G 0 lvm /
ubuntu--vg-new--lv 252:1 0 344G 0 lvm /data
  • 项目需要安装阿里巴巴开源的软件open-local,它需要一块空的逻辑卷,也就是空闲块设备,可以作为存储底座

  • 并且对设备的类型有要求,逻辑卷具有更多的功能

    不同类型 PV 所支持的存储能力也不同。

    类型动态分配PV扩容PV快照原生块设备IO限流临时卷监控数据
    LVM(共享盘类型)支持支持支持支持支持支持支持
    Device(独占盘类型)支持不支持不支持支持不支持不支持支持
  • 同时,机器的VG中没有空闲的空间了,只能从现有的LVM中分离出部分空间

  • 同时,保证现有的LVM空间中的数据不丢失

操作步骤

建议提前备份数据,再尝试以下操作

  1. 查看当前系统卷信息

    lsblk
    
  2. umount当前LVM

    umount /data
    
  3. 杀死占用mount目录的进程

    sudo lsof +D /data
    kill -9 xxx
    
  4. 对文件系统检查

    sudo e2fsck -f /dev/ubuntu-vg/new-lv
    

    如果有提示被占用,建议重启操作系统,注意把/etc/fstab​中开机自动挂载的配置注释掉

  5. 缩小文件系统,确保缩小后的空间还能容纳之前的数据

    此操作将文件系统调整为 144GB(344GB - 200GB),确保在缩小逻辑卷时不会丢失数据。现在就有200GB的可用空间。

    sudo resize2fs /dev/ubuntu-vg/new-lv 144G
    
  6. 缩小逻辑卷

    这将把逻辑卷的大小调整为 144GB,释放出 200GB 的空间

    sudo lvreduce -L 144G /dev/ubuntu-vg/new-lv
    
  7. 创建新的逻辑卷

    sudo lvcreate -L 200G -n open-local-lv ubuntu-vg
    
  8. 格式化新的逻辑卷

    sudo mkfs.ext4 /dev/ubuntu-vg/open-local-lv
    
  9. 恢复旧逻辑卷挂载点

    mount /dev/ubuntu-vg/new-lv /data
    lsblk
    lvdisplay
    

    注:记得把/etc/fstab​文件中的注释去掉

这样就完成了需求,分离出了200GB的LVM供open-local​使用,且恢复了原来的文件系统和文件。

第三个场景:使用本地持久卷作为k8s集群的块存储

https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/

场景描述

为k8s集群创建本地的块存储设备

操作步骤
  1. 创建虚拟磁盘文件,将其绑定到循环设备(循环设备不建议在生产环境中使用,这里只是本地测试使用

    $ loop_file="/tmp/test-image-storage.img"
    $ sudo dd if=/dev/zero of=$loop_file bs=1M count=2500
    $ sudo losetup /dev/loop0 $loop_file
    
  2. 创建存储类

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:name: local-storage
    provisioner: kubernetes.io/no-provisioner
    volumeBindingMode: WaitForFirstConsumer
    
  3. 创建持久卷

    apiVersion: v1
    kind: PersistentVolume
    metadata:name: test-block-pv
    spec:capacity:storage: 10GivolumeMode: BlockaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: local-storagelocal:path: /dev/loop0nodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- NODE_NAME
    
  4. 创建持久卷claim

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:name: test-pvc
    spec:accessModes:- ReadWriteOnceresources:requests:storage: 1GivolumeMode: BlockstorageClassName: local-storage
    
  5. 测试pod示例

    apiVersion: v1
    kind: Pod
    metadata:name: large-image-pod
    spec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- NODE_NAMEvolumes:- name: test-image-storagepersistentVolumeClaim:claimName: test-pvccontainers:- name: app-containerimage: xxxcommand: ["/bin/sh", "-c"]args:- sleep 6000volumeDevices:- devicePath: /dev/xxxname: test-image-storage
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

M3D: 基于多模态大模型的新型3D医学影像分析框架,将3D医学图像分析从“看图片“提升到“理解空间“的层次,支持检索、报告生成、问答、定位和分割等8类任务

M3D: 基于多模态大模型的新型3D医学影像分析框架&#xff0c;将3D医学图像分析从“看图片“提升到“理解空间“的层次&#xff0c;支持检索、报告生成、问答、定位和分割等8类任务 论文大纲理解1. 确认目标2. 分析过程&#xff08;目标-手段分析&#xff09;核心问题拆解 3. 实…

clickhouse-副本和分片

1、副本 1.1、概述 集群是副本和分片的基础&#xff0c;它将ClickHouse的服务拓扑由单节点延伸到多个节点&#xff0c;但它并不像Hadoop生态的某些系统那样&#xff0c;要求所有节点组成一个单一的大集群。ClickHouse的集群配置非常灵活&#xff0c;用户既可以将所有节点组成…

Redis 集群实操:强大的数据“分身术”

目录 Redis Cluster集群模式 1、介绍 2、架构设计 3、集群模式实操 4、故障转移 5、常用命令 Redis Cluster集群模式 1、介绍 redis3.0版本推出的Redis Cluster 集群模式&#xff0c;每个节点都可以保存数据和整个集群状态&#xff0c;每个节点都和其他所有节点连接。Cl…

C# 从控制台应用程序入门

总目录 前言 从创建并运行第一个控制台应用程序&#xff0c;快速入门C#。 一、新建一个控制台应用程序 控制台应用程序是C# 入门时&#xff0c;学习基础语法的最佳应用程序。 打开VS2022&#xff0c;选择【创建新项目】 搜索【控制台】&#xff0c;选择控制台应用(.NET Framew…

WPF制作图片闪烁的自定义控件

1.定义自定义控件 BlinkingImage.cs: using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Animation; using System.Windows.Media.Imaging;namespace YourNamespace {public class BlinkingImage : Control{public static rea…

猫咪睡眠:萌态背后的奥秘与启示

猫咪的睡眠&#xff0c;犹如一本充满趣味与奥秘的小书&#xff0c;每一页都写满了它们独特的习性与本能。 猫咪堪称 “睡眠大师”&#xff0c;睡眠时间之长令人咋舌&#xff0c;一天中大约有 12 - 16 个小时在梦乡中度过&#xff0c;幼猫和老年猫甚至能睡更久。它们似乎深谙放…

QML Text组件

文章目录 前言主体基本文本显示字体和样式富文本支持长文本的处理文本样式与效果超链接Label 元素总结 前言 在 QML 中&#xff0c;Text 和 Label 是常用的文本显示元素&#xff0c;它们在显示文本方面具有相似性&#xff0c;但在功能和定制性上也存在一些差异。Text 元素用于…

基于前端技术UniApp和后端技术Node.js的电影购票系统

文章目录 摘要Abstruct第一章 绪论1.1 研究背景与意义1.2 国内外研究现状 第二章 需求分析2.1 功能需求分析2.2 非功能性需求分析 第二章系统设计3.1 系统架构设计3.1.1 总体架构3.1.2 技术选型 3.2 功能架构 第四章 系统实现4.1 用户端系统实现4.1.1 用户认证模块实现4.1.2 电…

网络安全的攻防战争

当前&#xff0c;来自Web的各种攻击已经成为全球安全领域最大的挑战&#xff0c;并且有愈演愈烈之势。目前的难点在于&#xff0c;很多Web威胁的思路已经有别于传统&#xff0c;隐蔽、牟利、产业化已经成为了此类威胁的特点。对广大企业用户来讲&#xff0c;Web威胁令人无法忽视…

用adb命令给APP做压力测试,有什么不同?

压力测试 app做压力测试目的是模拟用户在使用软件时随意向软件发出指令&#xff0c;例如操作app的点击&#xff0c;滑动&#xff0c;返回等一系列随机事件&#xff0c;来检测app的承受能力 第一步&#xff1a;手机安装包需要待测的app 第二步&#xff1a;输入adb start-ser…

2023年西南大学数学建模C题天气预报解题全过程文档及程序

2023年西南大学数学建模 C题 天气预报 原题再现&#xff1a; 天气现象与人类的生产生活、社会经济、军事活动等方方面面都密切相关&#xff0c;大到国家&#xff0c;小到个人&#xff0c;都受到极端天气的影响。2022年6月&#xff0c;全球陆地地区出现了自1850年代末人类有系…

Android 10 Launcher3 删除谷歌搜索

命令行获取页面 手机处于launcher首页 adb shell dumpsys window | findstr mCurrentFocus 输出 mCurrentFocusWindow{9afb34d u0 com.android.launcher3/com.android.launcher3.Launcher} 找到源码路径 packages/apps/Launcher3/ Android10源码 搜索控件 grep -r -n Apps…

LabVIEW机械故障诊断中的传感器选择

在机械设备故障诊断中&#xff0c;传感器是关键设备&#xff0c;用于采集设备运行状态的各种数据。常见的传感器类型和选择方法如下&#xff1a; 1. 振动传感器 用于检测设备运行中的振动特征&#xff0c;常见于旋转机械和轴承故障诊断。 加速度传感器&#xff1a;检测高频振…

JVM和数据库面试知识点

JVM内存结构 主要有几部分&#xff1a;堆、栈、方法区和程序计数器 堆是JVM中最大的一块内存区域&#xff0c;用于存储对象实例&#xff0c;一般通过new创建的对象都存放在堆中。堆被所有的线程共享&#xff0c;但是它的访问时线程不安全的&#xff0c;通常通过锁的机制来保证线…

电子发票汇总改名,批量处理电子发票问题

今天给大家推荐一个财务方面工作的软件。可以帮你解决很多财务。发票方面的问题。 电子发票汇总改名 批量处理电子发票问题 这个软件安装之后。会在桌面上分成三个小软件&#xff0c;分别是修改单位信息、自定义命名规则和电子发票汇总改名。 你可以在这个软件里提取PDF或者of…

蓝桥杯练习生第四天

小蓝每天都锻炼身体。 正常情况下&#xff0c;小蓝每天跑 11 千米。如果某天是周一或者月初&#xff08;11 日&#xff09;&#xff0c;为了激励自己&#xff0c;小蓝要跑 22 千米。如果同时是周一或月初&#xff0c;小蓝也是跑 22 千米。 小蓝跑步已经坚持了很长时间&#x…

用 Python 从零开始构建 LLaMA 3

文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 文章有点长(字),期望您能坚…

移植 OLLVM 到 LLVM18,修复控制流平坦化报错

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 前言 把 OLLVM 移植到 LLVM18 后&#xff0c;发现 -fla&#xff08;控制流平坦化&#xff09;并不能正常使用。 关于移植过程可以参考这篇文章 【移植 OLLVM…

使用 Ansys LS-DYNA 和平滑粒子 Galerkin 技术仿真硬币冲压

简介 硬币冲压是一种高精度的制造工艺&#xff0c;涉及用模具压制金属坯料以赋予复杂的设计。此过程需要精确的仿真来预测材料行为、优化参数并最大限度地减少缺陷。传统的有限元法 &#xff08;FEM&#xff09; 仿真通常难以应对硬币冲压特有的极端变形和复杂的接触相互作用。…

MyBatis通过注解配置执行SQL语句原理源码分析

文章目录 前置准备流程简要分析配置文件解析加载 Mapper 接口MapperAnnotationBuilder解析接口方法注解parseStatement 方法详解MapperBuilderAssistant 前置准备 创建一个mybatis-config.xml文件&#xff0c;配置mapper接口 <mappers><!--注解配置--><mapper…