RAID和虚拟磁盘管理

一. RAID(a case for Redundant Arrays of Inexpensive Disks)

RAID组合多块磁盘(Disk>=2)形成阵列,通过磁盘存取I/O的并行化来提高存储的速度,吞吐量和可靠性。

1. 基本情况

  • Linux通过mdadm来管理RAID。
  • 支持RAID0,RAID1,RAID5和RAID6
  • 设备名称:/dev/md0,/dev/md1,/dev/md2,...

2. RAID0(Disk>=2,条带化 striping)

stripe depth: Block的大小
stripe width: Disk的多少


RAID0的存取
  • 特点:
    没有数据备份,但读写速度最快。磁盘利用率为100%。
  • RAID0的数据写入方式:


    RAID0的数据写入方式

3. RAID1(Disk>=2,且Disk必须为偶数,mirroring)

RAID1的写入

RAID1的读取
  • 特点:
    每个Block形成两份拷贝,再并行写入两块磁盘。备份能力最强,但写速度慢。磁盘利用率50%。数据读取速度快。
  • RAID1的数据写入方式:


    RAID1的数据写入方式

4. RAID5(Disk>=3)

RAID5的存取
  • 特点:
    RAID4将parity info 存放于一块单独的磁盘中,而RAID5是将parity info 条带化到多块磁盘中。
    RAID5读取速度快,写入速度慢(因为要同时计算并存入校验信息)。
    RAID5的磁盘利用率n-1,允许一块磁盘失效。
  • RAID5的数据写入方式:


    RAID5的数据写入方式

5. RAID6(Disk>=4)

将checksum存入2块等效磁盘。checksum是被条带化的。

  • 特点:
    可用空间n-2,允许2块磁盘失效。

6. RAID1+0

RAID1 ---> RAID0,即先镜像再条带化。

7. RAID5+0

RAID5 ---> RAID0,即先RAID5,保证可以有一块磁盘失效,再条带化。

8. RAID5+热备盘

RAID5 + 热备
其中热备盘(Spare Disk)会在线替换故障的磁盘。

二. LVM(Logical Volume Manager)

LVM的构成
LVM元素及构成 创建方式
PV=/dev/sda + /dev/sdb + /dev/sdc + ... pvcreate
VG=PV + PV + PV +... vgcreate
VG=PE + PE + PE +... PE大小固定,自动生成
VG=LV + LV + LV +... lvcreate,在VG上创建LV,VG可看成一块大硬盘(Disk)
LV=filesystem 可将LV看成硬盘上的逻辑分区(Partition)

LVM可以实现在线动态调整分区大小。LVM也可构建在RAID上。

相关命令:

pvcreate /dev/hda13 这里的/dev/hda13是linux块设备
pvdisplay 或者 pvs
vgcreate vg01 /dev/hda13 这里的/dev/hda13已被转化成PV
vgcreate vg01 -s 1000M /dev/hda13
vgdisplay 或者 vgs
lvcreate -L 256M -n lv01 vg01
lvdisplay 或者 lvs

mkfs.ext3 /dev/vg01/lv01
或者
mke2fs -j /dev/vg01/lv01

blkid 查看块设备及相关属性
dd if=/dev/zero of=test bs=1M count=300 产生巨大空文件test

在线扩容
pvcreate /dev/sda18  这里的/dev/sda18是块设备
vgextend vg01 /dev/sda18  这里的/dev/sda18是PV
lvextend -L +500M /dev/vg01/lv01 追加500M
lvextend -L 1G /dev/vg01/lv01  扩展到1G
一般VG只有一个,且一个LV不可以同时扩展到两个及以上的VG上。
vgs vg01
resize2fs /dev/vg01/lv01 在线扩展ext3文件系统
df -h

vim /etc/fstab
/dev/vg01/lv01  /mnt/lvm01 ext3 defaults 0 0

umount /mnt/lvm01
e2fsck -f /dev/vg01/lv01
vgreduce vg0 /dev/hda3  从VG中去除一个PV
pvmove /dev/hda3 将PV=/dev/hda3,转变为linux块设备
lvremove /dev/vg01/lv01

你可能感兴趣的:(RAID和虚拟磁盘管理)