Oracle入门 12 - Linux 磁盘分区及LVM实战

Linux 磁盘分区及LVM实战

前言:Oracle 经常会使用 LV 的相关操作来操作文件系统,所以一定得反复练习并用心记住本篇文章提到的每一个知识点。
前 1-4 大节讲述的是 Linux 标准分区的相关知识,而第五大节讲的是如何对 Linux 进行磁盘分区动态管理


文章目录


一、磁盘分区是怎么表示的

在这里插入图片描述
注:IDE 磁盘已过时。

与Windows 中的磁盘进行比较:
在这里插入图片描述

二、Linux 磁盘分区与文件系统类命令

在这里插入图片描述

三、Linux LVM 逻辑卷管理

在这里插入图片描述
在这里插入图片描述
PE 是 LV(逻辑卷)的最小单元。

在这里插入图片描述

物理卷(PV)的相关命令:
在这里插入图片描述

卷组(VG)的相关命令:

在这里插入图片描述

逻辑卷(LV)的相关命令:
在这里插入图片描述

磁盘管理
在这里插入图片描述

四、磁盘分区相关命令操作演示

4.1 Linux 磁盘分区与文件系统命令

4.1.1 df 命令

(1)使用 df --help 查看该命令的使用方法

(2)使用 df -h 可以查看文件系统及其挂载点
-h 参数是用来显示大小的(KB, MB, GB)
在这里插入图片描述

(3)df -aT 命令可以显示不常用的文件系统及其挂载点
-a 参数可以显示全部。
-T 参数是显示文件系统的类型(Type)

(4)df -h XXX 挂载点
比如使用 df -h /mnt 可以查看Linux系统中 /mnt 目录的相关信息。
在这里插入图片描述

4.1.2 du 命令

(1)du 命令可以查看某个目录的剩余空间

比如,现在进入 /var 目录查看剩余空间。

cd /var

du -h 可以展现出当前目录以及目录以下所有文件的大小

. 代表当前目录。

可以看到,下图中,当前目录的大小是 184M。(只截取了一部分)
在这里插入图片描述
(2)du -sm [directory_name]
该命令可以查看当前目录的大小
-m 代表以1MB为单位。
在这里插入图片描述
使用 du -sh 可以看到当前目录的总大小。

(3)du -h | grep oracle
该命令可以查看和 oracle 字符串相关的所有文件和文件夹

(4)如何清理目录中最大的文件
使用 df -h 看到 /mnt 目录的占用率非常高。
在这里插入图片描述
如何清理空间?

首先,要找出 /mnt 目录下文件的大小
进入 /mnt 目录后,执行:
du -sh * | sort -rn | more
s 参数可以只显示出当前文件夹的大小。
h 参数是显示文件的参数(h 是 Human 的缩写)。
星号 * 可以显示出所有的文件和文件夹。
sort 是排序命令。
more 可以显示出结果的一部分。

可以看到,最大的目录是 Packages。
在这里插入图片描述

那么,再次 cd 进这个目录。
再次使用du -sm * | sort -rn | more 命令查看哪个文件占用最大。单位为MB。

比较 df 和 du:
df 是在文件系统上搜索所有的数据。
du 是直接到文件系统内去搜索所有的数据。

4.1.3 fdisk 命令

该命令用于对 MBR 格式的硬盘进行操作。
可以进行的操作包括但不限于:新建分区、删除分区

硬盘中的分区有两种形式:
– MBR 该模式下,最多可创建四个主分区,或三个主分区加一个扩展分区,在扩展分区中,可以创建多个逻辑分区。
扩展分区下的多个逻辑分区,单个分区不能超过2TB。

– GPT 该模式下,分区大小几乎不受限制(18EB),分区数量也几乎不受限制(128个)

4.1.4 fdisk 命令相关案例【非常重要】

fdisck 常用操作:
d操作符 —— 删除分区
l 操作符 —— 列出分区
m 操作符 —— 打印菜单
n 操作符 —— 添加一个新分区
p 操作符 —— 打印分区表
q 操作符 —— 放弃更改并退出
w 操作符 —— 保存并退出
a 操作符 —— 切换可引导标志
t 操作符 —— 改变分区的 System id

