当前位置: 首页 > news >正文

linux入门4.1(硬盘分区管理和RAID)

文章目录

  • 1. Linux 硬盘分区管理
    • 硬盘为什么要分区?
    • MBR 分区方案
    • fdisk 工具
      • fdisk命令语法
      • 查看分区
      • 非交互方式管理
    • GPT 分区方案
    • gdisk 工具
      • gdisk命令语法
      • 查看分区表
      • 转换分区表方案
      • 创建分区
      • 更改分区名称
      • 查看分区详细信息
      • 删除分区
    • wipefs 工具
    • parted 工具
      • 查看分区表
      • 设置单位
      • 管理 MBR 磁盘
        • 设置磁盘分区管理方案
        • 扩展分区,删除分区
        • 免交互操作
      • 管理 GPT 磁盘
        • 设置磁盘分区管理方案
        • 免交互操作
    • 文件系统持久化挂载
      • 持久化挂载
      • 取消持久化挂载
    • 综合案例:文件系统空间不足
      • 情况1:大量的大文件占用空间
      • 情况2:删除文件后,空间没有释放
      • 情况3:大量的小文件占用空间
    • 思考:如何彻底擦除硬盘上数据
  • 2. Linux RAID 存储技术
    • 环境准备
    • RAID 技术历史
    • RAID 实现方式
    • RAID 级别
      • RAID 0
        • 原理
        • 适用场景
        • 优点
        • 缺点
      • RAID 1
        • 原理
        • 适用场景
        • 优点
        • 缺点
      • RAID 5
        • 原理
        • 适用场景
        • 优点
        • 缺点
      • RAID 6
        • **原理**
        • 适用场景
        • 优点
        • 缺点
      • RAID 10
        • **原理**
        • 适用场景
        • 优点
        • 缺点
      • RAID 50
        • **原理**
        • 适用场景
        • 优点
        • 缺点
      • RAID 60
        • 原理
        • 适用场景
        • 优点
        • 缺点
      • RAID 级别总结
    • 管理软 RAID
      • 管理 RAID0
        • 格式化和挂载,删除 RAID
      • 管理 RAID1
        • 创建 RAID,查看 RAID
        • 格式化和挂载
        • 增加热备盘
        • 模拟故障
        • 删除故障磁盘
        • 删除 RAID
        • 补充说明
      • 管理 RAID5
        • 创建 RAID
        • 格式化和挂载,增加热备盘
        • 模拟故障,删除故障磁盘

1. Linux 硬盘分区管理

硬盘为什么要分区?

  • 将操作系统文件与用户文件分隔开,避免应用数据太多撑满操作系统盘。
  • 限制应用或用户的可用空间。
  • 如果一个分区出现逻辑损坏,仅损坏该分区数据而不影响硬盘上其他分区。
  • 用于创建交换分区。
  • 限制磁盘空间使用,以提高诊断工具和备份镜像的性能。
  • 便于定制文件系统,例如有的文件系统存放大量小文件,有的文件系统存放大量大文件。

MBR 分区方案

自 1982年以来,主启动记录(MBR)分区方案指定了在运行 BIOS 固件的系统上如何对磁盘进行分区:

在这里插入图片描述

  • 该方案支持最多4个主分区。

  • 在 Linux系统上,管理员可以使用扩展分区和逻辑分区来创建最多 15个分区

    逻辑分区是可以格式化(format),扩展分区是不可以格式化。

  • MBR 记录用4个字节(1byte=8bit)存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过 2 TiB

类比为:笔记本只有4个usb接口,如果不够用,则将第四个usb接口外接扩展坞,由扩展坞提供多个usb接口。

通常,我们将磁盘第一个扇区称为主引导扇区,位于硬盘的柱面0、磁头0、扇区1的位置,这一扇区包含MBR引导代码,承担系统启动职能。它不属于磁盘上任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。

主引导扇区由三个部分组成:

在这里插入图片描述

  • 引导程序(占446个字节),硬盘启动时将系统控制权转给分区表中的某个操作系统。
  • 磁盘分区表项(DPT,Disk Partition Table),由四个分区表项构成(每个16个字节)。
  • 结束标志(占2个字节),其值为AA55(十六进制)。

fdisk 工具

fdisk 工具可用于管理采用 MBR 分区方案的磁盘,用户可以根据实际情况进行划分分区。

fdisk命令语法

[root@server ~ 16:16:48]# fdisk -h
用法:fdisk [选项] <磁盘>    更改分区表fdisk [选项] -l <磁盘> 列出分区表fdisk -s <分区>        给出分区大小(块数)选项:-b <大小>             扇区大小(512、1024、2048或4096)-c[=<模式>]           兼容模式:“dos”或“nondos”(默认)-h                    打印此帮助文本-u[=<单位>]           显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)-v                    打印程序版本-C <数字>             指定柱面数-H <数字>             指定磁头数-S <数字>             指定每个磁道的扇区数

除了使用-l选项查看分区表,其他选项暂时都不用。

查看分区

fdisk工具大部分操作通过交互式完成,出了查看分区表。

DOS disklabel 指的硬盘管理方式是MBR。

我们使用上一章准备的一块硬盘/dev/sdb。

[root@server ~ 10:17:37]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x52e21fa8 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):m
命令操作a   toggle a bootable flagb   edit bsd disklabelc   toggle the dos compatibility flagd   delete a partitiong   create a new empty GPT partition tableG   create an IRIX (SGI) partition tablel   list known partition typesm   print this menun   add a new partitiono   create a new empty DOS partition tablep   print the partition tableq   quit without saving changess   create a new empty Sun disklabelt   change a partition's system idu   change display/entry unitsv   verify the partition tablew   write table to disk and exitx   extra functionality (experts only)#创建分区   命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):+2G
Last 扇区, +扇区 or +size{K,M,G} (4194304-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 18 GiB命令(输入 m 获取帮助):w  
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server ~ 10:20:08]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  20G  0 disk 
└─sdb1   8:17   0  18G  0 part 
[root@server ~ 10:20:21]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1179648 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=4718592, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@server ~ 10:21:08]# mkdir /data1
[root@server ~ 10:21:16]# mount /dev/sdb1 /data1
[root@server ~ 10:21:26]# cp /etc/host* /data1
[root@server ~ 10:21:39]# ls /data1
host.conf  hostname  hosts  hosts.allow  hosts.deny
[root@server ~ 10:21:43]# df -h /data1
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1        18G   33M   18G    1% /data1

注意:如果此时分区表未生成,执行以下命令,通知kernel重新生成分区表。有时候重启系统才会生成最新分区表。

[root@server ~ 17:21:41]# partprobe

如果硬盘空间比较大,需要的文件系统数量超过4个,那么就需要借助扩展分区创建逻辑分区了。

如下示例,创建第4个分区的时候,类型选择扩展分区;创建第5个分区的时候,类型选择逻辑分区。

[root@server ~ 17:21:41]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0xbed5e272 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+3G
分区 1 已设置为 Linux 类型,大小设为 3 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (6293504-41943039,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-41943039,默认为 41943039):+4G
分区 2 已设置为 Linux 类型,大小设为 4 GiB命令(输入 m 获取帮助):
命令(输入 m 获取帮助):n
Partition type:p   primary (2 primary, 0 extended, 2 free)e   extended
Select (default p): 
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (14682112-41943039,默认为 14682112):
将使用默认值 14682112
Last 扇区, +扇区 or +size{K,M,G} (14682112-41943039,默认为 41943039):+5G
分区 3 已设置为 Linux 类型,大小设为 5 GiB命令(输入 m 获取帮助):n
Partition type:p   primary (3 primary, 0 extended, 1 free)e   extended
Select (default e): 
Using default response e
已选择分区 4
起始 扇区 (25167872-41943039,默认为 25167872):
将使用默认值 25167872
Last 扇区, +扇区 or +size{K,M,G} (25167872-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 8 GiB命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (25169920-41943039,默认为 25169920):
将使用默认值 25169920
Last 扇区, +扇区 or +size{K,M,G} (25169920-41943039,默认为 41943039):
将使用默认值 41943039
分区 5 已设置为 Linux 类型,大小设为 8 GiB命令(输入 m 获取帮助):p磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xbed5e272设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     6293503     3145728   83  Linux
/dev/sdb2         6293504    14682111     4194304   83  Linux
/dev/sdb3        14682112    25167871     5242880   83  Linux
/dev/sdb4        25167872    41943039     8387584    5  Extended
/dev/sdb5        25169920    41943039     8386560   83  Linux命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server ~ 17:32:35]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  20G  0 disk 
├─sdb1   8:17   0   3G  0 part 
├─sdb2   8:18   0   4G  0 part 
├─sdb3   8:19   0   5G  0 part 
├─sdb4   8:20   0   1K  0 part 
└─sdb5   8:21   0   8G  0 part 

