1、简介
存储管理/磁盘管理是linux管理员的必备技能,这个不管是以后的云环境或者传统的行业,磁盘管理是必不可少的,也是相当重要的。
在Linux系统中一切都是文件,硬件设备也不例外。既然是文件,就必须有文件名称。系统内核中的dev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等;这对于陌生的设备来说特别方便。另外,udev设备管理器的服务会一直以守护进程的形式运行并侦听内核发出的信号来管理/dev目录下的设备文件。Linux系统中常见的硬件设备的文件名称如:
常见的硬件设备及其文件名称 | |
---|---|
硬件设备 | 文件名称 |
IDE设备 | /dev/hd[a-d] |
SCSI/SATA/U盘 | /dev/sd[a-p] |
光驱 | /dev/cdrom /dev/sr0 |
由于现在的IDE设备已经很少见了,所以一般的硬盘设备都会是以“/dev/sd”开头的。而一台主机上可以有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配),而且硬盘的分区编号也很有讲究:
- 主分区或扩展分区的编号从1开始,到4结束;
- 逻辑分区从编号5开始。
2、文件系统与数据资料
用户在硬件存储设备中执行的文件建立、写入、读取、修改、转存与控制等操作都是依靠文件系统来完成的。文件系统的作用是合理规划硬盘,以保证用户正常的使用需求。Linux系统支持数十种的文件系统,而最常见的文件系统如下所示。
Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复。
Ext4:Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。
XFS:是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需求。
就像拿到了一张未裁切的完整纸张,我们首先要进行裁切以方便使用,然后在裁切后的纸张上画格以便能书写工整。在拿到了一块新的硬盘存储设备后,也需要先分区,然后再格式化文件系统,最后才能挂载并正常使用。硬盘的分区操作取决于您的需求和硬盘大小;您也可以选择不进行分区,但是必须对硬盘进行格式化处理。
3、挂载硬件磁盘
我们在用惯了Windows系统后总觉得一切都是理所当然的,平时把U盘插入到电脑后也从来没有考虑过Windows系统做了哪些事情,才使得我们可以访问这个U盘的。接下来我们会逐一学习在Linux系统中挂载和卸载存储设备的方法,以便大家更好地了解Linux系统添加硬件设备的工作原理和流程。在拿到一块全新的硬盘存储设备后要先分区,然后格式化,最后才能挂载并正常使用。“分区”和“格式化”大家以前经常听到,但“挂载”又是什么呢?最简单、最贴切的解释—当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是“挂载”。
3.1 命令:mount
描述:用于挂载文件系统
语法:mount [选项] 文件系统. 挂载目录
选项:
-a 挂载所有在/etc/fstab中定义的文件系统
-t 指定文件系统的类型
挂载是在使用硬件设备前所执行的最后一步操作。只需使用mount命令把硬盘设备或分区与一个目录文件进行关联,然后就能在这个目录中看到硬件设备中的数据了。对于比较新的Linux系统来讲,一般不需要使用-t参数来指定文件系统的类型,Linux系统会自动进行判断。而mount 中的-a参数则厉害了,它会在执行后自动检查**/etc/fstab**文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。
例如,要把设备/dev/sdb2挂载到/backup目录,只需要在mount命令中填写设备与挂载目录参数就行,系统会自动去判断要挂载文件的类型,因此只需要执行下述命令即可:
[root@rhel8-4 ~]# mount /dev/sdb2 /backup
虽然按照上面的方法执行mount命令后就能立即使用文件系统了,但系统在重启后挂载就会失效,也就是说我们需要每次开机后都手动挂载一下。如果想让硬件设备和目录永久地进行自动关联,就必须把挂载信息按照指定的填写格式“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检” 写入到/etc/fstab文件中。这个文件中包含着挂载所需的诸多信息项目,一旦配置好之后就能一劳永逸了。
用于挂载信息的指定填写格式中,各字段所表示的意义 | |
---|---|
字段 | 意义 |
设备文件/dev/xxx | 一般为设备的路径+设备名称,也可以写唯一识别码 (UUID,Universally Unique Identifier) |
挂载目录 | 指定要挂载到的目录,需在挂载前创建好 |
格式类型 | 指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等 |
权限选项 | 若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async |
是否备份 | 若为1则开机后使用dump进行磁盘备份,为0则不备份 |
是否自检 | 若为1则开机后自动进行磁盘自检,为0则不自检 |
例如:想将文件系统为ext4的硬件设备/dev/sdb1在开机后自动挂载到/backup目录上,并保持默认权限且无需开机自检,就需要在/etc/fstab文件中写入下面的信息,这样在系统重启后也会成功挂载。
[root@rhel8-4 ~]# vim /etc/fstab
/dev/vdb1 /backup ext4 defaults 0 0
#完成之后保存退出就可以了,开机会自动挂载磁盘
3.2 命令:umount
描述:用于卸载已经挂载的设备文件
语法:umount [挂载点/设备文件]
我们挂载文件系统的目的是为了使用硬件资源,而卸载文件系统就意味不再使用硬件的设备资源;相对应地,挂载操作就是把硬件设备与目录进行关联的动作,因此卸载操作只需要说明想要取消关联的设备文件或挂载目录的其中一项即可,一般不需要加其他额外的参数。
例如:卸载上面挂载的 dev/sdb1 磁盘
[root@rhel8-4 ~]# umount /dev/sdb1