如何使用 fdisk 命令做分区格式化操作,并创建文件系统,用于业务使用

案例1:把整个 /dev/sdc 磁盘创建为一个主分区

fdisk -l 用于列出所有的磁盘分区信息。
在这里插入图片描述
Disk 后的信息是硬盘大小,分别是按照GB方式和 bytes 方式进行显示。
DIsk identifier 是磁盘的识别号。
上述作了解就行。

下面是引导设备说明:
在这里插入图片描述
比方说第一行。
第一行的引导设备是 sda1,start 和 end 分别是开始的磁盘柱面和结束的柱面。
Blocks 代表大小。
Id 代表分区类型。
System 代表系统类型。

如果不是引导设备的话,Boot 下面就什么都没有;如果是引导设备,那么 Boot 下就有一个星号。
可以看到,上图中 sda1 是引导设备,而 sda2 在 System 一栏属于交换设备。

现在要做一个操作:在Linux 中添加新的磁盘。具体操作请看拓展。

使用 fdisk -l | grep “Disk /dev/sd” 就可以过滤出
在这里插入图片描述

可以看到刚添加的 1个GB的磁盘 sdc,和4个2GB的磁盘 sd[d\e\f\g]

如果要把 /dev/sdc 这个磁盘转成一个文件系统,怎么做?
使用命令 fdisk /dev/sdc

然后跳出一堆警告,可以按下 m 查看帮助。
常用的操作有:
d操作符 —— 删除分区
l 操作符 —— 列出分区
m 操作符 —— 打印菜单
n 操作符 —— 添加一个新分区
p 操作符 —— 打印分区表
q 操作符 —— 放弃更改并退出
w 操作符 —— 保存并退出
a 操作符 —— 切换可引导标志(设置分区引导)
t 操作符 —— 改变分区的 System id

步骤一:输入n 新建一个扩展分区
在这里插入图片描述
然后系统提示要创建一个扩展分区还是主分区?
这里选择创建一个主分区。
输入 p即可。

看到下面的提示,让输入分区号。
现在输入1即可。
在这里插入图片描述
柱面大小:默认输入1即可。
在这里插入图片描述

直接回车代表使用默认值。
在这里插入图片描述
按下 w 进行保存。
在这里插入图片描述
步骤二:查看新分区是否创建成功
使用命令fdisk /dev/sdc搜到结果如下:
可以看到 分区 sdc1 创建成功,System 类型默认为 Linux。
在这里插入图片描述

案例2:如何删除分区

使用 fdisk /dev/sdc 查看刚才创建的新分区。
输入 p 打印分区表。

然后输入命令 d 删除。
如果只有一个分区的话,输入 d 就默认删除了。如果有两个分区,那么会让你选择分区号。

在这里插入图片描述

最后输入 w 保存并退出。
在这里插入图片描述

案例3:把整个 /dev/sdc 磁盘创建为两个主分区

下面为输入命令的顺序:

创建第一个主分区,分区号为1。

fdisk /dev/sdc

输入 n 创建新分区

输入 p 创建一个主分区

输入 1 作为分区号。

回车选择默认值,这是柱面开始的位置

输入 +200M 作为柱面结束的位置。

然后,再次创建一个主分区,分区号为2

输入 n 创建新分区

输入 p 创建一个主分区

输入2 作为分区号。

回车选择默认值,这是柱面开始的位置

回车选择默认值,这是柱面结束的位置(直接回车的话,默认是把 /dev/sdc 磁盘中剩余的大小全部分给 sdc2)

然后,输入 p 打印分区表查看是否创建成功。
在这里插入图片描述
输入 w 进行保存。

案例4:创建一个主分区,创建扩展分区和逻辑分区

步骤一:创建一个主分区
fdisk /dev/sdc
输入 n
输入 p
输入 1 作为分区号
默认回车
输入 +200M

输入p 查看成果:
在这里插入图片描述
步骤二:创建一个扩展分区
输入n。
输入 e 创建扩展分区。
分区号输入 1。