创建分区演示完成,只保留1个分区,多余的删除。

[root@server ~ 17:32:42]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):d
分区号 (1-5,默认 5):5   
分区 5 已删除命令(输入 m 获取帮助):d
分区号 (1-4,默认 4):4
分区 4 已删除命令(输入 m 获取帮助):d
分区号 (1-3,默认 3):3
分区 3 已删除命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):2
分区 2 已删除命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除

非交互方式管理

示例1:创建一个分区

[root@server ~ 17:34:31]# vim fdisk1.txt
n
p
1
2048
+2G
p
w
[root@server ~ 17:40:29]# fdisk /dev/sdb < fdisk1.txt
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): 分区号 (1-4,默认 1):起始 扇区 (2048-41943039,默认为 2048):Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xbed5e272设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux命令(输入 m 获取帮助):The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server ~ 17:40:48]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  20G  0 disk 
└─sdb1   8:17   0   2G  0 part 

示例2:删除一个分区

[root@server ~ 17:40:57]# vim fdisk2.txt
d
p
w
[root@server ~ 17:41:33]# fdisk /dev/sdb < fdisk2.txt
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):已选择分区 1
分区 1 已删除命令(输入 m 获取帮助):
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xbed5e272设备 Boot      Start         End      Blocks   Id  System命令(输入 m 获取帮助):The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server ~ 17:41:56]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb    8:16   0  20G  0 disk 

GPT 分区方案

GPT是运行统一可扩展固件接口(UEFI)固件系统上硬盘分区表的标准。

  • MBR分区方案只能管理最大2TiB分区和磁盘。全局唯一标识分区表(GPT,GUID Partition Table)使用8个字节(1byte=8bit)存储分区的总扇区数,可支持最多8 ZiB(=264*512 Byte),即80亿太字节的分区和磁盘。

  • MBR分区方案支持最多15个分区。GPT分区方案最多可提供128个分区

  • GPT提供分区表信息的冗余

GPT分区表结构如下:

在这里插入图片描述

  • LBA0(保护性MBR),分为两个部分:

    • 第一部分是与MBR中446字节相似的区块,用于存放第一阶段的启动引导程序

    • 第二部分是与MBR分区表记录区对应,该区域存储一个特殊标识符0xEE,用于表示该磁盘为GPT格式。若磁盘管理程序(比较老的软件)无法识别该磁盘,不能修改这个分区信息,进一步保护磁盘。

  • LBA1(GPT表头记录),记录了分区表自身的位置和大小,同时也记录了前面提到备份用的GPT分区所在位置(最后34个LBA),还放置了分区表的校验码(CRC32),校验码的作用是让操作系统判断GPT的正确与否,倘若发现错误则可以从备份的GPT中恢复正常运行。

  • LBA2-33,记录分区信息,每个LBA可以提供4组的分区记录,默认情况下可以有4×32=128组分区记录。因为每个LBA都有512字节,所以每组分区记录所占128字节,除去每组记录需要的标识符和相关记录信息外,GPT在每组记录中提供了64位记载分区的扇区总数。

  • 虽然GPT最大支持128个分区,但是实际使用过程中分区超过第120个会出现无法格式化使用的情况。

gdisk 工具

gdisk工具用于管理采用GPT分区方案的磁盘分区,主要用于管理磁盘容量超过2T的磁盘。

gdisk命令语法

gdisk [ -l ] device

查看分区表

[root@server ~ 17:43:38]# gdisk -l /dev/sdb
GPT fdisk (gdisk) version 0.8.10Partition table scan:MBR: MBR onlyBSD: not presentAPM: not presentGPT: not present***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. 
***************************************************************Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 692C9F16-772D-43F2-A099-1A9C49E30119
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 41942973 sectors (20.0 GiB)Number  Start (sector)    End (sector)  Size       Code  Name

转换分区表方案

gdisk工具用于管理gpt分区,所以我们需要将磁盘的分区管理方案由MBR转换成GPT。

[root@server ~ 17:43:44]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10Partition table scan:MBR: MBR onlyBSD: not presentAPM: not presentGPT: not present***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************Command (? for help): ?
b       back up GPT data to a file
c       change a partition's name
d       delete a partition
i       show detailed information on a partition
l       list known partition types
n       add a new partition
o       create a new empty GUID partition table (GPT)
p       print the partition table
q       quit without saving changes
r       recovery and transformation options (experts only)
s       sort partitions
t       change a partition's type code
v       verify disk
w       write table to disk and exit
x       extra functionality (experts only)
?       print this menuCommand (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): Y  Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 3CCDB787-8B4A-4E44-9A1D-133D59C92E30
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 41942973 sectors (20.0 GiB)Number  Start (sector)    End (sector)  Size       Code  NameCommand (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

创建分区

[root@server ~ 17:45:07]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10Partition table scan:MBR: protectiveBSD: not presentAPM: not presentGPT: presentFound valid GPT with protective MBR; using GPT.Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +2G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
3000 ONIE boot             3001 ONIE config           4100 PowerPC PReP boot   
4200 Windows LDM data      4201 Windows LDM metadata  7501 IBM GPFS            
7f00 ChromeOS kernel       7f01 ChromeOS root         7f02 ChromeOS reserved   
8200 Linux swap            8300 Linux filesystem      8301 Linux reserved      
8302 Linux /home           8400 Intel Rapid Start     8e00 Linux LVM           
a500 FreeBSD disklabel     a501 FreeBSD boot          a502 FreeBSD swap        
a503 FreeBSD UFS           a504 FreeBSD ZFS           a505 FreeBSD Vinum/RAID  
a580 Midnight BSD data     a581 Midnight BSD boot     a582 Midnight BSD swap   
a583 Midnight BSD UFS      a584 Midnight BSD ZFS      a585 Midnight BSD Vinum  
a800 Apple UFS             a901 NetBSD swap           a902 NetBSD FFS          
a903 NetBSD LFS            a904 NetBSD concatenated   a905 NetBSD encrypted    
a906 NetBSD RAID           ab00 Apple boot            af00 Apple HFS/HFS+      
af01 Apple RAID            af02 Apple RAID offline    af03 Apple label         
af04 AppleTV recovery      af05 Apple Core Storage    be00 Solaris boot        
bf00 Solaris root          bf01 Solaris /usr & Mac Z  bf02 Solaris swap        
bf03 Solaris backup        bf04 Solaris /var          bf05 Solaris /home       
bf06 Solaris alternate se  bf07 Solaris Reserved 1    bf08 Solaris Reserved 2  
bf09 Solaris Reserved 3    bf0a Solaris Reserved 4    bf0b Solaris Reserved 5  
c001 HP-UX data            c002 HP-UX service         ea00 Freedesktop $BOOT   
eb00 Haiku BFS             ed00 Sony system partitio  ed01 Lenovo system partit
Press the <Enter> key to see more codes: 
ef00 EFI System            ef01 MBR partition scheme  ef02 BIOS boot partition 
fb00 VMWare VMFS           fb01 VMWare reserved       fc00 VMWare kcore crash p
fd00 Linux RAID            
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 3CCDB787-8B4A-4E44-9A1D-133D59C92E30
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 37748669 sectors (18.0 GiB)Number  Start (sector)    End (sector)  Size       Code  Name1            2048         4196351   2.0 GiB     8300  Linux filesystem

更改分区名称

Command (? for help): c
Using 1
Enter name: data01Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 3CCDB787-8B4A-4E44-9A1D-133D59C92E30
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 37748669 sectors (18.0 GiB)Number  Start (sector)    End (sector)  Size       Code  Name1            2048         4196351   2.0 GiB     8300  data01

查看分区详细信息

Command (? for help): i
Using 1
Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem)
Partition unique GUID: 761B38FA-DAB6-46D7-A914-313B950A15AA
First sector: 2048 (at 1024.0 KiB)
Last sector: 4196351 (at 2.0 GiB)
Partition size: 4194304 sectors (2.0 GiB)
Attribute flags: 0000000000000000
Partition name: 'data01'

