当前位置: 首页 > news >正文

生产环境LVM存储降级方案

       近期基于磁盘使用率监控分析,现对业务服务器实施LVM存储资源优化,通过ext4/XFS文件系统缩容及PV迁移技术,将低负载磁盘(如300G使用率不足50%)智能调整为200G,预计节约20%存储成本,同时提供rsync数据迁移方案。

一、前提条件

1.数据量验证

      确认已使用的数据量<=新磁盘的总量

#查看新旧磁盘空间
lsblk#查看目前磁盘使用量
du -sh /data#查看磁盘挂载类型
cat /etc/fstab |grep '/data'

2.服务停写

       比如nginx、Java业务需要停止向磁盘写入数据。

#查找哪些进程正在使用挂载点
fuser -mv /data
lsof +f -- /data

二、lvm挂载缩容方案

1.创建物理卷

[root@kdxf-asr02 ~]# pvcreate /dev/vdcPhysical volume "/dev/vdc" successfully created.
[root@kdxf-asr02 ~]# pvsPV         VG       Fmt  Attr PSize    PFree  /dev/vdb   data_vgc lvm2 a--  <300.00g      0 /dev/vdc            lvm2 ---   200.00g 200.00g

2.创建卷组或扩展卷组

#查看卷组
[root@kdxf-asr02 ~]# vgsVG       #PV #LV #SN Attr   VSize    VFreedata_vgc   1   1   0 wz--n- <300.00g    0 #扩展卷组
[root@kdxf-asr02 ~]# vgextend data_vgc /dev/vdcVolume group "data_vgc" successfully extended
#发现卷组已多了200G空余
[root@kdxf-asr02 ~]# vgsVG       #PV #LV #SN Attr   VSize   VFree   data_vgc   2   1   0 wz--n- 499.99g <200.00g#vgs查看卷组没有的话就创建卷组
#创建卷组 data_vg 卷组名称
[root@kdxf-asr02 ~]# vgcreate data_vg /dev/vdc

3.创建新逻辑卷

[root@kdxf-asr02 ~]# lvsLV      VG       Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertdata_lv data_vgc -wi-ao---- <300.00g   
#创建新逻辑卷(在 /dev/vdc 上)卷组名为data_vgc     逻辑卷名为data_new                                            
[root@kdxf-asr02 ~]# lvcreate -n data_new -l 100%FREE data_vgc /dev/vdcLogical volume "data_new" created.
[root@kdxf-asr02 ~]# lvsLV       VG       Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertdata_lv  data_vgc -wi-ao---- <300.00g                                                    data_new data_vgc -wi-a----- <200.00g 

4.格式化

#如果原系统是 EXT4
[root@kdxf-asr02 ~]# mkfs.ext4 /dev/data_vgc/data_new# 如果原系统是 XFS
[root@kdxf-asr02 ~]# mkfs.xfs /dev/data_vgc/data_new  

5. 临时挂载新逻辑卷

[root@kdxf-asr02 ~]# mkdir /mnt/data_new
[root@kdxf-asr02 ~]# mount /dev/data_vgc/data_new /mnt/data_new

6.拷贝数据到新磁盘

[root@kdxf-asr02 ~]# rsync -avh --progress /data/ /mnt/data_new/

      等待数据传完至100%

7.检查数据完整性

# 应无输出
[root@kdxf-asr02 ~]# diff -r /data /mnt/data_new 
# 以下两个输出应该一致
[root@kdxf-asr02 ~]# du -sh /mnt/data_new
134G    /mnt/data_new
[root@kdxf-asr02 ~]# du -sh /data
134G    /data

8.卸载新旧文件系统

umount /data
umount /mnt/data_new

9.重命名逻辑卷

# 原lv重命名data_lv为data_old  data_vgc卷组名
[root@kdxf-asr02 ~]# lvrename data_vgc data_lv data_old Renamed "data_lv" to "data_old" in volume group "data_vgc"
[root@kdxf-asr02 ~]# lvsLV       VG       Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertdata_new data_vgc -wi-a----- <200.00g                                                    data_old data_vgc -wi-a----- <300.00g        # 新LV重命名data_new为data_lv                                      
[root@kdxf-asr02 ~]# lvrename data_vgc data_new data_lv Renamed "data_new" to "data_lv" in volume group "data_vgc"
[root@kdxf-asr02 ~]# lvsLV       VG       Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertdata_lv  data_vgc -wi-a----- <200.00g                                                    data_old data_vgc -wi-a----- <300.00g  

10.挂载新lv到/data

