Linux之磁盘管理篇

一. 硬盘设备

在Linux系统中一切都是文件,包括硬盘在内的硬件设备也不例外。

一般的硬盘设备都会是以"/dev/sd"开头的。而一台主机上可以有多块硬盘,因此系统采用a-p来代表16块不同的硬盘(默认从a开始分配),而且硬盘的分区编号也极为特别:

主分区或者扩展分区的编号从1开始,到4结束;

逻辑分区从编号5开始。

以/dev/sd5这个设备文件名称为例,看一下其具体含义(如下图):

Linux之磁盘管理篇_第1张图片

/dev/目录中保存的是硬件设备文件;sd是存储设备。

/dev/sda5:系统中第一块被识别到的硬件设备中分区编号为5的逻辑分区的设备文件。

二. 硬盘分区

2.1硬盘分区小知识

硬盘设备是由大量的扇区(硬盘最小的存储单位)组成的,每个扇区的容量为512字节

第一个扇区是硬盘中最重要的,这里面保存着主引导记录(MBR)分区信息表。我们以第一扇区为例,主引导记录需要占用446字节,分区表为64字节,结束符占用2字节;其中分区表每记录一个分区就需要16字节,如此看来,第一个扇区最多只有4个分区信息,这4个分区就是主分区。

2.1.1扩展分区

为了解决分区个数不够的问题,可以将第一个扇区的分区表中的16字节(原本要写入主分区信息)的空间拿来指向另外一个分区,这也是我们所说的扩展分区。也就是说,扩展分区其实不是一个真正的分区,更像是一个占用16字节分区表空间的指针------一个指向另外一个分区的指针。这样一来,就可以在扩展分区中创建出数个逻辑分区,从而实现大于4个分区的需求。

2.1.2 为什么分区:

磁盘主要的两个性能:磁盘大小,读写性能

优化I/O性能  读写input    output

实现磁盘空间配额限制

提高修复速度

隔离系统和程序

安装多个OS

采用不同文件系统

分区缺点:

一旦分区无法修改大小

只能使用连续的空间

没有备份,冗余的功能

2.1.3 分区类型及区别

MBR   只能对2t 以下的盘进行分区,MBR分区需要依靠第一个扇区

GPT    可以对2t 以上的磁盘进行分区

2.2 实施分区

2.2.1 分区准备

在实现分区之前我们需要了解一些分区操作的命令

  • 1) 分区前
  • 先加硬盘,用lsblk查看,而有时候会看到新加的硬盘没有被识别,可以用以下的命令刷新

echo "- - -" > /sys/class/scsi_host/host0/scan

echo "- - -" > /sys/class/scsi_host/host1/scan

echo "- - -" > /sys/class/scsi_host/host2/scan

也可以为了方便设置别名,如下:

alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'

或者简单粗暴使用reboot命令进行重启

2) 分区

fdisk命令

作用:它提供了集添加,删除,转换分区等功能。不过和之前直接写到命令后面的参数不同,这条命令的参数是交互式的,因此在管理硬盘设备时十分方便,可以根据需求调整。

格式:fdisk  [磁盘名称]

注:使用fdisk命令进行分区只适用于2t以下的硬盘进行,而gdisk命令才适用于2t以上的硬盘进行分区

参数

作用

m

查看全部可用的参数

n

添加新的分区

d

删除某个分区信息

l

列出所有可用的分区类型

t

改变某个分区的类型

p

查看分区类型

w

保存并退出

q

不保存直接退出

mkfs命令

作用:格式化分区,建立文件系统

格式:mkfs.文件类型名称   分区名称

如果硬件存储设备没有进行格式化,则Linux系统无法得知怎么在其上写入数据,因此,在对存储设备进行分区后还需要进行格式化操作。mkfs命令在Shell终端输入后,敲击两次用于补全命令的Tab键,会把常用的文件系统名称提示出来,如图:

mount命令

作用:(手动临时)挂载分区

格式:mount  文件系统  挂载目录

完成了存储设备的分区和格式化操作之后,接下来就是挂载并使用存储设备,也是使用硬件设备前的最后一步。首先创建一个用于挂载设备的挂载点目录,然后使用mount命令将存储设备与挂载点进行关联;最后使用df  -h命令查看挂载状态和硬盘使用量信息。

对于较新的Linux系统来说,一般不需要使用-t参数来指定文件系统的类型,Linux系统会自动判断。而-a参数,它可以在执行后自动检查/etc/fstab文件中有无疏漏被挂载的设备文件,如果有就会自动进行挂载操作。

umount命令

作用:用于撤销已经挂载的设备文件

格式:umount  [挂载点/设备文件]

一般不需要加其他额外的参数

/etc/fstab

格式:vim  /etc/fstab

虽然按照上面的方法执行mount命令后就能立即使用文件系统了,但是系统在重启后挂载就会失效,也就是说我们需要每次开机后都要手动挂载一下,这样就会很麻烦。如果想要让硬件设备和目录永久的自动关联,就需要把挂载信息依照指定的填写格式"设备文件" "挂载目录" "格式类型" "权限选项" "是否备份" "是否自检"写入/etc/fstab文件中。

各个字段的含义:

字段 含义
设备文件 一般为设备的路径+设备名称,也可以写唯一识别码(UUID)
挂载目录 指定要挂载的目录,需要挂载前创建好
格式类型 指定文件系统的格式,比如ext3,ext4,xfs,等
权限选项 若设置为defaults,则默认权限为rw,suid,dev,exec,auto,nouser,async
是否备份 若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检 若为1则开机后自动进行磁盘自检,为0则不自检

