RAID 及 LVM

本节主要介绍软RAID的实现和LVM的创建等等

RAID:多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供

提高IO能力 :     磁盘并行读写

提高耐用性:      磁盘冗余来实现

级别:    多块磁盘组织在一起的工作方式有所不同

RAID实现的方式:

外接式磁盘阵列:通过扩展卡提供适配能力

内接式RAID:主板集成RAID控制器

安装OS前在BIOS里配置

软件RAID:通过OS实现

RAID级别:

RAID-0: (条带集)

读、写性能提升;

可用空间:N*min(S1,S2,…)

无容错能力

最少磁盘数:2, 2+

RAID-1: (两两互为镜像)

读性能提升、写性能略有下降;

可用空间:1*min(S1,S2,…)

有冗余能力

最少磁盘数:2, 2N

RAID-4:(最少3块硬盘)(由于校验位专用盘使用频繁易坏,淘汰)

多块数据盘异或运算值存于专用校验盘

RAID-5:(校验位均匀写在每块磁盘)(牺牲磁盘空间换取容错性)

读、写性能提升 ,如若损坏一块硬盘,性能急剧下降

可用空间:(N-1)*min(S1,S2,…)

有容错能力:允许最多1块磁盘损坏(有一块备用盘)

最少磁盘数:3, 3+

RAID-6:

读、写性能提升

可用空间:(N-2)*min(S1,S2,…)

有容错能力:允许最多2块磁盘损坏

最少磁盘数:4, 4+

RAID-10: (比01更好)

读、写性能提升

可用空间:N*min(S1,S2,…)/2

有容错能力:每组镜像最多只能坏一块

最少磁盘数:4, 4+

RAID-01             多块磁盘先实现RAID0,再组合成RAID1

RAID-50             多块磁盘先实现RAID5,再组合成RAID0

JBOD:Just a Bunch Of Disks

功能:将多块磁盘的空间合并一个大的连续空间使用

可用空间:sum(S1,S2,…)

RAID7        可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立 运行,理论上性能最高的RAID模式

软RAID

mdadm:为软RAID提供管理界面

为空余磁盘添加冗余

结合内核中的md(multi devices)

RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等

mdadm:模式化的工具

命令的语法格式:mdadm [mode] [options]

支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

模式: 创建:-C 装配: -A 监控: -F 管理:-f, -r, -a

<raiddevice>: /dev/md#

<component-device>: 任意块设备

-C: 创建模式

-n #: 使用#个块设备来创建此RAID

-l #:指明要创建的RAID的级别

-a {yes|no}:自动创建目标RAID设备的设备文件

-c CHUNK_SIZE: 指明块大小,单位k

-x #: 指明空闲盘的个数

-D:显示raid的详细信息 mdadm -D /dev/md#

管理模式:

-f: 标记指定磁盘为损坏

-a: 添加磁盘

-r: 移除磁盘

观察md的状态:    cat /proc/mdstat

软RAID的实现实验:

  1. 划分分区:fdisk /dev/sdb   (n   p   1   1   +2G  t   fd)[有四块磁盘,划分2G分区,一块备用磁盘]

dd   if=/dev/zero   of=/dev/sdb1  //清空sdb1分区(之前划分过分区,非必须)

  1. 使用mdadm创建并定义RAID设备

mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1  -c   32  /dev/sd{b1 ,c1,d1,e1}

  1. 查看RAID信息

mdadm   -D  /dev/md0     //查看RAID信息

  1. 用文件系统对每个RAID设备进行格式化  ext4    /dev/md0

mke2fs -j /dev/md0

  1. 写入配置文件: UUID=xxx  /mnt/raid   ext4    defaults  0 0
  2. 生成配置文件: mdadm –D –s   RAID设备  >> /etc/mdadm.conf
  3. 取消挂载: umount    /mnt/raid
  4. 停止设备: mdadm –S /dev/md0
  5. 激活设备: mdadm –A –s /dev/md0

测试RAID设备

使用mdadm检查RAID设备的状况        mdadm –detail|D /dev/md0

增加新的成员              mdadm  –G  /dev/md0  –n4  –a  /dev/sdf1    //实现扩展

resize2fs   /dev/md0      //实现同步文件系统(试用ext系列) //实现新加成员格式化

xfs_growfs    /mnt/raid(挂载点) //实现同步文件系统 (试用xfs系列)  //实现新加成员格式化

模拟磁盘故障      mdadm  /dev/md0  -f  /dev/sda1

移除磁盘    mdadm  /dev/md0  –r  /dev/sda1

从软件RAID磁盘修复磁盘故障

  • 替换出故障的磁盘然后开机
  • 在备用驱动器上重建分区
  • mdadm /dev/md0 -a /dev/sda1

mdadm、/proc/mdstat及系统日志信息

生成配置文件:    mdadm –D –s   RAID设备  >> /etc/mdadm.conf

停止设备:           mdadm –S /dev/md0

激活设备:          mdadm –A –s /dev/md0 激活

强制启动:           mdadm –R /dev/md0

删除raid信息:       mdadm –zero-superblock /dev/sdb1

删除RAID

  1. 取消挂载: umount     /mnt/md0
  2. 删除配置文件:UUID=xxx /mnt/raid   ext4    defaults  0 0
  3. 查看RAID信息     mdadm   -D  /dev/md0     //查看RAID信息
  1. 删除配置文件: rm   –f   /etc/mdadm.conf
  2. 停止设备: mdadm –S /dev/md0
  3. 删除raid信息: mdadm –zero-superblock /dev/sdb1
  4. 删除磁盘分区(RAID信息有残留)
  5. dd if=/dev/zero   of=/dev/sdb   (如若先删除的分区,没有删除RAID信息,即可用dd命令实现删除RAID信息)

