Linux磁盘虚拟化

1.LVM(Logical Volume Manager):逻辑滚动条管理员,LVM可以将几个实体的partions(或disk)透过软件组合成为一块看起来是独立的大磁盘(VG),然后将这块大磁盘再经过分割成为可使用分隔槽(LV),最终就能够挂载使用了。

2.PV(Physical Volume):实体滚动条,我们实际的partition需要调整系统标识符(system ID)称为8e(LVM的标识符),然后再经过pvcreate的指令将它转成LVM最底层的实体滚动条(PV),之后才能够将这些PV加以利用。调整system ID的方法是fdisk。

3.VG(Volume Group):滚动条群组,LVM大磁盘就是将许多PV整合成VG,VG就是LVM组合起来的大磁盘,这个大磁盘的容量由PE决定,因为每个VG最多仅能包含55534个PE。如果使用LVM的预设参数,则一个VG最大可达25G的容量

4.PE(Physical Extend):实体延伸区块,LVM预设使用4MB的PE区块,而LVM的VG最多仅能含有65534个PE,因此预设的LVM VG会有4*65534/1024=256G.PE是LVM最小的储存区块,它就像文件系统中的block大小一样。

5.LV(Logical Volume):逻辑滚动条,最终VG还会被切割成LV,这个LV就是最后可以被格式化使用的类似分隔槽的东西。为了方便用户利用LVM来管理其系统,因此LV的装置文件名通常指定为/dev/vgname/vname的样式。

6.LVM可以弹性变更filesystem的容量,它是通过交换PE来进行数据转换,将原本LV内的PE转移到其他装置中以降低LV容量,或者将其他的PE加到此LV中以加大容量。VG,LV,PE的关系如下图所示:

Linux磁盘虚拟化

如图,VG内的PE会分给黄线部分的LV,如果未来这个VG要扩充的话,加上其他的PV即可。而LV如果要扩充的话,也是透过VG内没有使用的PE来扩充的。

7.透过PV,VG,LV的规划后,再利用mkfs就可以将你的LV格式化可以利用的文件系统了,这个文件系统容量在未来还能够进行扩充或减少,而且里面的数据还不会被影响。整个流程如下图:

Linux磁盘虚拟化

8.数据写入LV时,有两种方式写入硬盘:

1)线性模式:假如将/devhda1,/dev/hdb1这两个partition加入到VG当中,并且整个VG只有一个LV时,那么所谓的线性模式就是:当/dev/hda1的容量用完之后,/dev/hdb1才会被使用到,这是建议的模式

2)交错模式:交错模式就是将一笔数据拆成两部分,分别写入/dev/hda1,/dev/hdb1的意思,一份数据用两颗盘来写入,理论上效能会比较好。

9.基本上,LVM最主要的用处是在实现一个可以弹性调整容量的文件系统上,而不是在建立一个效能为主的磁盘,所以,我们应该利用LVM可以弹性管理整个partition大小的用途上,而不是着眼在效能上。因此,LVM默认的读写模式是线性模式,如果你使用交错模式,需要注意的是,当任何一个partition损坏后,所有的数据都会损坏。如果要强调效能和备份还是用RAID比较好。

10.LVM系统快照:快照就是讲当时的系统信息记录下来,就好像照相记录一般,若未来有任何资料改动了,则原始的资料回避搬移到快照区,乜有改动的区域则由快照与文件系统共享。其关系如下图所示:

Linux磁盘虚拟化

上图为最初建置系统快照的状况,LVM会预留一个区域(图中的左侧三个PE数据,因此你会看到快照区内的内容与文件系统是一模一样的。等到系统运作一阵子后,假设A区域的数据被改变了,则变动前系统会将该区域的数据移动到快照区,所以占用了一块PE称为A,而其他B到I的区块则还是与文件系统共享。

相关推荐