删除分区

Command (? for help): d
Using 1Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 3CCDB787-8B4A-4E44-9A1D-133D59C92E30
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 41942973 sectors (20.0 GiB)Number  Start (sector)    End (sector)  Size       Code  NameCommand (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

wipefs 工具

作用:清除磁盘分区表信息。

注意:数据无价,操作需谨慎,最好提前备份。

[root@server ~ 17:47:32]# wipefs -a /dev/sdb
[root@server ~ 17:48:14]# wipefs -fa /dev/sdb

parted 工具

parted 工具既可以管理采用MBR分区方案的磁盘,又可以管理采用GPT分区方案的磁盘。

parted 命令同时支持交互式操作和非交互式操作(编写脚本)。

我们先来看看交互式操作。

操作流程:

  1. 查看分区表。如果是未初始化硬盘,创建分区。
  2. 设置单位(MiB)
  3. 创建分区
  4. 调整分区大小
  5. 调整分区类型
  6. 删除分区

查看分区表

[root@server ~ 17:48:14]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                                             align-check TYPE N                        check partition N for TYPE(min|opt)alignmenthelp [COMMAND]                           print general help, or help on COMMANDmklabel,mktable LABEL-TYPE               create a new disklabel (partitiontable)mkpart PART-TYPE [FS-TYPE] START END     make a partitionname NUMBER NAME                         name partition NUMBER as NAMEprint [devices|free|list,all|NUMBER]     display the partition table, availabledevices, free space, all found partitions, or a particular partitionquit                                     exit programrescue START END                         rescue a lost partition near START andENDresizepart NUMBER END                    resize partition NUMBERrm NUMBER                                delete partition NUMBERselect DEVICE                            choose the device to editdisk_set FLAG STATE                      change the FLAG on selected devicedisk_toggle [FLAG]                       toggle the state of FLAG on selecteddeviceset NUMBER FLAG STATE                    change the FLAG on partition NUMBERtoggle [NUMBER [FLAG]]                   toggle the state of FLAG on partitionNUMBERunit UNIT                                set the default unit to UNITversion                                  display the version number andcopyright information of GNU Parted
(parted) print                                                            
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start  End  Size  File system  Name  标志

设置单位

parted工具默认单位是MB(103K),设置为MiB(210KiB)

(parted) unit MiB    

管理 MBR 磁盘

设置磁盘分区管理方案
[root@server ~ 11:39:28]# parted /dev/sdd
GNU Parted 3.1
使用 /dev/sdd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel msdos
警告: The existing disk label on /dev/sdd will be destroyed and all data on this
disk will be lost. Do you want to continue?
是/Yes/否/No? yes                                                         
(parted) print                                                            
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdd: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number  Start  End  Size  Type  File system  标志(parted) mkpart                                                           
分区类型?  primary/主分区/extended/扩展分区? primary                     
文件系统类型?  [ext2]? xfs
起始点? 1                                                                
结束点? 2049                                                             
(parted) print                                                            
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdd: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number  Start   End     Size    Type     File system  标志1      1049kB  2049MB  2048MB  primary(parted) unit MiB                                                         
(parted) print                                                         
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdd: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number  Start    End      Size     Type     File system  标志1      1.00MiB  1954MiB  1953MiB  primary(parted) q   
扩展分区,删除分区
[root@server ~ 11:42:02]# lsblk /dev/sdd
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdd      8:48   0   20G  0 disk 
└─sdd1   8:49   0  1.9G  0 part 
[root@server ~ 11:44:45]# parted /dev/sdd
GNU Parted 3.1
使用 /dev/sdd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart 1 4097
(parted) print                                                            
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdd: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number  Start   End     Size    Type     File system  标志1      1049kB  4097MB  4096MB  primary(parted) rm 1
(parted) print                                                            
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdd: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number  Start  End  Size  Type  File system  标志(parted)                                           
免交互操作
[root@server ~ 17:58:48]# parted /dev/sdb mklabel msdos
警告: The existing disk label on /dev/sdb will be destroyed and all data on this
disk will be lost. Do you want to continue?
是/Yes/否/No? y                                                           
信息: You may need to update /etc/fstab.[root@server ~ 17:59:01]# parted /dev/sdb unit MiB print                  
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number  Start  End  Size  Type  File system  标志[root@server ~ 17:59:33]# parted /dev/sdb unit MiB mkpart primary 1 2049
信息: You may need to update /etc/fstab.[root@server ~ 18:00:05]# parted /dev/sdb unit MiB print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number  Start    End      Size     Type     File system  标志1      1.00MiB  2049MiB  2048MiB  primary[root@server ~ 18:00:16]# parted /dev/sdb unit MiB resizepart 1 5121
信息: You may need to update /etc/fstab.[root@server ~ 18:00:44]# parted /dev/sdb unit MiB print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number  Start    End      Size     Type     File system  标志1      1.00MiB  5121MiB  5120MiB  primary[root@server ~ 18:00:46]# parted /dev/sdb rm 1
信息: You may need to update /etc/fstab.[root@server ~ 18:00:58]# parted /dev/sdb unit MiB print                  
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: Number  Start  End  Size  Type  File system  标志

管理 GPT 磁盘

管理GPT磁盘基本与管理MBR磁盘一致,除了创建分区。

设置磁盘分区管理方案
[root@server ~ 14:04:42]# parted /dev/sdc
GNU Parted 3.1
使用 /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt                                                      
(parted) print                                                            
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start  End  Size  File system  Name  标志(parted) mkpart                                                           
分区名称?  []? data01
文件系统类型?  [ext2]? xfs                                               
起始点? 1                                                                
结束点? 2049                                                             
(parted) print                                                            
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name    标志1      1049kB  2049MB  2048MB               data01(parted) resizepart 1 5121                                                
(parted) print                                                            
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name    标志1      1049kB  5121MB  5120MB               data01(parted) rm 1                                                             
(parted) print                                                            
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start  End  Size  File system  Name  标志(parted) q                                                                
信息: You may need to update /etc/fstab.
免交互操作
[root@server ~ 18:03:24]# parted /dev/sdb mklabel gpt
警告: The existing disk label on /dev/sdb will be destroyed and all data on this
disk will be lost. Do you want to continue?
是/Yes/否/No? y                                                           
信息: You may need to update /etc/fstab.[root@server ~ 18:04:51]# parted /dev/sdb print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start  End  Size  File system  Name  标志[root@server ~ 18:04:58]# parted /dev/sdb unit MiB mkpart data01 xfs 1 2049
信息: You may need to update /etc/fstab.[root@server ~ 18:05:22]# parted /dev/sdb print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name    标志1      1049kB  2149MB  2147MB               data01[root@server ~ 18:05:27]# parted /dev/sdb unit MiB resizepart 1 5121
信息: You may need to update /etc/fstab.[root@server ~ 18:05:53]# parted /dev/sdb print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name    标志1      1049kB  5370MB  5369MB               data01[root@server ~ 18:05:56]# parted /dev/sdb rm 1
信息: You may need to update /etc/fstab.[root@server ~ 18:06:08]# parted /dev/sdb unit MiB print
Model: ATA VMware Virtual S (scsi)
Disk /dev/sdb: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start  End  Size  File system  Name  标志

文件系统持久化挂载

持久化挂载

当服务器重启时,系统不会再次将文件系统自动挂载到目录树上,用户无法访问。为了确保系统在启动时自动挂载文件系统, 需要在 /etc/fstab文件中添加一个条目。

/etc/fstab 是以空格分隔的文件,每行具有六个字段。

  • **第一个字段指定设备。**可以使用UUID或device来指定设备。
  • **第二个字段是目录挂载点。**通过它可以访问目录结构中的块设备。挂载点必须存在;如果不存在,请使用mkdir命令进行创建。
  • 第三个字段包含文件系统类型,如xfs或ext4 。
  • 第四个字段是挂载选项,以逗号分隔的。 defaults是一组常用选项。详细信息参考mount(8) 。
  • 第五个字段指定dump命令是否备份设备。
  • 第六个字段指定fsck顺序字段,决定了在系统启动吋是否应运行fsck命令,以验证文件系统是否干净。 该字段中的值指示了 fsck的运行顺序。 对于XFS文件系统, 请将该字段设为0 ,因为XFS并不使用fsck来检查自己的文件系统状态。 对于ext4 文件系统,如果是根文件系统, 请将该字段设 为 1 ; 如果是其他ext4 文件系统, 则将该字段设为2。 这样, fsck就会先处理根文件系统,然后同步检查不同磁盘上的文件系统,并按顺序检查同一磁盘上的文件系统。

示例:

[root@server ~ 13:40:34]# vim /etc/fstab
[root@server ~ 13:41:36]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                  483648       0   483648    0% /dev
tmpfs                     497816       0   497816    0% /dev/shm
tmpfs                     497816    7916   489900    2% /run
tmpfs                     497816       0   497816    0% /sys/fs/cgroup
/dev/mapper/centos-root 52403200 7308944 45094256   14% /
/dev/sda1                1038336  154452   883884   15% /boot
/dev/mapper/centos-home 49250820   33012 49217808    1% /home
tmpfs                      99564       0    99564    0% /run/user/0
/dev/sdb1               10475520   32992 10442528    1% /data1
[root@server ~ 13:41:40]# umount -a
umount: /:目标忙。(有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)
umount: /sys/fs/cgroup/systemd:目标忙。(有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)
umount: /sys/fs/cgroup:目标忙。(有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)
umount: /run:目标忙。(有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)
umount: /dev:目标忙。(有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)
[root@server ~ 13:41:51]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                  483648       0   483648    0% /dev
tmpfs                     497816    7916   489900    2% /run
tmpfs                     497816       0   497816    0% /sys/fs/cgroup
/dev/mapper/centos-root 52403200 7309148 45094052   14% /
[root@server ~ 13:41:56]# mount -a
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server ~ 13:42:02]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                  483648       0   483648    0% /dev
tmpfs                     497816    7916   489900    2% /run
tmpfs                     497816       0   497816    0% /sys/fs/cgroup
/dev/mapper/centos-root 52403200 7309168 45094032   14% /
/dev/sda1                1038336  154452   883884   15% /boot
/dev/mapper/centos-home 49250820   33012 49217808    1% /home
/dev/sr0                 4635056 4635056        0  100% /usr/share/nginx/html/dvd
[root@server ~ 13:42:04]# reboot连接断开
连接主机...
连接主机成功
Last login: Mon Sep 22 11:21:40 2025 from 10.1.8.1[root@server ~ 13:43:23]# 
[root@server ~ 13:43:23]# 
[root@server ~ 13:43:23]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                  483648       0   483648    0% /dev
tmpfs                     497816       0   497816    0% /dev/shm
tmpfs                     497816    7892   489924    2% /run
tmpfs                     497816       0   497816    0% /sys/fs/cgroup
/dev/mapper/centos-root 52403200 7312496 45090704   14% /
/dev/sr0                 4635056 4635056        0  100% /usr/share/nginx/html/dvd
/dev/sda1                1038336  154452   883884   15% /boot
/dev/mapper/centos-home 49250820   33012 49217808    1% /home
tmpfs                      99564       0    99564    0% /run/user/0
[root@server ~ 13:43:24]# cat /etc/fstab #
# /etc/fstab
# Created by anaconda on Tue Sep  2 10:18:35 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=cf9a0e0b-ff82-40a3-b1ff-58226e3bcb6e /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sr0 /usr/share/nginx/html/dvd iso9660 defaults 0 0 

