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
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
p显示分区列表
n增加一个新的分区
成功添加分区/dev/sdb1
成功添加分区/dev/sdb2
成功添加新的分区/dev/sdb3
成功添加第四个分区,默认是扩展分区(/dev/sdb4),起始扇区和last扇区将保持默认值,按enter键会把磁盘剩余的空间都分配出去
成功添加第一个分区为逻辑分区(/dev/sdb5)
成功添加第二个逻辑分区(/dev/sdb6),并把剩余磁盘空间分给它
w:写分区表信息到硬盘,保存操作退出
l:查看指定分区的分区表信息
t:改变分区类型
改变/dev/sdb1分区类型为NTFS
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命令后直接回车进入交互模式时,默认设置的是系统的第一块硬盘,
如果系统有多块硬盘,需要用select命令选择要操作的硬盘。
例如:select /dev/sdb
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
文件系统是在逻辑卷创建的,不是在物理卷和卷组创建的
在使用lvm之前先把对应包安装好
pvcreate命令创建物理卷
此结果,创建三个物理卷
pvdisplay命令查看物理卷信息
Vgcreate命令创建卷组命令
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 逻辑卷名称 指定卷组名称
[root@localhost ~]# vgdisplay
Alloc PE / Size 6400 / 25.00 GiB已经使用了25G,用了6400个pe
Free PE / Size 1278 / 4.99 GiB空闲空间5G,1278个pe
lvcreate -l pe的数量 –n 逻辑卷名称 指定卷组名称
[root@localhost ~]# vgdisplay
Total PE 7678
Alloc PE / Size 7678 / 29.99 GiB
Free PE / Size 0 / 0
扩展卷组
动态的把一些物理磁盘或物理卷加到卷组里来,实现卷组的扩展
vgextend命令扩展卷组
vgextend 卷组的名称 要加到卷组的物理卷名称
扩充已创建的逻辑卷
[root@localhost ~]# lvdisplay
[root@localhost ~]# lvdisplay
[root@localhost ~]# xfs_growfs /mylv1
xfs_growfs命令支持在不卸载的情况下扩充磁盘分区,可增加分区,不可缩减分区
扩充ext4文件系统类型分区
[root@localhost ~]# lvdisplay
[root@localhost ~]# lvdisplay
想要删除逻辑卷磁盘分区,必须先卸载磁盘分区,否则会报错
删除卷组
删除物理卷
以上是关于Linux磁盘存储管理的主要内容,如果未能解决你的问题,请参考以下文章