VMware centos磁盘容量扩容教程

目录

  • 前言
  • 相关概念
    • 磁盘
    • 磁盘分区
    • 文件系统
    • 挂载点
    • 物理卷、VG(卷组)、LV(逻辑卷)、LVM(逻辑卷管理)
  • 解决方案

前言

  • 这篇博客主要分享我在VM中通过docker搭建dify大模型应用平台时,遇到了分配的磁盘容量不足导致dify没有成功部署的解决方案,问题的原因就是当时在VM中搭建的centos系统分配的20G磁盘容量不足,解决方案也很简单,就是扩展dify工作区的磁盘容量。
  • 在分享如何操作之前,我们先弄清楚几个概念,磁盘、磁盘分区、文件系统、挂载点、物理卷、逻辑卷这些概念,弄懂了这些概念,更方便理解我们接下来的操作
    / # 什么是磁盘、磁盘分区、文件系统、挂载点、LVM/VG、物理卷、逻辑卷?

相关概念

磁盘

  • 数据的载体,这个很好理解,是硬件,像我们用的U盘、固态硬盘都属于磁盘的范畴,我们可以把它理解成一个大仓库。
  • 在Linux系统中,磁盘通常表示为/dev/sda、/dev/sdb等形式,其中sda表示第一块SCSI/SATA磁盘,sdb表示第二块,以此类推

磁盘分区

  • 磁盘分区是将一块物理磁盘​​逻辑划分​​为多个独立区域的过程,就像把大仓库分隔成不同的小房间,每个房间可以存放不同类型的物品
  • 磁盘分区的目的是隔离系统和用户数据、使用不同的文件系统等、提升系统的I/O能力
  • 一个磁盘最多可以划分成4个主分区
  • 在Linux系统中,分区通常表示为/dev/sda1(第一块磁盘的第一个分区)、/dev/sda2等

文件系统

  • 文件系统是​​管理数据存储和检索​​的规则和方式,就像仓库中的货架系统和物品标签。没有文件系统,操作系统就无法识别和使用分区上的数据。
  • 文件系统负责:存储和检索数据、管理文件操作(创建、删除、复制剪切等)、提供权限控制等;
  • Linux的文件系统主要有:​​ext4(最常用)、XFS(高性能)、Btrfs(高级特性)
  • 创建文件系统的命令如mkfs.ext4 /dev/sda1,表示在sda1分区(第一块磁盘上的第一个分区)上创建ext4文件系统

挂载点

  • 挂载点是Linux系统中​​将文件系统连接到目录树​​的入口,就像仓库的门,只有通过门才能进入仓库。
  • 将分区(如/dev/sda1)关联到一个目录(如/mnt/data),访问该目录就等于访问该分区

物理卷、VG(卷组)、LV(逻辑卷)、LVM(逻辑卷管理)

  • LVM(逻辑卷管理)和卷组(VG)是Linux系统中用于灵活管理磁盘空间的一种机制,相比于常规的磁盘分区,其更灵活,可随时调整空间大小。
  • 打个比方,传统磁盘分区像固定大小的抽屉,装满后无法扩展,而LVM像乐高积木,可以随时拆解重组,灵活调整空间。
  • 物理卷,卷组的最小单元,我们通过Linux指令将磁盘分区标记为一个物理卷,比如pvcreate /dev/sdb1 是将第二块磁盘的第1个分区标记为一个物理卷,只有标记为物理卷的磁盘分区才可以被LVM管理。
  • 卷组,由一个或多个物理卷组成,相当于一个​​存储资源池​​。例如vgcreate vg_data /dev/sdb1 /dev/sdc1创建名为vg_data的卷组,这个卷组包括/dev/sdb1/dev/sdb2这两个物理卷。
  • 逻辑卷,是卷组中划分出来的​​逻辑存储空间​​,类似于传统分区,但更灵活,可以动态的调整大小,可以跨越多个物理磁盘。
  • 举个例子,下面的shell命令 是从名为 vg_data 的卷组中创建名为lv_home 的逻辑卷,注意逻辑卷名称lv_home必须在卷组vg_data中要唯一,不能重复,创建完逻辑卷后,要指定其文件系统,最后就可以挂载到指定目录上使用了。
		lvcreate -L 20G -n lv_home vg_data  # 创建20G的逻辑卷mkfs.ext4 /dev/vg_data/lv_home      # 创建文件系统mount /dev/vg_data/lv_home /home    # 挂载使用`
  • 总结一下,物理磁盘 →磁盘分区→ 物理卷(PV) → 卷组(VG) → 逻辑卷(LV) → 文件系统 → 挂载点

