CentOS/RHEL LVM 磁盤擴展完整教程

CentOS/RHEL LVM 磁盤擴展完整教程

📝 前言

在Linux系統管理中,磁盤空間不足是經常遇到的問題。特別是在生產環境中,當根分區空間告急時,我們需要通過添加新磁盤來擴展存儲空間。本教程將詳細介紹如何在CentOS/RHEL系統中使用LVM(Logical Volume Manager)來擴展現有的邏輯卷。

🎯 適用場景

  • 根分區磁盤空間不足(使用率超過80%)
  • 系統使用LVM管理磁盤
  • 需要在線擴展磁盤空間而不停機
  • 有新的物理磁盤可以添加到系統

📚 LVM 基礎概念

LVM 三層架構

物理磁盤 → 物理卷(PV) → 卷組(VG) → 邏輯卷(LV) → 文件系統
  1. 物理卷(Physical Volume, PV):實際的物理磁盤或分區
  2. 卷組(Volume Group, VG):多個物理卷組成的存儲池
  3. 邏輯卷(Logical Volume, LV):從卷組中分配的邏輯存儲單元

LVM 的優勢

  • 靈活性:可以動態調整分區大小
  • 擴展性:可以跨多個物理磁盤
  • 快照功能:支持創建快照備份
  • 在線操作:大多數操作可以在不停機的情況下進行

🔍 準備工作:識別可用磁盤

1. 查看系統磁盤狀態

# 查看磁盤分區信息
lsblk -l# 查看磁盤使用情況
df -h# 查看磁盤詳細信息
fdisk -l

命令說明:

  • lsblk -l:以列表形式顯示所有塊設備
    image-20250709180854614

  • df -h:顯示文件系統磁盤使用情況,-h 參數以可讀格式顯示
    image-20250709180920952

  • fdisk -l:列出所有磁盤和分區的詳細信息

    image-20250709180949783

2. 識別可擴展的磁盤

查看 lsblk 輸出,尋找以下特征的磁盤:

  • 未掛載的磁盤:MOUNTPOINT 列為空
  • 未分區的磁盤:只顯示磁盤本身,沒有分區(如 sdc 但沒有 sdc1)
  • 足夠大的磁盤:SIZE 列顯示的容量滿足需求

3. 查看當前LVM狀態

# 查看物理卷
pvs
pvdisplay# 查看卷組
vgs  
vgdisplay# 查看邏輯卷
lvs
lvdisplay

命令說明:

  • pvs/pvdisplay:顯示物理卷信息,pvs 簡潔格式,pvdisplay 詳細格式
    image-20250709181130511

  • vgs/vgdisplay:顯示卷組信息和可用空間
    image-20250709181114464

  • lvs/lvdisplay:顯示邏輯卷信息和使用情況

    image-20250709181201116

🛠? 磁盤擴展詳細步驟

步驟1:確認文件系統類型

# 方法1:查看掛載信息
mount | grep " / "# 方法2:顯示文件系統類型
df -T /# 方法3:顯示塊設備文件系統
lsblk -f

image-20250709181309453
為什么需要確認文件系統類型?

  • 不同文件系統使用不同的擴展命令
  • XFS 使用 xfs_growfs
  • EXT4 使用 resize2fs

步驟2:對新磁盤進行分區

# 使用 fdisk 對磁盤進行分區(假設新磁盤為 /dev/sdc)
fdisk /dev/sdc

在 fdisk 交互界面中的操作:

命令 (m 為幫助): n        # 創建新分區
分區類型: p              # 主分區
分區號: 1                # 分區號為1
起始扇區: 回車            # 使用默認值
結束扇區: 回車            # 使用整個磁盤
命令 (m 為幫助): t        # 修改分區類型
分區號: 1                # 選擇分區1
分區類型: 8e             # LVM類型
命令 (m 為幫助): w        # 寫入分區表并退出

步驟作用:

  • 創建分區表,讓系統能夠識別磁盤
  • 設置分區類型為 LVM (8e),便于后續操作
  • 建議使用整個磁盤作為一個分區

步驟3:創建物理卷

# 創建物理卷
pvcreate /dev/sdc1# 驗證物理卷創建成功
pvs

image-20250709181418800
命令作用:

  • pvcreate:將分區初始化為LVM物理卷
  • 在分區上創建LVM元數據
  • 使分區能夠被LVM管理

