type
status
date
slug
summary
tags
category
icon
password

📝 Lab01 RAID阵列实验

💾通过工具查看磁盘列表

使用命令lsblk -d可以列出磁盘列表。
需要注意的属性:
  1. MAJ:MIN:主要和次要设备号。
  1. RM:显示设备是否可移动设备。如果为1表示是可移动设备。可以看到sr0是可移动的
  1. RO:表明设备是否为只读。可以看到几个Type为loop的磁盘是只读的,其余不是。
  1. TYPE:显示块设备是否是磁盘或磁盘上的一个分区。sda~sdf为磁盘,sr0为rom,其余type为loop表示是一个回环设备(loop device)。
    1. 回环设备
      回环设备是一种特殊的设备,它允许将文件或其他块设备作为虚拟块设备使用。通过回环设备,可以将文件系统镜像或磁盘映像文件挂载为一个块设备,就像挂载物理硬盘一样。
  1. MOUNTPOINT:本栏指出设备挂载的挂载点。

🎸使用LVM扩展根目录 / 的容量

通过命令查看根目录的容量:
由于我们之前看到sda的容量为20G,而挂载到根目录的文件系统的大小仅为15G,说明还有空间未被分配(这里应该小于5G的存储空间,因为操作系统可能会保留一部分空间)。
执行命令fdisk给空闲磁盘分区。
创建物理卷:
查看卷组列表:
将刚创建的物理卷加入卷组:
将逻辑卷扩容,然后为文件系统(ext4类型)扩容:
最后再次查看根目录容量,已经扩容:

🎵创建RAID阵列,测试读写文件并模拟磁盘损坏,观察有什么情况发生,数据是否损坏或者丢失?

首先使用命令apt-get install mdadm安装mdadm工具。
mdadm工具
mdadm 是 多磁盘和设备管理(Multiple Disk and Device Administration) 的缩写。它是一个命令行工具,可用于管理 Linux 上的软件 RAID 阵列。

🎻尝试RAID 0

首先创建分区:
这样就在/dev/sdb下创建了/dev/sdb1分区,在/dev/sdc下创建了/dev/sdc1分区。使用fdisk /dev/sdb下的p命令可以查看/dev/sdb1分区(同理查看/dev/sdc1)。
在这两个分区上创建Raid 0阵列。
再使用fdisk删除分区:fdisk /dev/sdbCommand (m for help):后面输入d,然后在Command (m for help):后面输入w保存
更新分区表并重启
重启内核花了一段时间,最后是直接重新连接SSH的。重启后发现RAID 0阵列已损坏
在删除分区的时候会提示Failed或者Error,不用管,继续执行命令就行(很奇怪)。
最后删除Raid 0 阵列,释放空间时会发现无法删除。

🎸尝试RADI 1

用命令创建Raid 1时,如果出现了问题,有可能是 partprobe 没有执行成功。多执行一次就行。
可以看出是上次分区表还存在导致的,但是我通过fdisk /dev/sdb下的p命令可以查看/dev/sdb1分区,并没有找到。反正可以继续下去。
将创建好的RAID 1阵列格式化为ext4文件系统。
查看 RAID 1 阵列信息。值得注意的是它的大小约为1GB,这是因为两块相同容量的磁盘被镜像存储,因此阵列的总容量等于单个磁盘的容量(我们的磁盘sdb和sdc大小都为1GB,指导书里写10GB好像写错了)。
RAID 1 阵列是一个独立的设备,需要将其挂载到文件系统中才能访问其中的数据。所以将 RAID 1 阵列临时挂载到/mnt/raid1目录下,测试文件读写。
挂载后,可以对挂载点进行文件操作,例如创建、读取和写入文件。在示例中,使用 echo 命令将文本写入 /mnt/raid1/hello 文件中,然后使用 cat 命令读取文件内容。挂载将 RAID 1 阵列与文件系统层级结构进行关联,使其在目录树中可见。这样,可以通过路径访问和管理 RAID 1 阵列中的文件。
接下来我们模拟阵列中的一块磁盘损坏。
再次读取文件,发现文件完好无损:
最后删除阵列,释放磁盘空间:

🎶尝试RAID 5

首先创建Raid 5阵列。
将Raid 5阵列格式化为ext4文件系统。
挂载到 /mnt/raid5 目录下,测试文件读写成功:
接下来依次模拟磁盘损坏(每个磁盘都需要试一次):
查看一下,发现其实只有b盘损坏了:
为什么busy呢?因为其他盘目前正处于热备份状态,所以被占用。

🤔思考题

🙌为什么及在什么条件下选择用 RAID?

  • 为什么要用Raid:Raid(冗余磁盘阵列)的诞生,本就是为了解决磁盘昂贵的问题,所以提出了可以用多块冗余的廉价磁盘来代替昂贵的高性能磁盘。所以,首先如果预算不够购买昂贵的高性能磁盘,可以考虑使用Raid。除此之外,Raid可以增加数据可靠性和可用性,还能增加存储性能。
  • 什么条件下使用Raid:当需要实现数据冗余和可靠性、容量拓展、性能增益、数据备份时,可以考虑使用Raid,因为Raid可以保证在某一块或者某几块磁盘损坏时,做到恢复数据,同时存储大规模的数据;也可以做到并发存储,提高性能。具体使用场景有企业数据库、个人备份盘等。

👀RAID & 分布式存储 & 集中存储的区别

  1. RAID(冗余磁盘阵列):
      • RAID 是一种通过将多个物理磁盘组合在一起来提供数据冗余和性能改进的技术。它旨在增加数据的可靠性和可用性。
      • RAID 可以通过数据分块、奇偶校验和分布在多个磁盘上的数据条带化来提供冗余和容错能力。当某个磁盘故障时,RAID 可以使用冗余数据来恢复丢失的数据。
      • RAID 技术通常用于单个服务器或存储系统内,提供本地的数据冗余和容错功能。
  1. 分布式存储:
      • 分布式存储是一种将数据存储在多个节点(服务器)上的技术,通过将数据分散存储在不同的物理节点上来提高可扩展性和可靠性。
      • 分布式存储系统将数据划分成小的块,并将这些块分布在不同的节点上。每个节点负责存储和管理一部分数据。
      • 分布式存储系统通常具有冗余备份机制,以保护数据免受节点故障或数据丢失的影响。它还提供了高度可扩展的存储容量和性能。
  1. 集中存储:
      • 集中存储是一种将数据集中存储在单个存储设备或服务器上的技术。它提供了集中管理和共享数据的能力。
      • 在集中存储中,多个客户端可以通过网络访问共享的存储设备或服务器上的数据。这种集中的存储设备可以是存储阵列、网络附加存储(NAS)设备或存储区域网络(SAN)设备。
      • 集中存储通过提供共享存储资源来简化数据管理和访问,并提供一致性和可靠性。

📎 参考文章

mint安装win11双系统实录vscode插件——根据vue template生成style开发日记
Niyuta
Niyuta
变分无限,孤心测度有同伦
公告
type
status
date
slug
summary
tags
category
icon
password
🎉热烈庆祝Niyuta拥有了个人网站!🎉
-- 感谢支持喵:) ---
👏网站正在建设中,有bug望不吝反馈赐教~👏
(迟早要重构掉