在这里插入图片描述

[root@server ~ 13:56:44]# lsblk                                 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part ├─centos-root 253:0    0   50G  0 lvm  /├─centos-swap 253:1    0    2G  0 lvm  [SWAP]└─centos-home 253:2    0   47G  0 lvm  /home
sdb               8:16   0  200G  0 disk 
└─sdb1            8:17   0   10G  0 part 
sdc               8:32   0   20G  0 disk 
sr0              11:0    1  4.4G  0 rom  /usr/share/nginx/html/dvd
[root@server ~ 13:56:55]# blkid /dev/sdb1
/dev/sdb1: UUID="38983432-5408-4c7c-820e-b14fe429db51" TYPE="xfs" 
[root@server ~ 13:57:30]# mkdir /data01
[root@server ~ 13:57:40]# vim /etc/fstab
[root@server ~ 13:58:00]# vim /etc/fstab
[root@server ~ 13:59:06]# mount /data01
[root@server ~ 13:59:13]# df -h /data01
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1        10G   33M   10G    1% /data01
[root@server ~ 13:59:26]# reboot连接断开
连接主机...
连接主机成功
Last login: Mon Sep 22 13:43:23 2025 from 10.1.8.1
[root@server ~ 13:59:53]# df -h /data01
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1        10G   33M   10G    1% /data01
[root@server ~ 13:59:56]# cat /etc/fstab#
# /etc/fstab
# Created by anaconda on Tue Sep  2 10:18:35 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=cf9a0e0b-ff82-40a3-b1ff-58226e3bcb6e /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sr0 /usr/share/nginx/html/dvd iso9660 defaults 0 0 
UUID="38983432-5408-4c7c-820e-b14fe429db51"  /data01 xfs defaults 0 0

取消持久化挂载

删除/etc/fstab中对应条目即可。

综合案例:文件系统空间不足

情况1:大量的大文件占用空间

[root@server ~ 14:18:50]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131072 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524288, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@server ~ 14:18:55]# mount /dev/sdb1 /myapp-1
[root@server ~ 14:18:58]# df -h /myapp-1
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1       2.0G   33M  2.0G    2% /myapp-1
[root@server ~ 14:19:07]# mkdir /myapp-1/etc 
[root@server ~ 14:21:13]# dd if=/dev/zero of=/myapp-1/etc/bigfile bs=1M count=2006
dd: 写入"/myapp-1/etc/bigfile" 出错: 设备上没有空间
记录了2006+0 的读入
记录了2005+0 的写出
2102394880字节(2.1 GB)已复制,3.64303 秒,577 MB/秒
[root@server ~ 14:21:59]# df -h /myapp-1/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1       2.0G  2.0G  800K  100% /myapp-1
[root@server ~ 14:22:23]# find /myapp-1/ -size +100M
/myapp-1/etc/bigfile
[root@server ~ 14:34:07]# du -s /myapp-1/* |sort -n |tail -2
2053120 /myapp-1/etc
[root@server ~ 14:34:38]# du -s /myapp-1/etc |sort -n |tail -2
2053120 /myapp-1/etc
[root@server ~ 14:34:45]# du -s /myapp-1/etc/* |sort -n |tail -2
2053120 /myapp-1/etc/bigfile
[root@server ~ 14:34:56]# rm -f /myapp-1/etc/bigfile 
[root@server ~ 14:35:21]# df -h /myapp-1/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1       2.0G   33M  2.0G    2% /myapp-1

找到文件后,删除即可。

情况2:删除文件后,空间没有释放

