LVM逻辑卷管理(文字注释内容待添加)

    

     LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如"sales‘、‘development‘)代替物理磁盘名(如‘sda‘、‘sdb‘)来标识存储卷。

如图所示LVM模型:

wKiom1Z2jx-zaTiOAAC1astZi28284.jpg

LVM基本术语

物理卷(Physical Volume,PV)

      指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

卷组(Volume Group,VG)

      类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。

逻辑卷(Logical Volume,LV)

      类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

物理块(Physical Extent,PE)

      每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。

逻辑块(Logical Extent,LE)

      逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

创建逻辑卷步骤:pv--> vg --> lv    (PE大小是由vg决定的)

磁盘分区类型必须调整为8e


[root@localhost ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004cd5c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7859    62914560   8e  Linux LVM
/dev/sda3            7859        9164    10489446   83  Linux

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Selected partition 4
First cylinder (9165-26108, default 9165): 
Using default value 9165
Last cylinder, +cylinders or +size{K,M,G} (9165-26108, default 26108): 
Using default value 26108

Command (m for help): p

Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004cd5c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7859    62914560   8e  Linux LVM
/dev/sda3            7859        9164    10489446   83  Linux
/dev/sda4            9165       26108   136102680    5  Extended

Command (m for help): n
First cylinder (9165-26108, default 9165): 
Using default value 9165
Last cylinder, +cylinders or +size{K,M,G} (9165-26108, default 26108): +5G

Command (m for help): l

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         

Command (m for help): t
Partition number (1-7): 5
Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e (Linux LVM)

使用类似方法添加sda6\7\8

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.



[root@localhost ~]# fdisk -l /dev/sda

Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004cd5c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7859    62914560   8e  Linux LVM
/dev/sda3            7859        9164    10489446   83  Linux
/dev/sda4            9165       26108   136102680    5  Extended
/dev/sda5            9165        9818     5253223+  8e  Linux LVM
/dev/sda6            9819       10472     5253223+  8e  Linux LVM
/dev/sda7           10473       11126     5253223+  8e  Linux LVM
/dev/sda8           11127       12432    10490413+  8e  Linux LVM



kpartx命令的作用,是让Linux内核读取一个设备上的分区表,然后生成代表相应分区的设备。

[root@localhost ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
[root@localhost ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6
BLKPG: Device or resource busy
error adding partition 7
BLKPG: Device or resource busy
error adding partition 8
[root@localhost ~]#



查看没有创建PV和VG前的信息。
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sda2  vg0  lvm2 a--  59.99g 7.99g
[root@localhost ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg0
  PV Size               60.00 GiB / not usable 8.00 MiB
  Allocatable           yes 
  PE Size               8.00 MiB
  Total PE              7679
  Free PE               1023
  Allocated PE          6656
  PV UUID               X1qZLb-itOR-l9N0-lmJ7-GS4x-0lLR-xG0j2v

[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  vg0    1   4   0 wz--n- 59.99g 7.99g
[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               4
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               59.99 GiB
  PE Size               8.00 MiB
  Total PE              7679
  Alloc PE / Size       6656 / 52.00 GiB
  Free  PE / Size       1023 / 7.99 GiB
  VG UUID               0SrYD2-zbcE-BFzQ-LvKD-QwhA-t52u-Aw5R5n



创建PV,
   
[root@localhost ~]# pvcreate /dev/sda5
  Physical volume "/dev/sda5" successfully created
[root@localhost ~]# pvcreate /dev/sda6
  Physical volume "/dev/sda6" successfully created

[root@localhost ~]# pvs
 PV         VG   Fmt  Attr PSize  PFree
 /dev/sda2  vg0  lvm2 a--  59.99g 7.99g
 /dev/sda5       lvm2 ---   5.01g 5.01g
 /dev/sda6       lvm2 ---   5.01g 5.01g


   
建立VG ,名称为data,指定PE大小为10M
   

[root@localhost ~]# vgcreate data -s 10M /dev/sda5
  Volume group "data" successfully created

[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  data   1   0   0 wz--n-  5.00g 5.00g
  vg0    1   4   0 wz--n- 59.99g 7.99g

[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               data
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               5.00 GiB
  PE Size               10.00 MiB
  Total PE              512
  Alloc PE / Size       0 / 0   
  Free  PE / Size       512 / 5.00 GiB
  VG UUID               Ioo0Za-hUGA-UCLX-t1rv-ZwHQ-A2fV-lEoNIv
   
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               4
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               59.99 GiB
  PE Size               8.00 MiB
  Total PE              7679
  Alloc PE / Size       6656 / 52.00 GiB
  Free  PE / Size       1023 / 7.99 GiB
  VG UUID               0SrYD2-zbcE-BFzQ-LvKD-QwhA-t52u-Aw5R5n
   


[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sda2  vg0  lvm2 a--  59.99g 7.99g
  /dev/sda5  data lvm2 a--   5.00g 5.00g
  /dev/sda6       lvm2 ---   5.01g 5.01g
[root@localhost ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               data
  PV Size               5.01 GiB / not usable 10.10 MiB
  Allocatable           yes 
  PE Size               10.00 MiB
  Total PE              512
  Free PE               512
  Allocated PE          0
  PV UUID               cMeOjK-8328-KZ8S-MnRR-JR9B-YcJU-2fBQny
   
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg0
  PV Size               60.00 GiB / not usable 8.00 MiB
  Allocatable           yes 
  PE Size               8.00 MiB
  Total PE              7679
  Free PE               1023
  Allocated PE          6656
  PV UUID               X1qZLb-itOR-l9N0-lmJ7-GS4x-0lLR-xG0j2v
   
  "/dev/sda6" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda6
  VG Name               
  PV Size               5.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               vOvmRp-3YzB-321W-BM7q-7DyA-0fVy-oqzkTf
   


[root@localhost ~]# vgextend data /dev/sda6
  Volume group "data" successfully extended
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sda2  vg0  lvm2 a--  59.99g 7.99g
  /dev/sda5  data lvm2 a--   5.00g 5.00g
  /dev/sda6  data lvm2 a--   5.00g 5.00g


[root@localhost ~]# vgdisplay data
  --- Volume group ---
  VG Name               data
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  2
  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               10.00 GiB
  PE Size               10.00 MiB
  Total PE              1024
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1024 / 10.00 GiB
  VG UUID               Ioo0Za-hUGA-UCLX-t1rv-ZwHQ-A2fV-lEoNIv

   


[root@localhost ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0  -wi-ao---- 20.00g                                                    
  swap vg0  -wi-ao----  2.00g                                                    
  usr  vg0  -wi-ao---- 10.00g                                                    
  var  vg0  -wi-ao---- 20.00g                                                    
[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/root
  LV Name                root
  VG Name                vg0
  LV UUID                n6GmVh-224U-6LOe-pNly-vsmW-xERB-x92WxW
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2015-12-18 21:27:25 +0800
  LV Status              available
  # open                 1
  LV Size                20.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/vg0/swap
  LV Name                swap
  VG Name                vg0
  LV UUID                crURLK-zBkl-8hkK-wToE-xEKG-QaJK-IXxhwv
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2015-12-18 21:27:28 +0800
  LV Status              available
  # open                 1
  LV Size                2.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/vg0/usr
  LV Name                usr
  VG Name                vg0
  LV UUID                h47EeV-CJ1y-dPO1-CL90-Nw8G-I4NE-NtNZsP
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2015-12-18 21:27:29 +0800
  LV Status              available
  # open                 1
  LV Size                10.00 GiB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/vg0/var
  LV Name                var
  VG Name                vg0
  LV UUID                cgPOJb-mZi5-ddgw-1cO3-Ok4L-8Apr-LsWlIw
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2015-12-18 21:27:30 +0800
  LV Status              available
  # open                 1
  LV Size                20.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3




[root@localhost ~]# lvcreate -L 5G -n datalv data
  Logical volume "datalv" created.
[root@localhost ~]# ll /dev/mapper/
total 0
crw-rw---- 1 root root 10, 58 Dec 20 11:33 control
lrwxrwxrwx 1 root root      7 Dec 20 14:33 data-datalv -> ../dm-4
lrwxrwxrwx 1 root root      7 Dec 20 11:33 vg0-root -> ../dm-0
lrwxrwxrwx 1 root root      7 Dec 20 11:33 vg0-swap -> ../dm-1
lrwxrwxrwx 1 root root      7 Dec 20 11:33 vg0-usr -> ../dm-2
lrwxrwxrwx 1 root root      7 Dec 20 11:33 vg0-var -> ../dm-3

创建文件系统,-b参数可以指定文件系统的block块大小。
[root@localhost ~]# mkfs.ext4 -b 1024 -L data /dev/data/datalv 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=data
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=72351744
640 block groups
8192 blocks per group, 8192 fragments per group
512 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 
	1024001, 1990657, 2809857, 5120001

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

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.




[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/data/datalv /data/
[root@localhost ~]# ls /data/
lost+found
[root@localhost ~]# mount
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/data-datalv on /data type ext4 (rw)

[root@localhost ~]# lvdisplay /dev/data/datalv 
  --- Logical volume ---
  LV Path                /dev/data/datalv
  LV Name                datalv
  VG Name                data
  LV UUID                3cRVB5-0pqU-Be8J-P7n3-MunM-M9fr-GNXaqE
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2015-12-20 14:33:50 +0800
  LV Status              available
  # open                 1
  LV Size                5.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:4



 



[root@localhost ~]# cp /var/log/boot.log /data/
[root@localhost ~]# tail -10 /data/boot.log 
Starting auditd:                                           [  OK  ]
Starting system logger:                                    [  OK  ]
Starting irqbalance:                                       [  OK  ]
Starting system message bus:                               [  OK  ]
Starting HAL daemon:                                       [  OK  ]
Retrigger failed udev events                               [  OK  ]
Starting sshd:                                             [  OK  ]
Starting abrt daemon:                                      [  OK  ]
Starting crond:                                            [  OK  ]
Starting atd:                                              [  OK  ]


LV扩展逻辑卷,要先扩展物理边界,然后扩展逻辑边界;
首先要确定扩展大小,再确定当前逻辑卷是否有足够的空闲空间可用;

步骤思路总结:
(1) 扩展物理边界
      lvextend   -L : +[扩展多少];不用+号则为扩展到多少,有加号则为扩展多少
(2) 扩展逻辑边界
      resize2fs


LV从5G扩展至10G过程演示:

首先扩展物理边界至10G:
     
[root@localhost ~]# lvextend -L 10G /dev/data/datalv 
  Size of logical volume data/datalv changed from 5.00 GiB (512 extents) to 10.00 GiB (1024 extents).
  Logical volume datalv successfully resized

因为还没有扩展逻辑边界,所以这里显示是文件系统大小,所以还是5G
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-root   20G  301M   19G   2% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             190M   36M  145M  20% /boot
/dev/mapper/vg0-usr   9.8G  2.0G  7.4G  21% /usr
/dev/mapper/vg0-var    20G  115M   19G   1% /var
/dev/mapper/data-datalv
                      4.9G  3.6M  4.7G   1% /data
扩展逻辑边界:
   修改文件系统使用所有包含扩展的空间。
[root@localhost ~]# resize2fs /dev/data/datalv 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/data/datalv is mounted on /data; on-line resizing required
old desc_blocks = 20, new_desc_blocks = 40
Performing an on-line resize of /dev/data/datalv to 10485760 (1k) blocks.
The filesystem on /dev/data/datalv is now 10485760 blocks long.

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-root   20G  301M   19G   2% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             190M   36M  145M  20% /boot
/dev/mapper/vg0-usr   9.8G  2.0G  7.4G  21% /usr
/dev/mapper/vg0-var    20G  115M   19G   1% /var
/dev/mapper/data-datalv
                      9.9G  3.5M  9.4G   1% /data

[root@localhost ~]# vgdisplay data
  --- Volume group ---
  VG Name               data
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               10.00 GiB
  PE Size               10.00 MiB
  Total PE              1024
  Alloc PE / Size       1024 / 10.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               Ioo0Za-hUGA-UCLX-t1rv-ZwHQ-A2fV-lEoNIv

[root@localhost ~]# tail -10 /data/boot.log 
Starting auditd:                                           [  OK  ]
Starting system logger:                                    [  OK  ]
Starting irqbalance:                                       [  OK  ]
Starting system message bus:                               [  OK  ]
Starting HAL daemon:                                       [  OK  ]
Retrigger failed udev events                               [  OK  ]
Starting sshd:                                             [  OK  ]
Starting abrt daemon:                                      [  OK  ]
Starting crond:                                            [  OK  ]
Starting atd:                                              [  OK  ]


                      
    逻辑卷的缩减有风险,所以要先确定缩减为多大,同时缩减后的空间必须能够容纳原有的所有数据。
    LV缩减,必须先卸载已经挂载的lv分区后并对分区进行强制检测,确保文件系统干净。
         
    然后缩减逻辑边界,再缩减物理边界。
    
步骤思路:
a.先使其离线【卸载】
umount /data
 
b.强制检测文件系统【ext系列为例】
e2fsck-f /dev/data/datalv
 
c.收缩逻辑边界
resize2fs /dev/data/datalv 1G
 
d.收缩物理边界
lvreduce-L 1G /dev/data/datalv
 
e.上线挂载
mount  /dev/data/datalv /data/


[root@localhost ~]# umount /dev/data/datalv 
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-root   20G  301M   19G   2% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             190M   36M  145M  20% /boot
/dev/mapper/vg0-usr   9.8G  2.0G  7.4G  21% /usr
/dev/mapper/vg0-var    20G  115M   19G   1% /var

[root@localhost ~]# e2fsck -fy /dev/data/datalv      #-f  Force checking even if filesystem is marked clean
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
data: 12/655360 files (0.0% non-contiguous), 203340/10485760 blocks



[root@localhost ~]# resize2fs /dev/data/datalv 8G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/data/datalv to 8388608 (1k) blocks.
The filesystem on /dev/data/datalv is now 8388608 blocks long.


[root@localhost ~]# lvreduce -L 8G /dev/data/datalv 
  Rounding size to boundary between physical extents: 8.01 GiB
  WARNING: Reducing active logical volume to 8.01 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce datalv? [y/n]: y
  Size of logical volume data/datalv changed from 10.00 GiB (1024 extents) to 8.01 GiB (820 extents).
  Logical volume datalv successfully resized



[root@localhost ~]# mount /dev/data/datalv /data/
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-root   20G  301M   19G   2% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             190M   36M  145M  20% /boot
/dev/mapper/vg0-usr   9.8G  2.0G  7.4G  21% /usr
/dev/mapper/vg0-var    20G  115M   19G   1% /var
/dev/mapper/data-datalv
                      7.9G  3.6M  7.5G   1% /data
[root@localhost ~]# tail -10 /data/boot.log 
Starting auditd:                                           [  OK  ]
Starting system logger:                                    [  OK  ]
Starting irqbalance:                                       [  OK  ]
Starting system message bus:                               [  OK  ]
Starting HAL daemon:                                       [  OK  ]
Retrigger failed udev events                               [  OK  ]
Starting sshd:                                             [  OK  ]
Starting abrt daemon:                                      [  OK  ]
Starting crond:                                            [  OK  ]
Starting atd:                                              [  OK  ]



[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sda2  vg0  lvm2 a--  59.99g 7.99g
  /dev/sda5  data lvm2 a--   5.00g    0 
  /dev/sda6  data lvm2 a--   5.00g 1.99g
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  data   2   1   0 wz--n- 10.00g 1.99g
  vg0    1   4   0 wz--n- 59.99g 7.99g

[root@localhost ~]# pvcreate /dev/sda7
  Physical volume "/dev/sda7" successfully created
[root@localhost ~]# pvdisplay /dev/sda7
  "/dev/sda7" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda7
  VG Name               
  PV Size               5.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               73pdMk-2oJt-s1Vp-0cXH-a6CQ-ylOQ-qx3RQR


[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sda2  vg0  lvm2 a--  59.99g 7.99g
  /dev/sda5  data lvm2 a--   5.00g    0 
  /dev/sda6  data lvm2 a--   5.00g 1.99g
  /dev/sda7       lvm2 ---   5.01g 5.01g

[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  data   2   1   0 wz--n- 10.00g 1.99g
  vg0    1   4   0 wz--n- 59.99g 7.99g

[root@localhost ~]# vgextend data /dev/sda7
  Volume group "data" successfully extended
[root@localhost ~]# pvcreate /dev/sda8
  Physical volume "/dev/sda8" successfully created
[root@localhost ~]# vgextend data /dev/sda8
  Volume group "data" successfully extended
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sda2  vg0  lvm2 a--  59.99g  7.99g
  /dev/sda5  data lvm2 a--   5.00g     0 
  /dev/sda6  data lvm2 a--   5.00g  1.99g
  /dev/sda7  data lvm2 a--   5.00g  5.00g
  /dev/sda8  data lvm2 a--  10.00g 10.00g



缩减卷组:先要确定要移除的PV,然后将此PV上的数据转移到其他PV,再从卷组中将此PV移除;
------------------------------------------------
[root@localhost ~]# pvmove /dev/sda6
  No data to move for data

[root@localhost ~]# vgreduce data /dev/sda6
  Removed "/dev/sda6" from volume group "data"
[root@localhost ~]# vgdisplay data
  --- Volume group ---
  VG Name               data
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               5.00 GiB
  PE Size               10.00 MiB
  Total PE              512
  Alloc PE / Size       0 / 0   
  Free  PE / Size       512 / 5.00 GiB
  VG UUID               LT91Nk-Gr7j-ELQO-xRcq-cNad-dXiB-wGX7QS
  
 
   
[root@localhost ~]# vgextend data /dev/sda6
  Volume group "data" successfully extended
[root@localhost ~]# vgdisplay data
  --- Volume group ---
  VG Name               data
  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               10.00 GiB
  PE Size               10.00 MiB
  Total PE              1024
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1024 / 10.00 GiB
  VG UUID               LT91Nk-Gr7j-ELQO-xRcq-cNad-dXiB-wGX7QS

    快照卷与原卷必须在同一个卷组中,因此,创建快照卷之前要确保原卷所在的卷组中有足够空间可用。
    虽然快照卷无须与原卷大小相同,但其大小取决于快照卷的存活时长内原卷的数据变化量。
    快照卷标不能进行修改,创建快照使用lvcreat -s。

[root@localhost ~]# lvcreate -s -L 10G -n data-snap -p r /dev/data/datalv
  Reducing COW size 10.00 GiB down to maximum usable size 8.05 GiB.
  Logical volume "data-snap" created.

[root@localhost ~]# ll /data/
total 14
-rw-r--r-- 1 root root  1775 Dec 20 14:37 boot.log
drwx------ 2 root root 12288 Dec 20 14:35 lost+found
[root@localhost ~]# mount /dev/data/data-snap /backup/
mount: block device /dev/mapper/data-data--snap is write-protected, mounting read-only

[root@localhost ~]# ll  /data/
total 14
-rw-r--r-- 1 root root  1775 Dec 20 14:37 boot.log
drwx------ 2 root root 12288 Dec 20 14:35 lost+found
[root@localhost data]# ll /backup/
total 14
-rw-r--r-- 1 root root  1775 Dec 20 14:37 boot.log
drwx------ 2 root root 12288 Dec 20 14:35 lost+found




[root@localhost data]# umount /backup/
[root@localhost data]# lvs
  LV        VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data-snap data sri-a-s---  8.05g      datalv 0.00                                   
  datalv    data owi-aos---  8.01g                                                    
  root      vg0  -wi-ao---- 20.00g                                                    
  swap      vg0  -wi-ao----  2.00g                                                    
  usr       vg0  -wi-ao---- 10.00g                                                    
  var       vg0  -wi-ao---- 20.00g                                                    
[root@localhost data]# lvremove /dev/data/data-snap 
Do you really want to remove active logical volume data-snap? [y/n]: y
  Logical volume "data-snap" successfully removed
[root@localhost data]# lvs
  LV     VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  datalv data -wi-ao----  8.01g                                                    
  root   vg0  -wi-ao---- 20.00g                                                    
  swap   vg0  -wi-ao----  2.00g                                                    
  usr    vg0  -wi-ao---- 10.00g                                                    
  var    vg0  -wi-ao---- 20.00g

[root@localhost data]# cd

[root@localhost ~]# umount /data
[root@localhost ~]# lvremove /dev/data/datalv 
Do you really want to remove active logical volume datalv? [y/n]: y
  Logical volume "datalv" successfully removed
[root@localhost ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0  -wi-ao---- 20.00g                                                    
  swap vg0  -wi-ao----  2.00g                                                    
  usr  vg0  -wi-ao---- 10.00g                                                    
  var  vg0  -wi-ao---- 20.00g                                                    
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sda2  vg0  lvm2 a--  59.99g  7.99g
  /dev/sda5  data lvm2 a--   5.00g  5.00g
  /dev/sda6  data lvm2 a--   5.00g  5.00g
  /dev/sda7  data lvm2 a--   5.00g  5.00g
  /dev/sda8  data lvm2 a--  10.00g 10.00g
[root@localhost ~]# vgremove data
  Volume group "data" successfully removed
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sda2  vg0  lvm2 a--  59.99g  7.99g
  /dev/sda5       lvm2 ---   5.01g  5.01g
  /dev/sda6       lvm2 ---   5.01g  5.01g
  /dev/sda7       lvm2 ---   5.01g  5.01g
  /dev/sda8       lvm2 ---  10.00g 10.00g
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  vg0    1   4   0 wz--n- 59.99g 7.99g
[root@localhost ~]# pvremove /dev/sda5
  Labels on physical volume "/dev/sda5" successfully wiped
[root@localhost ~]# pvremove /dev/sda6
  Labels on physical volume "/dev/sda6" successfully wiped
[root@localhost ~]# pvremove /dev/sda7
  Labels on physical volume "/dev/sda7" successfully wiped
[root@localhost ~]# pvremove /dev/sda8
  Labels on physical volume "/dev/sda8" successfully wiped

[root@localhost ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0  -wi-ao---- 20.00g                                                    
  swap vg0  -wi-ao----  2.00g                                                    
  usr  vg0  -wi-ao---- 10.00g                                                    
  var  vg0  -wi-ao---- 20.00g                                                    
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  vg0    1   4   0 wz--n- 59.99g 7.99g
[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sda2  vg0  lvm2 a--  59.99g 7.99g
[root@localhost ~]#


你可能感兴趣的:(lvm逻辑卷管理)