可以看到,输入1 之后被拒绝,因为分区号1已经被创建过了。
在这里插入图片描述
那么,出现上面的情况后,需要重新执行相关的操作。
步骤如下:
输入 n。
输入 e 创建扩展分区。
输入 2 作为分区号。
默认回车,使用默认值作为柱面开始值。
默认回车,使用默认值作为柱面结束值。

输入p 查看成果。
可以看到,扩展分区已经创建完毕,但还不能被使用。
在这里插入图片描述
步骤3:继续对扩展分区进行操作,创建逻辑分区。
输入n。
输入 l 以创建一个逻辑分区。
在这里插入图片描述
默认回车,使用默认值作为柱面开始值。
输入 +300M 作为逻辑分区的大小(也就是作为柱面的结束位置)

继续创建。
输入n。
输入 l 创建逻辑分区。
默认回车,使用默认值作为柱面开始值。
默认回车,使用剩余所有的空间作为逻辑分区的大小。

输入 p 查看成果。
在这里插入图片描述
可以看到 sdc1 为主分区,sdc2 为扩展分区,sdc5 和 sdc6 是创建好的两个逻辑分区。

输入 w 进行保存。

发现了什么?
在这个例子里,主分区分了200M,扩展分区分走了剩余的所有空间,且比主分区大。
所有的逻辑分区空间加起来的总和,等于它们的父扩展分区的空间大小。

案例5:如何把磁盘设置成一个文件系统?

要求:把 /dev/sdc 设置为文件系统

第一步:
fdisk /dev/sdc

输入 p 查看分区表

输入n 新建分区。

输入 p 创建一个主分区。

输入分区号 1。

按回车,默认柱面开始值。
按回车,默认柱面结束值。

按 w 保存。

现在,使用 fdisk -l /dev/sdc 查看该分区信息。
在这里插入图片描述
如果分区分完了,在 / 目录下找不到这个分区,那么可以执行
partprobe /dev/sdc 把分区信息写到磁盘。

做完这个操作以后,Linux 内核就会读取这个新分区的信息,这样一来,就能使用 ls 看见新加入的分区了。

第二步:使用 mkfs 格式化文件系统
输入命令:mkfs
输入后,可以看见可以格式化成文件系统的类型有哪些
在这里插入图片描述
如果要把文件系统 sdc1 格式化为 ext4格式,那么输入命令:
mkfs.ext4 /dev/sdc1

在这里插入图片描述
运行命令,可以看到图中:
调用了 mke2fs 这个程序。
Filesystem lable 文件系统标签没有。
Block Size 块大小。
inodes 节点,blocks 块的数量。

Creating journal(4096 blocks):done 这条数据代表是否有日志记录

第三步:把文件系统挂载到Linux 系统中

使用 mount 命令可以查看当前 Linux 系统中有哪些文件系统,可以看到它们分别挂载在什么位置。
type 后是文件系统的类型。
rw 代表读写。
在这里插入图片描述
逻辑说明:现在需要在 Linux 系统中建立一个挂载点,才能够把文件系统给挂载到 Linux 系统中。

比如,这里我建立一个名为 /yyds 的目录
mkdir /yyds

然后使用命令 mount /dev/sdc1 /yyds 把 /dev/sdc1 这个文件系统挂载到 Linux 系统的 /yyds 目录下。

使用 df -h 命令,就可以看到该文件系统被挂载到了 Linux 系统目录中。
在这里插入图片描述

注意:如果要卸载这个文件系统,可以用命令 umount。
如果使用命令 umount -f 是强制性卸载。

卸载步骤如下:
先退出到根目录,再进行卸载。
cd /
umount /yyds

再次使用 df -h 命令查看的时候,文件系统 /dev/sdc1 就不会再 挂载在 /yyds 目录了。

注意:如果要使挂载的文件系统永久生效,那么需要修改 /etc/fstab,请见扩展。

扩展:如何挂载和卸载光驱

第一种方式:把 cdrom 这个光驱挂载到 /mnt 下。挂载为只读模式。
mount /dev/cdrom /mnt