3) 分区后

  • 查看分区及磁盘情况----------->     lsblk
  • 分区后可以用file命令查看文件的属性

系统没有把分区信息同步给Linux,需要重读分区表信息    ---------- >     partprobe  /dev/sdb   设备名     或者直接使用partprobe命令

如果用了这个命令还是无法解决问题,只能重启了。

2.2.2 项目实施

第一步:添加硬盘,并在终端查看系统识别硬盘的状况并进行刷新,具体效果如下图:

Linux之磁盘管理篇_第2张图片

Linux之磁盘管理篇_第3张图片

第二步:可以开始我们的主题啦,开始分区,并用file命令查看文件属性,具体效果如下图:

Linux之磁盘管理篇_第4张图片

Linux之磁盘管理篇_第5张图片

第三步:接下来我们就要对我们新建的分区建立文件系统,具体效果如下图:

Linux之磁盘管理篇_第6张图片

第四步:在这里我选择使用永久挂载,将挂载信息按照指定格式写入/etc/fstab文件中,在这里格式内我们根据uuid挂载,尽量不要图省事用盘符挂载,具体效果如下图:

Linux之磁盘管理篇_第7张图片

Linux之磁盘管理篇_第8张图片

Linux之磁盘管理篇_第9张图片

第五步:扩展分区逻辑分区的项目实施,操作同上,只不过这里的的格式化文件系统是在逻辑分区进行的,具体效果如下图:

Linux之磁盘管理篇_第10张图片

Linux之磁盘管理篇_第11张图片

逻辑分区格式化,建立文件系统

Linux之磁盘管理篇_第12张图片

永久挂载目录

Linux之磁盘管理篇_第13张图片

至此,这个分区的实施和逻辑分区的实施就完成了。

三. LVM(逻辑卷管理卷)

3.1 LVM介绍

        一般而言,在生产环培中无法精确地评估每个硬盘分区在日后的使用情况,因此会导致原先分配的硬盘分区不够用。比如,伴随着业务量的增加,用于存放交易记录的数据库目录的体积也随之增加;因为分析并记录用户的行为从而导致日志目录的体积不断变大,这些都会导致原有的硬盘分区在使用上捉襟见肘。而且,还存在对较大的硬盘分区进行精简缩容的情况。

        我们可以通过部署 LVM (Logical Volume Manager,逻辑卷管理器)f理器)来解决上述问题。问题。部署LVM时,需要逐个配置物理卷、卷组和逻辑卷。LVMM最早应用在 IBMAIX系统上。它的主要作用是动态分配磁盘分区及调整磁盘分区大小,并且可以让多个分区或者物理硬盘作为一个逻辑卷(相当于一个逻辑硬盘)来使用。使用。这种机制可以让磁盘分区容量划分变得很灵活。

常用的LVM部署命令

功能/命令

物理卷管理

卷组管理

逻辑卷管理

扫描

pvscan

vgscan

lvscan

建立

pvcreate

vgcreate

lvcreate

显示

pvdisplay

vgdisplay

lvdisplay

删除

pvremove

vgremove

lvremove

扩展

vgextend

lvextend

缩小

vgreduce

lveduce

3.2 LVM项目实施

注:如果使用分区进行分卷,要先修改分区类型为8e,存在即合理,最好修改分区。用硬盘的话可以直接进行创建逻辑卷操作。

第一步:为了便于实验,我们利用新建的两个磁盘来进行该实验,还是如上,新添两块磁盘sdb,sdc,并进行相关操作,具体效果如下图:

Linux之磁盘管理篇_第14张图片

第二步:依照上述表格中的命令进行分卷,首先建立物理卷,让新添加的两块硬盘设备支持LVM技术,具体效果如下图:

第三步:把两块硬盘设备加入到qagroup卷组中并查看卷组状态,具体效果如下图:

Linux之磁盘管理篇_第15张图片

第四步:切割出一个名叫qa且35G大小的逻辑卷设备。这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位,第一种是以容量为单位,所使用的参数为 -L 。例如,用 -L 150M生成一个大小为150MB的逻辑卷。另外一种就是以基本单元的个数为单位,所使用的参数为 -l 每个基本单元(PE)的大小默认是4MB。例如,使用 -l 37可以生成一个大小为37 x 4MB=148MB的逻辑卷。具体效果如下图:

Linux之磁盘管理篇_第16张图片

第五步:把生成好的逻辑卷进行格式化,建立文件系统,然后永久挂载使用并查看挂载状态。

Linux系统会把LVM中的逻辑卷设备存放在/dev设备目录中,同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)。具体效果如下图:

Linux之磁盘管理篇_第17张图片

Linux之磁盘管理篇_第18张图片

Linux之磁盘管理篇_第19张图片

第六步:逻辑卷扩容,先扩容卷组再扩容逻辑卷,具体效果如下图:

Linux之磁盘管理篇_第20张图片Linux之磁盘管理篇_第21张图片

此时我们的扩容逻辑卷也已经完成了,至此,我们的建立逻辑卷,逻辑卷扩容的项目实施完成啦。

当生产环境中想要重新部署LVM或者不再需要使用LVM时,则需要执行LVM的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷,卷组,物理卷设备,这个顺序不可颠倒。具体效果如下图:

Linux之磁盘管理篇_第22张图片

你可能感兴趣的:(linux,运维,服务器)