# 获取新LV的UUID
[root@kdxf-asr02 ~]# blkid /dev/data_vgc/data_lv
/dev/data_vgc/data_lv: UUID="27adfda7-5b86-4919-9a71-65672b2fca2b" BLOCK_SIZE="4096" TYPE="ext4"# 编辑fstab,替换原/data条目为新UUID
#示例条目:UUID=新UUID /data ext4 defaults 0 0
[root@kdxf-asr02 ~]# vim /etc/fstab
...
UUID=27adfda7-5b86-4919-9a71-65672b2fca2b /data  ext4 defaults 0 0#挂载 
[root@kdxf-asr02 ~]# mount -a#查看挂载信息
[root@kdxf-asr02 ~]# df -h | grep /data
/dev/mapper/data_vgc-data_lv  196G  134G   52G  73% /data

11.验证挂载

[root@kdxf-asr02 ~]# du -sh /data/
134G    /data/
[root@kdxf-asr02 ~]# ll /data/

12.删除旧逻辑卷(确认成功后执行)

[root@kdxf-asr02 ~]# lvsLV       VG       Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertdata_lv  data_vgc -wi-ao---- <200.00g                                                    data_old data_vgc -wi-a----- <300.00g                                                    
[root@kdxf-asr02 ~]# lvremove /dev/data_vgc/data_old
Do you really want to remove active logical volume data_vgc/data_old? [y/n]: yLogical volume "data_old" successfully removed
[root@kdxf-asr02 ~]# lvsLV      VG       Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertdata_lv data_vgc -wi-a----- <200.00g    

13.从卷组移除旧PV(确认成功后执行)

[root@kdxf-asr02 ~]# vgsVG       #PV #LV #SN Attr   VSize   VFree   data_vgc   2   1   0 wz--n- 499.99g <300.00g
[root@kdxf-asr02 ~]# vgreduce data_vgc /dev/vdbRemoved "/dev/vdb" from volume group "data_vgc"
[root@kdxf-asr02 ~]# vgsVG       #PV #LV #SN Attr   VSize    VFreedata_vgc   1   1   0 wz--n- <200.00g    0

14.移除旧PV(确认成功后执行)

[root@kdxf-asr02 ~]# pvsPV         VG       Fmt  Attr PSize    PFree  /dev/vdb            lvm2 ---   300.00g 300.00g/dev/vdc   data_vgc lvm2 a--  <200.00g      0 
[root@kdxf-asr02 ~]# pvremove /dev/vdbLabels on physical volume "/dev/vdb" successfully wiped.
[root@kdxf-asr02 ~]# pvsPV         VG       Fmt  Attr PSize    PFree/dev/vdc   data_vgc lvm2 a--  <200.00g    0 

      至此,磁盘已完整缩容完成了。

http://www.xdnf.cn/news/1023283.html

相关文章:

  • Python训练营---DAY53
  • Git 前后端 Java Vue 项目的 .gitignore 配置分享
  • Linux环境下安装和使用RAPIDS平台的cudf和cuml - pip 安装方法
  • java集合(八) ---- Vector 类
  • 电磁铁性能检测所需工具
  • DataGrip 安装和连接Mysql
  • Eslint、Prettier、.vscode 配置
  • 阳台光伏新风口!安科瑞ADL200N-CT/D16-WF防逆流电表精准护航分布式发电
  • NLP学习路线图(四十三):零样本学习
  • 分布式爬虫系统设计与实现:跨节点MySQL存储方案
  • 导出支付宝账单步骤
  • 3款工具打造递进图:快速入门与个性化定制的实用指南
  • 帆软报表超级链接将查询控件的参数传递到子页面查询控件上
  • 谷歌具身智能VLA大模型 —— Gemini Robotics : 将人工智能带入到物理世界
  • 停产料PC28F128J3F75A存储芯片Micron镁光NOR Flash存储器工业级 电子元器件解析
  • AI LLM大模型逆向环境搭建radare2 + r2mcp + r2ghidra
  • AD左边工程面板消失重新打开
  • ansible常用内置模块
  • 13.18 Ollama+LLaMA3企业级部署实战:6步打造私有化大模型高效引擎
  • 【JVM】- 类加载与字节码结构1
  • AXI4-Stream Clock Converter IP
  • 封装python的docker镜像
  • 前端JavaScript面试题(2)
  • 面经总结池
  • Trae国内版使用技巧
  • 通关JUC:Java并发工具包从入门到精通 | 深度源码解析​
  • 720云vr全景怎么制作?720全景制作费用?
  • 什么是PostCSS
  • 【Python 进阶系列】第4篇:初探 Python Pandas 数据分析的世界
  • 数理化学习杂志社数理化学习杂志数理化学习编辑部2025年第3期目录