任务一:初始化磁盘或者磁盘分区
root@king:/etc/apt# fdisk -l
#
#
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001b5c2
可见到/dev/sdb为在虚拟机管理器中新创建的虚拟磁盘。
root@king:/etc/apt# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
root@king:/etc/apt# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created
不推荐使用整个磁盘作为物理卷。因为任何其它系统都没法识别LVM的元数据,会当做空白磁盘进行写入操作。 查看物理卷
root@king:~# pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name my_volume_group
PV Size 1.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 255
Free PE 255
Allocated PE 0
PV UUID I4v2Y8-5Bec-QxKH-fx2G-Aatb-SGvN-bO0wIE
--- Physical volume ---
PV Name /dev/sdb2
VG Name my_volume_group
PV Size 2.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 511
Free PE 511
Allocated PE 0
PV UUID Qprdh0-bhgx-elJG-1grk-h4Uu-kgBt-TVFELH
任务二:创建卷组
root@king:~# vgcreate my_volume_group /dev/sdb1 /dev/sdb2
Volume group "my_volume_group" successfully created
#查看VG
root@king:~# vgdisplay
--- Volume group ---
VG Name my_volume_group
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 2.99 GiB
PE Size 4.00 MiB
Total PE 766
Alloc PE / Size 0 / 0
Free PE / Size 766 / 2.99 GiB
VG UUID 3fJpp8-N7iV-7egR-8O3x-E5nx-qusx-wkGAcl
如果物理块大小不合适可通过命令修改。
任务三:激活卷组
重启系统或者运行vgchange -an 后,卷组和逻辑卷将不可用。重新激活卷组运行:
# vgchange -a y my_volume_group
任务四:移除卷组
当确认卷组内没有逻辑卷后,可以禁用卷组。
# vgchange -a n my_volume_group
#移除
# vgremove my_volume_group
任务五:增加物理卷到某一卷组
root@king:~# vgextend my_volume_group /dev/sdb3
No physical volume label read from /dev/sdb3
Physical volume "/dev/sdb3" successfully created
Volume group "my_volume_group" successfully extended
任务六:从卷组移除物理卷
root@king:~# pvdisplay /dev/sdb3
--- Physical volume ---
PV Name /dev/sdb3
VG Name my_volume_group
PV Size 1.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 255
Free PE 255
Allocated PE 0
PV UUID 8eb21D-yy8V-FTMA-lnVT-rKUu-riYA-C4ygoW
#可以看出分配为0,如果有使用,必须迁移数据使用pvmove
root@king:~# vgreduce my_volume_group /dev/sdb3
Removed "/dev/sdb3" from volume group "my_volume_group"
任务七:创建逻辑卷Logical Volume
root@king:~# lvcreate -L200 -ntestlv my_volume_group
Logical volume "testlv" created
root@king:~# lvdisplay
--- Logical volume ---
LV Path /dev/my_volume_group/testlv
LV Name testlv
VG Name my_volume_group
LV UUID vPqtej-3xtc-bOhM-6LyR-TML1-MT4R-Dak9Gi
LV Write Access read/write
LV Creation host, time king, 2014-07-27 13:51:29 +0800
LV Status available
# open 0
LV Size 200.00 MiB
Current LE 50
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
#给定大小,逻辑卷名,所属卷组创建逻辑卷。
root@king:~# lvcreate -i2 -I4 -l100 -nanothertestlv my_volume_group
Logical volume "anothertestlv" created
root@king:~# lvdisplay
--- Logical volume ---
LV Path /dev/my_volume_group/testlv
LV Name testlv
VG Name my_volume_group
LV UUID vPqtej-3xtc-bOhM-6LyR-TML1-MT4R-Dak9Gi
LV Write Access read/write
LV Creation host, time king, 2014-07-27 13:51:29 +0800
LV Status available
# open 0
LV Size 200.00 MiB
Current LE 50
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/my_volume_group/anothertestlv
LV Name anothertestlv
VG Name my_volume_group
LV UUID nJshWf-RAbl-P7zI-VVKS-1kLq-Ll0v-LcSTfz
LV Write Access read/write
LV Creation host, time king, 2014-07-27 13:53:50 +0800
LV Status available
# open 0
LV Size 400.00 MiB
Current LE 100
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
#给定条带数,条带大小已经,逻辑块大小创建逻辑卷。
# vgdisplay testvg | grep "Total PE"
Total PE 10230
# lvcreate -l 10230 testvg -n mylv
#使用整个卷组创建逻辑卷。
root@king:~# lvcreate -L 300 -nkinglv my_volume_group /dev/sdb2
Logical volume "kinglv" created
在命令结尾指定特定物理卷作为逻辑卷的组成。
任务八:移除逻辑卷
逻辑卷必须关闭使用才可以移除,例如从相应路径卸载。
root@king:~# umount /dev/my_volume_group/testlv
root@king:~# lvremove /dev/my_volume_group/testlv
Do you really want to remove and DISCARD active logical volume testlv? [y/n]: y
Logical volume "testlv" successfully removed
任务九:扩展逻辑卷
#扩展逻辑卷可以指定扩展的量或者指定扩展的目的大小。
root@king:~# lvdisplay
--- Logical volume ---
LV Path /dev/my_volume_group/anothertestlv
LV Name anothertestlv
VG Name my_volume_group
LV UUID nJshWf-RAbl-P7zI-VVKS-1kLq-Ll0v-LcSTfz
LV Write Access read/write
LV Creation host, time king, 2014-07-27 13:53:50 +0800
LV Status available
# open 0
LV Size 400.00 MiB
Current LE 100
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
--- Logical volume ---
LV Path /dev/my_volume_group/kinglv
LV Name kinglv
VG Name my_volume_group
LV UUID oVMYB3-Jc5L-0BQZ-J89F-WWvc-A3Nl-Pj2II1
LV Write Access read/write
LV Creation host, time king, 2014-07-27 13:58:25 +0800
LV Status available
# open 0
LV Size 300.00 MiB
Current LE 75
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:2
root@king:~# lvextend -L500 /dev/my_volume_group/kinglv
Extending logical volume kinglv to 500.00 MiB
Logical volume kinglv successfully resized
#扩展到500M
root@king:~# lvdisplay /dev/my_volume_group/kinglv
--- Logical volume ---
LV Path /dev/my_volume_group/kinglv
LV Name kinglv
VG Name my_volume_group
LV UUID oVMYB3-Jc5L-0BQZ-J89F-WWvc-A3Nl-Pj2II1
LV Write Access read/write
LV Creation host, time king, 2014-07-27 13:58:25 +0800
LV Status available
# open 0
LV Size 500.00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:2
# 扩展完逻辑卷,增加文件系统大小使两者相匹配是必要的。如何做取决你使用的文件系统。大多数文件系统调整工具会增加你扩展逻辑卷的大小。
#对于文件系统ext2、ext3,除非你打过ext2online的内核包,否则需要在更改大小之前卸载文件系统。
root@king:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 5.8G 963M 4.6G 18% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 492M 4.0K 492M 1% /dev
tmpfs 101M 408K 100M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 501M 0 501M 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/mapper/my_volume_group-kinglv 673M 712K 624M 1% /mnt
# 扩展之前的挂载大小,扩展后逻辑卷800M
root@king:~# lvdisplay /dev/my_volume_group/kinglv
--- Logical volume ---
LV Path /dev/my_volume_group/kinglv
LV Name kinglv
VG Name my_volume_group
LV UUID oVMYB3-Jc5L-0BQZ-J89F-WWvc-A3Nl-Pj2II1
LV Write Access read/write
LV Creation host, time king, 2014-07-27 13:58:25 +0800
LV Status available
# open 1
LV Size 800.00 MiB
Current LE 200
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:2
#预先卸载路径
root@king:~# umount /dev/my_volume_group/kinglv
root@king:~# resize2fs /dev/my_volume_group/kinglv
resize2fs 1.42.9 (4-Feb-2014)
Please run 'e2fsck -f /dev/my_volume_group/kinglv' first.
#更改大小时提示先扫描
root@king:~# e2fsck -f /dev/my_volume_group/kinglv
e2fsck 1.42.9 (4-Feb-2014)
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
/dev/my_volume_group/kinglv: 11/44832 files (0.0% non-contiguous), 7096/179200 blocks
root@king:~# resize2fs /dev/my_volume_group/kinglv
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/my_volume_group/kinglv to 204800 (4k) blocks.
The filesystem on /dev/my_volume_group/kinglv is now 204800 blocks long.
#之后再运行调整命令,之后再挂载检测
root@king:~# mount /dev/my_volume_group/kinglv /mnt/
root@king:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 5.8G 963M 4.6G 18% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 492M 4.0K 492M 1% /dev
tmpfs 101M 408K 100M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 501M 0 501M 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/mapper/my_volume_group-kinglv 772M 712K 715M 1% /mnt
任务十:缩减逻辑卷
和扩展一样,逻辑卷可以缩减。同时相应的缩减文件系统大小。先卸载设备
root@king:~# e2fsck -f /dev/my_volume_group/kinglv
e2fsck 1.42.9 (4-Feb-2014)
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
/dev/my_volume_group/kinglv: 11/52304 files (0.0% non-contiguous), 7565/204800 blocks
root@king:~# resize2fs /dev/my_volume_group/kinglv 700M
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/my_volume_group/kinglv to 179200 (4k) blocks.
The filesystem on /dev/my_volume_group/kinglv is now 179200 blocks long.
#执行缩减
root@king:~# lvreduce -L-100 /dev/my_volume_group/kinglv
WARNING: Reducing active logical volume to 700.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce kinglv? [y/n]: y
Reducing logical volume kinglv to 700.00 MiB
Logical volume kinglv successfully resized
root@king:~# lvdisplay /dev/my_volume_group/kinglv
--- Logical volume ---
LV Path /dev/my_volume_group/kinglv
LV Name kinglv
VG Name my_volume_group
LV UUID oVMYB3-Jc5L-0BQZ-J89F-WWvc-A3Nl-Pj2II1
LV Write Access read/write
LV Creation host, time king, 2014-07-27 13:58:25 +0800
LV Status available
# open 0
LV Size 700.00 MiB
Current LE 175
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:2
任务十一:从物理卷迁离数据
首先备份文件系统,然后执行pvmove操作。
root@king:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 5.8G 963M 4.6G 18% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 492M 4.0K 492M 1% /dev
tmpfs 101M 404K 100M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 501M 0 501M 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/mapper/my_volume_group-kinglv 93M 1.6M 85M 2% /mnt
root@king:/# lvdisplay /dev/my_volume_group/kinglv
--- Logical volume ---
LV Path /dev/my_volume_group/kinglv
LV Name kinglv
VG Name my_volume_group
LV UUID lAT5Te-obE1-Q3dY-pU4r-YYDt-rSRu-hgmKQP
LV Write Access read/write
LV Creation host, time king, 2014-07-27 14:43:41 +0800
LV Status available
# open 1
LV Size 100.00 MiB
Current LE 25
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
#逻辑卷kinglv指定物理卷/dev/sdb3
#如果卷组有足够的空闲块,直接运行命令
root@king:/# pvmove /dev/sdb3
/dev/sdb3: Moved: 76.0%
/dev/sdb3: no pvmove in progress - already finished or aborted.
#pvmove是很慢的。之后从卷组移除旧的物理卷
root@king:/# vgreduce my_volume_group /dev/sdb3
Removed "/dev/sdb3" from volume group "my_volume_group"
#如果空间不足,就增加新物理卷然后pvmove,最后移除旧的物理卷。
root@king:/# pvcreate /dev/sdb4
Physical volume "/dev/sdb4" successfully created
root@king:/# vgextend my_volume_group /dev/sdb4
Volume group "my_volume_group" successfully extended