LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,LVM将一個或多個硬碟的分區在邏輯上集合,相當于一個大硬碟來使用,當硬碟的空間不夠使用的時候,可以繼續将其它的硬碟的分區加入其中,這樣可以實作磁盤空間的動态管理,相對于普通的磁盤分區有很大的靈活性。與傳統的磁盤與分區相比,LVM為計算機提供了更高層次的磁盤存儲。它使系統管理者可以更友善的為應用與使用者配置設定存儲空間。在LVM管理下的存儲卷可以按需要随時改變大小與移除(可能需對檔案系統工具進行更新)。LVM也允許按使用者組對存儲卷進行管理,允許管理者用更直覺的名稱(如"sales‘、‘development‘)代替實體磁盤名(如‘sda‘、‘sdb‘)來辨別存儲卷。
如圖所示LVM模型:

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