惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Heimdal Security Blog
SecWiki News
SecWiki News
H
Hacker News: Front Page
N
News | PayPal Newsroom
L
LINUX DO - 最新话题
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
AI
AI
C
Cybersecurity and Infrastructure Security Agency CISA
Scott Helme
Scott Helme
PCI Perspectives
PCI Perspectives
S
Securelist
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Cyberwarzone
Cyberwarzone
A
Arctic Wolf
Forbes - Security
Forbes - Security
T
Tor Project blog
Spread Privacy
Spread Privacy
WordPress大学
WordPress大学
I
Intezer
Martin Fowler
Martin Fowler
Help Net Security
Help Net Security
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cisco Talos Blog
Cisco Talos Blog
Latest news
Latest news
博客园 - 司徒正美
W
WeLiveSecurity
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
P
Palo Alto Networks Blog
Google DeepMind News
Google DeepMind News
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
V
Vulnerabilities – Threatpost
Jina AI
Jina AI
S
Security Affairs
Hacker News - Newest:
Hacker News - Newest: "LLM"
Simon Willison's Weblog
Simon Willison's Weblog
Project Zero
Project Zero
T
Threatpost
P
Privacy International News Feed
人人都是产品经理
人人都是产品经理
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research

Sehnsucht

记一次博客换图床的过程 观《花束般的恋爱》 读《活过》 东京 旅行篇 亲人逝去 我为什么想养鱼 防止AI爬取你的博客 「monthly 」博客重构 游戏全成就 好看的小说 人生的每一步都不会是浪费-2024年终 「weekly」星期五综合征 「weekly」听播客 杂谈 读《美丽新世界》 「weekly」社交媒体 恶性事件 新世界 「weekly」认知觉醒 美丽新世界 follow 「weekly」独立博客9问题 双十一买书 读《惊呆了!原来这就是社会学》 一次聊天与自我建设 2024-09月记 补番《relife》 树状数组简单理解 博客自动发布方案 某公众号废案 fail2ban基本使用 Podman 环境使用 Nginx Proxy Manager 最佳实践 2024-07同学聚会 vps使用podman部署freshrss Gitlab CICD 实践,思考与记录 装备升级:新的PC gitlab局域网搭建流程 FastMail迁移至GMail+Cloudflare Email Routing 读《黑客与画家》 leetcode 第 391 场周赛 Astro添加过渡后DarkModeToggle按钮失效 nuxt3使用echarts5渲染中国地图 人生刻度 又到凤凰花朵开放的时候 2023-05-10 实习结束 2023-04-26 广州博物馆游记 YOASOBI「たぶん」官方音乐视频 风灵玉秀-发如雪 带我的老哥离职了 从p10k转向Starship lunarvim国内安装踩坑记录 什么是对称加密非对称加密、密钥交换、数字签名、证书 强调体验的一种思考时间的方式 ArchLinux使用vscode编写latex报错The font "FontAwesome" cannot be found ArchLinux安装(移动硬盘)流程 yay一个或多个文件没有通过有效性检查! 2022年终 hugo建站伊始 clash设置relay前置代理(校园网破解改进记录) 群青 · YOASOBI · Ayase 华为 matepad pro 11使用体验 Nginx使用acme.sh免费安装ssl证书 永远属于你的安娜 在线 童年趣事 童心,是比野心更难得的梦想 2021年终总结 基于jeeSite的软件测试课程作业 流程记录 Linux不同用户安装不同版本jdk Wifi4更换Wifi6路由器的使用体验 Flask 上传图片并灰度显示 玩客云刷机debain个人记录 jython 简单入门 Jenkins 个人搭建流程记录 集成邮件系统(qq邮箱),gitlab服务器,freestyle风格 在Web项目中配置Log4j --指南-- Codeforces Round 753 (Div. 3) ABCDE 浅谈fork函数 JavaWeb servlet 使用Cookie记录用户访问次数 Codeforces Round Educational Codeforces Round 114 (Rated for Div. 2) ABC 2021牛客多校7 I xay loves or 2021牛客多校9 H Happy Number 2021牛客多校8 D OR 2021牛客多校5 B Boxes 2021牛客多校5 H Holding Two 2021牛客多校2 D Er Ba Game 2021牛客多校1 F Find 3-friendly Integers 2021牛客多校1 B Ball Dropping 记人生第一次投简历和笔试 原型模式 2021-2-20 雨时随记 关于一维差分数组的例子 halo个人建站 关于手机ping电脑和电脑ping手机 泛型类简单理解 CodeForces - 849C From Y to Y 2020牛客国庆集训派对day3 Leftbest 约瑟夫环问题---2020牛客国庆集训派对day2 AKU NEGARAKU mysql 5.7 忘记密码如何更改 CF 1099B Squares and Segments CF 998A Balloons CF 998B Cutting 链表应用之多项式相加 CF 1150A Stock Arbitraging CF 1199A City Day CF 1199B Water Lily CF 982A Row CF 934A A Compatible Pair CF 629B Far Relative’s Problem 651A Joysticks 651B Beautiful Paintings
lvm简单使用
2024-08-05 · via Sehnsucht