第二种方式:把/opt/iso/ 下的某 ISO 文件挂载成光驱,挂载到 /mnt 目录下
mount -t iso9660 -o loop /opt/iso/xxx.iso /mnt

上方的 iso9660 是文件系统的版本。

-o loop 是一个必要的写法,意在把 xxx.iso 这个光驱文件挂载成一种可循环设备。

卸载光驱有两种方式:
第一种是卸载目录:
umount /mnt

第二种是卸载光驱:
umount /dev/cdrom

扩展:如何永久把挂载信息写入 Linux中?

说明:如果把一个分区挂载到 Linux 的某一个挂载点下,在不修改 /etc/fstab 的情况下,重启计算机之后,按 df -h 会发现之前挂载成功的文件系统消失了,为了防止这种情况的发生,现在我们需要把新增的文件系统的信息写入 fstab 这个文件中。

修改 /etc/fstab 这个文件,向其中添加挂载信息。
在这里插入图片描述
文件说明:
第一列是设备名(文件系统名)或者 设备卷标名【比如 UUID 开头的就是设备卷标名,而 tmpfs 就是设备名】
第二列是挂载的Linux目录(也称挂载点)
第三列是设备文件系统的类型
第四列是文件系统参数
第五列和第六列分别有两种表现形式:1和0
第五列中,1代表备份,0代表不备份。
第六列中,1代表自动检查,0代表不自动检查。

建议:非根分区不要把第六列设为1或者2,如果非根分区设为1或者2,系统重启后,如果这个分区挂载不起来,那么 Linux 就会一直对这个挂载不到系统中的分区进行检查,导致启动系统失败。

第一步:把 /dev/sdc1 修改到 /etc/fstab 文件中
把光标移动到最后一行,按 i 键后敲打键盘进行修改。
修改完成后按 Esc 退出修改。
最后按 Shift + :
输入 wq 进行保存

保存之后,因为修改了文件 fstab 的缘故,现在可以直接输入 mount /itpux 把 /dev/sdc1 挂载到 /itpux 目录下。

扩展:如何把光盘弹出来

以下命令可以把光驱 /dev/cdrom 卸载后再弹出来。
eject /dev/cdrom

扩展:设置分区引导

比如说,我要设置 /dev/sdc1 为引导分区。
那么我使用如下命令:
fdisk /dev/sdc
p
a
1
这样一来,sdc1就被设置为引导分区了,输入 p 查看分区表时,sdc1 的 Boot 一栏就有一个星号。

如果要取消sdc1作为一个引导分区的资格,那么把上面的命令再次输入一遍,就可以取消了。

扩展:如何改分区标识

如图所示:使用 p查看分区表,Id即为分区标识
在这里插入图片描述

使用 fdisk 命令修改 /dev/sdc 分区的分区标识
输入 fdisk /dev/sdc
然后输入 p 查看分区表。

之后输入 t 修改分区标识。
要修改的是 sdc1这个磁盘,那么选择分区号为1。
可以看到,输入L后,系统展示了所有分区的 System 类型。
在这里插入图片描述
如果要把这个磁盘作为逻辑卷,输入 8e 就可以了。

之后输入 p 查看分区表:
在这里插入图片描述
输入 w 保存。

扩展:如何添加硬盘到虚拟机中?

要求:加1个1GB,4个2GB的硬盘。

先关闭 Linux 操作系统。
进入到设置中,然后到硬盘添加向导中添加硬盘。
在这里插入图片描述
默认为 SCSI 硬盘,选择“独立”,选择存储为单个文件。

加完之后,可以修改SCSI 总线,此目的是为了给磁盘排个序,否则目录中磁盘顺序是混乱的。
在这里插入图片描述
改完总线保存之后,硬盘按照顺序进行排列。
在这里插入图片描述

4.1.5 mkfs 命令

该命令用于格式化 MBR 磁盘类型的文件系统或者 GPT磁盘类型的 文件系统
学习例子在上方的案例和扩展中。

4.1.6 mount 和 umont

用于挂载和卸载文件系统或者挂载和卸载光驱。
学习例子在上方的案例和扩展中。

