磁盘分区、格式化及 LVM 管理

RHEL7 如何对磁盘进行分区和格式化以及如何配置 LVM,与以前版本的 RHEL 区别不大,
以通过 disk 工具(在图形桌面中运行)或命令工具(如: fdisk gdisk parted)管理硬盘设
备。 fdisk 可以配置 MBR 格式; gdisk 配置 gpt 格式, parted 可以自己选择。
传统的硬盘分区都是 MBR 格式, MBR 分区位于 0 扇区,他一共 512 字节,前 446 字节是 grub
引导程序,这个会在后面学习;中间 64 字节是分区表,每个分区需要 16 个字节表示,因此
主分区和扩展分区一共只能有 4 个分区,超过 4 个的分区只能从扩展分区上再设置逻辑分区
来表示。每个分区的大小无法超过 2T MBR 的最后 2 个字节是结束符号
GPT 格式,打破了 MBR 的限制,可以设置多达 128 个分区,分区的大小根据操作系统的不
同有所变化,但是都突破了 2T 空间的限制。 支持高达 18EB (1EB=1024PB1PB=1 024TB) 的
卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID
(GUID)。
MBR 分区的磁盘不同, GPT 的分区信息是在分区中,而不象 MBR 一样在主引导扇区。
为保护 GPT 不受 MBR 类磁盘管理软件的危害, GPT 在主引导扇区建立了一个保护分区
(Protective MBR) MBR 分区表,这种分区的类型标识为 0xEE,这个保护分区的大小在
Windows 下为 128MB Mac OS X 下为 200MB,在 Window 磁盘管理器里名为 GPT 保护分区,
可让 MBR 类磁盘管理软件把 GPT 看成一个未知格式的分区,而不是错误地当成一个未分区
的磁盘
MBR 硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引
导程序)。但在 GPT 硬盘中,分区表的位置信息储存在 GPT 头中。但出于兼容性考虑,硬盘
的第一个扇区仍然用作MBR,之后才是GPT.

GPT的结构图如下图:

磁盘分区、格式化及 LVM 管理_第1张图片

一、查看当前的硬盘信息

磁盘分区、格式化及 LVM 管理_第2张图片

可以在/proc/partitions 这个文件查看当前的分区。

磁盘分区、格式化及 LVM 管理_第3张图片

MBR 格式的分区, fdisk 选项如下所示

磁盘分区、格式化及 LVM 管理_第4张图片

输入 n,可以创建新的 MBR 分区,然后输入 p 可以显示当前的分区状态

磁盘分区、格式化及 LVM 管理_第5张图片

重复 n 的操作,添加其他分区。

注: MBR 格式磁盘最多可以创建 4 个主分区或 3 个主分区 1 个扩展分区,在扩展分区中可
以创建若干个逻辑分区。
注意 id 代表了磁盘的用途,可以通过 t 来改变

磁盘分区、格式化及 LVM 管理_第6张图片

看看分区记录

磁盘分区、格式化及 LVM 管理_第7张图片

gdisk fdisk 非常类似


磁盘分区、格式化及 LVM 管理_第8张图片磁盘分区、格式化及 LVM 管理_第9张图片

创建新分区的时候可以看见可以有 128 个分区
parted,和前两个相比,更灵活,可以自行设定 MBR GPT 格式和分区

磁盘分区、格式化及 LVM 管理_第10张图片

通过 mklabel msdos 可以设定为 MBR 格式,然后可以通过 mkpart 来划分分区

磁盘分区、格式化及 LVM 管理_第11张图片

msdos 设定为 MBR 格式, gpt 设定为 GPT 格式
primary 代表主分区, extended 代表扩展分区, logical 代表逻辑分区。
set number flag state 用于设置分区的用途, flag boot lvm raid State:on/off 表示开启或
关闭。
parted 工具分完区后无需保存,输入 q 退出即可。
划分好分区之后,还需要格式化才能使用。可以通过 mkfs/mkswap 来格式化文件系统
#mkfs.xfs /dev/分区设备名或#mkfs -t xfs /dev/分区设备名

磁盘分区、格式化及 LVM 管理_第12张图片

可以修改 fstab 实现自动加载