逻辑卷管理器(Logical Volume Manager)是一个用来管理linux磁盘的工具,它可以轻易的将新加入的硬盘的容量,置于旧的已经满的分区中以此实现扩容

主要用途:

  • 动态调整逻辑卷的大小
  • 热插拔硬盘(不停机的情况下添加和更换硬盘)

安装

现在所说的lvm都是指lvm2

一般来说包管理器直接安装就行了,有些发行版是自带的

# 在 Debian/Ubuntu 上
sudo apt-get install lvm2

# 在 Red Hat/CentOS 上
sudo yum install lvm2

# 在 Fedora 上
sudo dnf install lvm2

基本命令

传统的磁盘分区系统,以磁盘分区管理磁盘

而lvm以物理卷卷组逻辑卷管理磁盘

可以在磁盘上直接使用lvm,但一般在系统建立分区之后再在这些分区上建立lvm逻辑卷

/boot分区不能位于逻辑卷组,因为引导程序无法读取lvm

名词解释
物理卷(Physical Volume,PV)lvm管理的基本单位
卷组(Volume Group,VG)卷组是由一个或多个物理卷组成的组合
逻辑卷(Logical Volume,LV)逻辑卷是从卷组中分配出来的存储空间

一个物理卷只能属于一个卷组,一个卷组内有多个逻辑卷,相同卷组的逻辑卷的容量可以随意移动分配

Diagram

pv

pv可以是

  • 整个硬盘(/dev/sda)
  • 一个硬盘分区(/dev/sda1)
  • 一个RAID阵列

查看pv

粗略查看:

pvs

详细查看:

pvdisplay

创建pv

将整个硬盘设置为物理卷:

sudo pvcreate /dev/sda

将某个硬盘分区设置为物理卷:

sudo pvcreate /dev/sda1

将 RAID 设备设置为物理卷:

sudo pvcreate /dev/md0

vg

将多个物理卷组合在一起,形成卷组。卷组的可用空间可以轻易的灵活的分配给不同的逻辑卷

  • 创建卷组:可以使用vgcreate命令将一个或多个物理卷加入一个卷组
  • 扩展卷组:可以使用vgextend命令向现有卷组中添加更多的物理卷

查看vg

粗略查看:

vgs

详细查看:

vgdisplay

创建vg

# 创建vg
sudo vgcreate my_volume_group /dev/sda1 ...[更多物理卷]

# 扩展vg
sudo vgextend my_volume_group /dev/sdc1

lv

逻辑卷可以看作是传统分区(sda1,sda2这种)的替代品

可以做到:

  • 灵活调整大小
  • 创建逻辑卷的快照,用于备份和恢复
  • RAID阵列支持

查看lv

粗略查看:

lvs

详细查看:

lvdisplay

创建lv

sudo lvcreate -n my_logical_volume -L 10G my_volume_group

扩展lv