4.1.7 /etc/fstab 文件里的配置

学习例子在上方的案例和扩展中。

4.1.8 用 file 命令查看文件的类型

eg: 使用命令 file /etc/fstab 可以查看 fstab 文件是一个 ASCII 格式的文本文件。
在这里插入图片描述

4.1.9 parted 命令

前言:parted 命令既可以对 MBR 格式的磁盘进行分区,也可以对 GPT 格式的磁盘进行分区。
由于 MBR 格式的硬盘最多只能支持两个 TB 的扩展卡空间,如果这种情况下,我们的单个文件系统如果大于 2 TB 的话就不好办了。因此,我们可以选择 GPT 格式的硬盘。

要求:使用 parted 命令来使得 /dev/sdc 这个磁盘转为 GPT 格式的磁盘,并创建两个分区。
可以看到,现在正在 Using 设备名为 /dev/sdc 的设备。
在这里插入图片描述

输入 p 查看该设备的基本信息。
磁盘类型:SCSI
磁盘名:/dev/sdc
磁盘大小:1074MB
扇区大小:512B/512B
分区表:msdos

现在,暂时没有任何分区信息被列出来。
在这里插入图片描述

可以看到,现在分区表类型为 msdos,而我们需要用的磁盘类型要是 GPT 才行。

输入命令 mklabel 创建一个新的磁盘标签(分区表)
在这里插入图片描述
然后输入 gpt 作为磁盘的类型。
输入 yes 进行确定。
在这里插入图片描述
输入 p 查看分区信息。现在磁盘分区类型就已经转换成 GPT 了。
在这里插入图片描述
mkpart 的相关命令如下:
在这里插入图片描述
现在,创建一个主分区名为 primary,以 0M开始,以100M结束。
mkpart primary 0 100

按下 I 同意操作。

再创建一个主分区名为 oradata,以100M开始,以600M结束。

mkpart oradata 100 600

按下 I 同意操作。

然后输入 p 可以看到分区表的相关信息。
在这里插入图片描述
那么,如何把所有空间都分配到一个分区呢?

命令的意思是把所有的分区放到一个空间里,-1 代表无穷大。
使用命令 mkpart oracle 0 -1
在这里插入图片描述
Error 提醒我们,这个分区有内容了,不能这么做。

现在使用 quit 退出。

如何删除分区?
在这里插入图片描述
注意:删除分区的时候需要指定分区号。

输入命令:
parted /dev/sdc
使用 p 查看分区情况。
在这里插入图片描述

然后使用rm 1可以删除分区1,而使用 rm 2可以删除分区2。
再次输入 p 来查看是否已经删除成功?
可以看到,这个表现在是空的,代表删除成功了。
在这里插入图片描述

删除分区的命令在执行的那一刻就已经生效,如果要恢复分区,那么请用 rescue 命令,使用操作在 parted 案例2中。

parted 案例1 —— 分配磁盘所有的空间

如果有一个需求,需要磁盘把所有空间都划分到同一个分区下,怎么做呢?

使用 parted /dev/sdc 命令,指定 /dev/sdc 这个磁盘。

然后使用 mklabel 对磁盘打上标签。
在这里插入图片描述

然后,创建一个名为 oracle 的分区,使用所有的剩余空间。
mkpart oracle 0 -1

使用 p 命令查看创建结果:
在这里插入图片描述
上面所有的命令都是一步到位,那么也可以用交互式的方式来创建分区。
可以直接输入 mkpart,然后程序会提示你输入分区的名字以及其他需要输入的东西。
在这里插入图片描述

parted 案例2 —— 恢复已删除的分区

如果不小心删除了这个 GPT 分区,我们如何恢复呢?

比如现在,我不小心删除了 /dev/sdc 磁盘的 oracle 分区,该分区的分区号为1。
在这里插入图片描述
现在,在没有退出 parted 程序之前,我们还有希望对磁盘进行恢复操作。
使用命令 rescue,图示如下:
虽然恢复好了,但是该文件系统的 Name 没有了。
在这里插入图片描述

parted 案例3 —— 实操【非常重要】