解决方案

  1. 通过df-h命令查看当前磁盘空间使用情况,主要是看挂载点为根目录的/的逻辑卷的磁盘容量,可以看到/dev/mapper/centos-root这个逻辑卷的使用率已达到78%,需要进行扩容
    在这里插入图片描述

  2. 我们可以看到逻辑卷/dev/mapper/centos-root的卷组名为centos,接下来操作的第一个目的就是扩容卷组centos的容量
    在这里插入图片描述

  3. 关闭虚拟机,在VMware管理界面,为centos添加虚拟磁盘容量,最好分配到40G以上
    在这里插入图片描述

  4. 启动虚拟机,在终端执行命令fdisk -l列出所有磁盘和分区信息,确认磁盘 /dev/sda的现有分区布局(如 /dev/sda1、/dev/sda2)和未分配空间,因为我这已经是分区好的,你们应该是只有sda1和sda2,下面就是将剩下的磁盘空间(刚才新增的)分配给新的分区sda3
    在这里插入图片描述

  5. fdisk /dev/sda:进入交互式分区管理界面。
    m: 打开帮助
    n→ p:新建主分区(如 /dev/sda3),默认使用所有剩余空间。
    w:保存分区表。
    注意:分区的起始扇区需与原分区对齐(默认值),避免数据覆盖
    现在我们已经将刚才新分配的磁盘空间分区成sda3,也就是第一块磁盘的第三个分区

  6. t→ 选择分区号(如3)→ 输入 8e(LVM类型标识)。
    ​​ 作用​​:标记该分区为LVM物理卷(PV),注意只是一个标记,并不是现在就是物理卷,只有标记为物理卷的分区才可以创建物理卷

  7. ctrl+d 退出分区界面,执行partprobe命令,让Linux内核重新加载分区表

  8. 执行mkfs.xfs /dev/sda3:将新分区格式化为xfs文件系统

  9. pvcreate /dev/sda3:将 /dev/sda3初始化为LVM物理卷

  10. vgextend centos /dev/sda3:将新物理卷加入现有卷组 centos

  11. lvextend -l +100%FREE /dev/mapper/centos-root:将centos卷组所有空闲空间分配给逻辑卷 /dev/mapper/centos-root

  12. xfs_growfs /dev/centos/root:在线扩展XFS文件系统至逻辑卷的最大容量

  13. 最后,执行df -h查看查看磁盘大小是否扩容成功,在显示的磁盘信息中,可以看到磁盘扩容成功了
    在这里插入图片描述

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

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

相关文章

kubernetes中的认证和授权

一 kubernetes API 访问控制Authentication(认证)认证方式现共有8种,可以启用一种或多种认证方式,只要有一种认证方式通过,就不再进行其它方式的认证。通常启用X509 Client Certs和Service Accout Tokens两种认证方式。…

雅菲奥朗SRE知识墙分享(四):『AI已开始重塑劳动力市场,美国年轻科技从业者首当其冲』

近日,据《商业内幕》报道,AI正在重塑美国就业市场,年轻的科技从业者正首当其冲地感受到冲击。高盛首席经济学家Jan Hatzius在本周一撰文指出:“AI 确实开始在各类数据中显现出更加明显的迹象。”据高盛的分析,科技行业…

Python爬虫入门指南:从零开始的网络数据获取之旅

文章目录前言1. 什么是网络爬虫?2. 爬虫的伦理与法律边界3. Python爬虫的基本工具库3.1 Requests:HTTP请求库3.2 Beautiful Soup:HTML/XML解析库3.3 lxml:高效XML/HTML解析器3.4 Selenium:自动化浏览器工具4. 第一个爬…

说说你对JVM的垃圾回收机制的理解?

Java 虚拟机(JVM)的垃圾回收(Garbage Collection,GC)机制是自动管理内存的核心,其核心目标是识别并回收不再被使用的对象所占用的内存,避免内存泄漏和溢出。以下从垃圾判断方法、垃圾回收算法和…

兑换汽水瓶

实现代码:public static void main(String[] args) {Scanner in new Scanner(System.in);while (in.hasNextInt()) {int n in.nextInt();if (n 0) {break;}System.out.println(n / 2);}}

结合 Flutter 和 Rust 的跨平台开发方案

结合 Flutter 和 Rust 的跨平台开发方案 1. 核心思想 本方案的核心思想是Flutter 负责 UI,Rust 负责逻辑 。Flutter 作为一个成熟的 UI 框架,专注于渲染流畅、跨平台一致的用户界面。而将那些对性能、安全和并发有高要求的复杂业务逻辑、计算密集型任务或底层系统操作,全部…

理想汽车智驾方案介绍 2|MindVLA 方案详解

一、引言 MindVLA 主要包括空间智能模块、语言智能模块、动作策略模块、强化学习模块,这些模块分别有以下功能: 空间智能模块:输入为多模态传感器数据,使用 3D 编码器提取时空特征,然后将所有传感器与语义信息融合成…

计算机网络基础(三) --- TCP/IP网络结构(运输层)