sudo lvextend -L +5G /dev/my_volume_group/my_logical_volume

缩减lv大小

sudo lvreduce -L -5G /dev/my_volume_group/my_logical_volume

删除lv

sudo lvremove /dev/my_volume_group/my_logical_volume

显示lv

sudo lvdisplay /dev/my_volume_group/my_logical_volume

实践:对ao/root逻辑卷进行扩容

/dev/ao/home/dev/mapper/ao-home 实际上是同一个逻辑卷的不同表示方式1,所以后文两种表达方式可能会相互替换。

先查看系统,发现有一个卷组ao,底下有两个逻辑卷ao-rootao-home,分别对应着系统里的//home目录,ao-root即将爆满,目标是给ao-root扩容

LV   VG Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
home ao -wi-ao----   144.15g
root ao -wi-ao---- < 70.00g
swap ao -wi-ao----    7.83g

1 确定lv的大小

lvs

2 检查文件系统的大小

df -h

3 查看文件系统类型

blkid

根据文件系统的不同,缩减的命令不一样,例如ext4可以用resize2fs,xfs需要用xfs_growfs,而本次示例就是xfs

ext4的扩容相对简单,而本文所讲的xfs麻烦一些,它不支持在线缩减,故需要删除逻辑卷后再重新创建

要减少逻辑卷/dev/ao/home的容量,一般是备份逻辑卷后删除逻辑卷,然后重新创建新的小一点的逻辑卷,并挂载后,随后将卷组的余量分配/dev/ao/root中,再恢复数据

4 备份数据

重要的文件需要进行备份(注意,如果有正在运行的程序需要停止)

tar --exclude='*.symlink' -cvf /备份压缩包.tar /需要备份的文件夹

5 删除逻辑卷home

sudo lvremove /dev/ao/home

6 创建逻辑卷home

在ao卷组中创建70G大小的逻辑卷home

sudo lvcreate -n home -L 70G ao

新的逻辑卷需要重新创建文件系统:

sudo mkfs.xfs /dev/ao/home

7 挂载逻辑卷

编辑/etc/fstab

vim /etc/fstab

这个编辑不一定需要

/etc/fstab 是一个配置文件,用于定义系统启动时需要挂载的文件系统和设备。我是扩容,且创建的lv和原来的容器卷同名,挂载的地方也相同,所以可以不改

然后挂载

mount /dev/ao/home /home
# sudo mount /home # 也可以,作用是直接根据/etc/fstab的配置挂载/home

我在实践时这里发生了报错:

[root@localhost /]# sudo mount /home
mount: /home: wrong fs type, bad option, bad superblock on /dev/mapper/ao-home, missing codepage or helper program, or other error.
mount: (hint) your fstab has been modified, but systemd still uses
       the old version; use 'systemctl daemon-reload' to reload.

所以之后是需要执行 sudo systemctl daemon-reload

查看 df -h 信息,看看是否挂载成功

8 分配卷组余量

将剩下的容器卷的所有空余分配给 /dev/ao/root 扩容

sudo lvextend -l +100%FREE /dev/ao/root

/dev/ao/root 扩容到100G

sudo lvextend -L 50G /dev/ao/root

/dev/ao/root 在原有基础上扩容100G

sudo lvextend -L +10G /dev/ao/root

当逻辑卷增大后,需要用 xfs_growfs 扩大xfs文件系统

sudo xfs_growfs /dev/ao/root

最后,用 vgdisplay ao 查看卷组信息,并用 df -h 查看信息,查看是否正常

9 恢复数据

恢复原来被删除的卷中的数据

tar -xvf 备份压缩包.tar -C 要恢复到的目标文件夹

参考链接:

  1. /dev 是虚拟文件目录,用于存储设备文件,/dev/ao/home 是传统的lvm表达方式, /dev/mapper/ao-home 是逻辑卷的设备映射路径,lvm会默认的纳入设备管理器管理(设备管理器就是lvm的组成部分)。 /dev/mapper/ 就是设备管理器的目录,它还可以管理快照,RAID设备等 ↩