Ubuntu增加新硬盘并扩展LVM

使用虚拟机安装Ubuntu LTS 14.04,刚开始只分配了20G的硬盘,采用LVM的方式进行管理。安装了几个数据库应用后发觉空间剩余不多,之能再添加了一个40G的硬盘上去,还好用LVM,扩展不是太麻烦。

  1. 查看硬盘是否增加

shell>ls -la /dev |grep sdb

  1. 格式化新硬盘(根据自身情况分区)

shell>fdisk -l /dev/sdb
shell>fdisk /dev/sdb
shell>n
shell>p
shell>
shell>
shell>t
shell>8e
shell>w

  1. 增加新的PV

pvcreate /dev/sdb1

  1. 扩展VG

查看VG的名称

shell>vgdisplay | grep “VG Name”
扩展VG

shell>vgextend ubuntu-vg /dev/sdb1
验证操作

shell>pvdisplay

  1. 将新空间分配到LV

查看要增加的LV名称

shell>lvdisplay
增加空间

shell>lvextend -L +30G /dev/ubuntu-vg/root
shell>resize2fs /dev/ubuntu-vg/root
验证操作

Shell
shell>df -lh

LVM一种支持在线增大和减小的分区技术
一、PV物理卷
由分区架构而成,为卷组提供空间。
二、VG卷组
由一个或多个物理卷组成,为LV提供空间。
三、LV逻辑卷
从卷组中获取空间,形成一个新的可用的LVM分区。
四、制作逻辑卷。
1、创建PV(在创建PV之前需要创建一个可用的分区,并且ID为8e)

# fdisk /dev/hda 对第一块IDE硬盘进行操作。这取决于你的环境。
The number of cylinders for this disk is set to 14593.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n 新建一个分区
First cylinder (5421-14593, default 5421):
Using default value 5421
Last cylinder or +size or +sizeM or +sizeK (5421-14593, default 14593): +500M 给他500M的空间。
Command (m for help): p 查看一下当前硬盘分区的情况。
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 3837 30716280 83 Linux
/dev/hda3 3838 5112 10241437+ 83 Linux
/dev/hda4 5113 14593 76156132+ 5 Extended
/dev/hda5 5113 5243 1052226 82 Linux swap / Solaris
/dev/hda6 5244 5308 522081 8e Linux LVM
/dev/hda7 5309 5370 497983+ 83 Linux
/dev/hda8 5371 5420 401593+ 8e Linux LVM
/dev/hda9 5421 5482 497983+ 83 Linux
(这是新建的那快分区)
Command (m for help): t 修改分区的表示符
Partition number (1-9): 9 选择对第9个分区进行操作
Hex code (type L to list codes): 8e 将标识符改为8e(只有将标识符改为8e才能支持LVM)
Changed system type of partition 9 to 8e (Linux LVM)
Command (m for help): p 再次查看一下
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 3837 30716280 83 Linux
/dev/hda3 3838 5112 10241437+ 83 Linux
/dev/hda4 5113 14593 76156132+ 5 Extended
/dev/hda5 5113 5243 1052226 82 Linux swap / Solaris
/dev/hda6 5244 5308 522081 8e Linux LVM
/dev/hda7 5309 5370 497983+ 83 Linux
/dev/hda8 5371 5420 401593+ 8e Linux LVM
/dev/hda9 5421 5482 497983+ 8e Linux LVM
(当前第9快分区的类型变成了8e,LVM)
Command (m for help): w 保存退出

# partprobe 重新加载分区,不加载或重启的话当前系统无法识别这个新的分区)
# pvcreate /dev/hda9 (将hda9这个分区制作成物理卷)
Physical volume “/dev/hda9” successfully created
# pvdisplay 查看PV的内容
— Physical volume —
PV Name /dev/hda9
VG Name
PV Size 486.31 MB / not usable 2.31 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 121
Free PE 121
Allocated PE 0
PV UUID 0pE20O-EWqI-JtTY-gmeX-VJck-GUb0-Mxvx5v
(从这些信息可以看出,/dev/hda9这个物理卷不属于任何VG,它的磁盘空间为486M)
2、创建VG
# vgcreate vg /dev/hda9
Volume group “vg” successfully created
将hda9这个物理卷加入到vg这个组里(vg为自己定义的名字)

# vgdisplay
— Volume group —
VG Name vg
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 484.00 MB
PE Size 4.00 MB
Total PE 121
Alloc PE / Size 0 / 0
Free PE / Size 121 / 484.00 MB
VG UUID 6yOerB-EExr-sY0E-KFwO-fg0D-9Zol-RypiT5
现在查看一下,vg这个卷组就拥有了484M的空间也就是/dev/hda9这个逻辑卷的空间
3、创建LV

# lvcreate -L 300M -n lv vg
Logical volume “lv” created
创建一个LV,并给他指定拥有300M的空间,vg为指定它属于哪个卷组,也就是由哪个卷组为它提供这300M的空间。

# lvdisplay
— Logical volume —
LV Name /dev/vg/lv
VG Name vg
LV UUID HIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
LV Write Access read/write
LV Status available
# open 0
LV Size 300.00 MB
Current LE 75
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 256
    Block device 253:1
    现在查看一下LV信息,现在这个lv属于vg这个卷组并拥有300M的空间
    5、格式化文件系统

# mkfs.ext3 /dev/vg/lv 将lv这个逻辑卷格式化为ext3文件系统
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
76912 inodes, 307200 blocks
15360 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
38 block groups
8192 blocks per group, 8192 fragments per group
2024 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
6、挂载

