TIP:当/boot分区被删除而且/etc/fstab也被删除,而且以前的问价系统是创建在逻辑卷之上的,那么进入救援模式需要激活逻辑卷(vgchange -ay)
假定1,某公司因后续线上要业务拓展,在Linux服务器需要做可扩展分区,sdb 5G 和 sdc 10G (最后的vg用ext4文件系统类型 要求创建两个分区c1 4G和c2 6G) 系统上还有一块硬盘sda 200G 可用空间大约剩余100G,,当lvm卷空间不够用时,后续往里添加空间。如何实现?
注意事项,如果是xfs文件系统类型,只能实现扩展空间,不能实现缩减空间。
1,查看分区详情
[Wed Mar 27 16:49
root@Centos7 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 50G 0 part /
├─sda3 8:3 0 30G 0 part /data
├─sda4 8:4 0 512B 0 part
├─sda5 8:5 0 2G 0 part [SWAP]
└─sda6 8:6 0 44G 0 part
sdb 8:16 0 5G 0 disk
sdc 8:32 0 10G 0 disk
sr0 11:0 1 10G 0 rom
sr1 11:1 1 3.7G 0 rom
[Wed Mar 27 16:49
root@Centos7 ~]$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 3f505604-afe5-47e7-b9aa-f978f9da273a /boot
├─sda2 xfs 3887764a-0bd5-4125-a4a6-0dd8d23365ff /
├─sda3 xfs 0c016dc7-e184-4a35-afef-c732bc9a2be8 /data
├─sda4
├─sda5 swap 9aca7647-9117-4ec4-980f-8710e9da9e46 [SWAP]
└─sda6 xfs 9d22c572-0007-4202-8134-c9a34610df38
sdb
sdc
sr0 iso9660 CentOS 7 x86_64 2018-11-26-14-22-58-00
sr1 iso9660 CentOS_6.10_Final 2018-06-29-11-20-20-00
2,在sdc上创建两个分区sdc1和sdc2
fdisk -l
n
p
回车
回车
+4G
t
8e
n
p
回车
回车
回车
t
回车
8e
w
新硬盘创建分区默认识别,否则使用partprobe同步分区信息(只针对centos7)
3,创建pv,vg vg0,lv mysql
pvcreate /dev/sd{b,c1,c2}
vgcreate vg0 /dev/sd{b,c1,c2}
lvcreate -n mysql -L 10G vg0
mkfs.ext4 /dev/vg0/mysql
临时挂载到/mnt/mysql
mount /dev/vg0/mysql /mnt/mysql
如果要永久生效写到fstab中。
4,如果lv的空间不够用了,而vg里还有空间,可以实现线上扩展空间,如下
先vgs看下还剩多少可扩展空间,然后全部加上
lvextend -r -L +4.98g /dev/vg0/mysql
(或者 )
lvextend -L +4.98g /dev/vg0/mysql | lvextend -l +100%free /dev/vg0/mysql
resize2fs /dev/vg0/mysql (ext系列)
xfs_growfs /dev/vg0/mysql (xfs系列)
如果继续又满了,那没办法,只能借助sda的剩余空间来进行vg空间扩展了。
添加sda7,分配5G空间,调整分区标识为8e,然后就是pvcreate vgextend lvextend 扩展成功。
fdisk /dev/sda
n
回车
+5G
t
7
8e
w
partprobe
pvcreate /dev/sda7
vgextend vg0 /dev/sda7
lvextend -r -L +5g /dev/vg0/mysql
7,如何进行缩减lv呢?首先需要umount,然后考虑内部文件占用大小,数据有丢失风险,不建议缩减lv ,卸载后先检查文件系统,然后再进行缩减。缩减成功后再挂载上即可。
umount /mnt/mysql
e2fsck /dev/vg0/mysql
resize2fs /dev/vg0/mysql 10G 此步骤为缩减文件系统大小到10G,必做,
lvreduce -L -5G /dev/vg0/mysql 此步骤为缩减逻辑卷大小。与前一步骤不能颠倒
8,为/dev/vg0/mysql创建快照mysql_snapshot。然后删除/mnt/mysql下的文件,通过快照还原被删除文件。(注意:在lv里创建文的件系统挂载情况下即可创建snapshot,但还原快照时需要卸载该文件系统。)
lvcreate -L 100M -s -n mysql_snapshot -p r /dev/vg0/mysql
rm -rf /mnt/mysql/fstab
umount /mnt/mysql/
lvconvert --merge /dev/vg0/mysql_snapshot
mount /dev/vg0/mysql /mnt/mysql/
ll /mnt/mysql/
9,如果发现pv里的某块硬盘亮黄灯要坏了,需要将此硬盘移除,那么就需要将pv里的pe移动到其他加入到pv的设备上。pv里剩余的pe必须要能够容纳坏的pe数量,否则无法移动pe。移动pe时,对挂载的数据lv内的数据不会造成损坏。
pvmove /dev/sda2
假定2,某公司在安装Linux系统时,并未将home目录单独分区,后因入职员工较多,根目录下的空间不够用,为了便携增长家目录空间,要使用lvm逻辑卷,将逻辑卷挂载到home下。如何实现?
要点分析:先创建lvm,然后将home下的所有文件拷贝到lvm中,确保成功拷贝home下所有文件后,将home下的所有文件删除,将lvm挂载到home目录下,完成便携增长家目录空间的目的。