[root@server ~ 14:35:27]# ls /myapp-1/etc/
[root@server ~ 14:36:46]# dd if=/dev/zero of=/myapp-1/etc/bigfile bs=1M count=2006
dd: 写入"/myapp-1/etc/bigfile" 出错: 设备上没有空间
记录了2006+0 的读入
记录了2005+0 的写出
2102394880字节(2.1 GB)已复制,1.62511 秒,1.3 GB/秒
[root@server ~ 14:37:05]# tail -f /myapp-1/etc/bigfile &
[1] 79270
[root@server ~ 14:38:44]# rm -f /myapp-1/etc/bigfile 
[root@server ~ 14:39:05]# df -h /myapp-1/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1       2.0G  2.0G  800K  100% /myapp-1
[root@server ~ 14:39:13]# lsof | grep delete |grep /myapp-1/
tail      79270         root    3r      REG               8,17 2102394880         68 /myapp-1/etc/bigfile (deleted)
[root@server ~ 14:40:18]# kill 79270
[root@server ~ 14:40:42]# df -h /myapp-1/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1       2.0G   33M  2.0G    2% /myapp-1
[1]+  已终止               tail -f /myapp-1/etc/bigfile

建议:清理大文件,先使用重定向清空文件内容,再删除文件。

情况3:大量的小文件占用空间

[root@server ~ 14:40:48]# ls /myapp-1/etc/
[root@server ~ 14:41:10]# parted /dev/sdb unit Mib mkpart data02 ext4 2049 3073
信息: You may need to update /etc/fstab.[root@server ~ 14:43:09]# mkfs.ext4 /dev/sdb2                             
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成[root@server ~ 14:43:19]# mkdir /myapp-2
[root@server ~ 14:43:41]# mount /dev/sdb2 /myapp-2
[root@server ~ 14:43:55]# touch /myapp-2/file-{00001..10000}
[root@server ~ 14:45:21]# touch /myapp-2/file-{10001..70000}
touch: 无法创建"/myapp-2/file-69999": 设备上没有空间
touch: 无法创建"/myapp-2/file-70000": 设备上没有空间
[root@server ~ 14:46:37]# df -hi /myapp-2
文件系统       Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb2        64K     64K       0     100% /myapp-2
[root@server ~ 14:46:47]# cat /myapp-2/file-{00001..65525} > file-00001
[root@server ~ 14:48:01]# df -hi /myapp-2
文件系统       Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb2        64K     64K       0     100% /myapp-2

思考:如何彻底擦除硬盘上数据

解答:

  1. 逻辑破坏:用0填充所有数据,例如 dd if=/dev/zero of=/dev/sdb
  2. 物理破坏,例如消磁。

2. Linux RAID 存储技术

参考:来源1

环境准备

虚拟机添加6块20G 硬盘,sdb sdc sdd sde sdf sdg

RAID 技术历史

1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等人首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念 ,即廉价磁盘冗余阵列( Redundant Array of Inexpensive Disks )。由于当时大容量磁盘比较昂贵, RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性随着磁盘成本和价格的不断降低, RAID 可以使用大部分的磁盘, “廉价” 已经毫无意义。因此, RAID 咨询委员会( RAID Advisory Board, RAB )决定用 “ 独立 ” 替代 “ 廉价 ” ,于时 RAID 变成了独立磁盘冗余阵列( Redundant Array of Independent Disks )。但这仅仅是名称的变化,实质内容没有改变。

RAID 实现方式

从实现角度看, RAID 主要分为:

  • 软 RAID:所有功能均有操作系统和 CPU 来完成,没有独立的 RAID 控制 / 处理芯片和 I/O 处理芯片,效率最低。
  • 硬 RAID :配备了专门的 RAID 控制 / 处理芯片和 I/O 处理芯片以及阵列缓冲,不占用 CPU 资源,成本很高。
  • 软硬混合 RAID:具备 RAID 控制 / 处理芯片,但缺乏 I/O 处理芯片,需要 CPU 和驱动程序来完成,性能和成本在软 RAID 和硬 RAID 之间。

RAID 级别

RAID 主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、容错能力和扩展性,根据运用或组合运用这三种技术的策略和架构,可以把 RAID 分为不同的等级,以满足不同数据应用的需求。 D. A. Patterson 等的论文中定义了 RAID1 ~ RAID5 原始 RAID 等级, 1988 年以来又扩展了 RAID0 和 RAID6 。

近年来,存储厂商不断推出诸如 RAID7 、 RAID10/01 、 RAID50 、 RAID53 、 RAID100 等 RAID 等级,但这些并无统一的标准。目前业界公认的标准是 RAID0 ~ RAID5 ,而在实际应用领域中使用最多的 RAID 等级是 RAID0 、 RAID1 、 RAID4 、 RAID5 、 RAID6 和 RAID10。

RAID 每一个等级代表一种实现方法和技术,等级之间并无高低之分。在实际应用中,应当根据用户的数据应用特点,综合考虑可用性、性能和成本来选择合适的 RAID 等级,以及具体的实现方式。

在这里插入图片描述

下面我们来详细介绍一下RAID的各个级别。

RAID 0

原理

RAID 0使用数据条带化(striping)的方式将数据分散存储在多个磁盘驱动器上,而不进行冗余备份。数据被分成固定大小的块,并依次存储在每个磁盘上。例如,如果有两个驱动器(驱动器A和驱动器B),一块数据的第一个部分存储在驱动器A上,第二个部分存储在驱动器B上,以此类推。这种条带化的方式可以同时从多个驱动器读取或写入数据,从而提高系统的性能。

在这里插入图片描述

适用场景

RAID 0适用于需要高性能而不关心数据冗余的场景。以下是几种适合使用RAID 0的场景:

  1. 视频编辑和处理:在视频编辑中,需要快速读取和写入大量数据。RAID 0可以通过并行读写操作提高数据传输速度,加快视频编辑和处理的速度。
  2. 大型数据库应用:对于需要频繁访问和查询数据库的应用程序,RAID 0可以提供更快的数据访问速度,加快数据库操作的响应时间。
  3. 实时流媒体:对于需要实时传输和处理大量数据的流媒体应用,RAID 0可以提供足够的带宽和吞吐量,确保流媒体内容的平滑播放。
优点

RAID 0具有以下优点:

  1. 高性能:通过数据条带化和并行读写操作,RAID 0可以提供更快的数据传输速度和更高的系统性能。
  2. 成本效益:相对于其他RAID级别(如RAID 1或RAID 5),RAID 0不需要额外的磁盘用于冗余备份,因此在成本上更具竞争力。
缺点

RAID 0也存在一些缺点:

  1. 缺乏冗余:由于RAID 0不提供数据冗余,如果任何一个驱动器发生故障,所有数据都可能丢失。因此,RAID 0不适合存储关键数据。
  2. 可靠性降低:由于没有冗余备份,RAID 0的可靠性相对较低。如果任何一个驱动器发生故障,整个阵列的可用性将受到影响。

RAID 1

原理

RAID 1使用数据镜像(mirroring)的方式将数据完全复制到两个或多个磁盘驱动器上。当写入数据时,数据同时写入所有驱动器。这样,每个驱动器都具有相同的数据副本,从而实现数据的冗余备份。如果其中一个驱动器发生故障,系统可以继续从剩余的驱动器中读取数据,确保数据的可用性和完整性。

在这里插入图片描述

适用场景

RAID 1适用于对数据冗余和高可用性要求较高的场景。以下是几种适合使用RAID 1的场景:

  1. 关键数据存储:对于关键数据的存储,如企业的财务数据、客户信息等,RAID 1可以提供数据冗余备份,以防止数据丢失。
  2. 数据库服务器:对于需要高可用性和容错性的数据库服务器,RAID 1可以确保数据的持久性和可用性,即使一个驱动器发生故障,也可以从其他驱动器中读取数据。
  3. 文件服务器:对于共享文件的服务器,RAID 1可以提供冗余备份,确保文件的可靠性和高可用性。
优点

