Linux磁盘存储管理

Posted 机动人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux磁盘存储管理相关的知识,希望对你有一定的参考价值。

1、设备文件的分类


在Linux下的/dev目录中有大量的设备文件,根据设备文件的不同,又分为字符设备文件小写c表示块设备文件小写b表示


字符设备文件的存取是以字符流的方式来进行的,一次传送一个字符。常见的有打印机,终端(TTY)、绘图仪和磁带设备等等,字符设备文件有时也被称为“raw” 设备文件。


块设备文件是以数据块的方式来存取的,最常见的设备就是磁盘。系统通过块设备文件存取数据的时候,先从内存中的buffer中读或写数据。而不是直接传送数据到物理磁盘。这种方式有效的提高了磁盘的I/O性能。

2、MBR和GPT


MBR(Master Boot Record):即硬盘的主引导记录分区列表,硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序硬盘分区表DPT硬盘有效标志(55AA)。在总共512字节的主引导扇区里,主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。


(GUID Partition Table):即全局唯一标识分区列表是一个物理硬盘的分区结构。它用来替代Bios中的主引导记录分区表(MBR)。


传统BIOS主要支持MBR引导,UEFI则是取代传统BIOS,它加入了对新硬件的支持

3、UEFI和BIOS


UEFI(Unified Extensible Firmware Interface):全称“统一的可扩展固件接口”,它定义了一种在操作系统和平台固件之间的接口标准。这种接口用于操作系统自动从预启动的操作环境(在系统启动之后,但是操作系统开始运作之前)加载到一种操作系统上,从而使开机程序化繁为简,节省时间。需要注意,UEFI最准确的说它仅是一种规范,不同厂商根据该规范对UEFI的实现,并做出PC固件后,该固件就称为UEFI固件。


BIOS(基本输入和输出系统),是最古老的一种系统固件和接口,采用汇编语言进行编程,并使用中断来执行输入/输出操作,在出现之初即确定了 PC 生态系统的基本框架。


UEFI比BIOS先进在三个方面:

读取分区表

访问某些特定文件系统中的文件

执行特定格式的代码【可以说UEFI像一个简易的操作系统】





4、UEFI、BIOS和MBR、GPT之间的关系?

MBR的特点

  • MBR分区的分区表保存在硬盘的第一个扇区,而且只有64字节,所以最多只能有四个表项。也就是说,我们只能把硬盘分为4主分区,或者分成小于等于3个主分区再加一个扩展分区。
  • MBR分区的优点就是简单,支持度高,很多操作系统都可以从MBR分区的硬盘启动。 缺点就是MBR分区不能识别大于2T的硬盘空间,也不能有大于2T的分区.
  • MBR支持32位和64位系统。

GPT的特点

  • 没有4个主分区的限制,对分区的数量没有限制。
  • GPT可管理硬盘大小最大18EB
  • 要从GPT分区的硬盘启动,则需要UEFI主板硬盘使用GPT分区操作系统支持GPT这三 个条件
  • 必须使用64位系统。

UEFI的目标是取代传统BIOS,它不支持MBR模式,仅支持GPT格式。不过,近年出现的UEFI主板,采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项。

5、Linux操作系统GPT-UEFI支持列表

其中,1=BIOS+MBR,2=UEFI+GPT

Linux磁盘存储管理​_ios


Linux磁盘存储管理​_逻辑卷_02


6、利用fdisk工具划分磁盘分区

fdisk是linux下一款功能强大的磁盘分区管理工具,可以观察硬盘的使用情况,也可以对磁盘进行分割,linux下类似与fdisk的工具还有cfdisk、parted等,fdisk工具不支持GPT,支持MBR,要是GPT格式的分区,需要使用另一个GNU发布的强大分区工具parted,下面会介绍。

常用组合:

(查看分区情况)

fdisk的使用分为两个部分,查询部分和交互操作部分。通过fdisk device即可进入命令交互操作界面。

交互界面下的常用命令含义如下:

d:删除一个分区

l l:查看指定分区的分区表信息

l m:显示fdisk每个交互命令的详细含义

l n:增加一个新的分区

l p:显示分区信息

l q:退出交互操作,不保存操作的内容

l t:改变分区类型

l w:写分区表信息到硬盘,保存操作退出

