You've already forked www.colben.cn
update
This commit is contained in:
198
content/post/lvm.md
Normal file
198
content/post/lvm.md
Normal file
@@ -0,0 +1,198 @@
|
||||
---
|
||||
title: "Lvm 笔记"
|
||||
date: 2019-10-29T21:44:02+08:00
|
||||
lastmod: 2019-10-29T21:44:02+08:00
|
||||
keywords: []
|
||||
tags: ["lvm"]
|
||||
categories: ["storage"]
|
||||
---
|
||||
|
||||
# LVM 一览
|
||||

|
||||
|
||||
# LVM 结构
|
||||
- PE 物理扩展
|
||||
- PV 物理卷,在设备起始处放置一个标签,包括 uuid,lvm 配置元数据位置以及剩余空间
|
||||
- PV 可以由分区创建,也可以直接用磁盘创建
|
||||
- VG 卷组
|
||||
- LV 逻辑卷
|
||||
- Linear 线性卷
|
||||
- Stripe 条带卷
|
||||
- RAID raid 逻辑卷
|
||||
- Mirror 镜像卷
|
||||
- Thinly-Provision 精简配置逻辑卷
|
||||
- Snapshot 快照卷
|
||||
- Thinly-Provisioned Snapshot 精简配置快照卷
|
||||
- Cache 缓存卷
|
||||
|
||||
# LVM 相关命令
|
||||
|
||||
## PV
|
||||
- pvchange 更改物理卷属性
|
||||
- pvck 检查物理卷元数据
|
||||
- pvcreate 初始化磁盘或分区以供lvm使用
|
||||
- pvdisplay 显示物理卷的属性
|
||||
- pvmove 移动物理Exent
|
||||
- pvremove 删除物理卷
|
||||
- pvresize 调整lvm2使用的磁盘或分区的大小
|
||||
- pvs 报告有关物理卷的信息
|
||||
- pvscan 扫描物理卷的所有磁盘
|
||||
|
||||
## VG
|
||||
- vgcfgbackup 备份卷组描述符区域
|
||||
- vgcfgrestore 恢复卷组描述符区域
|
||||
- vgchange 更改卷组的属性
|
||||
- vgck 检查卷组元数据
|
||||
- vgconvert 转换卷组元数据格式
|
||||
- vgcreate 创建卷组
|
||||
- vgdisplay 显示卷组的属性
|
||||
- vgexport 使卷组对系统不了解(这是个什么)
|
||||
- vgextend 将物理卷添加到卷组
|
||||
- vgimportclone 导入并重命名重复的卷组(例如硬件快照)
|
||||
- vgmerge 合并两个卷组
|
||||
- vgmknodes 重新创建卷组目录和逻辑卷特殊文件
|
||||
- vgreduce 通过删除一个或多个物理卷来减少卷组(将物理卷踢出VG)
|
||||
- vgremove 删除卷组
|
||||
- vgrename 重命名卷组
|
||||
- vgs 报告有关卷组信息
|
||||
- vgscan 扫描卷组的所有磁盘并重建高速缓存
|
||||
- vgsplit 将卷组拆分为两个,通过移动整个物理卷将任何逻辑卷从一个卷组移动到另一个卷组
|
||||
|
||||
## LV
|
||||
- lvchange 更改逻辑卷属性
|
||||
- lvconvert 将逻辑卷从线性转换为镜像或快照
|
||||
- lvcreate 将现有卷组中创建逻辑卷
|
||||
- lvdisplay 显示逻辑卷的属性
|
||||
- lvextend 扩展逻辑卷的大小
|
||||
- lvmconfig 在加载lvm.conf和任何其他配置文件后显示配置信息
|
||||
- lvmdiskscan 扫描lvm2可见的所有设备
|
||||
- lvmdump 创建lvm2信息转储以用于诊断目的
|
||||
- lvreduce 减少逻辑卷的大小
|
||||
- lvremove 删除逻辑卷
|
||||
- lvrename 重命名逻辑卷
|
||||
- lvresize 调整逻辑卷大小
|
||||
- lvs 报告有关逻辑卷的信息
|
||||
- lvscan 扫描所有的逻辑卷
|
||||
|
||||
# 创建 LVM
|
||||
- 将磁盘创建为 pv(物理卷),其实物理磁盘被条带化为 pv,划成了一个一个的 pe,默认每个 pe 大小是 4MB
|
||||
- 创建 vg,其实它是一个空间池,不同PV加入同一 vg
|
||||
- 创建 lv,组成 lv 的 pe 可能来自不同的物理磁盘
|
||||
- 格式化 lv,挂载使用
|
||||
|
||||
# PV 管理
|
||||
- 制作 pv
|
||||
```bash
|
||||
pvcreate /dev/sdb1
|
||||
```
|
||||
- 删除 pv(需先踢出 vg)
|
||||
```bash
|
||||
pvremote /dev/sdb1
|
||||
```
|
||||
|
||||
# VG 管理
|
||||
- 制作 vg
|
||||
```bash
|
||||
# vgcreate vg_name 磁盘设备或分区
|
||||
vgcreate datavg /dev/sdb1
|
||||
vgcreate datavg /dev/sdb1 /dev/sdb2
|
||||
# -s 指定pe的大小为16M,默认不指定是4M
|
||||
vgcreate -s 16M datavg2 /dev/sdb3
|
||||
```
|
||||
- 从 vg 中移除缺失的磁盘
|
||||
```bash
|
||||
vgreduce --removemissing datavg
|
||||
vgreduce --removemissing datavg --force # 强制移除
|
||||
```
|
||||
- 扩展 vg 空间
|
||||
```bash
|
||||
vgextend datavg /dev/sdb3 /dev/sdc
|
||||
```
|
||||
- 踢出 vg 中的某个成员
|
||||
```bash
|
||||
vgreduce datavg /dev/sdb3
|
||||
```
|
||||
- 删除 vg
|
||||
```bash
|
||||
vgremove VG
|
||||
```
|
||||
- 重命名 vg
|
||||
```bash
|
||||
vgrename xxxx-vgid-xxxx-xxxx new_name
|
||||
```
|
||||
|
||||
# LV 管理
|
||||
- 制作 lv
|
||||
```bash
|
||||
# -n lv_name,-L lv_size,datavg(vg name)
|
||||
lvcreate -n lvdata1 -L 1.5G datavg
|
||||
```
|
||||
- 激活修复后的逻辑卷
|
||||
```bash
|
||||
lvchange -ay /dev/datavg/lvdata1
|
||||
lvchange -ay /dev/datavg/lvdata1 -K # 强制激活
|
||||
```
|
||||
- 创建 lvm 快照
|
||||
```bash
|
||||
# 数据一致性备份
|
||||
# 先做一个快照,冻结当前系统,这样快照里面的内容可暂时保持不变
|
||||
# 系统本身继续运行,通过重新挂载备份快照卷,实现不中断服务备份。
|
||||
lvcreate -s -n kuaizhao01 -L 100M /dev/datavg/lvdata1
|
||||
```
|
||||
- 删除 lv
|
||||
```bash
|
||||
lvremove /dev/mapper/VG-mylv
|
||||
```
|
||||
- 扩大一个 lv
|
||||
- 用vgdisplay查看vg还有多少空余空间
|
||||
- 扩充逻辑卷
|
||||
```bash
|
||||
lvextend -L +1G /dev/VG/LV01
|
||||
# -r 表示在扩展的同时也更新文件系统,不是所有的发行版本都支持
|
||||
lvextend -L +1G /dev/VG/LV01 -r
|
||||
```
|
||||
- 扩充操作后,df -h 发现大小并没有变,需更新文件系统
|
||||
```bash
|
||||
# 不同文件系统更新的命令不一样
|
||||
e2fsck -f /dev/datavg/lvdata1 # ext4 文件系统,检查 lv 的文件系统
|
||||
resize2fs /dev/VG/LV01 # ext4 文件系统命令,该命令后面接 lv 的设备名就行
|
||||
xfs_growfs /nas # xfs 文件系统,该命令后面直接跟的是挂载点
|
||||
```
|
||||
- 更新文件系统后,df -h 正常
|
||||
- 缩小一个 lv
|
||||
- umount 卸载
|
||||
- 缩小文件系统
|
||||
```bash
|
||||
resize2fs /dev/VG/LV01 2G
|
||||
```
|
||||
- 缩小 lv
|
||||
```bash
|
||||
lvreduce -L -1G /dev/VG/LV01
|
||||
```
|
||||
- 查看 lvs,mount 挂载
|
||||
|
||||
# lvm 灾难恢复
|
||||
- 场景: 三块盘做 lvm,现有一物理盘损坏,将剩下两块放到其他linux服务器上
|
||||
- 恢复步骤
|
||||
- 查看磁盘信息,lvm信息,确认能查到lvm相关信息,找到VG组的名字
|
||||
```bash
|
||||
pvs
|
||||
lvs
|
||||
vgs
|
||||
fidsk
|
||||
blkid
|
||||
```
|
||||
- 删除 lvm 信息中损坏的磁盘角色,强制提出故障磁盘
|
||||
```bash
|
||||
vgreduce --removemissing VG_name
|
||||
```
|
||||
- 强制激活 vg 组
|
||||
```bash
|
||||
vgchange -ay
|
||||
```
|
||||
- 强制激活 lvm
|
||||
```bash
|
||||
lvchange -ay /dev/VG_name
|
||||
```
|
||||
- 挂载
|
||||
|
Reference in New Issue
Block a user