RAID 1具有以下优点:

  1. 数据冗余备份:RAID 1通过数据镜像将数据完全复制到多个驱动器上,提供冗余备份,保护数据免受驱动器故障的影响。
  2. 高可用性:由于数据的冗余备份,即使一个驱动器发生故障,系统仍然可以从其他驱动器中读取数据,保证数据的可用性和连续性。
  3. 读取性能提升:RAID 1可以通过并行读取数据的方式提升读取性能,从而加快数据访问速度。
缺点

RAID 1也存在一些缺点:

  1. 成本增加:由于需要额外的磁盘用于数据冗余备份,RAID 1的成本相对较高。需要考虑额外的硬件成本。
  2. 写入性能略低:由于数据需要同时写入多个驱动器,相对于单个驱动器的写入性能,RAID 1的写入性能可能略低。

RAID 5

原理

RAID 5使用数据条带化(striping)的方式将数据分散存储在多个磁盘驱动器上,并通过分布式奇偶校验实现数据的冗余备份。数据和奇偶校验信息被组织成数据块,其中奇偶校验信息被分布式存储在不同的驱动器上。当写入数据时,奇偶校验信息也会被更新。如果其中一个驱动器发生故障,系统可以通过重新计算奇偶校验信息来恢复丢失的数据。这种方式可以同时提供性能增强和数据冗余。

在这里插入图片描述

适用场景

RAID 5适用于需要性能增强和数据冗余的场景。以下是几种适合使用RAID 5的场景:

  1. 文件服务器:对于文件服务器,RAID 5可以提供高性能的数据访问和数据冗余备份,确保文件的安全性和可用性。
  2. 数据库服务器:对于需要高性能和数据冗余的数据库服务器,RAID 5可以提供快速的数据读取和写入,同时保护数据免受驱动器故障的影响。
  3. 小型企业环境:对于小型企业,RAID 5提供了经济实惠的解决方案,同时提供了性能和数据冗余的好处。
优点

RAID 5具有以下优点:

  1. 性能增强:通过数据条带化和并行读写操作,RAID 5可以提供较高的数据传输速度和系统性能。
  2. 数据冗余备份:通过分布式奇偶校验,RAID 5可以提供数据的冗余备份,保护数据免受驱动器故障的影响。
  3. 成本效益:相对于其他RAID级别(如RAID 1),RAID 5只需要额外一个驱动器用于奇偶校验信息,从而在成本上更具竞争力。
缺点

RAID 5也存在一些缺点:

  1. 写入性能受限:由于写入数据时需要重新计算奇偶校验信息,相对于读取操作,RAID 5的写入性能较低。
  2. 驱动器故障期间的数据完整性:如果一个驱动器发生故障,系统在恢复数据时需要进行计算,这可能导致数据访问速度较慢,并且在此期间可能会有数据完整性的风险。

RAID 6

原理

RAID 6使用数据条带化(striping)的方式将数据分散存储在多个磁盘驱动器上,并通过分布式奇偶校验和双重奇偶校验实现数据的冗余备份。数据和奇偶校验信息被组织成数据块,其中奇偶校验信息被分布式存储在不同的驱动器上,并通过双重奇偶校验提供更高的数据冗余性。当写入数据时,奇偶校验信息也会被更新。如果其中两个驱动器发生故障,系统可以通过重新计算奇偶校验信息来恢复丢失的数据。这种方式可以同时提供性能增强和更高级别的数据冗余。

在这里插入图片描述

适用场景

RAID 6适用于需要更高级别的数据冗余和性能增强的场景。以下是几种适合使用RAID 6的场景:

  1. 大容量存储系统:对于需要大容量存储和数据冗余备份的系统,如大型文件服务器或存档系统,RAID 6可以提供更高级别的数据冗余性。
  2. 长时间运行的应用程序:对于需要长时间运行的关键应用程序,如数据库服务器,RAID 6可以提供更高级别的数据冗余和故障容忍性。
  3. 虚拟化环境:在虚拟化环境中,需要高性能和更高级别的数据冗余来支持多个虚拟机的运行。RAID 6可以满足这些要求。
优点

RAID 6具有以下优点:

  1. 更高级别的数据冗余:通过分布式奇偶校验和双重奇偶校验,RAID 6可以提供更高级别的数据冗余性,即使同时发生两个驱动器故障,仍能恢复丢失的数据。
  2. 性能增强:通过数据条带化和并行读写操作,RAID 6可以提供较高的数据传输速度和系统性能。
缺点

RAID 6也存在一些缺点:

  1. 写入性能略低:由于数据需要同时写入多个驱动器,并进行双重奇偶校验计算,相对于读取操作,RAID 6的写入性能较低。
  2. 较高的成本:由于需要额外的磁盘用于奇偶校验信息和更复杂的计算,RAID 6的成本相对较高。需要考虑额外的硬件成本。

RAID 10

原理

RAID 10使用条带化(striping)的方式将数据分散存储在多个磁盘驱动器上,并通过镜像(mirroring)实现数据的冗余备份。数据被分成固定大小的块,并依次存储在不同的驱动器上,类似于RAID 0。然而,每个数据块都会被完全复制到另一个驱动器上,实现数据的冗余备份,类似于RAID 1。这样,RAID 10在提供性能增强的同时,也提供了数据的冗余保护。

在这里插入图片描述

适用场景

RAID 10适用于需要高性能和数据冗余的场景。以下是几种适合使用RAID 10的场景:

  1. 数据库服务器:对于需要高可用性和性能的数据库服务器,RAID 10可以提供快速的数据读取和写入,同时保护数据免受驱动器故障的影响。
  2. 虚拟化环境:在虚拟化环境中,需要高性能和数据冗余来支持多个虚拟机的运行。RAID 10可以满足这些要求,提供性能增强和数据保护。
  3. 关键业务应用:对于关键业务应用,如金融交易系统或在线电子商务平台,RAID 10可以提供高可用性和快速的数据访问,确保业务的连续性和稳定性。
优点

RAID 10具有以下优点:

  1. 高性能:通过数据条带化和并行读写操作,RAID 10可以提供较高的数据传输速度和系统性能。
  2. 数据冗余备份:通过数据镜像将数据完全复制到另一个驱动器上,RAID 10提供了数据的冗余备份,保护数据免受驱动器故障的影响。
  3. 较高的可靠性:由于RAID 10采用镜像的方式进行数据冗余备份,即使一个驱动器发生故障,仍然可以从其他驱动器中读取数据,确保数据的可用性和连续性。
  4. 快速的故障恢复:在RAID 10中,如果一个驱动器发生故障,系统可以直接从镜像驱动器中恢复数据,而无需进行复杂的计算,从而加快故障恢复的速度。
缺点

RAID 10也存在一些缺点:

  1. 较高的成本:相对于其他RAID级别,RAID 10需要更多的驱动器用于数据镜像,从而增加了硬件成本。
  2. 低效的空间利用:由于RAID 10的数据镜像特性,有效的存储容量只等于所有驱动器中一半的容量,因此空间利用率较低。

RAID 50

原理

RAID 50使用条带化(striping)的方式将数据分散存储在多个RAID 5组中,并通过RAID 0的条带化方式对这些RAID 5组进行条带化。每个RAID 5组由多个磁盘驱动器组成,并使用分布式奇偶校验来提供数据冗余备份。RAID 0则通过将数据划分为固定大小的块,并将这些块依次存储在多个驱动器上,提供了更高的性能。这样,RAID 50既提供了数据冗余备份,又提供了性能增强。

在这里插入图片描述

适用场景

RAID 50适用于需要高性能和更高级别的数据冗余的场景。以下是几种适合使用RAID 50的场景:

  1. 大规模数据存储:对于需要大规模数据存储和数据冗余备份的系统,如视频编辑、数据分析或大型数据库,RAID 50可以提供高性能和较高级别的数据冗余性。
  2. 图形渲染和动画制作:在图形渲染和动画制作领域,需要高性能的存储系统来处理大型文件和复杂的渲染任务。RAID 50可以满足这些要求,提供快速的数据读取和写入速度。
  3. 虚拟化环境:在虚拟化环境中,需要高性能和更高级别的数据冗余来支持多个虚拟机的运行。RAID 50可以满足这些要求,提供性能增强和数据保护。