[root@localhost ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos-->MBR

磁盘标识符:0x000e9909

设备Blocks Id System

/dev/sda1 *(引导分区) 2048 1026047 512000 83 Linux

/dev/sda2 1026048 83886079 41430016 8e Linux LVM

[root@localhost ~]# fdisk /dev/sdb

Linux磁盘存储管理​_逻辑卷_03


Linux磁盘存储管理​_逻辑卷_04


p显示分区列表

Linux磁盘存储管理​_ios_05


n增加一个新的分区

Linux磁盘存储管理​_逻辑卷_06


Linux磁盘存储管理​_逻辑卷_07


成功添加分区/dev/sdb1

Linux磁盘存储管理​_ios_08


成功添加分区/dev/sdb2

Linux磁盘存储管理​_ios_09


成功添加新的分区/dev/sdb3

Linux磁盘存储管理​_分区表_10


成功添加第四个分区,默认是扩展分区(/dev/sdb4),起始扇区和last扇区将保持默认值,按enter键会把磁盘剩余的空间都分配出去

Linux磁盘存储管理​_逻辑卷_11


成功添加第一个分区为逻辑分区(/dev/sdb5)

Linux磁盘存储管理​_ios_12


成功添加第二个逻辑分区(/dev/sdb6),并把剩余磁盘空间分给它


Linux磁盘存储管理​_逻辑卷_13


w:写分区表信息到硬盘,保存操作退出



Linux磁盘存储管理​_分区表_14


l:查看指定分区的分区表信息

t:改变分区类型

改变/dev/sdb1分区类型为NTFS

Linux磁盘存储管理​_分区表_15


Linux磁盘存储管理​_逻辑卷_16


7、利用parted工具规划磁盘分区

对于GPT格式的分区,fdisk工具是无能为力的,同时,fdisk工具对分区是有大小限制的,它只能划分小于2T的磁盘。但是现在的磁盘空间很多都已经是远远大于2T,此时就需要另外一个磁盘管理工具parted来完成大于2T的磁盘分区工作。

查看系统是否有parted命令,如果没有,执行如下命令直接安装即可:

yum -y install parted

parted交互模式下常用的一些参数:

mklabel 创建分区表,也就是设置使用msdos还是使用gpt格式。例如:mklabel gpt,表示设定分区表为gpt格式。

mkpart 创建新分区命令。

使用格式为:mkpart PART-TYPE [FS-TYPE] START END

其中,PART-TYPE,表示分区类型,主要有primary(主分区)extended(扩展分区)logical(逻辑区),其中,扩展分区和逻辑分区只针对msdos分区表

fs-type,表示文件系统类型,主要有fat32,NTFS,ext2,ext3等,可不填写。

start,表示分区的起始位置。

end,表示分区的结束位置。

print 输出分区信息,可简写为p。该功能有3个选项:

free,显示该盘的所有信息,并显示磁盘剩余空间。

number, 显示指定的分区的信息。

all或list, 显示所有磁盘信息。

rm 删除分区。命令格式 rm number 。

例如:rm 2 就是将编号为3的分区删除。

select 选择设备。

当输入parted命令后直接回车进入交互模式时,默认设置的是系统的第一块硬盘

Linux磁盘存储管理​_ios_17


如果系统有多块硬盘,需要用select命令选择要操作的硬盘。


例如:select /dev/sdb

Linux磁盘存储管理​_ios_18


Linux磁盘存储管理​_ios_19


Linux磁盘存储管理​_分区表_20


Linux磁盘存储管理​_逻辑卷_21


Linux磁盘存储管理​_ios_22


Linux磁盘存储管理​_ios_23


Linux磁盘存储管理​_逻辑卷_24


Linux磁盘存储管理​_分区表_25


Linux磁盘存储管理​_逻辑卷_26



8、LVM(逻辑卷管理)

LVM,是Logical Volume Manager的缩写,中文意思是逻辑卷管理,它是linux下对磁盘分区进行管理的一种机制,LVM是建立在磁盘分区和文件系统之间的一个逻辑层,管理员利用LVM可以在磁盘不用重新分区的情况下动态的调整分区的大小。如果系统新增了一块硬盘,通过LVM就可以将新增的硬盘空间直接扩展到原来的磁盘分区上。

l 物理存储设备(physical media):指系统的存储设备文件,比如:/dev/sda、/dev/hdb

l 物理卷(physical volume):简称PV

l 卷组(Volume Group):简称VG(可跨越磁盘创建卷组)

l 逻辑卷(logical volume):简称LV

l PE(physical extent):PV中可以分配的最小存储单元称为PE

l LE(logical extent):LV中可以分配的最小存储单元称为LE

文件系统是在逻辑卷创建的,不是在物理卷和卷组创建的

Linux磁盘存储管理​_ios_27


Linux磁盘存储管理​_ios_28


Linux磁盘存储管理​_逻辑卷_29


Linux磁盘存储管理​_ios_30


在使用lvm之前先把对应包安装好

pvcreate命令创建物理卷

Linux磁盘存储管理​_逻辑卷_31


此结果,创建三个物理卷

pvdisplay命令查看物理卷信息

Linux磁盘存储管理​_分区表_32


Linux磁盘存储管理​_分区表_33


Vgcreate命令创建卷组命令

Linux磁盘存储管理​_分区表_34


vgdisplay查看卷组的信息

[root@localhost ~]# vgdisplay

VG Name myvg1

System ID

Format lvm2格式 逻辑卷管理第二个版本

Metadata Areas 2

Metadata Sequence No 1

VG Access read/write卷组属性是可读可写的

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 2

Act PV 2

VG Size 29.99 GiB卷组大小

PE Size 4.00 MiB一个pe的单位大小

Total PE 7678总共有7678个pe

Alloc PE / Size 0 / 0 分出多少

Free PE / Size 7678 / 29.99 GiB卷组里边有7678个pe,卷组大小30G(空闲)

VG UUID 4JVLXm-PEpM-oigB-Y4AF-q6pO-Rchy-oYv0BO

创建完的卷组需要激活下,否则不能用,激活卷组命令vgchange

vgchange a y 卷组名称

[root@localhost ~]# vgchange -a y myvg1

0 logical volume(s) in volume group "myvg1" now active

需要在卷组上创建逻辑卷,才能使用卷组空间

lvcreate创建逻辑卷命令

lvcreate -L 逻辑卷的大小 n 逻辑卷名称 指定卷组名称

Linux磁盘存储管理​_逻辑卷_35


[root@localhost ~]# vgdisplay


Linux磁盘存储管理​_逻辑卷_36


Alloc PE / Size 6400 / 25.00 GiB已经使用了25G,用了6400个pe

Free PE / Size 1278 / 4.99 GiB空闲空间5G,1278个pe

lvcreate -l pe的数量 n 逻辑卷名称 指定卷组名称

Linux磁盘存储管理​_ios_37


[root@localhost ~]# vgdisplay

Linux磁盘存储管理​_ios_38


Total PE 7678

Alloc PE / Size 7678 / 29.99 GiB

Free PE / Size 0 / 0

Linux磁盘存储管理​_分区表_39


Linux磁盘存储管理​_分区表_40


扩展卷组

动态的把一些物理磁盘或物理卷加到卷组里来,实现卷组的扩展

vgextend命令扩展卷组

vgextend 卷组的名称 要加到卷组的物理卷名称

Linux磁盘存储管理​_逻辑卷_41


Linux磁盘存储管理​_ios_42


扩充已创建的逻辑卷

[root@localhost ~]# lvdisplay

Linux磁盘存储管理​_ios_43


Linux磁盘存储管理​_分区表_44


[root@localhost ~]# lvdisplay

Linux磁盘存储管理​_逻辑卷_45


Linux磁盘存储管理​_分区表_46


[root@localhost ~]# xfs_growfs /mylv1

xfs_growfs命令支持在不卸载的情况下扩充磁盘分区,可增加分区,不可缩减分区


Linux磁盘存储管理​_逻辑卷_47


Linux磁盘存储管理​_逻辑卷_48


扩充ext4文件系统类型分区

Linux磁盘存储管理​_逻辑卷_49


[root@localhost ~]# lvdisplay

Linux磁盘存储管理​_逻辑卷_50


Linux磁盘存储管理​_分区表_51


[root@localhost ~]# lvdisplay

Linux磁盘存储管理​_逻辑卷_52


Linux磁盘存储管理​_分区表_53


Linux磁盘存储管理​_分区表_54



Linux磁盘存储管理​_逻辑卷_55


想要删除逻辑卷磁盘分区,必须先卸载磁盘分区,否则会报错

Linux磁盘存储管理​_ios_56


删除卷组

Linux磁盘存储管理​_ios_57


删除物理卷


Linux磁盘存储管理​_逻辑卷_58


以上是关于Linux磁盘存储管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux之存储管理

Linux磁盘与文件系统管理

Linux磁盘管理

Linux 下磁盘管理--逻辑卷--LV

Linux系统 存储

linux学习之二:Linux磁盘与文件管理系统