Lab01 RAID阵列
21371255 刘兆丰
一、通过工具查看磁盘列表
1.lsblk -d 查看虚拟机上的磁盘列表
2.df -lh / 查看根目录/
的容量
二、使用LVM扩展根目录/
的容量
1.使用fdisk
命令给空闲的磁盘空间分区
在Command (m for help):
后面输入n
,一路回车,默认按磁盘最大容量分区
在Command (m for help):
后面输入t
,输入4
选择新创建的分区,输入31
选择Linux LVM分区类型
最后在Command (m for help):
后面输入w
保存
2.创建物理卷(PV),命名格式一般为磁盘名+分区号
3.查看卷组(VG)列表
4.将刚创建的物理卷加入卷组
5.查看逻辑卷(LV)列表,Ubuntu系统安装在默认逻辑卷上
6.将逻辑卷扩容,然后为文件系统(ext4类型)扩容
- 查看根目录容量,已扩容
三、创建RAID阵列,测试读写文件,并模拟磁盘损坏
1.RAID1
1.创建: mdadm -Cv /dev/md1 -a yes -n 2 -l 1 /dev/sd{b,c}
2.将创建好的RAID 1阵列格式化为ext4文件系统
1 | mkfs.ext4 /dev/md1 |
3.将 RAID 1 阵列临时挂载到/mnt/raid1
目录下,测试文件读写
1 | mkdir -p /mnt/raid1/ |
4.模拟阵列中的一块磁盘损坏
1 | $ mdadm /dev/md1 -f /dev/sdb |
再次读取文件,发现文件完好无损
5.删除阵列,释放磁盘空间
2. RAID 5
1.创建
2.将创建好的RAID 5阵列格式化为ext4文件系统
1 | mkfs.ext4 /dev/md5 |
3.测试文件读写
1 | mkdir -p /mnt/raid5/ |
4.模拟磁盘损坏
1 | mdadm /dev/md5 -f /dev/sdf |
再次读取文件,发现文件完好无损
5.删除阵列,释放磁盘空间
1 | umount /mnt/raid5 |
3.RAID 0
1.在创建阵列之前,需要先给待使用的磁盘分区,以/dev/sdb
为例
在Command (m for help):
后面输入n
,一路回车,默认按磁盘最大容量分区
最后在Command (m for help):
后面输入w
保存
1 | $ fdisk /dev/sdb |
新分区名称默认为/dev/sdb1
同理,为/dev/sdc
也创建一个分区/dev/sdc1
在这两个分区上创建RAID 0阵列
1 | mdadm -Cv /dev/md0 -a yes -n 2 -l 0 /dev/sd{b1,c1} |
2.将创建好的RAID 5阵列格式化为ext4文件系统
1 | mkfs.ext4 /dev/md0 |
3.测试读写
1 | mkdir -p /mnt/raid0/ |
4.模拟删除
(1)使用fdisk删除分区:fdisk /dev/sdb
在Command (m for help):
后面输入d
,然后在Command (m for help):
后面输入w
保存
(2)更新分区表并重启
1 | partprobe |
(3)重启后发现RAID 0阵列已损坏
(4)测试读写
1 | cat /mnt/raid0/hello |
数据损坏
5.删除阵列,释放磁盘空间
1 | umount /mnt/raid0 |
四、思考题
1.为什么及在什么条件下选择用 RAID
使用RAID(冗余磁盘阵列)的主要目的是提高数据存储的可靠性、容错性和性能。以下是选择使用RAID的几个常见原因:
1、数据冗余和容错:通过在多个物理磁盘上创建冗余副本,RAID可以保护数据免受硬件故障和磁盘损坏的影响。如果一块磁盘故障,RAID可以自动从冗余副本中恢复数据,而不会对数据丢失。
2、提高读/写性能:某些RAID级别(例如RAID 0)可以通过将数据分布在多个磁盘上同时读写,提供更高的读取和写入性能。这对那些需要处理大量数据、需要快速读取或写入操作的应用程序非常有用。
3、扩展存储容量:通过使用RAID级别如RAID 5或RAID 6,在同时提供数据冗余的基础上,可以将多个磁盘组合成一个较大的逻辑卷。这样可以扩展存储容量,使得更多的数据可以被存储在一个逻辑卷中。
4、高可用性和无停机维护:RAID支持热插拔磁盘和在线重建功能,这意味着故障磁盘可以在不中断系统运行的情况下更换,并且在更换过程中可以进行数据恢复。
2.RAID & 分布式存储 & 集中存储的区别
RAID、分布式存储和集中存储是三种不同的数据存储架构,它们在数据分布、可靠性、性能和管理方面有所不同。
- RAID(冗余磁盘阵列): RAID是一种通过将多个物理磁盘组合成逻辑卷来提供数据冗余、容错和性能增益的技术。RAID可以在本地服务器上实现,并使用硬件或软件控制器进行管理。它的主要目标是提高数据的可用性和可靠性,通过数据冗余和分布,可以在单个磁盘故障时保护数据。RAID提供了不同级别(如RAID 0、RAID 1、RAID 5等),以满足不同的需求,包括冗余、性能和容量扩展。
- 分布式存储: 分布式存储是一种数据存储架构,其中数据被分散储存在多个节点上,这些节点可以是位于同一本地网络或全球范围内的不同位置的服务器。分布式存储系统使用分布式算法来管理数据的复制、分布和访问。它可以提供高可用性、可扩展性和容错性,允许系统通过并行访问和负载均衡来提升性能。分布式存储可以通过复制、分片或散列等技术来实现数据的分布和冗余。
- 集中存储: 集中存储是一种将数据集中存储在一个中心位置的架构,该位置可以是本地服务器、存储区域网络(SAN)或网络附加存储(NAS)设备。在集中存储中,多个客户端可以通过网络访问共享存储资源。这种架构提供了集中化的数据管理和共享,可以提高数据的一致性和可管理性。集中存储通常使用高速网络连接(如Fibre Channel或以太网)连接到客户端,并提供高带宽和低延迟的数据访问。
总结起来,RAID是一种用于本地服务器的技术,通过磁盘冗余和性能增益来提供数据保护和提升性能;分布式存储是一种将数据分散在多个节点的存储架构,通过复制和分布来提供高可用性和可扩展性;集中存储是一种将数据集中存储在一个中心位置,通过网络共享给多个客户端的存储架构,提供集中式管理和共享访问。选择适合需求的存储架构需要考虑数据安全性、性能需求、管理复杂性和成本等因素。