ubuntu server 10.4下lvm逻辑卷管理器的使用

LVM是逻辑盘卷管理(Logical Volume Manager)的简称。如果不知道可以百度下,http://baike.baidu.com/view/361916.htm,百度百科,讲的就很好了,它真是一个非常棒的东西。引用百度百科的一段“Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现 某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如PatitionMagic等),但这都只是暂时解决办法,没有根 本解决问题。随着Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解,使得用户在无需停机的情况下方便地调整各个分区大 小。”这就是它功能。
目标:(1)用三块磁盘sdc,sdd,sde都是2G。先把sdc,sdd,组成卷组no1vg大小为4G,划分出逻辑卷date大小为200M,把该逻辑卷挂载到lvmtest目录,再对逻辑卷date进行扩展到容量为300M,对卷组no1vg进行扩展,也就是把磁盘sde加入no1vg使其容量为6G。(2)对逻辑卷date,把它的名字改为date2,然后减少逻辑卷date2容量到250M,最后把逻辑卷date2移除掉;对卷组no1vg改名为vgtest,然后减少卷组vgtest容量到4G;最后移去物理卷sde等相关操作的命令.
1,分别把三块磁盘创建成Linux lvm
在默认情况ubuntu server 10.4 没有安装LVM2软件包,所以要先安装
先查看安装没有
#sudo dpkg -l lvm2
若没安装则安装
#sudo apt-get install lvm2
再查看安装了没有
#sudo dpkg -l lvm2
#sudo fdisk /dev/sdc
lvm01
lvm02
三块磁盘的分区结果相同,操作过程也相同。
2,初始化sdc,sdd,sde
初始化前先查看下
#sudo pvscan
#sudo pvdisplay
开始初始化
lvm03
再查看下,和之前有什么不同
#sudo pvdisplay
3,创建卷组no1vg,大小为4G.
先查看下
#sudo vgdisplay
创建卷组no1vg
#sudo vgcreate  no1vg /dev/sd[c,d]1
#sudo vgdisplay no1vg
lvm04
默认的情况,PE为4M,也就是最大的LV可为256G.
4,创建逻辑卷date,大小为200M.
先查看
#sudo lvdisplay
创建逻辑卷date
#sudo lvcreate –n date –L 200M no1vg
#sudo lvcreate –n date –l 50 no1vg
*:-L 后面是大小,若你给的不是4的倍数,它会给你自动分配成4的倍数的大小的空间。-l 后面是PE的个数,50*4=200M,所以两个命令的结果是相同的。
#sudo lvdisplay /dev/no1vg/date
5,格式化逻辑卷date,用ext4文件系统
#sudo mkfs.ext4 /dev/no1vg/date
6,挂载逻辑卷date到文件夹lvmtest
#sudo mount /dev/no1vg/date lvmtest
lvm05
#sudo cd lvmtest
#sudo mkdir test.txt
7,对逻辑卷date进行扩展到容量为300M.
先查看扩展前的信息
#sudo lvdisplay /dev/no1vg/date
先umount掉挂载的逻辑卷date
#sudo umount lvmtest
#sudo lvextend –L +100M /dev/no1vg/date
强行检查date逻辑卷
#sudo e2fsck –f /dev/no1vg/date
重新定义分区大小
#sudo resize2fs /dev/no1vg/date
先查看扩展后的信息
#sudo lvdisplay /dev/no1vg/date
#sudo mount /dev/no1vg/date lvmtest
#sudo df –h
lvm08
查看卷组信息
lvm07
8,扩展卷组no1vg,把sde磁盘加入其中,容量到达6G
#sudo vgextend no1vg  /dev/sde1
查看扩展后的卷组信息
#sudo vgdisplay /dev/no1vg
lvm10
扩展后的数据仍在
lvm11
(2)第二个实验目标
1,辑卷date改名为date2,并减少其容量到250M,并把它移除
#sudo lvrename /dev/no1vg/date   /dev/no1vg/date2
查看逻辑卷信息
#sudo lvs
#sudo lvscan
#sudo lvdisplay
在初次做这个实验时出现如下问题:
缩减其容量后发现,挂载不上,重新格式化后,才可以挂载,后来经过查询要按如下步骤操作:先使用resize2fs 对其操作后,接着用e2fsck -f ,再用lvreduce;与增加容量时的操作相反,增加时是先用lvextend后,再用e2fsck -f ,接着是resize2fs.
#sudo resize2fs /dev/no1vg/date2 250M
#sudo e2fsck -f /dev/no1vg/date2
#sudo lvreduce -L 50M /dev/no1vg/date2
停止逻辑卷date2
#sudo lvchange -a n /dev/no1vg/date2
查看其状态
#sudo lvdisplay
激活逻辑卷date2
#sudo lvchange -a y /dev/no1vg/date2
查看其状态
#sudo lvdisplay
通过快照备份逻辑卷
#sudo lvcreate -s -L 250M -n snapno1 /dev/no1vg/date2
查看
#sudo lvs
快照不需格式化就可以直接使用
挂载快照到目录snap
#sudo mount /dev/no1vg/snapno1 snap
移除逻辑卷date2前,若有快照,就要先移除快照,否则移除是不成功的
移除快照snapno1
#sudo lvremove /dev/no1vg/snapno1
移除逻辑卷的命令与移除快照相同
#sudo lvremove /dev/no1vg/date2
查看逻辑卷信息
#sudo lvdisplay
#sudo lvs
#sudo lvscan
2,对卷组的改名,缩减容量,分离卷组,移除卷组,合并卷组操作
对卷组no1vg改名为vgtest
#sudo vgrename no1vg vgtest
查看
#sudo vgs
#sudo vgscan
#sudo vgdisplay
把物理卷sde从卷组vgtest中移除也就是缩减了其容量从6G到4G
#sudo vgreduce /dev/vgtest /dev/sde1
#sudo vgdisplay
停止卷组vgtest
#sudo vgchange -a n /dev/vgtest
停止卷组后,把物理卷sdd1从卷组vgtest分离出来,并把加入vgtest2中
#sudo vgsplit /dev/vgtest /dev/vgtest2 /dev/sdd1
原有的逻辑卷的数据仍在
#sudo vgdiaplay /dev/vgtest
激活卷组vgtest
#sudo vgchange -a y /dev/vgtest
移除卷组vgtest
#sudo vgremove /dev/vgtest
合并卷组:把卷组vgtest1,vgtest2合并到卷组vgtest
可以先看下vgmerge的用法
#man vgmerge
#sudo vgmerge /dev/vgtest /dev/vgtest1
#sudo vgmerge -v /dev/vgtest /dev/vgtest2
---------------以下两个没实验过----------------------------------
另外还有卷组的导出vgexport
#sudo vgexport /dev/vgtest
卷组的导入
#sudo vgimport vgtest /dev/sd[c,d]1
----------------------------------------------------------------------------
3,物理卷sde的移除
先将sde是数据移到sdc上,这个要花一点时间
#sudo pvmove /dev/sde1 /dev/sdc1
移完后数据仍在
数据移完后,将其移除
#sudo pvremove /dev/sde1
感悟:通过以上的操作实验,感觉LVM真的是强,能放大也能缩小,能拆分能合并,并且数据不丢,在实际的应用中,当然不建议改动已建好的逻辑卷,卷组,物理卷的大小,理论上数据不会丢,可又有谁能保证在线操作时,就没问题呢。最后,再说一次,LVM真的是好强!


发表评论