在生产环境下,如何把磁盘格式化后生成一个分区?

第一步:创建一个 GPT 格式的分区。
parted /dev/sdc

mklabel

输入 gpt
输入 Y

打印 p

创建一个名为 oracle 的分区,使用剩余的所有空间。
mkpart oracle 0 -1

按 p 查看后,按 q 退出。
在这里插入图片描述
第二步:格式化该分区
mkfs.ext4 /dev/sdc1

第三步:把该磁盘分区挂载到 Linux 系统中
建立目录 /itpux
mkdir /itpux

然后把该分区挂载到这个目录下。
mount /dev/sdc1 /itpux

使用 df -h 查看文件系统及分区相关信息如下:
在这里插入图片描述
使用 mount 命令也可以查看该硬盘挂载的相关信息。
在这里插入图片描述
注意:如果要永久挂载到系统中,必须把挂载信息写入到 /etc/fstab 文件中。

4.1.10 check 命令

check 是 parted 命令的相关指令,需要进入到 parted 程序中才可以使用 check 命令。
check 命令用于检查文件系统的完整性。

五、LVM 基本操作

需要学会并熟练掌握的相关操作有:
在这里插入图片描述
要用到的磁盘有 /dev/sdd 、sde、sdf、sdg

5.1 创建PV、VG、LV

5.1.1 创建PV(Physical Volume 物理卷)

使用 fdisk -l 查看各个分区或者磁盘的状态。
pvcreate /dev/sdd /dev/sde /dev/sdf
在这里插入图片描述
输入 pvs 查看是否创建完成。
格式是 lvm2格式,Attr 中的 a 代表已激活,大小两个G,空闲两个G。
在这里插入图片描述
pvdisplay 命令也可以检查。
Allocatable 为 NO 时代表没有被分配。
在这里插入图片描述f

5.1.2 创建VG(Volume Group 卷组)

创建一个名为 oraclevg 的卷组
vgcreate oraclevg /dev/sdd /dev/sde /dev/sdf

使用 vgs 来检查:
在这里插入图片描述
使用 vgdisplay 也可用来检查:
了解即可:
Metadata Area 元数据区域
Metadata Sequence 元数据序列号
VG Access:读写均可访问
VG Status:可调整的
Cur PV:当前PV 数量为3
Act PV:激活的PV数量为3
Allock PE / Size,分配的 PE 大小是多少

逻辑说明:
PE 是 LV 的最小单元。
Total PE 数 乘以 PE大小 等于VG大小。

在这里插入图片描述

5.1.3 创建LV(Logical Volume 逻辑卷)

创建一个名为 lvoracle 的逻辑卷
从 oraclevg 这个卷组中创建名为 lvoracle 的逻辑卷,大小分配 2GB。
lvcreate -n lvoracle -L 2G oraclevg

使用 lvs 检查:
在这里插入图片描述
使用 lvdisplay 检查:
在这里插入图片描述

5.1.4 对 LV 进行格式化操作

注意我们创建的逻辑卷 LV 路径为 /dev/oraclevg/lvoracle

执行:
mkfs.ext4 /dev/oraclevg/lvoracle

5.1.5 挂载

目的:把此逻辑卷挂载在我们的 Linux 文件系统中

操作如下:
创建一个名为 oracle 的目录:
mkdir /oracle

然后把该逻辑卷挂载到 /oracle 目录下:
mount /dev/oraclevg/lvoracle /oracle

使用 df -h 查看是否挂载成功:
可以看到,这个 2GB大小的逻辑卷已经挂载成功。
在这里插入图片描述
测试:
在 /oracle 目录下创建两个文件夹
mkdir 1 2

使用 ls -lsa 来查看:
在这里插入图片描述

5.1.6 把该逻辑卷的挂载信息写入 fstab文件中

逻辑:写入 fstab 文件中后,重启后我们所做的操作才不会失效。

fstab 文件位于 /etc 目录中。
执行操作如下:

vi /etc/fstab
在文件的最后一行加入我们创建的逻辑卷的相关信息:
在这里插入图片描述
检查:
(1)把 /oracle 目录卸载掉
umount /oracle