# mount /dev/vg/lv /lv 将/dev/vg/lv这个分区挂在到/下的lv下

# df -H /lv/
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg-lv 305M 11M 279M 4% /lv
查看一下/lv这个分区的大小,300M
到现在为止,我们已经成功的创建了一个逻辑卷,但别忘了。逻辑卷最大的功能是增大和减小,下面我们来对逻辑卷进行增大和减小。
7、增大逻辑卷

# lvextend -L 500M /dev/vg/lv
Extending logical volume lv to 500.00 MB
Insufficient free space: 50 extents needed, but only 46 available

# lvdisplay
— Logical volume —
LV Name /dev/vg/lv
VG Name vg
LV UUID HIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
LV Write Access read/write
LV Status available
# open 1
LV Size 300.00 MB
Current LE 75
Segments 1
Allocation inherit
Read ahead sectors auto currently set to 256
Block device 253:1
这是一个失败的例子,因为lv所属的vg只有484M,所以当我将lv扩增到500M的时候会失败,因为vg无法为lv提供500M的空间。查看一下,lv仍然只有300M。

# lvextend -L 480M /dev/vg/lv
Extending logical volume lv to 480.00 MB
Logical volume lv successfully resized

# lvdisplay
— Logical volume —
LV Name /dev/vg/lv
VG Name vg
LV UUID HIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
LV Write Access read/write
LV Status available
# open 1
LV Size 480.00 MB
Current LE 120
Segments 1
Allocation inherit
Read ahead sectors auto currently set to 256
Block device 253:1
现在我将lv扩增到480M,480M是vg所允许的空间大小,查看一下现在成功了。Lv被成功的扩增到了480M。
8、增大文件系统

# df -H /lv/
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg-lv 305M 11M 279M 4% /lv
查看一下文件系统大小,lv这个文件系统仍是300M,因为我们之前扩展的只是它的分区大小,文件大小并没有增大,所以我们仍然只能使用300M的空间

# resize2fs /dev/vg/lv 480M
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg/lv is mounted on /lv; on-line resizing required
Performing an on-line resize of /dev/vg/lv to 491520 (1k) blocks.
The filesystem on /dev/vg/lv is now 491520 blocks long.

# df -H /lv
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg-lv 488M 11M 452M 3% /lv
现在用resize这个工具将/dev/vg/lv这个文件系统扩展到488M,查看一下成功了。
*注:文件系统是建立在分区之上的,分区为我们提供空间,而我们真正能直接使用的是文件系统,例如windows下我们使用的ntfs文件系统一样。而在linux下使用的是ext3格式的文件系统。所以文件系统只能比分区小,不能比分区大。
9、缩小文件系统和分区
(1)减小文件系统时需要现卸载,因为resize这个工具不支持在线减小。

# umount /lv 卸载

# e2fsck -f /dev/vg/lv
e2fsck 1.39 (29-May-2006)
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/vg/lv: 11/121440 files (9.1% non-contiguous), 25872/491520 blocks
在减小文件系统之前需要先检查一下分区的完整性。

# resize2fs /dev/vg/lv 100M 将文件系统减小到100M
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg/lv to 102400 (1k) blocks.
The filesystem on /dev/vg/lv is now 102400 blocks long.
(2)缩小分区

# lvreduce -L 100M /dev/vg/lv
WARNING: Reducing active logical volume to 100.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv? [y/n]: y
Reducing logical volume lv to 100.00 MB
Logical volume lv successfully resized
将分区缩小到100M

# mount /dev/vg/lv /lv/

# df -H /lv/
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg-lv 102M 11M 88M 11% /lv

# lvdisplay
— Logical volume —
LV Name /dev/vg/lv
VG Name vg
LV UUID HIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
LV Write Access read/write
LV Status available
# open 1
LV Size 100.00 MB
Current LE 25
Segments 1
Allocation inherit
Read ahead sectors auto currently set to 256
Block device 253:1
挂载、查看,成功!文件系统和分区都为100M
10、增大与减小VG
这个很简单,VG是由多个物理卷构成的,只要将物理卷加入VG就可以实现增容,移出就能实现减小。

# pvcreate /dev/hda10 将一块新的lvm格式的分区做成物理卷
Physical volume “/dev/hda10” successfully created

# vgextend vg /dev/hda10 将hda10这个分区加入到vg这个组
Volume group “vg” successfully extended

# vgdisplay
— Volume group —
VG Name vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
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 968.00 MB
PE Size 4.00 MB
Total PE 242
Alloc PE / Size 25 / 100.00 MB
Free PE / Size 217 / 868.00 MB
VG UUID 6yOerB-EExr-sY0E-KFwO-fg0D-9Zol-RypiT5
现在查看一下,VG这个卷组拥有了将近1G的空间。
减小、
root@station19 media]# vgreduce vg /dev/hda10
Removed “/dev/hda10” from volume group “vg”

# vgdisplay
— Volume group —
VG Name vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 484.00 MB
PE Size 4.00 MB
Total PE 121
Alloc PE / Size 25 / 100.00 MB
Free PE / Size 96 / 384.00 MB
VG UUID 6yOerB-EExr-sY0E-KFwO-fg0D-9Zol-RypiT5
将hda10这个物理卷从VG中移出,再查看,VG又被减小了。

You May Also Like

About the Author: ice.zhai

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注