本文共 5226 字,大约阅读时间需要 17 分钟。
RAID 0 RAID 1 RAID 4 RAID 5 RAID 6 RAID 10
考虑到篇幅,俺挑几种常用的 RAID 类型,在下一个章节介绍。介绍的时候,会顺便说说该 RAID 类型的【原理】。
空间利用率
完全不浪费(利用率接近100%
)。在所有 RAID 类型中,这种的空间利用率最高。 可靠性 虽然利用率最高,但可靠性最差(无冗余)——任何一个设备坏掉,全完蛋。 操作步骤 先创建 N 个大小一样的 PV(此处假设 N = 2
),并加入到同一个 VG 里面(假设 VG 名称叫做 vg_raid
)。具体如何做,前面已经聊过。 用如下命令可以创建一个名叫 lv_xxxx
的逻辑卷,并设定以 RAID0 方式存储数据。 lvcreate --type raid0 --stripes 2 --extents 100%FREE -n lv_xxxx vg_raid
上述命令的参数说明:
参数 | 说明 |
---|---|
--type raid0 | 采用 RAID 0 的方式存储数据 |
--stripes 2 | 用来创建“带区集”的设备数,在本示例中是 2 对于 RAID0,该参数的最大值为 64 |
--extents 100%FREE | 创建一个 LV,把 VG 的剩余空间都用掉 |
空间利用率
在常见的 RAID 类型中,RAID1 的【空间利用率】最低(只有1/N
)。 可靠性 可靠性最高(哪怕 N-1
个设备【同时】坏掉,数据都还在)。 操作步骤 先创建 N
个大小一样的 PV(此处假设 N = 2
),并加入到同一个 VG 里面(假设 VG 名称叫做 vg_raid
)。具体如何做,前面已经聊过。 用如下命令可以创建一个名叫 lv_xxxx
的逻辑卷,并设定以 RAID1 方式存储数据。 lvcreate --type raid1 --mirrors 1 --nosync --extents 100%FREE -n lv_xxxx vg_raid
上述命令的参数说明:
参数 | 说明 |
---|---|
--type raid1 | 采用 RAID 1 的方式存储数据 |
--mirrors 1 | 镜像设备的数量。 在本示例中用了两个存储设备,其中一个用作镜像; 如果是3个设备搞 RAID1,该参数就是 2 (以此类推) (对于 RAID1,该参数的最大值为 9 ) |
--nosync | 创建 LV 的过程中【不】在几个 PV 之间同步数据, 可缩短该命令的执行时间。 |
N
个设备(N ≥ 3
),数据写入前,先拆分为 N-1
份,写入其中 N-1
个设备,多出来的那个设备用来保存【校验码】。 俺用下面这张示意图表示 RAID4 & RAID5 的存储差异。RAID4 把校验值全部放到同一个磁盘,会大大增加该磁盘的写操作——每次有数据块被修改,都要更新校验值,都得写这块磁盘。这块磁盘就会成为“写操作”的瓶颈。 (由于 RAID4 明显不如 RAID5,如今用的很少,所以俺就不聊 RAID4 了) 空间利用率
空间利用率(N-1)/N
,明显高于 RAID1(1/N
),但低于 RAID0(100%
)。 可靠性 可靠性也不差,N 块设备随便坏一块,都可以恢复。同时坏两块,数据会完蛋(但同时坏两块的概率很低)。 操作步骤 先创建 N 个大小一样的 PV(此处假设 N = 3
),并加入到同一个 VG 里面(假设 VG 名称叫做 vg_raid
)。 用如下命令可以创建一个名叫 lv_xxxx
的逻辑卷,并设定以 RAID5 方式存储数据。 lvcreate --type raid5 --stripes 2 --nosync --extents 100%FREE -n lv_xxxx vg_raid
上述命令的参数说明:
参数 | 说明 |
---|---|
--type raid5 | 采用 RAID 5 的方式存储数据 |
--stripes 2 | 表示数据拆分为几份。 对于 RAID5 模式的 N 个设备,该数字是【N-1 】(参见上述示意图) (对于 RAID5,该参数的最大值为 63 ) |
--nosync | 创建 LV 的过程中【不】在几个 PV 之间同步数据, 可缩短该命令的执行时间。 |
1、在虚拟机上实现 软raid5.
主要步骤:
[root@localhost ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 19G 0 part ├─rhel-root 253:0 0 17G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP]sdb 8:16 0 5G 0 disk sdc 8:32 0 5G 0 disk sdd 8:48 0 5G 0 disk
[root@localhost ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created.[root@localhost ~]# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created.[root@localhost ~]# pvcreate /dev/sdd Physical volume "/dev/sdd" successfully created.[root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 rhel lvm2 a-- <19.00g 0 /dev/sdb lvm2 --- 5.00g 5.00g /dev/sdc lvm2 --- 5.00g 5.00g /dev/sdd lvm2 --- 5.00g 5.00g
[root@localhost ~]# vgcreate vg_raid /dev/sdb Volume group "vg_raid" successfully created[root@localhost ~]# vgextend vg_raid /dev/sdc Volume group "vg_raid" successfully extended[root@localhost ~]# vgextend vg_raid /dev/sdd Volume group "vg_raid" successfully extended[root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree rhel 1 2 0 wz--n- <19.00g 0 vg_raid 3 0 0 wz--n- <14.99g <14.99g[root@localhost ~]#
[root@localhost ~]# lvcreate --type raid5 --stripes 2 --nosync --extents 100%FREE -n lv_raid5 vg_raid Using default stripesize 64.00 KiB. Rounding size (3837 extents) down to stripe boundary size (3836 extents) WARNING: New raid5 won't be synchronised. Don't read what you didn't write! Logical volume "lv_raid5" created.[root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root rhel -wi-ao---- <17.00g swap rhel -wi-ao---- 2.00g lv_raid5 vg_raid Rwi-a-r--- 9.98g 100.00 [root@localhost ~]#
可以看到三快盘一共是15GB ,做完raid变成了9.8GB
利用率刚好是66.7%
转载地址:http://lthqj.baihongyu.com/