磁盘分区、格式化及 LVM 管理_第13张图片

测试是否能自动挂载

磁盘分区、格式化及 LVM 管理_第14张图片

通过 df -h 查看已经挂载了的设备
-T 选项可以显示设备的文件系统类
有的挂载点路径比较长,自动分 2 行显示,可以-P 强制一行显示
如同进程有 pid,用户有 uid,每个文件系统也有自己的 id,称为 uuid,但是不是每个分区
都有;如果某个分区没有文件系统,那么这个分区是没有 uuid 的。
可以通过 blkid block id)来查看。注意 uuid 标记的是文件系统,而不是分区。 uuid 的好处
在于可以通过 uuid 这个唯一值来挂载系统,这样可以避免因为删除硬盘造成的错位, sda6
变成了 sda5 等等

磁盘分区、格式化及 LVM 管理_第15张图片

我们可以通过 xfs_admin -U 来手动更改文件系统的 uuid

磁盘分区、格式化及 LVM 管理_第16张图片

附: 在目录里面可以通过 ls -ld 查看目录的属性, ls -la 查看内容的属性,但是-ld 显示的目
录大小只有 4K,这仅仅是目录本身的大小, 要想查看目录和其内容的整个大小, 可以通过
du 来查看,如果只想看最终结果,使用 -s summary)就行了

磁盘分区、格式化及 LVM 管理_第17张图片

下面我们来看看 swap 分区如何手动创建。 swap 类似 windows 的虚拟内存/page file,当内存
不足的时候,数据保存在 swap 中。
有两种方式可以使用:
第一种单独用一个分区来作为 swap


创建一个分区(如: /dev/sdb3),并更改分区 ID 82
执行 partx –a /dev/sdb 命令,使分区修改生效
在分区上创建 swap 文件系统

磁盘分区、格式化及 LVM 管理_第18张图片

修改 fstab 实现自动加载,并查看

磁盘分区、格式化及 LVM 管理_第19张图片

第二种方式是创建一个文件块,这个文件所占有的空间作为 swap 使用

磁盘分区、格式化及 LVM 管理_第20张图片

创建一个2G的文件并改变文件格式类型,然后启用swap文件。

对于普通的分区,扩展度不高,一旦分区格式化完成,很难灵活的再增加或者减少分区大小。
为了解决这个问题,可以使用 LVM(逻辑卷)。基本过程是把物理磁盘或者分区初始化称为
物理卷( PV),然后把 PV 加入 VG(卷组),最后在 VG 上划分逻辑的分区( LVM), LVM 可
以当做普通的分区进行格式化和挂载。
将准备的磁盘或分区创建 PV

磁盘分区、格式化及 LVM 管理_第21张图片

可以执行 pvdisplay 查看 PV 的详细信息, pvremove 删除 PV
创建完 PV,之后,需要创建 VG,然后添加 PV VG 中
可以通过 vgdisplay 查看具体的信息,注意 PE Size 4M,这个是增减的最小计算单位

磁盘分区、格式化及 LVM 管理_第22张图片

注:创建 VG 时:使用–s 选项的作用是在创建时指定 PE 块(物理扩展单元) 的大小,默认是
4M。
如: # vgcreate volGroup03 -s 8M /dev/sdb[12])
我们可以继续往 vg 里面添加新的分区

磁盘分区、格式化及 LVM 管理_第23张图片

若事先没有把 sdb3 转化为 pv,而是直接添加到 vg 里面,不过一旦添加了他自动就初始化
pv 了。
可以添加当然也可以减少 pv #vgreduce vg00 /dev/sdb3
VG 准备就绪,可以创建了 LVM 了


注意看他的大小其实是 112M,因为 PE 的大小是 4M,这个 4M 是最小单位,不能破开,因
28 PE 就是 112M


磁盘分区、格式化及 LVM 管理_第24张图片

注: L 可以直接指定大小,小 l 是指定多少个 PE 的值
也可以设置剩余空间的百分比


删除逻辑卷 #lvremove /dev/vg00/lv01
对已经创建的逻辑卷,可以当做普通分区一样格式化和挂载

磁盘分区、格式化及 LVM 管理_第25张图片

