du命令:其格式为“du [选项] [文件]”。简单该命令就是用来查看一个或多个文件占用了多大的硬盘空间
配置本地yum源为了防止开启启动挂盘丢失,需要在配置文件/etc/fstab加上挂载点和挂载目录
添加交换分区
SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常用的数据临时存放到硬盘中,为了解决真实物理内存不足的问题。但由于交换分区毕竟是通过硬盘设备读写数据的,速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源
查看新增磁盘是否被分
挂载swap
[root@my-server ~]# mks
mksquashfs mkswap
[root@my-server ~]# mkswap /dev/sdb
sdb sdb1
[root@my-server ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=b2e6e5a8-c4f5-467c-919a-c29a0483d3da
[root@my-server ~]# free -g
total used free shared buff/cache available
Mem: 1 1 0 0 0 0
Swap: 2 0 2
[root@my-server ~]# swapon /dev/sdb1
[root@my-server ~]# free -g
total used free shared buff/cache available
Mem: 1 1 0 0 0 0
Swap: 6 0 6
[root@my-server ~]#
为了避免开机丢失
磁盘容量配额
quota命令还有软限制和硬限制的功能。
软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作
RHEL 8系统中已经安装了quota磁盘容量配额服务程序包,但存储设备却默认没有开启对quota技术的支持,此时需要手动编辑配置文件再重启一次,让系统中的启动目录(/boot)能够支持quota磁盘配额技术
保存之后查看是否设置成功:
添加测试用户进行测试
专门针对XFS文件系统来管理quota磁盘容量配额服务而设计的命令,其中,-c参数用于以参数的形式设置要执行的命令;-x参数是专家模式,让运维人员能够对quota服务进行更多复杂的配置。接下来使用xfs_quota命令来设置用户redhat对/boot目录的quota磁盘容量配额。具体的限额控制包括:硬盘使用量的软限制和硬限制分别为3MB和6MB;创建文件数量的软限制和硬限制分别为3个和6个。
上面所使用的参数分为两组,分别是isoft/ihard与bsoft/bhard,我们来深入的讲解一下。在6.3小节中曾经讲过,在Linux系统中每个文件都会被一个独立的inode信息块所保存属性信息,一个文件对应一个inode信息块,所有isoft和ihard就是通过限制了系统最大使用的inode个数来限制了文件格式。bsoft和bhard则是代表文件所占用的block块大小,也就是文件最多所占用的总统计。
soft是软限制,超过了也只是写到日志中,不对用户行为进行限制。而hard是硬限制,一旦超过就会马上进行禁止,再也不能创建或新占任何的硬盘容量。
当配置好上述的各种软硬限制后,尝试切换到这个普通用户,然后分别尝试创建一个体积为5MB和8MB的文件。可以发现,在创建8MB的文件时受到了系统限制:
edquota命令用于激活新的交换分区设备,英文全称为:“edit quota”,语法格式为:“edquota [参数] 用户名”。
在为用户设置了quota磁盘容量配额限制后,可以使用edquota命令按需修改限额的数值。其中,-u参数表示要针对哪个用户进行设置;-g参数表示要针对哪个用户组进行设置,如表6-6所示。
表6-6 edquota命令中可用的参数以及作用
参数 | 作用 |
-u | 对那位用户进行设置 |
-g | 对那个用户组进行设置 |
-p | 复制原有的规则到新的用户/组 |
-t | 限制宽限期限 |
edquota命令会调用Vi或Vim编辑器来让root管理员修改要限制的具体细节,记得用wq保存退出呦。动手把用户redhat的硬盘使用量的硬限额从5MB提升到8MB吧:
测试验证如下
软硬方式链接
软链接(symbolic link):也叫符号链接,仅仅包含所链接文件的名称和路径,像个记录地址的标签。当原始文件被删除或移动后,新的链接文件也会随之失效,不能被访问,可以对文件、目录做软链接,跨文件系统也不是问题,从这一点来看与Windows系统的“快捷方式”具有一样的性质。用户访问起来的效果如图6-15所示。
删除原始文件,符号链接文件异常
符号链接的原始文件删除后,重新添加会后,符号链接的信息是会显示新增的内容
硬链接(hard link):可以将它理解为一个“指向原始文件block的指针”,系统会创建出一个与原来一摸一样的inode信息块。所以,硬链接文件与原始文件其实是一摸一样的,只是名字不同。每添加一个硬链接,该文件的inode个数就会增加1;而且只有当该文件的inode个数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件block的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,不能跨分区对目录文件进行硬链接。
-s | 创建“符号链接”(如果不带-s参数,则默认创建硬链接) |
-f | 强制创建文件或目录的链接 |
-i | 覆盖前先询问 |
-v | 显示创建链接的过程 |
RAID磁盘冗余阵列
RAID 0 RAID 1 RAID 5 RAID 10信息如下:
RAID级别 | 最少硬盘 | 可用容量 | 读写性能 | 安全性 | 特点 |
0 | 2 | n | n | 低 | 追求最大容量和速度,任何一块盘损坏,数据全部异常。 |
1 | 2 | n/2 | n | 高 | 追求最大安全性,只要阵列组中有一块硬盘可用,数据不受影响。 |
5 | 3 | n-1 | n-1 | 中 | 在控制成本的前提下,追求硬盘的最大容量、速度及安全性,允许有一块硬盘异常,数据不受影响。 |
10 | 4 | n/2 | n/2 | 高 | 综合RAID1和RAID0的优点,追求硬盘的速度和安全性,允许有一半硬盘异常(不可同组),数据不受影响 |
mdadm命令的常用参数和作用
参数 | 作用 |
-a | 检测设备名称 |
-n | 指定设备数量 |
-l | 指定RAID级别 |
-C | 创建 |
-v | 显示过程 |
-f | 模拟设备损坏 |
-r | 移除设备 |
-Q | 查看摘要信息 |
-D | 查看详细信息 |
-S | 停止RAID磁盘阵列 |
部署磁盘阵列
首先,需要在虚拟机中添加4块硬盘设备来制作一个RAID 10磁盘阵列,记得要用SCSI或SATA接口类型,为了快速实现可以设置20GB验证一下效果即可
-C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID磁盘阵列的名称;-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列;而-l 10参数则代表RAID 10方案;最后再加上4块硬盘设备的名称就搞定了
查看生成RAID的详细进度
把制作好的RAID磁盘阵列格式化为ext4格式
创建挂载点然后把硬盘设备进行挂载操作。挂载成功后可看到可用空间为40GB(因为RAID10的利用只有50%)。
并查看/dev/md0磁盘阵列的详细信息
把挂载信息写入到配置文件中,使其永久生效。
损坏磁盘阵列及修复
咱们在生产环境中部署RAID10磁盘阵列组目的就是为了提高存储设备的IO读写速度及数据的安全性,但因为这次是在本机电脑上模拟出来的硬盘设备所以对于读写速度的改善可能并不直观,首先确认有一块物理硬盘设备出现损坏不能再继续正常使用后,应该使用mdadm命令来予以移除之后查看下RAID磁盘阵列组的状态已经被改变
模拟磁盘D损坏:
我们是在虚拟机中模拟硬盘,所以先重启系统,然后再把新的硬盘添加到RAID磁盘阵列中。
磁盘阵列+备份盘
RAID 10磁盘阵列中最多允许50%的硬盘设备发生故障,但是存在这样一种极端情况,即同一RAID 1磁盘阵列中的硬盘设备若全部损坏,也会导致数据丢失。部署RAID 5磁盘阵列时,至少需要用到3块硬盘,还需要再加一块备份硬盘,所以总计需要在虚拟机中模拟4块硬盘设备,模拟信息如下:
-C 创建 -v 显示过程 -n 设备数量 -l RAID级别 -x 备份盘
同步信息完成,有一个备份盘可以看到
[root@my-server ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jan 24 17:04:26 2021
Raid Level : raid5
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Jan 24 17:04:53 2021
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : my-server:0 (local to host my-server)
UUID : 3d867578:36690051:d95c1b74:0b36b19f
Events : 18
Number Major Minor RaidDevice State
0 8 32 0 active sync /dev/sdc
1 8 48 1 active sync /dev/sdd
4 8 64 2 active sync /dev/sde
3 8 80 - spare /dev/sdf
将部署好的RAID 5磁盘阵列格式化为ext4文件格式,然后挂载到目录上
我们再次把硬盘设备/dev/sde移出磁盘阵列,然后迅速查看/dev/md0磁盘阵列的状态,就会发现备份盘已经被自动顶替上去并开始了数据同步。RAID中的这种备份盘技术非常实用,可以在保证RAID磁盘阵列数据安全性的基础上进一步提高数据可靠性,所以,如果公司不差钱的话还是再买上一块备份盘以防万一
[root@my-server ~]# mdadm /dev/md0 -f /dev/sde
mdadm: set /dev/sde faulty in /dev/md0
[root@my-server ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jan 24 17:04:26 2021
Raid Level : raid5
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Jan 24 17:15:20 2021
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 29% complete
Name : my-server:0 (local to host my-server)
UUID : 3d867578:36690051:d95c1b74:0b36b19f
Events : 24
Number Major Minor RaidDevice State
0 8 32 0 active sync /dev/sdc
1 8 48 1 active sync /dev/sdd
3 8 80 2 spare rebuilding /dev/sdf
4 8 64 - faulty /dev/sde
[root@my-server ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jan 24 17:04:26 2021
Raid Level : raid5
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Jan 24 17:15:39 2021
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : my-server:0 (local to host my-server)
UUID : 3d867578:36690051:d95c1b74:0b36b19f
Events : 37
Number Major Minor RaidDevice State
0 8 32 0 active sync /dev/sdc
1 8 48 1 active sync /dev/sdd
3 8 80 2 active sync /dev/sdf
4 8 64 - faulty /dev/sde
[root@my-server ~]#
重启虚拟机再次重新挂载