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 ~]#


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章