(2)再挂载 /oracle 目录
mount /oracle

如果能挂载成功,那么就说明 Linux 从 fstab 文件中读取到了 /dev/oraclevg/lvoracle 挂载在 /oracle 上的这条信息。整个创建 PV,VG,LV 的流程就结束了。

5.2 在线扩容

查看 vgs 中有无空间?
vgs
在这里插入图片描述
vgdisplay
可以看到,现在 vg 只剩下 3.99 个GB了。
在这里插入图片描述

目的:现在,我要把 5.1 操作中的 2GB 的 LV 扩容到 5GB。

操作如下:

第一步:把 /dev/sdg 作为一个 PV 盘加进 Linux 系统中。
pvcreate /dev/sdg

pvs 查看:
在这里插入图片描述

第二步:把 PV 加入 VG
把 /dev/sdg 这个 PV 加入名为 oraclevg 的 VG 中。

注意:此处不能用下列命令
vgcreate oraclevg /dev/sdg

这个命令用了以后执行会失败,因为 oraclevg 已经存在了。

为了执行成功,只能对 oraclevg 这个卷组进行扩容操作:
vgextend oraclevg /dev/sdg

使用 vgs 查看:
/dev/sdg 这个磁盘的大小原先为两个G,那么扩容后,oraclevg 卷组的 VFree 就又增加了 2GB。
在这里插入图片描述
vgdisplay 查看:
在这里插入图片描述
使用 pvs 查看:
可以看到,/dev/sdg 这个磁盘已经位于 oraclevg 卷组中。
在这里插入图片描述

第二步:对 5.1 步骤中的 LV 进行在线扩容
查看 LV 使用命令 lvs:
可以看到,一个名为 lvoracle 的 LV 当前一共是 2GB 的总大小。
在这里插入图片描述
找到 lv 的 Path,才能对 LV 进行扩容
使用 lvdisplay 进行查看:
在这里插入图片描述
执行命令对 /dev/oraclevg/lvoracle 这个 LV 进行扩容操作:
lvextend -L +5G /dev/oraclevg/lvoracle 或者 lvextend -L 5G /dev/oraclevg/lvoracle
前者是将 /dev/oraclevg/lvoracle 在原有基础上扩容5G,后者是将 /dev/oraclevg/lvoracle 扩容到 5G。

原先的 LV 只有两个GB,现在又扩容了5GB,总容量到达 7GB。
在这里插入图片描述

第三步:对文件系统进行扩容

对 原先的 LV 扩容之后,与之相对应的文件系统并没有完成扩容操作,所以要对文件系统进行扩容。

执行下列语句,以 LV 的根路径为参数,对文件系统进行扩容。
resize2fs /dev/oraclevg/lvoracle

如果是第一次用 resize2fs 命令,程序会提示你可以选择是否对文件系统进行检查。

第四步:检查扩容结果
使用 df -h 检查文件系统:
可以看到,挂载在 /oracle 目录下的文件系统,现在的 Size 已经有 7 个GB了。
在这里插入图片描述
最后,进入 /oracle 目录,检查目录中的文件和文件夹是否可以进行正常操作。

5.3 缩小 LV(逻辑卷) 的容量

逻辑:要对 LV 进行缩小,只能把磁盘(文件系统)卸载掉。

因为之前的逻辑卷是挂载在 /oracle 目录下的,所以此处先对 /oracle 目录进行卸载操作。

第一步:卸载 LV 对应的 挂载点
umount /oracle

第二步:缩小 文件系统
使用命令 lvs 查看当前 lv 信息:
可以看到,现在的 LV 有 7GB 的总大小。
在这里插入图片描述
目标:把 当前 LV 缩成 2GB。

执行命令对 文件系统进行缩小操作:
resize2fs /dev/oraclevg/lvoracle 2G

执行后出来一条提示:需要对当前 LV 进行检查。
在这里插入图片描述
那么,输入系统提示的命令:
e2fsck -f /dev/oraclevg/lvoracle
在这里插入图片描述
再次执行缩小 文件系统 的操作,把文件系统缩减到 2GB:
resize2fs /dev/oraclevg/lvoracle 2G
在这里插入图片描述
第三步:缩小 LV
缩小 LV 和扩容 LV 的操作顺序相反。