运输层1. 概述和运输服务运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信功能, 运输层协议是在端系统中而不是路由器中实现的, 网络应用程序可以调用多种运输层协议, 如因特网的两种协议: TCP 和 UDP ,每种协议都能为调用的应用程序提供一组不同的运输层服务1.1 运输…

JdbcTemplate和MyBatis的区别

在 Java 后端开发中,JdbcTemplate(Spring 框架提供)和 MyBatis(持久层框架)都是用于简化数据库操作的工具,但它们的设计理念、使用方式、灵活性和适用场景有显著差异。下面从核心定位、核心特性、使用方式、…

埃氏筛|树dfs|差分计数

lc525把数组里的0换成-1&#xff0c;求子数组和为零的最长长度用哈希表记录前缀和首次出现的位置通过找相同前缀和的位置差得出最长的0和1数量相等的子数组长度。class Solution { public:int findMaxLength(vector<int>& nums) {unordered_map<int,int>hashta…

(JVM)Java 对象创建的完整过程

在日常开发和面试中&#xff0c;经常会被问到 “Java 中对象是如何被创建的&#xff1f;” 表面上只是一个 new 关键字&#xff0c;但 JVM 在幕后完成了一系列复杂操作。 可以总结为以下 六大步骤&#xff1a;类加载检查 → 分配内存 → 内存清零 → 设置对象头 → 执行构造函数…

数据库优化提速(三)JSON数据类型在酒店管理系统搜索—仙盟创梦IDE

在 MySQL 中&#xff0c;JSONB 类型&#xff08;MySQL 中实际为 JSON 类型&#xff0c;功能类似 PostgreSQL 的 JSONB&#xff0c;支持高效的 JSON 数据存储和查询&#xff09;非常适合存储半结构化数据&#xff0c;例如酒店入住客人的复杂信息&#xff08;包含客人基本信息、入…

小程序全局状态管理:使用MobX进行跨组件数据共享详解(九)

一、定义全局数据共享&#xff08;又叫&#xff1a;状态管理&#xff09;是为了解决组件之间数据共享的问题&#xff1b;全局数据共享方案&#xff1a;VueX、Redux、MobX等&#xff1b;二、小程序全局数据共享方案使用mobx-miniprogram配合mobx-miniprogram-bindings实现全局数…

生成模型 | DDPM -> Imrpoved DDPM -> DDIM

DDPM: Denoising Diffusion Probabilistic Models 采样过程中的迭代计算为&#xff1a; xt−11αt(xt−1−αt1−αˉϵθ(xt,t))β~tzx_{t-1} \frac{1}{\sqrt{\alpha_t}}(x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}}}\epsilon_{\theta}(x_t, t)) \sqrt{\tilde{\beta…

Linux驱动之DMA(三)

目录一、驱动内容1. 核心结构体解析2. 关键模块解析3. 驱动初始化流程4. 关键寄存器操作5. 典型工作流程6. 代码特点7. 重要函数列表8. 使用示例二、驱动中DMA的使用1. DMA通道初始化&#xff08;imx_uart_dma_init&#xff09;2. DMA发送流程&#xff08;imx_uart_dma_tx&…

MongoDB 分片集群把非分片集合转成分片集合

记得关注一下博主&#xff0c;博主每天都会更新IT技术&#xff0c;让你有意想不到的小收获哦^_^ 文章目录*记得关注一下博主&#xff0c;博主每天都会更新IT技术&#xff0c;让你有意想不到的小收获哦^_^*一、MongDB集群启停止1、MonogoDB分片集群服务启动顺序(三台主机都要操作…

mybatis过渡到mybatis-plus过程中需要注意的地方

将 MyBatis 升级为 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个平滑过渡的过程&#xff0c;因为 MP 是 MyBatis 的增强工具&#xff08;而非替代&#xff09;&#xff0c;但仍有一些关键注意事项需要关注&#xff0c;以确保升级后功能兼容且能充分利用 MP 的特性&#…

openEuler系统中如何将docker安装在指定目录

在 openEuler 中&#xff0c;Docker 的默认数据存储目录为 /var/lib/docker&#xff08;程序文件通常安装在系统默认路径&#xff0c;一般无需修改&#xff09;。若需将 Docker 数据&#xff08;镜像、容器、卷等&#xff09;存储到指定目录&#xff0c;可通过修改 Docker 配置…

2.4 我国金融市场的监管体制

1、国务院金融发展委员会职责 2、中国人民银行职责

PHP - 实例属性访问与静态方法调用的性能差异解析

观察到了一个看似矛盾的现象&#xff1a;实例属性访问更快&#xff0c;但静态方法调用更快。这实际上是两种不同的操作&#xff0c;下面我将详细解释其中的原理和差异。1. 实例属性访问为什么快访问机制class MyClass {public $instanceProp 1; }$obj new MyClass(); $value …