LVM文件系统
时间:2010-09-30 来源:fzguon
一、总体介绍
LVM就是将几个物理分区通过软件组合在一起,看起来像是独立的大磁盘。
整个LVM的处理流程与各组件直接的相关性,如下所示:
* Physical Volume(物理卷),简称PV:这就是物理磁盘。我们必须将原来的磁盘,使用fdisk这类软件将它的ID改为LVM(8e)。补充:ID83是Linux分区,82是swap
* Volume Group(卷组),简称VG:其实LVM主要的目的就是要建立VG。它将一个或多个PV组合成为一个大磁盘。这个大磁盘以后可以分区。这个大磁盘的容量最大值与PE有关
* Physical Extend(物理扩展),简称PE:PE其实有点像VG的块,块的大小直接影响到VG的最大值。PE默认为4MB,则VG最大容量就是256GB
* Logical Volume(逻辑卷):简称LV:LV就是最后载入到文件系统的分区
如此一来,我们就可以使用LV来进行系统的载入。而LVM的写入机制有两种方式:
线性模式:就是在/dev/hda1写完后,再写/dev/hda2(LVM默认是该模式)
交错模式:就是将一份数据拆成两分,分别写入/dev/hda1和/dev/hda2(类似raid 0模式)
二、制作LVM磁盘的流程
1.建立磁盘的ID
说明:磁盘的ID号,83表示Linux代号,82表示swap代号,8e是LVM的代号
[root@redflag ~]# fdisk /dev/sdb
Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@redflag ~]# partprobe #该命令可让核心立刻读取最新的分区表,不需重启 |
2.创建PV
[root@redflag ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created [root@redflag ~]# pvcreate /dev/sdb2 Physical volume "/dev/sdb2" successfully created [root@redflag ~]# pvscan PV /dev/sdb1 lvm2 [101.94 MB] PV /dev/sdb2 lvm2 [101.97 MB] Total: 2 [203.92 MB] / in use: 0 [0 ] / in no VG: 2 [203.92 MB] [root@redflag ~]# pvdisplay --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 101.94 MB ………… |
3.创建VG
[root@redflag ~]# vgcreate -s 8m datavg /dev/sdb1 /dev/sdb2
Volume group "datavg" successfully created 说明:把PE定义为8M,实际中应根据情况设置,其决定最大的VG大小 [root@redflag ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "datavg" using metadata type lvm2 [root@redflag ~]# vgdisplay --- Volume group --- VG Name datavg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 ……………… VG Size 192.00 MB ……………… |
[root@redflag ~]# lvcreate -L 192M -n datalv datavg
Logical volume "datalv" created [root@redflag ~]# lvscan ACTIVE '/dev/datavg/datalv' [192.00 MB] inherit [root@redflag ~]# lvdisplay --- Logical volume --- LV Name /dev/datavg/datalv VG Name datavg ………… ………… |
[root@redflag ~]# mkfs.ext3 /dev/datavg/datalv
[root@redflag ~]# mkdir /mnt/disk [root@redflag ~]# mount /dev/datavg/datalv /mnt/disk/ |
[root@redflag ~]# umount /mnt/disk/
[root@redflag ~]# fdisk /dev/sdb 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@redflag ~]# partprobe [root@redflag ~]# pvcreate /dev/sdb3 Physical volume "/dev/sdb3" successfully created [root@redflag ~]# vgextend datavg /dev/sdb3 Volume group "datavg" successfully extended [root@redflag ~]# vgdisplay --- Volume group --- VG Name datavg System ID Format lvm2 Metadata Areas 3 ………… Alloc PE / Size 24 / 192.00 MB Free PE / Size 12 / 96.00 MB VG UUID kjvbzp-Rw7P-9ZNn-gCgp-XMic-lEke-M3l0mD [root@redflag ~]# lvextend -L +96M /dev/datavg/datalv Extending logical volume datalv to 288.00 MB Logical volume datalv successfully resized [root@redflag ~]# lvdisplay --- Logical volume --- LV Name /dev/datavg/datalv VG Name datavg ……………… [root@redflag ~]# resize2fs -f /dev/datavg/datalv resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/datavg/datalv to 294912 (1k) blocks. The filesystem on /dev/datavg/datalv is now 294912 blocks long. |
[root@redflag ~]# mount /dev/datavg/datalv /mnt/lvm/
[root@redflag ~]# df /mnt/lvm/ 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/datavg-datalv 285599 6168 267635 3% /mnt/lvm |
[root@redflag ~]# umount /mnt/lvm/
[root@redflag ~]# lvremove /dev/datavg/datalv Do you really want to remove active logical volume "datalv"? [y/n]: y Logical volume "datalv" successfully removed [root@redflag ~]# vgchange -an datavg 0 logical volume(s) in volume group "datavg" now active [root@redflag ~]# vgremove datavg Volume group "datavg" successfully removed [root@redflag ~]# pvremove /dev/sdb1 Labels on physical volume "/dev/sdb1" successfully wiped [root@redflag ~]# pvremove /dev/sdb2 Labels on physical volume "/dev/sdb2" successfully wiped [root@redflag ~]# pvremove /dev/sdb3 |
五、其他命令
1、备份
VG的信息非常重要,故应及时备份相关信息,以防万一:
[root@redflag ~]# vgcfgbackup
Volume group "datavg" successfully backed up. |
2、禁用及激活
[root@redflag ~]# umount /mnt/lvm
[root@redflag ~]# lvchange -an /dev/datavg/datav01 [root@redflag ~]# lvscan inactive '/dev/datavg/datav01' [992.00 MB] inherit [root@redflag ~]# lvchange -ay /dev/datavg/datav01 [root@redflag ~]# lvscan ACTIVE '/dev/datavg/datav01' [992.00 MB] inherit
|
这是说的搬迁,是指迁移卷组到其他机器(Linux):
[root@redflag ~]# umount /mnt/lvm
[root@redflag ~]# lvchange -an /dev/datavg/datav01 [root@redflag ~]# vgchange -an datavg 0 logical volume(s) in volume group "datavg" now active 导出: [root@redflag ~]# vgexport datavg Volume group "datavg" successfully exported 导入: [root@redflag ~]# pvscan PV /dev/sdb1 VG datavg lvm2 [496.00 MB / 0 free] PV /dev/sdb2 VG datavg lvm2 [496.00 MB / 0 free] PV /dev/lsdb3 VG datavg lvm2 [496.00 MB / 496.00 MB free] Total: 3 [1.45 GB] / in use: 3 [1.45 GB] / in no VG: 0 [0 ] [root@redflag ~]# vgimport datavg /dev/loop[123] Volume group "datavg" successfully imported |