修改/etc/fstab 文件实现开机自动挂载。
扩展一个逻辑卷,增加 300M,首先要确保卷组有大于 300M 的空闲空间。

磁盘分区、格式化及 LVM 管理_第26张图片

执行 lvextend 扩展逻辑卷大小

磁盘分区、格式化及 LVM 管理_第27张图片

注意逻辑卷的文件系统仍然是 109M 没有改变,我们还需要填充文件系统的空白。
RHEL7 可以用 xfs_growfs 来扩大 XFS 文件系统,也可以直接用 resize2fs 来处理设备
注意的是 XFS 系统只能增长,不能减少!因此如果需要减少 LVM 的话,分区只能使用 ext4

磁盘分区、格式化及 LVM 管理_第28张图片

执行 df 查看扩展后的文件系统

磁盘分区、格式化及 LVM 管理_第29张图片

逻辑卷快照

LVM 提供一个极妙的设备,它是 snaphot 允许管理员创建一个新的块装置,在某个时间点
提供了一个精确的逻辑卷副本,快照提供原始卷的静态视图 LVM 快照通过把文件系统的改
变记录到一个快照分区,因此当你创建一个快照分区时,你不需要使用和你正创建快照的分
区一样大小的分区,所需的空间大小取决于快照的使用,所以没有可循的方法来设置此大小。
如果快照的大小等于原始卷的大小那么快照永远可用。
快照是特殊的逻辑卷,只可以对逻辑卷做快照。逻辑卷快照和需要做快照的逻辑卷必须在同一个卷组里面
现在在我们的系统中有个逻辑卷/dev/vg00/lv00,我们用 lvdisplay 来查询一下这个逻辑卷

磁盘分区、格式化及 LVM 管理_第30张图片

磁盘分区、格式化及 LVM 管理_第31张图片

可以看到,这个逻辑卷/dev/vg00/lv00 的大小是 309M。我们将这个逻辑卷/dev/vg00/lv00
载到/data 下面 复制一些数据到/data 里面去。方便等下做试验


现在我们就为逻辑卷/dev/vg00/lv00 来做快照


执行 lvscan 查看创建好的逻辑卷


可以看到/dev/vg00/lv00 是原始逻辑卷,而/dev/vg00/lvsp00 是快照
执行 lvdisplay lvs 命令查看逻辑信息

磁盘分区、格式化及 LVM 管理_第32张图片

可以看到逻辑卷快照创建成功了,
注意:这个快照卷建好之后,是不需要格式化也不需要进行挂载的。格式化或挂载都会出现
的错误提示的。
模拟将原逻辑卷中的数据删除


如何恢复原逻辑卷的数据?有两方式可以恢复删除的数据
方式一是先将原逻辑卷卸除挂载#umount /dev/vg00/lv00
然后挂载逻辑卷快照即可 #mount /dev/vg00/lvsp00 /data,就可以正常访问数据了

方式二可以通过 lvconvert 把快照的内容重新写回原有的 lvm
先将原逻辑卷卸除挂载#umount /dev/vg00/lvsp00
执行 lvconvert 将快照的数据合并到原逻辑卷 #lvconvert --merge /dev/vg00/lvsp00
最后挂载原逻辑卷,查看数据是否恢复成功

磁盘分区、格式化及 LVM 管理_第33张图片


注:当我们把原逻辑卷里面的数据给删除了,逻辑卷快照里面的数据还在,所以可以用快照
恢复数据。 而当我们在逻辑卷里面添加数据, 快照是不会发生改变的, 是没有这个文件的。
因为快照只会备份当时逻辑卷的一瞬间。
使用 ssm(系统存储管理器)进行逻辑管理
逻辑卷管理器( LVM)是一种极其灵活的磁盘管理工具,它让用户可以从多个物理硬驱创建
逻辑磁盘卷,并调整大小,根本没有停机时间。 最新版本的 CentOS/RHEL 7 现在随带系统存
储管理器(又叫 ssm),这是一种统一的命令行界面,由红帽公司开发,用于管理各种各样
的存储设备。目前,有三种可供 ssm 使用的卷管理后端: LVM Btrfs Crypt
准备 ssm CentOS/RHEL 7 上,你需要首先安装系统存储管理器。 可以通过 rpm yum