上一步在对文件系统缩小以后,我们还要对 LV 进行缩小操作。
lvreduce -L 2G /dev/oraclevg/lvoracle 或者 lvreduce -L -5G /dev/oraclevg/lvoracle

使用 lvs 查看 LV 是否缩小成功:
在这里插入图片描述
第四步:把第一步被卸载的挂载点挂起来
mount /oracle

第五步 :使用 df -h 检查是否缩小成功:
可以看到,挂载在挂载点 /oracle 下的 /dev/mapper/oraclevg-lvoracle 这个文件系统已经缩小到 2GB。
至此,缩小LV成功。
在这里插入图片描述

注意:如果不先缩小文件系统的大小,而是先缩小 LV,LV 就会显示块或分区表已损坏(Either the superblock or the partition table is likely to be corrupt!)

5.4 在 5.3 的基础上,剔除特定的 PV 磁盘,把 VG 缩小

注意:VG 能缩小的前提是,VG 的 Free 空间大于要将要剔除的某块 PV 的大小,这块PV 才能被剔除,否则剔除的时候会提示你这块磁盘正在使用。

第一步:卸载挂载点上处于挂载状态的文件系统
umount /oracle

第二步:缩小 VG
首先使用 pvs 查看要把哪个 PV 磁盘给剔出来
目标操作:把 /dev/sdg 从 VG里剔除。
在这里插入图片描述
执行命令,把指定的 PV 从 VG 里剔除。
vgreduce oraclevg /dev/sdg

第三步:查看 VG 缩小成果
使用 vgs 查看:
可以看到,现在的 VG 只有 5.99 GB 的总大小了。
在这里插入图片描述
使用 pvs 查看:
可以看到,现在 /dev/sdg 这个磁盘不在 oraclevg 这个 VG 里了。
但是!还要对 /dev/sdg 这个磁盘进行回收操作。
在这里插入图片描述
第四步:把指定的 PV 磁盘从 Linux 系统中移除
pvremove /dev/sdg
在这里插入图片描述

使用 pvs 查看:
可以看到,原先的 /dev/sdg 磁盘已不在 PV 的列表中。
在这里插入图片描述
第五步:把之前卸载掉的挂载点恢复
mount /oracle

使用 df -h 查看:
在这里插入图片描述
对 /oracle 目录中的文件进行手动测试:测试文件和文件夹是否可以正常访问。
至此,VG 缩小结束。

总结:
PV 的创建使用 pvcreate
PV 的删除(释放)使用 pvremove
VG 的创建使用 vgcreate
VG 的扩容使用 vgextend
VG 的缩减使用 vgreduce
LV 的创建使用 lvcreate
LV 的扩容使用 lvextend
LV 的缩减使用 lvreduce

5.5 删除 LV,VG,PV

逻辑说明:相对于创建 PV,VG,LV操作,删除他们的顺序是相反的,要先删除 LV,然后是VG,最后删除 PV。

注意!!
删除LV之前请先确认该 LV 下有无数据需要备份,如果需要备份,使用 cp -a 命令对数据目录进行备份,再进行 lvremove 操作。

第一步:确定 LV,VG,PV 的信息后,首先卸载文件系统
使用 lvdisplay 查看所属的 VG,使用 vgdisplay 查看包含的 PV,再使用 df -h 查看 LV 的挂载点。

执行命令卸载 LV 的挂载点 /oracle:
umount /oracle

第二步:删除LV
lvremove /dev/oraclevg/lvoracle
在这里插入图片描述
执行 lvs 检查:
在这里插入图片描述

第三步:删除VG
vgremove oraclevg

删除之后,执行 vgs 检查:
在这里插入图片描述

第四步:删除 PV
pvremove /dev/sdd /dev/sde /dev/sdf
在这里插入图片描述
执行 pvs 检查:
发现已经没有 PV 存在了。
在这里插入图片描述
至此,删除 LV,VG,PV 成功。

  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值