LVM&RAID
RAID技术主要是针对传统服务器部署的,应该是云服务商或硬件服务商底层部署实现。
LVM则是允许对硬盘分区大小进行灵活管理的一种机制。
以下是学习的笔记内容,主要是参考学习了红帽培训书籍《Linux就该这么学》《高性能MySQL》以及掺杂了一些自己实践后的理解。
LVM (Logical Volume Manager)逻辑卷管理器
LVM是解决在生产环境中无法评估每个硬盘分区在日后的使用情况,可能会导致原先分配的硬盘分区不够用,LVM则可以允许用户动态的调整硬盘资源。LVM技术就是在硬盘分区与文件系统中间添加了一个逻辑层,提供一个抽象的卷组,可以把多块硬盘进行卷组合并(硬盘分区,物理硬盘,RAID磁盘阵列都可以)。一个卷组可以包含多个物理卷,创建之后也可以动态的添加新的物理卷。逻辑卷则是用卷组中空闲资源建立的,并且在逻辑卷建立后仍可以动态的扩展和缩小空间。
RAID(Redundant Array of Inexpensive Disks)独立冗余磁盘阵列
RAID可以帮助做冗余,扩展存储容量,缓存,以及加速。
- RAID 0 技术把多块物理硬盘通过硬件或软件的方式串联在一起,组成一个巨大的卷组,并将数据依次分别写入各个物理硬盘中。在最理想的状态下,硬盘的读写性能得到成倍的提升。但一旦其中一块硬盘发生意外,会带来毁灭性的灾难。
- RAID 1 技术是把两块以上硬盘进行绑定,在写入时,将数据同时写入多块硬盘(可以将其视为备份or镜像),当其中一块发生故障后,一般会立即以热交换的方式来恢复数据正常使用。但2块硬盘的情况,磁盘利用率只有原本的50%,而且增大了系统计算功能的负载。
- RAID 5技术是通过分布奇偶校验块,把数据分散存在在多个硬盘,如果其中一块硬盘的数据失效,都可以从奇偶校验快中重建(最多允许一块硬盘失效)。就每个存储单元的成本来讲,整个阵列只消耗了一块磁盘的存储空间来存储奇偶校验信息,冗余较少,但奇偶校验块也带来了额外的性能开销。RAID控制器往往对RAID 5做了高度优化,虽然理论极限,但是智能控制器充分利用高速缓存使得RAID 5在某些场景下有时可以达到RAID 10的性能。
- RAID 10技术实际为RAID 1 + RAID 0的组合。至少需要4快硬盘来创建,先分别制作2组RAID 1磁盘阵列保证数据安全性,然后再对2个RAID 1实施 RAID 0 技术,进一步提高RAID 10读写速度。需要注意的是,RAID控制器对RAID 10采用的是一种串联镜像的实现。由于条带化的缺点是最经常访问的数据可能仅被放置在一对机械磁盘上而不是分布很多份,所以可能会遇到性能不佳的情况。
RAID等级之间的比较。(虽然实际也在虚拟机通过mdadm部署了上面提到的几种阵列,但虚拟机测试数据并不足以说明什么。以下数据比较摘自高性能MySQL)
等级
|
概要
|
冗余
|
盘数
|
读快
|
写快
|
RAID0
|
便宜,快速,危险
|
NO
|
N
|
YES
|
YES
|
RAID1
|
高速读
|
YES
|
2(通常)
|
YES
|
NO
|
RAID5
|
安全(速度)成本折中
|
YES
|
N+1
|
YES
|
YES
|
RAID10
|
昂贵,高速,安全
|
YES
|
2N
|
YES
|
YES
|
Nice to see you all!