优点

RAID 50具有以下优点:

  1. 高性能:通过数据条带化和并行读写操作,RAID 50可以提供较高的数据传输速度和系统性能。
  2. 更高级别的数据冗余:由于采用了多个RAID 5组的方式,RAID 50提供了更高级别的数据冗余备份,即使同时发生多个驱动器故障,仍能恢复丢失的数据。
缺点

RAID 50也存在一些缺点:

  1. 较高的成本:由于需要更多的驱动器用于数据条带化和数据冗余备份,RAID 50的硬件成本相对较高。
  2. 配置和管理复杂性:由于涉及多个RAID 5组和驱动器,RAID 50的配置和管理相对复杂,需要更多的注意和维护。

RAID 60

原理

RAID 60采用条带化(striping)的方式将数据分散存储在多个RAID 6组中,并通过RAID 0的条带化方式对这些RAID 6组进行条带化。每个RAID 6组由多个磁盘驱动器组成,并使用分布式奇偶校验来提供数据的冗余备份。RAID 0则通过将数据划分为固定大小的块,并将这些块依次存储在多个驱动器上,提供了更高的性能。这样,RAID 60既提供了更高级别的数据冗余备份,又提供了性能增强。

在这里插入图片描述

适用场景

RAID 60适用于需要更高级别的数据冗余和更高性能的场景。以下是几种适合使用RAID 60的场景:

  1. 大型数据库系统:对于大型数据库系统,需要高可用性、高性能和更高级别的数据冗余来确保数据的完整性和可靠性。RAID 60可以提供这些要求。
  2. 大规模数据分析:在大规模数据分析领域,需要高性能的存储系统来处理大量数据的读取和写入。RAID 60可以满足这些要求,提供较高的数据传输速度和系统性能。
  3. 视频流****媒体处理:对于视频流媒体处理应用,需要快速的数据读取和写入,以确保流畅的视频播放和高质量的媒体处理。RAID 60可以满足这些要求。
优点

RAID 60具有以下优点:

  1. 更高级别的数据冗余:由于采用了多个RAID 6组的方式,RAID 60提供了更高级别的数据冗余备份,即使同时发生多个驱动器故障,仍能恢复丢失的数据。
  2. 高性能:通过数据条带化和并行读写操作,RAID 60可以提供较高的数据传输速度和系统性能。
缺点

RAID 60也存在一些缺点:

  1. 较高的成本:由于需要更多的驱动器用于数据条带化和数据冗余备份,RAID 60的硬件成本相对较高。
  2. 配置和管理复杂性:由于涉及多个RAID 6组和驱动器,RAID 60的配置和管理相对复杂,需要更多的注意和维护。

RAID 级别总结

RAID级别最小磁盘数容错能力磁盘空间开销读取速度写入速度硬件成本
RAID 020%
RAID 12单个磁盘50%
RAID 53单个磁盘1 / N
RAID 64两个磁盘2 / N
RAID 104多个磁盘50%
RAID 506单个磁盘1 / N
RAID 608多个磁盘50%

管理软 RAID

RHEL 提供多磁盘和设备管理 (mdadm) 程序实用程序来创建和管理软件RAID。

管理 RAID0

