Use LVM with your server
我们在使用服务器的时候会遇到各种各样的问题,比如今天要说的硬盘管理。
在服务器刚开始使用的时候一般只装配了现阶段要使用的容量,究其原因
- 资金有限,不能一步到位
- 前期无法得知需要多大容量,需要使用一段时间才能评估
- 类似需要时增加配额的策略
而如果当发现硬盘容量不够需要增加时,如果安装普通mount方法,需要准备一个更大的硬盘,把原始盘的内容复制过来。
这个操作会带来一定的风险:
- 复制需要一定的时间,在复制过程中原始盘内容可能又会增加
- 使用新盘后,原始盘多了出来,不能重复使用。
- 无法使用多盘来有效分散IO读写压力
使用LVM就可以克服以上的问题。
LVM(Logical Volume Manager) 是逻辑卷管理的简写。LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
这里涉及到几个概念
- 物理介质
- 物理卷
- 卷组
- 逻辑卷
朴素的原理是:物理卷建立在物理介质上,一个或者几个物理卷组成一个卷组,从卷组里分割出一个或者几个逻辑卷。
通过这种方式,可以动态增加物理介质从而增加逻辑卷的大小。
based on:
- a disk /dev/xvdd more than 50G
ubuntu 12.04 LTS
install lvm2
sudo apt-get install lvm2
create a pysical volume
sudo pvcreate /dev/xvdd
create a volume group with name
yun
sudo vgcreate yun /dev/xvdd
create a logical volume named
gp
from vg yun with 50 giga bytessudo lvcreate -L 50G -n pg yun
use max size of vg to create a lv
sudo lvcreate -l 100%FREE -n pg yun #
format the logical volume
sudo mkfs.ext4 /dev/mapper/yun-pg
mount the lv
sudo mount /dev/mapper/yun-pg /mnt
add new device
sudo pvcreate /dev/xvde
extend vg
sudo vgextend yun /dev/mapper/yun-pg
extend lv to 8G
sudo lvextend -L8G yun-pg
extend lv with extra 8G
sudo lvextend -L+8G /dev/mapper/yun-pg