LVM 分区


LVM的安装:
加载device-mapper模块
从linux内核2.6.9开始,device-mapper模块就已经包含在内,所以你只需加载即可。
查看系统内核版本:#uanme -a
加载mapper模块:#modprobe dm_mod
查看是否已经加载:#lsmod | grep dm_mod
出现如下输出,即表示加载成功:dm_mod 63097 4 dm_mirror,dm_multipath,dm_raid45,dm_log
如果内核高于2.6.9却没有此模块,可以使用yum install device-mapper命令安装。
最后安装LVM2:#yum -y install lvm2

一、创建 LVM 逻辑卷

一个分区和一个硬盘也可以创建一个 vg; 如果是分区就先转化成 8e lvm 分区;
若将整个虚拟硬盘sdb创建成pv,在将虚拟硬盘扩大后可以使用
#pvresize -v /dev/sdb 来扩容pv和vg
若将虚拟硬盘的分区创建成pv,在将虚拟硬盘扩大后
可以将新增的空间建立新分区,将新分区创建成新的pv

# pvcreate /dev/sda  //将整个硬盘创建成物理卷
# pvcreate /dev/sdb1  //将分区创建成物理卷
# vgcreate  vg_name  /dev/sda  /dev/sdb1  //创建卷组
# lvcreate  -n  lv_name  -L  2G  vg_name  //创建逻辑卷 (整个vg用 -l 100%free)
# pvs、vgs、lvs   //查看信息
# pvdisplay、vgdisplay、lvdisplay    //显示详细信息

二、格式化并使用我们的逻辑卷

# mkfs.ext4  /dev/vg_name/lv_name     //格式化
# mount  /dev/vg_name/lv_name /mnt   //挂载

三、删除逻辑卷

# umount /mnt   //卸载逻辑卷
# lvremove   /dev/vg_name/lv_name   //删除逻辑卷
# vgremove   vg_name   //删除卷组
# pvremove  /dev/sdb     //删除物理卷

四、扩展逻辑卷

# pvcreate   /dev/sdc    //首先创建物理卷
# vgextend  vg_name  /dev/sdc   //将物理卷加到卷组中
# lvextend  -L +10g  /dev/vg_name/lv_name    //扩展逻辑卷 10g
# lvextend  -l  +100%free  /dev/vg_name/lv_name   //扩展所有剩余
# e2fsck /dev/vg_name/lv_name     //检查文件系统
# resize2fs /dev/vg_name/lv_name  //更新文件系统
xfs格式的文件系统更新需要使用 xfs_growfs /dev/vg_name/lv_name 进行更新

五、缩小逻辑卷

注意:缩小逻辑卷的操作必须要先卸载掉逻辑卷,然后先缩小文件系统,最后再来缩小逻辑 卷才行! 1.卸载已经挂载的逻辑卷
# umount /mnt
2.缩小文件系统(会提示需要运行 fsck 来检查文件系统)
# e2fsck  -f  /dev/vg_name/lv_name   //检查文件系统
# resize2fs  10G   //将文件系统缩小到 10G
3.缩小 LV
# lvreduce  -L  -4G  /dev/vg_name/lv_name   //将逻辑卷缩小 4G

六、VG 的缩减

注意:pvmove 和 pvremove 操作的不同:pvmove 是移动数据,而 pvremove 是删除 PV.
VG 上的操作并不会影响 lv 中的数据
使用 pvmove 将此 PV 上的数据转移到其它 PV, 如果不指定目标 PV 则转移到同卷 组的其它 PV 上
# pvmove  /dev/sda  to  /dev/sdb
# vgreduce  vg_name  /dev/sda   //从卷组中将此 PV 移除
# pvremove /dev/sda   //删除 pv 的物理卷

六、扫描及激活卷组
重装系统后需要激活卷组
vgchange -ay vgname (vgname为卷组名)

七、其他操作
1.#pvscan #vgscan #lvscan //扫描所有pv、vg、lv
2.#pvdisplay #vgdisplay #lvdisplay //显示出所有pv、vg、lv的信息
3.#vgrename VG_UUID VG_NAME //重命名卷组
4.通过 lvscan 可以查看vg是否激活(active为激活;inactive为未激活)
5.#vgchange -ay vgname //激活卷组
6.#vgreduce --removemissing /dev/vgname //去除vg中未知或已丢失的pv