> Linux教程 > Linux学习 >

linux/UNIX LVM一些概念

1,PV相关的命令:
pvcreate :将实体 partition 建立成为 PV ;
pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
vdisplay :显示出目前系统上面的 PV 状态;
pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。
[root@nodebak ~]# pvscan
  No matching physical volumes found
将新增加的磁盘创建分区,并将格式转化为8e,如下:
Command (m for help): p

Disk /dev/sdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        7832    62910508+   5  Extended
/dev/sdb5               1        1246    10008432   8e  Linux LVM
/dev/sdb6            1247        2492    10008463+  8e  Linux LVM
/dev/sdb7            2493        3738    10008463+  8e  Linux LVM
/dev/sdb8            3739        4984    10008463+  8e  Linux LVM
[root@nodebak ~]# pvcreate /dev/sdb(5,6,7,8)
-bash: syntax error near unexpected token `('
[root@nodebak ~]# pvcreate /dev/sdb{5,6,7,8}
  Writing physical volume data to disk "/dev/sdb5"
  Physical volume "/dev/sdb5" successfully created
  Writing physical volume data to disk "/dev/sdb6"
  Physical volume "/dev/sdb6" successfully created
  Writing physical volume data to disk "/dev/sdb7"
  Physical volume "/dev/sdb7" successfully created
  Writing physical volume data to disk "/dev/sdb8"
  Physical volume "/dev/sdb8" successfully created
[root@nodebak ~]# pvscan
  PV /dev/sdb5                      lvm2 [980.50 MB]
  PV /dev/sdb6                      lvm2 [980.50 MB]
  PV /dev/sdb7                      lvm2 [980.50 MB]
  PV /dev/sdb8                      lvm2 [980.50 MB]
  Total: 4 [3.83 GB] / in use: 0 [0   ] / in no VG: 4 [3.83 GB]
[root@nodebak ~]# pvdisplay
  "/dev/sdb5" is a new physical volume of "980.50 MB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb5
  VG Name              
  PV Size               980.50 MB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               bqUQRW-GtxR-Foco-jmj1-E3I0-D4oO-Tl9las

2,vg相关的命令:
vgcreate :就是主要建立 VG 的指令啦!他的参数比较多,等一下介绍。
vgscan :搜寻系统上面是否有 VG 存在?
vgdisplay :显示目前系统上面的 VG 状态;
vgextend :在 VG 内增加额外的 PV ;
vgreduce :在 VG 内移除 PV;
vgchange :设定 VG 是否启动 (active);
vgremove :删除一个 VG 啊!
创建vg
vgcreate -s 16M vgtest /dev/sdb6 创建一个名为vgtest的vg,制定pe大小为16M(默认大小为4M),里面包含一个pv
# vgcreate -s 16M vgtest /dev/sdb6
  Volume group "vgtest" successfully created
为vgtest增加一个pv
# vgextend vgtest /dev/sdb5  将/dev/sdb5增加到vgtest中
  Volume group "vgtest" successfully extended
查看vg信息
# vgdisplay vgtest
  --- Volume group ---
  VG Name               vgtest
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.91 GB
  PE Size               16.00 MB
  Total PE              122
  Alloc PE / Size       0 / 0  
  Free  PE / Size       122 / 1.91 GB
  VG UUID               N3hmc0-Al9Z-JTGM-4Q3H-3EI1-V9RT-dndfCQ
查看vg包含哪些pv
# vgdisplay -v vgtest
    Using volume group(s) on command line
    Finding volume group "vgtest"
  --- Volume group ---
  VG Name               vgtest
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               1.91 GB
  PE Size               16.00 MB
  Total PE              122
  Alloc PE / Size       0 / 0  
  Free  PE / Size       122 / 1.91 GB
  VG UUID               N3hmc0-Al9Z-JTGM-4Q3H-3EI1-V9RT-dndfCQ
  
  --- Physical volumes ---
  PV Name               /dev/sdb6    
  PV UUID               xO7wSm-FHoI-6MT7-v92V-hM3D-kCx0-osfY8c
  PV Status             allocatable
  Total PE / Free PE    61 / 61
  
  PV Name               /dev/sdb5    
  PV UUID               bqUQRW-GtxR-Foco-jmj1-E3I0-D4oO-Tl9las
  PV Status             allocatable
  Total PE / Free PE    61 / 61
删除一个vg中的一个pv
# vgreduce vgtest /dev/sdb5
  Removed "/dev/sdb5" from volume group "vgtest"
删除一个vg
# vgremove vgtest1
  Volume group "vgtest1" successfully removed

3,lv相关命令:
lvcreate:建立LV
lvscan:查询系统上的LV(linux不支持)
lvdisplay:显示系统上的LV状态
lvextend:向LV中增加容量
lvreduce:在LV中减少容量
lvremove:删除一个LV
lvsize:对LV进行容量大小的调整
新建LV
# lvcreate -L 500M -n testlv vgtest
  Rounding up size to full physical extent 512.00 MB
  Logical volume "testlv" created  (因为新建立的LV的大小必须是PE的整数倍,这里自动调整了)
扩展lv的大小
lvextend -L +100M /dev/vgtest/testlv(-L 1024M将lv的大小增加到1024M)
  Rounding up size to full physical extent 112.00 MB
  Extending logical volume testlv to 624.00 MB
  Logical volume testlv successfully resized  将testlv增大100M
# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vgtest/testlv
  VG Name                vgtest
  LV UUID                AMOlEN-0iJE-tmNy-VFO4-3BEh-A7rC-nNBCa7
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                624.00 MB
  Current LE             39
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
减小lv的大小
# lvreduce -L -100M /dev/vgtest/testlv
  Rounding up size to full physical extent 96.00 MB
  WARNING: Reducing active logical volume to 528.00 MB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testlv? [y/n]: y
  Reducing logical volume testlv to 528.00 MB
  Logical volume testlv successfully resized
# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vgtest/testlv
  VG Name                vgtest
  LV UUID                AMOlEN-0iJE-tmNy-VFO4-3BEh-A7rC-nNBCa7
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                528.00 MB
  Current LE             33
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
删除lv
# lvremove /dev/vgtest/testlv1
Do you really want to remove active logical volume testlv1? [y/n]: y
  Logical volume "testlv1" successfully removed
4,创建文件系统
# mkfs.ext3 /dev/vgtest/testlv
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
77920 inodes, 155648 blocks
7782 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=159383552
5 block groups
32768 blocks per group, 32768 fragments per group
15584 inodes per group
Superblock backups stored on blocks:
        32768, 98304

Writing inode tables: done                           
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@nodebak ~]# mkdir /testlvm
[root@nodebak ~]# mount /dev/vgtest/testlv /testlvm/
[root@nodebak ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              15G  4.5G  9.5G  33% /
/dev/sda3             9.7G  154M  9.1G   2% /tmp
/dev/sda2             9.7G  5.7G  3.5G  63% /u01
tmpfs                 1.0G     0  1.0G   0% /dev/shm
/dev/mapper/vgtest-testlv
                      599M   17M  552M   3% /testlvm

(责任编辑:IT)