步驟4:擴展卷組

# 查看現有卷組名稱
vgdisplay# 將新物理卷添加到卷組(假設卷組名為 centos_centos)
vgextend centos_centos /dev/sdc1# 驗證卷組擴展成功
vgs

image-20250709181510867
命令作用:

  • vgextend:將新的物理卷添加到現有卷組
  • 增加卷組的總容量
  • 為后續邏輯卷擴展提供空間

步驟5:擴展邏輯卷

# 查看卷組可用空間
vgdisplay centos_centos# 方法1:使用所有可用空間擴展邏輯卷
lvextend -l +100%FREE /dev/mapper/centos_centos-root# 方法2:指定擴展大小(例如500G)
# lvextend -L +500G /dev/mapper/centos_centos-root# 驗證邏輯卷擴展成功
lvs

image-20250709181643430
參數說明:

  • -l +100%FREE:使用卷組中所有可用空間
  • -L +500G:指定增加500G空間
  • -L 1T:指定總大小為1T

步驟6:擴展文件系統

# 對于 XFS 文件系統(CentOS 7/8 默認)
xfs_growfs /# 對于 EXT4 文件系統
# resize2fs /dev/mapper/centos_centos-root

image-20250709181707009
命令作用:

  • xfs_growfs:擴展XFS文件系統到邏輯卷的完整大小
  • resize2fs:擴展EXT4文件系統
  • 必須在邏輯卷擴展后執行,否則新空間無法使用

步驟7:驗證擴展結果

# 查看磁盤使用情況
df -h# 查看LVM狀態
lvs
vgs
pvs# 查看詳細的掛載信息
mount | grep mapper

image-20250709181729736

📊 操作前后對比示例

擴展前:

[root@centos ~]# df -h
/dev/mapper/centos_centos-root  641G  601G   41G  94% /[root@centos ~]# vgs
VG            #PV #LV #SN Attr   VSize   VFree
centos_centos   2   2   0 wz--n- 648.99g    0

擴展后:

[root@centos ~]# df -h
/dev/mapper/centos_centos-root  1.2T  601G  541G  53% /[root@centos ~]# vgs
VG            #PV #LV #SN Attr   VSize VFree
centos_centos   3   2   0 wz--n- 1.12t    0

?? 重要注意事項

1. 備份數據

# 創建重要數據備份
tar -czf /tmp/important_data_backup.tar.gz /path/to/important/data# 或使用 rsync 同步到其他服務器
rsync -avz /important/data/ user@backup-server:/backup/path/

2. 確認磁盤沒有被使用

# 檢查磁盤是否被掛載
mount | grep sdc# 檢查磁盤是否有文件系統
blkid /dev/sdc# 確認磁盤不在fstab中
grep sdc /etc/fstab

🔧 故障排除

常見錯誤及解決方案

1. 分區表錯誤
錯誤:Device or resource busy
解決:umount /dev/sdc1 或重啟系統
2. 物理卷創建失敗
錯誤:Device /dev/sdc1 not found or ignored by filtering
解決:partprobe /dev/sdc  # 重新讀取分區表
3. 文件系統擴展失敗
錯誤:xfs_growfs: /dev/mapper/centos_centos-root is not a mounted XFS filesystem
解決:確認文件系統類型和掛載點正確

回滾操作(如果需要)

# 如果需要移除新添加的磁盤
vgreduce centos_centos /dev/sdc1
pvremove /dev/sdc1

📝 一鍵腳本示例

#!/bin/bash
# LVM 擴展自動化腳本DISK="/dev/sdc"
VG_NAME="centos_centos"
LV_PATH="/dev/mapper/centos_centos-root"echo "開始LVM磁盤擴展..."# 1. 分區
echo "正在對 $DISK 進行分區..."
(
echo n
echo p
echo 1
echo
echo
echo t
echo 8e
echo w
) | fdisk $DISK# 2. 創建物理卷
echo "創建物理卷..."
pvcreate ${DISK}1# 3. 擴展卷組
echo "擴展卷組..."
vgextend $VG_NAME ${DISK}1# 4. 擴展邏輯卷
echo "擴展邏輯卷..."
lvextend -l +100%FREE $LV_PATH# 5. 擴展文件系統
echo "擴展文件系統..."
xfs_growfs /echo "擴展完成!"
df -h /

