特殊的filesystem:LVM
如果在安装初期,没有做好整个硬盘的规划,那么未来要新增磁盘空间,会很麻烦。这个问题在LVM面前,似乎影响不大,因LVM可以整合多个实体partition在一起,让这些partitions看起来就像是一个磁盘一样,而且,还可以在未来新增其它的实体partition到这个LVM管理的磁盘中,如此一来,整个磁盘空间的使用上,具有弹性。
1、PV(Physical Volume)物理卷
(1) 实体磁盘,必须要将原本的磁盘,例:/dev/hda5, /dev/hda6等分区,利用fdisk命令,将他们的ID改为LVM(8e),并且修改磁盘的相关信息,称为LVM可使用的磁盘。ID定义:当使用fdisk -l看到
的数据,ID83是Linux的partition,82则是Swap的代号,8e是LV代号
2、VG(Volume Group)卷组
(1) LVM主要目的就是建立VG,作用就是将刚刚一个或多个PV组合成为一个大磁盘,此最大容量与底下PE有关,如完全使用LVM默认参数,那么最大的LVM磁盘可达到256G
3、PE(Physical Extend)物理扩展
(1) 默认大小4M,当PE为4M时,BG最大容量为256G,PE大小会影响到VG的最大值,如VG默认大于256G时,需改PE值
(2) 注:一个VG最大可容65534个PE
4、LV(Logical Volume)LV 逻辑卷
(1) LV最后被挂载到文件系统的parition,LV有VG分割,他会建立一个装置代号, 例:/dev/vgname/lvname
LV如何把数据写入硬盘中:
1、线性模式(linear):假如我将 /dev/hda1, /dev/hdb1 这两个partition加入到VG中,并且整个VG只有一个LV时,那么所谓的线性模式就是:当 /dev/hda1的容量用完之后 /dev/hdb1的硬盘才会被使用到
2、交错模式(triped):就是我将一笔数据拆分成两部,分别写入 /dev/hda1 与 /dev/hdb1的意思,如此,一份数据用两颗硬盘来写入,理论上,读写的效能会比较好
注:LVM主要的用处是制造一个大磁盘,不是建立一个效能为主的磁盘,我们应该利用的是LVM可以弹性管理整个partition大小的用途上。一般使用线性模式,如使用交错模式,需注意,当任何一个partition【挂掉】时,所有的数据都会【损坏】。如强调备份与效能,直接使用RAID即可,不使用LVM
好了上面讲了这么多理论,下面来实践一下
1、我们先准备已经分好区硬盘,分别如下,磁盘分区可参考:https://www.cnblogs.com/xiangbing123/p/13680103.html
修改Id为8e,这里的Id上面已经说明,哈哈,就不啰嗦了
我想要制作一个LVM的磁盘出来,首先将 /dev/hdb1, hdb2这个两个partition加入到LVM中。
2、建立PV
PV相关命令:
(1)pvcreate:将实体partition建立为PV
(2)pvscan:搜寻目前系统里面任何具有PV的磁盘
(3)pvdisplay:显示出目前系统上面的PV状态
(4)pvremove:将PV属性移除,让改partition不具有PV属性
(5)partprobe:这个命令可以让核心立刻读入最新的partition table而不需reboot
这里我们建立了两个PV,可以通过pvscan 与 pvdisplay查看
3、建立VG
相关命令:
(1)vgcreate:建立VG命令
(2)vgsan:搜寻系统上面是否有VG
(3)vgdisplay:显示目前系统上面的VG状态
(4)vgextend:在VG内增加额外的PV
(5)vgreduce:在VG内移除PV
(6)vgchange:设定VG是否启动(active)
(7)vgremove:删除一个VG
注:VG名称可自己取,PV名称就是partition的装置代号
4、建立LV
定义:
将创造出VG大磁盘后,在建立分割区,这个分割区就是所谓的LV
相关命令:
(1)lvcreate:建立LV
(2)lvscan:查询系统上面的LV
(3)lvdisplay:显示系统上面的LV状态
(4)lvextend:在LV里添加容量
(5)lvreduce:在LV里减少容量
(6)lvremove:删除一个LV
(7)lvresize:对LV进行容量大小的调整
将整个vbirdvg分配给vbirdlv
格式:lvcreate -L [sizeMG] -n [LVname] VGname
参数:
-L:后面接容量,容量的单位可以是M,G等
-n:后面接的就是LV的名称
现在整个partition准备好了,只需格式化,挂载就可使用啦
5、partition格式化与挂载
格式化为 ext4格式
mkfs -t ext4 /dev/vbirdvg/vbirdlv
mkdir /mnt/lvm
mount -t ext4 /dev/vbirdvg/vbirdlv /mnt/lvm
哈哈,上面做了这么多,终于可以验收成果了,快使用以下命令查看吧
df :查看磁盘使用情况
fdisk -l /dev/hdb:查看/dev/hdb分区
6、增加逻辑卷
如果中途需要增加分区怎么办呢,步骤基本一致,创建好之后。细心的会发现 lv 已经增加了,但是 /dev/vbirdvg/vbirdlv 却没有加大。这是因为我们的ext4主要信息在最初规划时,就已经写入super block,同时 inode 与 block 数量优势固定的,所以没有变化。我们可以通过 resize2fs命令处理
格式:resize2fs [-f] [device] [size]
参数:
-f:强制进行 resize 的动作
[device]:装置代号
[size]:可加可不加,如加上需要给一个单位,M 或 G ,如不加默认【整个分区partition】的容量来处理
7、删除步骤:
上面讲了这么多创建与增加逻辑卷,假如某一天我们不使用了怎么删除呢,其实删除很简单,我们按照创建顺序倒着删除即可。
1、取消挂载
2、使用lvremove移除LV
3、使用vgchange -a n VGname 让 VGname 这个 VG 不具有Active标志
4、使用vgremove移除VG
5、使用pvremove移除PV
6、最后,使用fdisk修改ID即可