作业:实现RAID10

madam   -C   /dev/md0   -a yes  -l 10  -n4   /dev/sd{b.c.d.e}

或者:madam   -C   /dev/md0   -a yes  -l 1 –n2  /dev/sd {b,c}

madam   -C   /dev/md1  -a yes  -l 1  -n2  /dev/sd{d,e}

madam   -C   /dev/md2   -a yes  -l 0   -n2 /dev/md{0,1}

逻辑卷管理器(LVM

允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小

允许在多个物理设备间重新组织文件系统

  • 将设备指定为物理卷
  • 用一个或者多个物理卷来创建一个卷组
  • 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
  • 在物理卷上创建的逻辑卷 是由物理区域(PE)组成
  • 可以在逻辑卷上创建文件系统

pv管理工具

显示pv信息:       pvs:简要pv信息显示              pvdisplay

创建pv :        pvcreate      /dev/DEVICE

vg管理工具:

显示卷组:   vgs          vgdisplay

创建卷组 vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

-s    //指定pe的大小

管理卷组 vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…] vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

删除卷组 :      先做pvmove,再做vgremove

lv管理工具

显示逻辑卷:   lvs     Lvdisplay

创建逻辑卷lvcreate  -L  #[mMgGtT]  -n  NAME VolumeGroup(-L 指定大小  )

lvcreate  -l  60%VG  -n  mylv testvg  (-l   以pe个数为单位)

lvcreate -l 100%FREE -n  yourlv  testvg   //将剩余空间全部使用

删除逻辑卷      lvremove  /dev/VG_NAME/LV_NAME

重设文件系统大小

fsadm [options] resize device [new_size[BKMGTEP]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

逻辑卷的实际名称:  /dm-数字

扩展和缩减逻辑卷

扩展逻辑卷: lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME  (可在线扩展)

resize2fs  /dev/VG_NAME/LV_NAME     //同步逻辑卷

lvectend  -r  -l  +100%FREE   /dev/VG_NAME/LV_NAME   //扩展同时格式化

lvresize  -r  -l  +100%FREE   /dev/VG_NAME/LV_NAME

缩减逻辑卷: umount  /dev/VG_NAME/LV_NAME  (离线缩减,只适用于ext系列)

e2fsck  -f  /dev/VG_NAME/LV_NAME    //

resize2fs  /dev/VG_NAME/LV_NAME #[mMgGtT]

lvreduce  -L [-]#[mMgGtT]  /dev/VG_NAME/LV_NAME mount

跨主机迁移卷组示例

原计算机:  vgrename   vg0   centos6vg0

lvrename   /dev/centos6vg0/lv0    /dev/centos6vg0/lv0

1 在旧系统中,umount所有卷组上的逻辑卷  : umount   /mnt/lv0

2 vgchange –a n centos6vg0  //禁用巻组                      lvdisplay    查看

3 vgexport  cebtos6vg0   导出逻辑卷        pvscan   查看    vgdisplay   查看

4  拆下旧硬盘

在目标计算机上

5 在新系统中安装旧硬盘,并 导入vgimport  centos6vg0.

6 vgchange  -ay  centos6vg0     //激活巻组

7  mount 所有巻组上的逻辑卷

使用分区创建逻辑卷示例

  1. 创建分区fdisk /dev/sdc    ( n  p 1 1  +2G   t   1   8e )
  2. 创建物理卷 :   pvcreate      /dev/sd{b1,c1}
  3. 显示pv信息: pvs:简要pv信息显示              pvdisplay
  4. 为卷组分配物理卷: vgcreate  -s   16M   vg0   /dev/sd{b1,c1}
  5. 显示卷组:  vgs   或       vgdisplay
  6. 从卷组创建逻辑卷: lvcreate  -L  256M  –n  lv0  vg0
  7. 显示逻辑卷:  lvs   或   Lvdisplay
  8. 创建文件系统:ext4 /dev/vg0/lv0

make2fs   -j   /dev/vg0/data

  1. 挂载:写入文件:UUID=xxx /mnt/lv0   ext4  defaults   0  0

mount   /dev/vg0/data   /mnt/data   (临时有效)

扩展逻辑卷示例

  1. 新加硬盘, echo ‘ – – – ‘ > /sys/class/scsi_host/host2/scan    //使硬盘识别
  2. pvcreate /dev/sdd
  3. vgextend vg0  /dev/sdd
  4. lvextend -L  +5G  /dev/vg0/lv0   //新增加5G
  5. resize2fs /dev/vg0/lv0    //同步逻辑卷(ext系列)

缩减逻辑卷示例

  1. 先备份
  2. umount /mnt/lv0      先取消挂载
  3. 检查文件系统完整性 fsck   -f   /dev/vg0/lv0
  4. resize2fs /dev/vg0/lv0   10G     //
  5. lvreduce -L  10G   /dev/vg0/lv0   //缩减逻辑卷
  6. mount -a  //自动挂载

删除vg中的pv示例

1.pvmove  /dev/sdd     //将sdd上的空间迁移到同巻组的其他设备中

2.vgreduce vg0  /dev/sdd    //在巻组vg0移除/dev/sdd

3.pvremove /dev/sdd     //移除物理卷

使用LVM快照

为现有逻辑卷创建快照

lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data

挂载快照

mkdir -p /mnt/snap

mount -o ro /dev/vg0/data-snapshot /mnt/snap

恢复快照

umount  /dev/vg0/data-snapshot

umount  /dev/vg0/data

lvconvert   –merge    /dev/vg0/data-snapshot     //合并快照

删除快照

umount   /mnt/databackup

lvremove  /dev/vg0/databackup

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97029

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班