🎉 總結

LVM磁盤擴展是Linux系統管理中的常見操作,掌握這項技能對系統管理員來說非常重要。通過本教程,你應該能夠:

  1. 理解LVM架構:掌握PV、VG、LV的概念和關系
  2. 識別可用磁盤:使用各種命令查看和分析磁盤狀態
  3. 執行擴展操作:按步驟完成完整的磁盤擴展過程
  4. 處理常見問題:識別和解決擴展過程中的常見錯誤

磁盤操作具有一定風險,建議在生產環境操作前先在測試環境中練習

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914110.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914110.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914110.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LVGL應用和部署(用lua做測試)

【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing 163.com】嵌入式產品做好了,下面就是測試和量產了。以按鍵屏幕的開發模式為例,如果僅僅是簡單的功能測試,那還比較好解決&…

phpstudy搭建pikachu

一.啟動mysql和nginx服務二.修改靶場文件參數點擊管理打開根目錄,將下載好的靶場源文件解壓到www目錄下三.找到此文件用記事本打開四.修改配置文件五.打開瀏覽器,輸入127.0.0.1/pikachu六.按照步驟初始化心得體會:如果mysql啟動又立刻停止,大…

【Linux】GDB/CGDB 調試器學習筆記

GDB/CGDB 調試器學習筆記🚀 前言 GDB 是 GNU 項目下功能強大的命令行調試器,適用于 C/C 等多種語言。CGDB 則是在 GDB 之上構建的輕量級 curses 界面,適合喜歡終端操作且習慣 vi 風格的人。一、GDB 入門篇 1. 編譯時帶調試信息 gcc -g -O0 -W…

鏈接代理后無法訪問網絡

路由方向的問題 cmd 輸入 route print 查看路由多了一個不是你網絡的路由 我的嘎嘎好用直接那都通 route add -p 0.0.0.0 mask 0.0.0.0 0.0.0.0 參考這個 固定ip if是代理鏈路的 鏈路口又敏感詞這個文章不合規兩次評論區問我

day37 早停策略和模型權重的保存

DAY 37 我今天的筆記是用cpu訓練的,請自行修改為gpu訓練 仍然是循序漸進,先復習之前的代碼 import torch import torch.nn as nn import torch.optim as optim from sklearn.datasets import load_iris from sklearn.model_selection import train_test_…

網絡爬蟲分類全解析

網絡爬蟲作為數據獲取的重要工具,其分類方式多樣,不同類型的爬蟲在技術實現、應用場景和功能特性上存在顯著差異。深入理解這些分類,有助于開發者根據實際需求選擇合適的爬蟲方案。本文將從技術特性、應用場景和架構設計三個維度,系統介紹網絡爬蟲的主要分類。 一、按技術…

ECR倉庫CloudFormation模板完整指南

概述 本文檔詳細介紹了一個通用的Amazon ECR(Elastic Container Registry)倉庫CloudFormation模板,該模板支持多業務組、參數化配置,并包含完整的安全策略、生命周期管理和監控功能。 模板特性 核心功能 ? 支持4個業務組:app、ai、mall、frontend? 靈活的服務名手動輸…

C++(STL源碼刨析/List)

一 List 核心字段和接口1. 節點字段template<class T> struct __list_node {typedef void* void_pointer;void_pointer prev;void_pointer next;T data; }由于 鏈表 不是連續的內存塊&#xff0c;所以對每一個申請到的內存塊要進行統一組織&#xff0c;也就是封裝成一個類…

蘋果App上架流程:不用Mac也可以上架的方法

iOS App 的上架流程一直被認為是門檻最高、流程最繁瑣的移動端工作之一。對很多使用 Windows 或 Linux 進行開發的跨平臺團隊來說&#xff0c;Mac 的缺位更放大了每一步的難度。 在我們近期為一款本地生活類 App 進行 iOS 上架時&#xff0c;團隊成員幾乎沒有配備本地 Mac&…

【爬蟲】- 爬蟲原理及其入門

爬蟲01 - 爬蟲原理及其入門 文章目錄爬蟲01 - 爬蟲原理及其入門一&#xff1a;爬蟲原理1&#xff1a;爬蟲的優勢?2&#xff1a;爬蟲的核心庫3&#xff1a;經典舉例4&#xff1a;合規問題一&#xff1a;爬蟲原理 學習爬蟲之前前置知識需要了解這些&#xff1a; 我的HTTP介紹, 了…

