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