[root@server ~ 17:10:07]# mdadm --create /dev/md0 --level 0 --raid-devices 2 /dev/sd{b..c}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@server ~ 17:10:59]# mkfs.xfs -f /dev/md0
meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25=                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2=                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@server ~ 17:11:43]# mdadm --detail /dev/md0 
/dev/md0:Version : 1.2Creation Time : Mon Sep 22 17:10:59 2025Raid Level : raid0Array Size : 41908224 (39.97 GiB 42.91 GB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentUpdate Time : Mon Sep 22 17:10:59 2025State : clean Active Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0Chunk Size : 512KConsistency Policy : noneName : server.wsf.com:0  (local to host server.wsf.com)UUID : 7971c2bc:0fa4b888:e7ba384a:4629258dEvents : 0Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb1       8       32        1      active sync   /dev/sdc

需要关注的属性

  • Raid Level : raid0
  • State : clean
  • Chunk Size : 512K
  • 设备清单
格式化和挂载,删除 RAID
[root@server ~ 17:12:04]# mkdir /data/raid0
[root@server ~ 17:12:49]# mount /dev/md0 /data/raid0
[root@server ~ 17:13:03]# df -h /data/raid0
文件系统        容量  已用  可用 已用% 挂载点
/dev/md0         40G   33M   40G    1% /data/raid0
[root@server ~ 17:13:27]# cp /etc/ho* /data/raid0
[root@server ~ 17:13:42]# ls /data/raid0
host.conf  hostname  hosts  hosts.allow  hosts.deny
[root@server ~ 17:13:46]# umount /dev/md0
[root@server ~ 17:14:18]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
[root@server ~ 17:14:32]# mdadm --zero-superblock /dev/sd{b,c}
[root@server ~ 17:14:58]# lsblk

管理 RAID1

创建 RAID,查看 RAID
[root@server ~ 16:12:16]# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sd{b,c}
mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device.  If you plan tostore '/boot' on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use--metadata=0.90
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@server ~ 16:13:22]# mdadm -D md1
mdadm: cannot open md1: No such file or directory
[root@server ~ 16:13:43]# mdadm -D /dev/md1
/dev/md1:Version : 1.2Creation Time : Mon Sep 22 16:13:21 2025Raid Level : raid1Array Size : 20954112 (19.98 GiB 21.46 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentUpdate Time : Mon Sep 22 16:13:48 2025State : clean, resyncing Active Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0Consistency Policy : resyncResync Status : 29% completeName : server.wsf.com:1  (local to host server.wsf.com)UUID : cf4a9ce4:dd74d3c0:adb74120:60be520aEvents : 4Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb1       8       32        1      active sync   /dev/sdc

需要关注的属性

  • Raid Level : raid1
  • State : clean, resyncing,正在同步。
  • Consistency Policy : resync
  • Resync Status : 33% complete,同步进度。
  • 设备清单
格式化和挂载

等待同步完成:直到同步进度达到100%,然后进行格式化和挂载。

[root@server ~ 16:42:55]# mkdir /data
[root@server ~ 16:48:36]# mkdir /data/raid1
[root@server ~ 16:48:55]# mount /dev/md1 /data/raid1
[root@server ~ 16:49:15]# df -h /data/raid1/
文件系统        容量  已用  可用 已用% 挂载点
/dev/md1         20G   33M   20G    1% /data/raid1
[root@server ~ 16:50:04]# cp /etc/ho* /data/raid1
[root@server ~ 16:50:17]# ls /data/raid1
host.conf  hostname  hosts  hosts.allow  hosts.deny
增加热备盘
[root@server ~ 16:52:04]# mdadm /dev/md1 --add /dev/sdd
mdadm: added /dev/sdd
[root@server ~ 16:52:15]# mdadm --detail /dev/md1 | tail -15Working Devices : 3Failed Devices : 0Spare Devices : 1Consistency Policy : resyncName : server.wsf.com:1  (local to host server.wsf.com)UUID : cf4a9ce4:dd74d3c0:adb74120:60be520aEvents : 18Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb1       8       32        1      active sync   /dev/sdc2       8       48        -      spare   /dev/sdd
模拟故障
[root@server ~ 16:52:51]# mdadm /dev/md1 --fail /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md1
[root@server ~ 16:53:34]# mdadm --detail /dev/md1 | tail -15Spare Devices : 1Consistency Policy : resyncRebuild Status : 6% completeName : server.wsf.com:1  (local to host server.wsf.com)UUID : cf4a9ce4:dd74d3c0:adb74120:60be520aEvents : 21Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb2       8       48        1      spare rebuilding   /dev/sdd1       8       32        -      faulty   /dev/sdc
[root@server ~ 16:53:41]# ls /data/raid1/
host.conf  hostname  hosts  hosts.allow  hosts.deny
[root@server ~ 16:54:06]# cat /data/raid1/hostname 
server.wsf.com
删除故障磁盘
[root@server ~ 16:54:21]# mdadm /dev/md1 --remove /dev/sdc
mdadm: hot removed /dev/sdc from /dev/md1
[root@server ~ 16:55:19]# mdadm --detail /dev/md1 | tail -15State : clean Active Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0Consistency Policy : resyncName : server.wsf.com:1  (local to host server.wsf.com)UUID : cf4a9ce4:dd74d3c0:adb74120:60be520aEvents : 41Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb2       8       48        1      active sync   /dev/sdd
删除 RAID
[root@server ~ 16:55:27]# umount /dev/md1
[root@server ~ 16:55:48]# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
[root@server ~ 16:55:58]# mdadm --zero-superblock /dev/sd{b..d}
补充说明

RAID1的设计初衷是数据冗余和可靠性,‌而不是为了增加存储容量。‌因此,‌即使添加了新的硬盘并进行了扩容操作,‌由于RAID1的工作方式,‌其总容量是不会增加的。

管理 RAID5

创建 RAID
[root@server ~ 16:57:19]# mdadm --create /dev/md5 --level=5 --raid-devices 4 /dev/sd{b..e}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@server ~ 16:58:33]# mdadm --detail /dev/md5
/dev/md5:Version : 1.2Creation Time : Mon Sep 22 16:58:32 2025Raid Level : raid5Array Size : 62862336 (59.95 GiB 64.37 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 4Total Devices : 4Persistence : Superblock is persistentUpdate Time : Mon Sep 22 16:59:52 2025State : clean, degraded, recovering Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncRebuild Status : 75% completeName : server.wsf.com:5  (local to host server.wsf.com)UUID : 9ffadd88:c95f3e90:a2012728:20ddf246Events : 13Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb1       8       32        1      active sync   /dev/sdc2       8       48        2      active sync   /dev/sdd4       8       64        3      spare rebuilding   /dev/sde
[root@server ~ 16:59:52]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda               8:0    0  100G  0 disk  
├─sda1            8:1    0    1G  0 part  /boot
└─sda2            8:2    0   99G  0 part  ├─centos-root 253:0    0   50G  0 lvm   /├─centos-swap 253:1    0    2G  0 lvm   [SWAP]└─centos-home 253:2    0   47G  0 lvm   /home
sdb               8:16   0   20G  0 disk  
└─md5             9:5    0   60G  0 raid5 
sdc               8:32   0   20G  0 disk  
└─md5             9:5    0   60G  0 raid5 
sdd               8:48   0   20G  0 disk  
└─md5             9:5    0   60G  0 raid5 
sde               8:64   0   20G  0 disk  
└─md5             9:5    0   60G  0 raid5 
sdf               8:80   0   20G  0 disk  
sdg               8:96   0   20G  0 disk  
sr0              11:0    1  4.4G  0 rom   

需要关注的属性

  • Raid Level : raid5
  • State : clean, resyncing,正在同步。
  • Consistency Policy : resync
  • Resync Status : 17% complete,同步进度。
  • 设备清单
格式化和挂载,增加热备盘

注意:格式化前,等待 raid 构建完成。

[root@server ~ 17:01:40]# mkfs.xfs /dev/md5
mkfs.xfs: /dev/md5 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
[root@server ~ 17:01:51]# mkfs.xfs -f /dev/md5
meta-data=/dev/md5               isize=512    agcount=16, agsize=982144 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=15714304, imaxpct=25=                       sunit=128    swidth=384 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=7680, version=2=                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@server ~ 17:02:01]# mkdir /data/raid5
[root@server ~ 17:02:15]# mount /dev/md5 /data/raid5
[root@server ~ 17:02:30]# df -h /data/raid5
文件系统        容量  已用  可用 已用% 挂载点
/dev/md5         60G   33M   60G    1% /data/raid5
[root@server ~ 17:02:39]# cp /etc/ho* /data/raid5
[root@server ~ 17:02:54]# ls /data/raid5
host.conf  hostname  hosts  hosts.allow  hosts.deny
[root@server ~ 17:02:58]# mdadm /dev/md5 --add /dev/sdf
mdadm: added /dev/sdf
[root@server ~ 17:03:21]# mdadm --detail /dev/md5 |tail -15Chunk Size : 512KConsistency Policy : resyncName : server.wsf.com:5  (local to host server.wsf.com)UUID : 9ffadd88:c95f3e90:a2012728:20ddf246Events : 19Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb1       8       32        1      active sync   /dev/sdc2       8       48        2      active sync   /dev/sdd4       8       64        3      active sync   /dev/sde5       8       80        -      spare   /dev/sdf
模拟故障,删除故障磁盘
[root@server ~ 17:03:55]# mdadm /dev/md5 --fail /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md5
[root@server ~ 17:04:40]# mdadm --detail /dev/md5 |tail -15
Consistency Policy : resyncRebuild Status : 3% completeName : server.wsf.com:5  (local to host server.wsf.com)UUID : 9ffadd88:c95f3e90:a2012728:20ddf246Events : 21Number   Major   Minor   RaidDevice State5       8       80        0      spare rebuilding   /dev/sdf1       8       32        1      active sync   /dev/sdc2       8       48        2      active sync   /dev/sdd4       8       64        3      active sync   /dev/sde0       8       16        -      faulty   /dev/sdb
[root@server ~ 17:04:44]# ls /data/raid5/
host.conf  hostname  hosts  hosts.allow  hosts.deny
[root@server ~ 17:05:04]# mdadm /dev/md5 --remove /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md5
[root@server ~ 17:06:11]# mdadm --detail /dev/md5 |tail -15Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : server.wsf.com:5  (local to host server.wsf.com)UUID : 9ffadd88:c95f3e90:a2012728:20ddf246Events : 41Number   Major   Minor   RaidDevice State5       8       80        0      active sync   /dev/sdf1       8       32        1      active sync   /dev/sdc2       8       48        2      active sync   /dev/sdd4       8       64        3      active sync   /dev/sde
http://www.dtcms.com/a/396056.html

相关文章:

  • 网站加盟城市分站做别人公司的网站违法吗
  • 关闭未备案网站给你一个网站怎么优化
  • 源码下载网站cms公司做网页推广要多少钱
  • Windows 10系统停止维护对普通用户的影响以及应对策略
  • 【C++】二叉搜索树 和 AVL树——思想
  • 网站建设flash设计杭州行业网页设计公司
  • 【yolo】YOLO 训练的两个隐藏坑:类别顺序影响收敛 + cache 文件不刷新
  • 网站开发朋友圈做外围网站代理违法吗
  • 离散曲线数据存储与导出技术详解
  • 求职简历免费模板贵阳seo计费管理
  • 【LLM学习】【Ollama】三、RAG
  • 成华区网站建设北京seo网站优化公司
  • php网站建设论文答辩百度h5手机版
  • seo可以提升企业网站的东莞网站推广优化网站
  • 做西服的网站少儿编程课程收费标准
  • 滁州市工程建设网站上一篇 下一篇 wordpress
  • 网站后台管理系统界面手机做服务器建网站
  • 搜索引擎站长平台百度首页排名优化多少钱
  • 阿里云 Hologres 登顶 VectorDBBench 性价比榜单四项第一
  • 如何不花钱做网站福建省效能建设网站
  • 全屏网站制作深圳出台科技支持政策
  • 网站开发所需费用教育网站开发需求分析
  • asp.net网站开发全过程在哪可以建一个网站
  • 建设机械 官方网站北京网站关键词优化推荐
  • 创建网站如何注册网页界面设计内容
  • 任县网站建设公司重庆的汽车网站建设
  • 权限管理不合理如何避免越权与泄露风险
  • XSS 跨站脚本攻击与防御 - 第二章:XSS 利用方式剖析
  • 大型网站后台用什么语言公司网站域名更改怎么做
  • 经营网站 备案注册会计师官网登录入口