关于LVM的逻辑结构:
【物理磁盘分区】-创建->【PV(Physical volume)】-组成->【VG(Volume group)】-划分->【LV(Logical volume)】-挂载->【文件系统挂载点】
新增物理盘对LV卷在线扩容:
- 对新增硬盘分区
df -ah
fdisk -l
fdisk /dev/sda
n -->创建分区
t -->修改分区类型为8e
w -->保存结果
- 将分区容量加入VG
pvcreate /dev/sda3 -->创建PV
lvs -->查看确认待扩容的VG名
vgextend VolGroup00 /dev/sda3 -->将sda3扩入VG00
- 对LV进行扩容
lvextend -L +2G /dev/mapper/VolGroup00-LogVol00 -->扩展LV00,增加2G
e2fsck –f /dev/VolGroup00/LogVol00 -->强行检查data逻辑卷
resize2fs /dev/VolGroup00/LogVol00 -->重定义文件系统大小
**以上三步要按顺序进行,用以下一条命令可以达到上面三条命令相同的效果:
e2fsadm –L +2G /dev/mapper/VolGroup00-LogVol00df -ah -->最后查看调整后的分区挂载情况
lvdisply -->查看LV更改后的状态
lvscan -->扫描逻辑卷,看它们的活动情况
如果新增LV卷:
lvcreate –n LogVol01 –L 5G VolGroup00 -->从VG00中创建一个新的LV01,大小5G
mkfs.ext3 /dev/VolGroup00/LogVol01 -->格式化LV01
mke2fs /dev/VolGroup00/LogVol01 -->在LV上建立文件系统
**有些操作需强制卸载挂载点
umount /dev/mapper/VolGroup00-LogVol00 -l -->卸载下LV00,即/挂载点
====================================================================================
- 调整根分区/
如果要使根分区 / 使用LVM设备,需先创建好LVM设备,再用lvmcreate-initrd命令在boot分区创建支持lvm功能的虚拟磁盘镜像文件,最后修改grub.conf加载此镜像文件[修改fstab文件将/指向LV]
如果不能通过lvmcreate-initrd生成img,则可以按照下面方法手工修改init文件:
If your initrd script is called /boot/initrd-xxxxxxxxx.img, then you can unpack it with:
mkdir /tmp/initrd
cd /tmp/initrd
gzip -cd /boot/initrd-xxxxxxxxx.img | cpio -imd --quiet
编辑 /tmp/initrd/init ,修改对应的LV信息,然后再重新打包:
cd /tmp/initrd
find . | cpio -co | gzip -9 > /boot/initrd-xxxxxxxxx.img
- 调整Swap
vgdisplay -->查看VG里面是否有剩余空间
swapoff -a -->关闭正在用的swap分区
lvextend -L +512M /dev/mapper/VolGroup00-LogVol01 -->扩展用于交换分区的LV
mkswap /dev/ubuntu/swap_1 -->建立swap的文件系统
swapon -a -->启用新的swap系统
====================================================================================
LVM常用操作参考:
- 查看:
pvdisplay vgdisplay lvdisplay pvs vgs lvs
- 建立:
pvcreate /dev/{sda,sdb}
vgcreate vg01 /dev/sda /dev/sdb
lvcreate --size 40G -n LVname VGname
- 增加LV:
lvresize 60G /dev/vg/lv
resize2fs 60G /dev/vg/lv
- 减小LV:
umount /dev/vg/lv
resize2fs 20G /dev/vg/lv
lvresize 20G /dev/vg/lv
- 删除磁盘:
pvmove /dev/sda1 /dev/sda2
vgreduce uplooking /dev/sda1
pvremove /dev/sda1
- 扩充磁盘:
pvcreate /dev/sdb
vgextend VGname /dev/sdb
====================================================================================
LVM命令集合参考:
- PV:
pvchange pvcreate pvmove pvresize pvscan
pvck pvdisplay pvremove pvs - VG:
vgcfgbackup vgconvert vgextend vgreduce vgscan
vgcfgrestore vgcreate vgimport vgremove vgsplit
vgchange vgdisplay vgmerge vgrename
vgck vgexport vgmknodes vgs - LV:
lvconvert lvdisplay lvresize lvchange lvextend lvreduce
lvremove lvscan lvcreate lvrename lvs - LVM:
lvm lvmchange lvmdump lvmdiskscan lvmsar lvmsadc
====================================================================================
LVM高级应用:
减小PV:# 风险较大,不建议应用于生产环境
pvresize -t --setphysicalvolumesize 45G -v /dev/sda6 可以再继续
pvresize --setphysicalvolumesize 45G -v /dev/sda6
fdisk /dev/sda6
d掉6 再n +45G t 8e w
partprobe
pvscan
如果在删除某LV后,没有在fstab里将该挂载点去掉,可能会导致重启后无法进入系统,并提示输入root密码进入维护模式或者按Ctrl+D重启。
修复方法如下:
由于该模式下是以read-only挂载分区的,所以需要重新挂载/使其可读写:
(Repair Filesystem)#mount -o remount,rw /
(Repair Filesystem)#vi /etc/fstab 编辑fstab文件
#/dev/mapper/asr_dbp1 /db ext3 defaults 1 2 去掉无效的LV或者磁盘挂载语句
<<保存退出>>
(Repair Filesystem)#reboot 重启系统
对于其它问题引起的进入维护模式也可以尝试逐个检查磁盘分区
(Repair Filesystem)#fsck /dev/hdaX
Comments
Post a Comment