原文:https://blog.csdn.net/weixin_33325305/article/details/117041424
---------------
LVM:
几个基本概念
PV Physical Volume (物理卷)就是实体磁盘 利用fdisk等软件,将他们的ID改为LVM(8e)并修改磁盘的相关信息,让他们成为LVM可用的磁盘
实体磁盘的ID 可以通过fdisk -l来查看,通常83是linux的partition,82是swap的代号 我们需要的是PV ID:8e
PV实施过程:fdisk修改ID,以pvcreate建立成PV
建立 PV 与 PV 的查询:
要建立 PV 其实很简单,只要直接使用 pvcreate 即可!我们来谈一谈与 PV 有关的指令吧!
• pvcreate :将实体 partition 建立成为 PV ;
• pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
• pvdisplay :显示出目前系统上面的 PV 状态;
• pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。
• partprobe :这个指令可以让核心立刻读入最新的 partition table 而不必 reboot。
fdisk /dev/hda
command (m for help):p 这里p是查看磁盘分区的相关情况
command (m for help):t 更换磁盘分区的ID号
partition number(1-4):1 选择相应的磁盘分区1
Hex code(type L to list codes):8e 输入ID号:8e
command (m for help):t 更换磁盘分区的ID号
partition number(1-4):2 选择相应的磁盘分区2
Hex code(type L to list codes):8e 输入ID号:8e
command (m for help):p 查看修改ID后磁盘分区的相关情况
Command (m for help): w 保存配置
partprobe 这个指令可以让核心立刻读取最新的partition table
[root@linux ~]# pvscan
No matching physical volumes found
[root@linux ~]# pvcreate /dev/hdb1
Physical volume "/dev/hdb1" successfully created
[root@linux ~]# pvcreate /dev/hdb2
Physical volume "/dev/hdb2" successfully created
[root@linux ~]# pvscan
PV /dev/hdb1 lvm2 [9.31 GB]
PV /dev/hdb2 lvm2 [9.31 GB]
Total: 2 [18.63 GB] / in use: 0 [0 ] / in no VG: 2 [18.63 GB]
VG Volume Group (卷组) 通过将一个或多个PV组合成一个大磁盘,最大容量值与底下的PE有关,如果完全使用LVM的预设参数,那么一个最大的LVM磁盘可达到256G
VG实施过程:利用vgcreate加入多个PV成为VG
建立 VG 及 VG 相关的指令也不少,我们来看看:
• vgcreate :就是主要建立 VG 的指令啦!他的参数比较多,等一下介绍。
• vgscan :搜寻系统上面是否有 VG 存在?
• vgdisplay :显示目前系统上面的 VG 状态;
• vgextend :在 VG 内增加额外的 PV ;
• vgreduce :在 VG 内移除 PV;
• vgchange :设定 VG 是否启动 (active);
• vgremove :删除一个 VG 啊!
先建立 VG 吧!
[root@linux ~]# vgcreate vbirdvg /dev/hdb1 /dev/hdb2 创建一个VG,用两个PV
Volume group "vbirdvg" successfully created
# 整个 vgcreate 的语法很简单,就是利用 vgcreate VGname PVname1 PVname2..
# 不过,如果想要修改前面提到的 PE 参数时,就得要加入 -s PE 数值了!
[root@linux ~]# vgscan 查看具体VG参数
Reading all physical volumes. This may take a while...
Found volume group "vbirdvg" using metadata type lvm2
[root@linux ~]# vgdisplay
--- Volume group ---
VG Name vbirdvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 18.62 GB
PE Size 4.00 MB
Total PE 4768
Alloc PE / Size 0 / 0
Free PE / Size 4768 / 18.62 GB
VG UUID AZRSJx-FWYF-UIlH-NCh5-NqKS-f4gx-ZR049N
[root@linux ~]# vgreduce vbirdvg /dev/hdb2 从VG中去掉一个PV
Removed "/dev/hdb2" from volume group "vbirdvg"
[root@linux ~]# vgextend vbirdvg /dev/hdb2 从VG中增加一个PV
Volume group "vbirdvg" successfully extended
PE 在建立VG的时候,我们同时需要指定PE这个数值,预设是4MB;PE为4MB,VG则为256G(一个VG最大可以容许65534的PE,所以修改PE值,当然就会影响到最大的VG容量)
LV 这个就是最后被挂载到档案系统的partition,这个LV是由VG分割来的
LV实施过程:利用lvcreate分割VG成为一个或多个LV
• lvcreate :建立 LV 啦!
• lvscan :查询系统上面的 LV ;
• lvdisplay :显示系统上面的 LV 状态啊!
• lvextend :在 LV 里面增加容量!
• lvreduce :在 LV 里面减少容量;
• lvremove :删除一个 LV !
• lvresize :对 LV 进行容量大小的调整!
[root@linux ~]# lvcreate -L [sizeMG] -n [LVname] VGname
参数:
-L :后面接容量,容量的单位可以是 M, G 等等;
-n :后面接的就是 LV 的名称啦!
更多的说明应该可以自行查阅吧! man lvcreate
[root@linux ~]# lvcreate -L 18.62G -n vbirdlv vbirdvg
Rounding up size to full physical extent 18.62 GB
Logical volume "vbirdlv" created
[root@linux ~]# ll /dev/vbirdvg/vbirdlv
lrwxrwxrwx 1 root root 27 Nov 14 21:10 /dev/vbirdvg/vbirdlv ->
/dev/mapper/vbirdvg-vbirdlv
# 看见了没有啊!?这就是我们最重要的一个玩意儿了!
# 未来所有要挂载的数据,通通是透过这个装置的!
[root@linux ~]# lvscan
ACTIVE '/dev/vbirdvg/vbirdlv' [18.62 GB] inherit
[root@linux ~]# lvdisplay
--- Logical volume ---
LV Name /dev/vbirdvg/vbirdlv
VG Name vbirdvg
LV UUID B6kSrg-9LMG-gqVy-jjz8-x0gM-ya9S-XLFcZN
LV Write Access read/write
LV Status available
# open 0
LV Size 18.62 GB
Current LE 4767
Segments 2
Allocation inherit
Read ahead sectors 0
Block device 253:0
透过PV ,VG,LV的规划,再利用mkfs(mke2fs -j)等等就可以将您的多个partition整合成为一个大磁盘,再利用这个大磁盘来分割与格式化。
这个大磁盘可以增加,减少容量的变化,也就是说,VG大磁盘可以抽换PV,并且原有的数据,理论上不会受影响。
最后实施过程:分割LV逻辑partition,然后格式化,直接挂载到LINUX的档案系统中。
partition 的格式化与挂载!
[root@linux ~]# mke2fs -j /dev/vbirdvg/vbirdlv
[root@linux ~]# mkdir /mnt/lvm
[root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm
[root@linux ~]# df 查看分区情况
[root@linux ~]# fdisk -l /dev/hdb 查看/dev/hdb的具体分区和使用情况
让原有的 LVM 磁盘加大的方法: resize2fs
1. 将欲处理的 LV 卸载;
umount /mnt/lvm
2. 建立 PV;
[root@linux ~]# fdisk /dev/hdb
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
[root@linux ~]# partprobe
[root@linux ~]# pvcreate /dev/hdb3
3. 将建立的 PV 以 vgextend 增加到 VG 当中;
[root@linux ~]# vgextend vbirdvg /dev/hdb3
4. 利用 lvextend 增加刚刚 VG 所增加的容量;
lvextend -L +10G /dev/vbirdvg/vbirdlv
5. 利用 resize2fs 将 LV 的容量确实增加!
[root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm
[root@linux ~]# resize2fs [-f] [device] [size]
[root@linux ~]# umount /mnt/lvm
[root@linux ~]# resize2fs -f /dev/vbirdvg/vbirdlv
[root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm
另外,如果你想要将 LVM 移除的话,那么就应该要:
1. 先卸载系统上面的 LVM 扇区;
2. 使用 lvremove 移除 LV ;
3. 使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
4. 使用 vgremove 移除 VG:
5. 使用 pvremove 移除 PV;
6. 最后,使用 fdisk 修改 ID 回来啊!
本文出自 “wxfxn2000” 博客,谢绝转载!