存储管理/磁盘管理是linux管理员的必备技能,这个不管是以后的云环境或者传统的⾏业,磁盘管理是必不可少的,也是相当重要的。
Linux系统中常⻅的硬件设备的⽂件名称如:
硬件设备 | 文件名称 |
---|---|
IDE设备 | /dev/hd[a-d] |
SCSI/SATA/U盘 | /dev/sd[a-p] |
光驱 | /dev/cdrom /dev/sr0 |
⼀台主机上可以有多块硬盘,因此系统采⽤a~p来代表16块不同的硬盘(默认从a开始分配),⽽且硬盘的分区编号也很有讲究:
主分区或扩展分区的编号从1开始,到4结束;
逻辑分区从编号5开始。
⽤户在硬件存储设备中执⾏的⽂件建⽴、写⼊、读取、修改、转存与控制等操作都是依靠⽂件系统来完成的。⽂件系统的作⽤是合理规划硬盘,以保证⽤户正常的使⽤需求。
Linux系统⽀持数⼗种的⽂件系统,⽽最常⻅的⽂件系统如下所示:
Ext3: 是⼀款⽇志⽂件系统,能够在系统异常宕机时避免⽂件系统资料丢失,并能⾃动修复数据的不⼀致与错误。然⽽,当硬盘容量较⼤时,所需的修复时间也会很⻓,⽽且也不能百分之百地保证资料不会丢失。它会把整个磁盘的每个写⼊动作的细节都预先记录下来,以便在发⽣异常宕机后能回溯追踪到被中断的部分,然后尝试进⾏修复。
Ext4: Ext3的改进版本,作为RHEL 6系统中的默认⽂件管理系统,它⽀持的存储容量⾼达1EB(1EB=1,073,741,824GB),且能够有⽆限多的⼦⽬录。另外, Ext4⽂件系统能够批量分配block块,从⽽极⼤地提⾼了读写效率。
XFS: 是⼀种⾼性能的⽇志⽂件系统,⽽且是RHEL 7中默认的⽂件管理系统,它的优势在发⽣意外宕机后尤其明显,即可以快速地恢复可能被破坏的⽂件,⽽且强⼤的⽇志功能只⽤花费极低的计算和存储性能。并且它最⼤可⽀持的存储容量为18EB,这⼏乎满⾜了所有需求。
在拿到⼀块全新的硬盘存储设备后要先分区,然后格式化,最后才能挂载并正常使⽤。 “分区”和“格式化”⼤家以前经常听到,但“挂载”⼜是什么呢?最简单、最贴切的解释—当⽤户需要使⽤硬盘设备或分区中的数据时,需要先将其与⼀个已存在的⽬录⽂件进⾏关联,⽽这个关联动作就是“挂载”。
描述: ⽤于挂载⽂件系统
语法: mount [选项] ⽂件系统. 挂载⽬录
选项:
-a: 挂载所有在/etc/fstab中定义的⽂件系统
-t: 指定⽂件系统的类型
例如,要把设备/dev/sdb2挂载到/backup⽬录,只需要在mount命令中填写设备与挂载⽬录参数就⾏,系统会⾃动去判断要挂载⽂件的类型,因此只需要执⾏下述命令即可:
[root@Gming ~]# mount /dev/sdb2 /backup
虽然按照上⾯的⽅法执⾏mount命令后就能⽴即使⽤⽂件系统了,但系统在重启后挂载就会失效,也就是说我们需要每次开机后都⼿动挂载⼀下。如果想让硬件设备和⽬录永久地进⾏⾃动关联,就必须把挂载信息按照指定的填写格式“设备⽂件 挂载⽬录 格式类型 权限选项 是否备份 是否⾃检” 写⼊到/etc/fstab⽂件中。这个⽂件中包含着挂载所需的诸多信息项⽬,⼀旦配置好之后就能⼀劳永逸了。
例如:想将⽂件系统为ext4的硬件设备/dev/sdb2在开机后⾃动挂载到/backup⽬录上,并保持默认权限且⽆需开机⾃检,就需要在/etc/fstab⽂件中写⼊下⾯的信息,这样在系统重启后也会成功挂载。
[root@Gming ~]# vim /etc/fstab
/dev/vdb2 /backup ext4 defaults 0 0
#完成之后保存退出就可以了,开机会⾃动挂载磁盘
描述: ⽤于卸载已经挂载的设备⽂件
语法: umount [挂载点/设备⽂件]
例如:卸载上⾯挂载的 dev/sdb2 磁盘
[root@Gming ~]# umount /dev/sdb2
需要注意:
1)添加设备虚拟机要处于关机状态
2)添加硬盘设备的类型选择SCSI. SATA
描述: ⽤于管理磁盘分区
语法: fdisk [选项/磁盘名称]
选项:
-l: 可以列出所有的分区,包括没有挂上的分区和usb设备
参数:
参数 | 作⽤ |
---|---|
m | 查看全部可⽤的参数 |
n | 添加新的分区 |
d | 删除某个分区信息 |
l | 列出所有可⽤的分区类型 |
t | 改变某个分区的类型 |
p | 查看分区表信息 |
w | 保存并退出 |
q | 不保存直接退出fdisk命令 |
a | 调整磁盘的启动分区 |
u | 切换所显示分区的⼤⼩单位 |
1) 我们⾸先使⽤fdisk -l 命令来查看需要分区的硬盘设备的名称
使⽤fdisk尝试管理/dev/sdb硬盘设备:
2) 输⼊参数n尝试添加新的分区。系统会要求您是选择继续输⼊参数p来创建主分区,还是输⼊参数e来创建扩展分区。这⾥输⼊参数p来创建⼀个主分区:
3)系统要求您先输⼊主分区的编号,主分区的编号范围是1~4,这⾥输⼊默认的1就可以了。接下来系统会提示定义起始的扇区位置,这不需要改动,我们敲击回⻋键保留默认设置即可。最后,系统会要求定义整个分区的⼤⼩是多少,输⼊+5G即可创建出⼀个容量为5GB的硬盘分区。
4) 再次使⽤参数p来查看硬盘设备中的分区信息。果然就能看到⼀个名称为/dev/sdb1的主分区了。
这样,一个主分区就划分好了。下边划分其他的主分区,划分步骤基本和上边一样。
第二个主分区:
第三个主分区:
1) 输⼊参数n尝试添加新的分区。到第4块分区系统会默认创建扩展分区,即系统默认为e,我们只需按enter创建即可。
2)剩下的我们全选择默认即可,包括定义分区的⼤⼩,我们需把剩下的所有内存全部给扩展分区。
3) 使⽤参数p来查看硬盘设备中的分区信息。就能看到⼀个名称为/dev/sdb1的扩展分区了。
接下来,我们需要在扩展分区的基础上创建逻辑分区:
第一个逻辑分区:
第二个逻辑分区:
所有分区创建完成之后,我们需要输入w保存退出。
如果硬件存储设备没有进⾏格式化,则Linux系统⽆法得知怎么在其上写⼊数据。因此,在对存储设备进⾏分区后还需要进⾏格式化操作。硬盘设备中的所有分区都要进行格式化。
首先我们选用ext4格式化前两个主分区:
再选用xfs格式化第三个主分区和两个逻辑分区:
到这⾥终于完成了存储设备的分区和格式化操作,接下来就是要来挂载并使⽤存储设备了。与之相关的步骤也⾮常简单:⾸先是创建⼀个⽤于挂载设备的挂载点⽬录;然后使⽤mount命令将存储设备与挂载点进⾏关联;最后使⽤df -h命令来查看挂载状态和硬盘使⽤量信息。
重启后我们发现刚才配制的分区挂载全部消失,如果想要设备挂载永久有效,则需要系统自动挂载。
前⾯在讲解mount命令时提到,使⽤mount命令挂载的设备⽂件会在系统下⼀次重启的时候失效。如果想让这个设备⽂件的挂载永久有效,则需要把挂载的信息写⼊到配置⽂件中:
第一种方法: 使用分区挂载
第二种方法: 用blkid查看分区的ID号,并使用ID挂载分区
查看没配置问题就输入reboot命令重启。
重启后使用df -Th命令查看分区挂载点,看是否挂载成功
查看发现挂载状态和硬盘使⽤量信息全部显示正常,说明分区已成功挂载。
SWAP(交换)分区是⼀种通过在硬盘中预先划分⼀定的空间,然后将把内存中暂时不常⽤的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使⽤的技术,其设计⽬的是为了解决真实物理内存不⾜的问题。但由于交换分区毕竟是通过硬盘设备读写数据的,速度肯定要⽐物理内存慢,所以只有当真实的物理内存耗尽后才会调⽤交换分区的资源。
使⽤swap分区专⽤的格式化命令mkswap,对新建的主分区进⾏格式化操作:
使⽤swapon命令把准备好的swap分区设备正式挂载到系统中。我们可以使⽤free -m命令查看交换分区的⼤⼩变化:
为了能够让新的交换分区设备在重启后依然⽣效,需要按照下⾯的格式将相关信息写⼊到配置⽂件中,并记得保存:
重启后输入命令free -m查看交换分区挂载信息情况
发现交换分区的挂载情况等一切正常,说明交换分区永久挂载成功。任务完成!