磁盘分区、格式化及 LVM 管理_第34张图片

首先我们来检查关于可用硬盘和 LVM 卷的信息。下面这个命令将显示关于现有磁盘存储设
备、存储池、 LVM 卷和存储快照的信息。

执行 #ssm list来查看,如下图所示:

磁盘分区、格式化及 LVM 管理_第35张图片

上图显示,有两个物理设备( “/dev/sda”和“/dev/sdb”)、 二个存储池( “centos  vg00” ,
以及存储池vg00 中创建的两个 LVM 卷( “dev/vg00/lv00”和“/dev/vg00/lv01”),存储池 vg00 中
创建的一个 LVM 卷( /dev/vg00/lv00)。
下面来讲解如何通过 ssm 创建、管理逻辑卷和逻辑卷快照
至少新添加一块磁盘,执行 ssm 命令显示现有磁盘存储设备、存储池、 LVM 卷的信息

磁盘分区、格式化及 LVM 管理_第36张图片

可以看到有两块空闲磁盘( sdc sdd)
创建新的 LVM /,不妨看一下如何在物理磁盘驱动器上创建新的存储池和新的 LVM 卷。如果使用传统的 LVM 工具,整个过程相当复杂,需要准备分区,需要创建物理卷、卷组、逻辑
卷,最后还要建立文件系统。不过,若使用 ssm,整个过程一蹴而就!
下面这个命令的作用是,创建一个名为 mypool 的存储池,创建存储池中名为 lv01 500MB
大小的 LVM 卷,使用 XFS 文件系统格式化卷,并将它挂载到/mnt/test 下。

磁盘分区、格式化及 LVM 管理_第37张图片

验证 ssm 创建的结果

磁盘分区、格式化及 LVM 管理_第38张图片

或执行 ssm list

磁盘分区、格式化及 LVM 管理_第39张图片

将物理磁盘(sdd)添加到 LVM


新设备添加到存储池后,存储池会自动扩大,扩大多少取决于设备的大小。检查名为 centos
的存储池的大小执行 ssm list 查看

磁盘分区、格式化及 LVM 管理_第40张图片

接下来,我们来扩大现有的 LVM
扩大 LVM 卷, 不妨将/dev/mypool/lv01 卷的大小增加 300MB
如果你在存储池中有额外空间,可以扩大存储池中现有的磁盘卷。为此,使用 ssm 命令的
resize 选项

磁盘分区、格式化及 LVM 管理_第41张图片

执行 ssm list 查看扩大后逻辑卷

磁盘分区、格式化及 LVM 管理_第42张图片

可以看到逻辑卷扩大到 800M,即在原来的基础上增加了 300M,但文件系统大小( Fs size)还没有改变,仍然是原来的大小。
为了让文件系统识别增加后的卷大小,你需要“扩大” 现有的文件系统本身。有不同的工具
可用 来扩大现 有的文件系统 ,这取决 于你使用哪种 文件系统 。比如说,有 面向
EXT2/EXT3/EXT4 resize2fs、面向 XFS xfs_growfs 以及面向 Btrfs btrfs,不一而
足。
在这个例子中,我们使用 CentOS 7XFS 文件系统在默认情况下创建。因而,我们使用
xfs_growfs 来扩大现有的 XFS 文件系统。

磁盘分区、格式化及 LVM 管理_第43张图片

扩大 XFS 文件系统后,查看结果

磁盘分区、格式化及 LVM 管理_第44张图片

或执行#df -hT

磁盘分区、格式化及 LVM 管理_第45张图片

可以看到 LVM 扩展成功
逻辑卷快照
对现有的 LVM 卷(比如/dev/mypool/lv01 ) 生成快照
一旦快照生成完毕,它将作为一个特殊的快照卷存储起来,存储了原始卷中生成快照时的所
有数据




每次原 LVM 中的数据更改,都可以手动执行 ssm snapshot 生成快照
当原 LVM 数据损坏就可以用快照恢复了
方式一是先将原逻辑卷卸除挂载 #umount /dev/vg00/lv00
然后挂载逻辑卷快照即可 #mount /dev/vg00/lvsp00 /data,就可以正常访问数据了

 


你可能感兴趣的:(Linux)