lvm
2012-06-21 20:06
281 查看
lvm :logical volume manage 逻辑卷管理器
可以讲多个物理分区整合在一起,让这些分区看起来就像是一个磁盘一样。
功能:
在不影响数据的情况下弹性调整磁盘的容量
创建系统快照,用于备份大量数据。
LVM 的各个阶段及命令
pv:physical volume 物理卷
LVM的最底层
命令:
VG :volume group 卷组
VG就是把多个PV整合到一起,组成一个大磁盘。指定PE (physical extend 物理扩展块,是LVM的最小存储块默认是4MB)大小,一个VG 最都包含65534个PE ,所以按照默认值,VG最大容量256G。
命令:
LV:logical volume 逻辑卷
最终的VG 还会被切成LV,LV就可以被格式化使用,也只有LV可以被格式化,
命令:
PV VG LV 的关系可看下图 :
结合上面两副图我们应该对他们之间的关系有个清晰地印象了,下面我们就做一个简单的实验来看一下具体操作步骤:
要求:
1、先分出两个分区,每个分区容量为1G,且systemID标示为8e
2、用pvcreat 将物理分区新建成PV
3、用vgcreate 将PV整合为VG,VG名称为myvg,且PE大小为16m
4、用lvcreate 创建一个60M的LV ,LV名称为mylv.
5、用mke2fs 格式化这个LV,且挂载到/mnt/lvm目录下
具体操作如下:
放大LV的容量:
1、用fdisk设置新的具有8e systemID的分区
2、利用pvcreate 构建pv
3、放大VG的容量,利用vgextend将PV 加入到我们的vgname
4、放大LV的容量,利用lvresize将新加入的PV 内的PE 加入到lvname中
5、放大文件系统的容量,通过resize2fs将文件系统的容量确实增大
缩小LV的容量:
必须先卸载 而且还要强制进行文件系统检测
1、先卸载mylv
2、磁盘检查,用fsck或者e2fsck 都可以
3、直接降低文件系统容量 用resize2fs
4、降低LV的容量,利用lvreduce
5、重新挂载 到此就可以结束了
6、移除/dev/sdb6,先利用pvmove将/dev/sdb6上的数据移除,再利用vgreduce将/dev/sdb6移除vg这个组,最后再利用pvremove移除它的PV属性。即可
如图所示,我们就可以看到,快照区的容量远远小于数据的容量,他只用存储改变的数据,所以说系统快照是很好的备份工具,用具备份大量的数据,同时也不影响系统的正常运行。
由于快照区和原本的LV共享很多PE,所以快照区与被快照的区域必须在同一个VG上。
命令:
#lvcreate -L 30m -p r -s -n mylvsnap /dev/myvg/mylv
-L 30M 指定创建的快照的容量
-p r 只读
-s 指定为创建快照
-n 快照的名称
/dev/myvg/mylv 指定对哪个lv创建快照
创建成功后就是挂载,可以通过/mnt/snap/访问原LV里的数据
#mkdir /mnt/snap
#mount /dev/myvg/mylvsnap /mnt/snap
此时我们就可以备份数据了,也不会影响系统正常的数据读取,
#cd /mnt/snap
# tar -jcf /backups/lvm.tar.gz * 备份好了
先卸载lvm 在把LV格式化 然后用备份的数据恢复
#umount /mnt/lvm
#mke2fs -j /dev/myvg/mylv
#mount /dev/myvg/mylv /mnt/lvm
#tar -jxf /backups/lvm.tar.gz -C /mnt/lvm
#ll /mnt/lvm
好了,数据恢复了 ,
最后所有的实验做完了 ,我们要做一下善后处理工作 删除LVM 把所有的分区恢复成原来的systemID,做到善始善终,以便我们做其他实验。
1. 先卸除系统上面的 LVM 文件系统 (包括忚快照与所有 LV);
#umount /mnt/lvm
#umount /mnt/snapshot
2. 使用 lvremove 删除 LV ;
#lvremove /dev/vgname/lvname
#lvremove /dev/vgname/lvss
3. 使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
# vgchange -a n vgname
4. 使用 vgremove 删除 VG:
#vgremove vgname
5. 使用 pvremove 删除 PV;
#pvremove /dev/hda{5,6,7}
6. 最后,使用 fdisk 修改 ID 回来啊!
可以讲多个物理分区整合在一起,让这些分区看起来就像是一个磁盘一样。
功能:
在不影响数据的情况下弹性调整磁盘的容量
创建系统快照,用于备份大量数据。
LVM 的各个阶段及命令
pv:physical volume 物理卷
LVM的最底层
命令:
pvcreate :将实体 partition 建立成为 PV ; pvscan :搜寻目前系统里面仸何具有 PV 的磁盘; pvdisplay :显示出目前系统上面的 PV 状态; pvs 显示多少个物理卷 pvmove移动数据 pvremove :将 PV 属性移除,让该 partition 丌具有 PV 属性。 #pvcreate /dev/sda9 #pvcreate /dev/sda{5,6,7}
VG :volume group 卷组
VG就是把多个PV整合到一起,组成一个大磁盘。指定PE (physical extend 物理扩展块,是LVM的最小存储块默认是4MB)大小,一个VG 最都包含65534个PE ,所以按照默认值,VG最大容量256G。
命令:
vgcreate -s 指定PE 大小 默认4m vgs vgdisplay VGNAME vgextend myvg /path/to/DEVICE扩展卷组 vgchange 设置VG是否启动 vgreduce 在VG内删除PV vgremove 删除一个VG vgscan #vgcreate -s 16m vgname /dev/sda{5,6,7} #vgextend vgname /dev/sda8 增加vg 的容量
LV:logical volume 逻辑卷
最终的VG 还会被切成LV,LV就可以被格式化使用,也只有LV可以被格式化,
命令:
lvcreate -L 3G -n mylv1 myvg ( -l N) 容量 名字 卷组 PE的个数(容量) #lvcreate #lvscan #lvs #lvdisplay #lvextend 在LV 内增加容量 #lvreduce 减少容量 #lvremove 删除一个LV #lvresize 对LV 进行容量大小的调整 # lvcreate -L 30M -n lvname vgname 最终会发现创建的是32M,因为PE默认是4M,LV的容量是4的倍数。
PV VG LV 的关系可看下图 :
结合上面两副图我们应该对他们之间的关系有个清晰地印象了,下面我们就做一个简单的实验来看一下具体操作步骤:
要求:
1、先分出两个分区,每个分区容量为1G,且systemID标示为8e
2、用pvcreat 将物理分区新建成PV
3、用vgcreate 将PV整合为VG,VG名称为myvg,且PE大小为16m
4、用lvcreate 创建一个60M的LV ,LV名称为mylv.
5、用mke2fs 格式化这个LV,且挂载到/mnt/lvm目录下
具体操作如下:
# fdisk -l /dev/sdb5 1 123 987934+ 8e Linux LVM /dev/sdb6 124 246 987966 8e Linux LVM # partprobe /dev/sdb #pvcreate /dev/sdb{5,6} 创建PV # pvdisplay "/dev/sdb5" is a new physical volume of "964.78 MB" --- NEW Physical volume --- PV Name /dev/sdb5 VG Name PV Size 964.78 MB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 98pIbr-ORIu-7ymE-46st-V2ap-WCS2-lYZhrE # vgcreate -s 16M myvg /dev/sdb5 创建VG Volume group "myvg" successfully created # vgdisplay --- Volume group --- VG Name myvg System ID Format lvm2 版本号 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 960.00 MB PE Size 16.00 MB PE的大小 Total PE 60 Alloc PE / Size 4 / 64.00 MB Free PE / Size 56 / 896.00 MB VG UUID YT0SBT-xa3R-2Ukr-Dd9O-fqSs-F1gW-umBFF3 # lvcreate -L 60M -n mylv myvg 创建LV Rounding up size to full physical extent 64.00 MB #指定60m 实际创建64M,因为PE的值是16M.只能是16的倍数 Logical volume "mylv" created # lvdisplay --- Logical volume --- LV Name /dev/myvg/mylv VG Name myvg LV UUID 7E5AvR-3Z6n-zBwx-iuJj-gkNj-YCQu-TxJfWw LV Write Access read/write LV Status available # open 1 LV Size 64.00 MB Current LE 4 其实就是PE 大小就是16M Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2 # mke2fs -j /dev/myvg/mylv 格式化 # mkdir /mnt/lvm # mount /dev/myvg/mylv /mnt/lvm/ 挂载
说着复杂 创建其实很简单
下面我们做一些有技术含量的实验放大LV的容量:
1、用fdisk设置新的具有8e systemID的分区
2、利用pvcreate 构建pv
3、放大VG的容量,利用vgextend将PV 加入到我们的vgname
4、放大LV的容量,利用lvresize将新加入的PV 内的PE 加入到lvname中
5、放大文件系统的容量,通过resize2fs将文件系统的容量确实增大
#fdisk -l #pvcreate /dev/sdb6 #vgextend myvg /dev/sdb6 #lvextend -L 100M /dev/myvg/mylv # resize2fs /dv/mgvg/mylv1
缩小LV的容量:
必须先卸载 而且还要强制进行文件系统检测
1、先卸载mylv
2、磁盘检查,用fsck或者e2fsck 都可以
3、直接降低文件系统容量 用resize2fs
4、降低LV的容量,利用lvreduce
5、重新挂载 到此就可以结束了
6、移除/dev/sdb6,先利用pvmove将/dev/sdb6上的数据移除,再利用vgreduce将/dev/sdb6移除vg这个组,最后再利用pvremove移除它的PV属性。即可
#umount /mnt/lvm 卸载 #e2fsck -f /dev/myvg/mylv 磁盘检查 #resize2fs /dev/myvg/mylv 6900m 缩减 必须制定大小 #lvreduce -L 40M /dev/myvg/mylv #mount /dev/myvg/mylv /mnt/lvm 重新挂载 #df /mnt/lvm 查看 减小了 #pvmove /dev/sdb6 /dev/sdb5 #vgreduce myvg /dev/sdb6 #pvscan 查看 sdb6不属于任何一个vg #pvremove /dev/hdb6 # 将sdb6的pv属性删除
LVM的系统快照:
系统快照(snapshot)是LVM的另外一个重要功能,快照就是将当时的数据记录下来,就好像照相记录一样,以后数据有任何改动,原数据会被移动到快照区,没有被改变的区域则由快照区与文件系统共享。如图所示,我们就可以看到,快照区的容量远远小于数据的容量,他只用存储改变的数据,所以说系统快照是很好的备份工具,用具备份大量的数据,同时也不影响系统的正常运行。
由于快照区和原本的LV共享很多PE,所以快照区与被快照的区域必须在同一个VG上。
命令:
#lvcreate -L 30m -p r -s -n mylvsnap /dev/myvg/mylv
-L 30M 指定创建的快照的容量
-p r 只读
-s 指定为创建快照
-n 快照的名称
/dev/myvg/mylv 指定对哪个lv创建快照
创建成功后就是挂载,可以通过/mnt/snap/访问原LV里的数据
#mkdir /mnt/snap
#mount /dev/myvg/mylvsnap /mnt/snap
此时我们就可以备份数据了,也不会影响系统正常的数据读取,
#cd /mnt/snap
# tar -jcf /backups/lvm.tar.gz * 备份好了
先卸载lvm 在把LV格式化 然后用备份的数据恢复
#umount /mnt/lvm
#mke2fs -j /dev/myvg/mylv
#mount /dev/myvg/mylv /mnt/lvm
#tar -jxf /backups/lvm.tar.gz -C /mnt/lvm
#ll /mnt/lvm
好了,数据恢复了 ,
最后所有的实验做完了 ,我们要做一下善后处理工作 删除LVM 把所有的分区恢复成原来的systemID,做到善始善终,以便我们做其他实验。
1. 先卸除系统上面的 LVM 文件系统 (包括忚快照与所有 LV);
#umount /mnt/lvm
#umount /mnt/snapshot
2. 使用 lvremove 删除 LV ;
#lvremove /dev/vgname/lvname
#lvremove /dev/vgname/lvss
3. 使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
# vgchange -a n vgname
4. 使用 vgremove 删除 VG:
#vgremove vgname
5. 使用 pvremove 删除 PV;
#pvremove /dev/hda{5,6,7}
6. 最后,使用 fdisk 修改 ID 回来啊!
相关文章推荐
- 逻辑盘卷管理(LVM)
- Linux逻辑盘卷管理LVM
- LVM
- LVM逻辑卷管理器的设置过程
- 收藏__一份非常内行的Linux LVM HOWTO
- RHCE_LAB(6)RHEL5的LVM应用实例(LVM调整大小和删除)
- Linux系统新加物理盘实现LVM管理
- lvm的扩容及缩小
- 一份非常内行的Linux LVM HOWTO
- linux逻辑卷管理 (LVM)
- linux AS4下LVM的使用手册
- LVM逻辑卷管理一PV/VG/LV的创建-Linux
- LVM随便一说
- LVM专业术语
- 创建raid和lvm分区
- ubuntu server 10.4下lvm逻辑卷管理器的使用 推荐
- 逻辑卷管理(LVM)
- LVM
- lvm
- ubuntu服务器安装后使用lvm