打算给系统装一个Oracle,发现磁盘空间不足。在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区。为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这样做。 扩容之前的磁盘状况 [root@localhost ~]# df -h 文件系统 容量 已用 可用已用%%挂载点 /dev/mapper/VolGroup-lv_root 5.3G 2.5G 2.6G 50% / tmpfs 538M 0 538M 0% /dev/shm /dev/sda1 485M 30M 430M 7% /boot [root@localhost ~]# fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes …………… Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 1045 7875584 8e Linux LVM Disk /dev/mapper/VolGroup-lv_root: 5779 MB, 5779750912 bytes …….. Disk /dev/mapper/VolGroup-lv_swap: 2281 MB, 2281701376 bytes ……… 此次扩容的方案为: 1、加1个5G的空间给/ 2、加1个10G的空间给/Oracle (一) 在VM中加一个15G的磁盘 重启后#fdisk –l可以看到新的磁盘已经认出来了。 Disk /dev/sdb: 16.1 GB, 16106127360 bytes ………………………. Disk /dev/sdb doesn’t contain a valid partition table (二)创建物理卷(PV) pvcreate /dev/sdb 查看系统PV的情况: [root@localhost ~]# pvdisplay — Physical volume — PV Name /dev/sda2 //原有硬盘上的PV VG Name VolGroup PV Size 7.51 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 1922 Free PE 0 Allocated PE 1922 PV UUID SGH1dY-4tp2-Nr1a-w93Z-V4LA-pQBh-VGzzTH “/dev/sdb” is a new physical volume of “15.00 GiB” — NEW Physical volume — PV Name /dev/sdb VG Name //新建的PV的VG name是空的,下一步就是把PV加入VG PV Size 15.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 8TZUlz-YyUp-RBvf-lSzm-7MgG-DSZS-qNqX1Z 查看原VG的情况 [root@localhost ~]# vgdisplay — Volume group — VG Name VolGroup //注意记录此名字,扩容时将新的pv加入指定的名字 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 7.51 GiB PE Size 4.00 MiB Total PE 1922 AllocPE / Size 1922 / 7.51 GiB Free PE / Size 0 / 0 VG UUID FnUsmX-s284-GeRK-hJNJ-BbIG-Vpe7-OuFZE1
(三)#扩展卷组,将/dev/sdb物理卷添加到VolGroup卷组中
[root@localhost ~]# vgextend VolGroup /dev/sdb
Volume group “VolGroup” successfully extended
再查看VG情况,可以看到VG大小变化,空余空间。
[root@localhost ~]# vgdisplay
— Volume group —
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 22.50 GiB
PE Size 4.00 MiB
Total PE 5761
AllocPE / Size 1922 / 7.51 GiB
Free PE / Size 3839 / 15.00 GiB
VG UUID FnUsmX-s284-GeRK-hJNJ-BbIG-Vpe7-OuFZE1
(四)将新的VG空间划入LV(扩容lv_root)
#直接扩展5G给/root分区,不用umount,也不需要重启
#lvextend -L +5G /dev/mapper/VolGroup-lv_root
或者
# lvextend -l +30%FREE /dev/mapper/VolGroup-lv_root
[root@localhost ~]# lvextend -L +5G /dev/mapper/VolGroup-lv_root
Extending logical volume lv_root to 10.38 GiB
Logical volume lv_root successfully resized
#检查/root逻辑卷
#e2fsck -f /dev/mapper/VolGroup-lv_root
#重新定义分区大小
#resize2fs /dev/mapper/VolGroup-lv_root
图二
查看/目录大小
图三
可以看到/目录已经从原来的5.3G扩容到了11G。
(五)LV卷空间分配(新增lv_Oracle)
在VG中还有新增的10G没有用,可以将VG中的空余空间划分为LV,并将新的LV挂载在目录下。
[root@localhost VolGroup]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup 2 2 0 wz–n- 22.50g10.00g
//可以通过#vgs命令查看vg信息统计,可以看到VFree还有10G。
将VG空余的空间化分为LV
#lvcreate -L 10G -n lv_oracle VolGroup
图四
//少了一点点空间…
//可以用-l 分,它是按pv块数来分的。一个pv默认是4M,可是从vgdisplay中去查vg中还剩多少pv以及总数是多少。
图五
//查到剩余2559个PE,于是执行
[root@localhost VolGroup]# lvcreate -l 2559 -n lv_oracle VolGroup
Logical volume “lv_oracle” created
提示创建成功后,用vgs和lvs命令分别查看。
图六
(五)挂载LV到目录下
接下来就是要把lv_Oracle挂到/oracle,目录下
#cd /
# mkdir oracle
#chmod 777 /oracle
创建/oracle目录并修改权限
# vi /etc/fstab
可以看到目前挂载分区的情况
图七
//我们可以参照/的分区把oracle的加上去。加入这行:
/dev/mapper/ VolGroup-lv_oracle /oracle ext4 defaults 0 0
然后把lv_oracle格式化成ext4
#mkfs.ext4 /dev/mapper/VolGroup-lv_oracle
图八
将lv_oracle mount到目录/oracle上
# mount /dev/mapper/VolGroup-lv_oracle /oracle之后查看一下分区情况
图九
可以重启系统检查一下是否正常。
图十
#df –h
挂载正常,可以收工了。