G5打卡——Pix2Pix算法

&#x1f368; 本文為&#x1f517;365天深度學習訓練營中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 Pix2Pix 是一種基于條件生成對抗網絡&#xff08;cGANs&#xff09;的圖像到圖像翻譯算法&#xff0c;由 Phillip Isola 等人在 2016 年提出。該算法的核心思想…

動力系統模擬與推導-AI云計算數值分析和代碼驗證

當系統是連續的&#xff0c;并且其狀態變量不僅隨時間變化&#xff0c;而且隨空間維度變化時&#xff0c;需要使用偏微分方程&#xff08;PDEs&#xff09;來推導運動方程。偏微分方程提供了描述這些空間分布屬性如何相互作用和演化的數學框架。 選擇使用常微分方程&#xff08…

P4597 序列 sequence題解

P4597 序列 sequence 給定一個數列&#xff0c;每次操作可以使任意一個數1或-1&#xff0c;求小的操作次數&#xff0c;使得數列變成不降數列. 1.對于前面比當前位的數字大的數&#xff0c;設最大數為 xxx &#xff0c;當前的數為 yyy ,則對于 xxx 到 yyy 中間的任意數&#xf…

雨污管網智慧監測系統網絡建設方案:基于SD-WAN混合架構的最佳實踐

隨著城市化的快速推進&#xff0c;雨污管網的管理與運行面臨著日益復雜的挑戰&#xff0c;例如內澇、污水溢流、非法排污等問題頻發。為了更高效地管理分布廣泛的監測點&#xff0c;保障系統運行穩定性&#xff0c;構建一套高效、低成本、易運維的網絡架構至關重要。本文將分享…

世俱杯直播數據源通過反匯編獲取到

在當今的互聯網體育賽事直播中&#xff0c;許多平臺為了保護其直播資源&#xff0c;會采用加密、混淆或動態加載等方式隱藏真實的視頻流地址&#xff08;如 .m3u8 或 .flv&#xff09;。對于普通用戶和開發者來說&#xff0c;直接通過網頁源碼或瀏覽器調試器難以快速定位這些關…

字節豆包又一個新功能,超級實用,4 種玩法,你肯定用得上!(建議收藏)

前段時間&#xff0c;分享了一個非常好用的視頻總結工具——百度網盤和百度文庫聯合推出的「AI 筆記」。它能自動根據視頻內容&#xff0c;生成圖文視頻總結、表格總結、思維導圖等。關鍵是帶時間戳&#xff0c;能直接跳轉到視頻的位置。但這個功能隱藏在百度網盤里&#xff0c…

AI進化論08:機器學習的崛起——數據和算法的“二人轉”,AI“悶聲發大財”

上回咱們聊了第二次AI寒冬&#xff0c;AI為了“活下去”&#xff0c;不得不“改頭換面”&#xff0c;從“AI”變成了“機器學習”。結果你猜怎么著&#xff1f;這“機器學習”啊&#xff0c;還真就“悶聲發大財”了&#xff01;它不再執著于模擬人類的“思維過程”&#xff0c;…

【MySQL】———— 索引

作者主頁&#xff1a; 作者主頁 本篇博客專欄&#xff1a;Linux 創作時間 &#xff1a;2025年7月11日 Mysql索引 索引介紹 索引是什么 根據官方對索引的介紹&#xff0c;索引是幫助MySQL高效的獲取數據的數據結構&#xff0c;在我看來&#xff0c;索引就相當于一本書的目…

頁面html,當鼠標點擊圖標,移開圖標,顏色方塊消失

html頁面代碼&#xff1a;<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>顏色選擇器</title><style>body {font-family: "Microsoft YaHei", sans-serif;padding: 20px;}.c…

netdxf—— CAD c#二次開發之(netDxf 處理 DXF 文件)

1.創建新項目打開 VS2022&#xff0c;選擇 "創建新項目"搜索 "控制臺應用"&#xff0c;選擇 ".NET 6.0 (C#)" 模板&#xff0c;點擊 "下一步"項目名稱&#xff1a;"DxfProcessor"&#xff0c;位置&#xff1a;自選&#xff…