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的实现实验:
- 划分分区:fdisk /dev/sdb (n p 1 1 +2G t fd)[有四块磁盘,划分2G分区,一块备用磁盘]
dd if=/dev/zero of=/dev/sdb1 //清空sdb1分区(之前划分过分区,非必须)
- 使用mdadm创建并定义RAID设备
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 -c 32 /dev/sd{b1 ,c1,d1,e1}
- 查看RAID信息
mdadm -D /dev/md0 //查看RAID信息
- 用文件系统对每个RAID设备进行格式化 ext4 /dev/md0
mke2fs -j /dev/md0
- 写入配置文件: UUID=xxx /mnt/raid ext4 defaults 0 0
- 生成配置文件: mdadm –D –s RAID设备 >> /etc/mdadm.conf
- 取消挂载: umount /mnt/raid
- 停止设备: mdadm –S /dev/md0
- 激活设备: 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:
- 取消挂载: umount /mnt/md0
- 删除配置文件:UUID=xxx /mnt/raid ext4 defaults 0 0
- 查看RAID信息 mdadm -D /dev/md0 //查看RAID信息
- 删除配置文件: rm –f /etc/mdadm.conf
- 停止设备: mdadm –S /dev/md0
- 删除raid信息: mdadm –zero-superblock /dev/sdb1
- 删除磁盘分区(RAID信息有残留)
- 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 所有巻组上的逻辑卷
使用分区创建逻辑卷示例:
- 创建分区fdisk /dev/sdc ( n p 1 1 +2G t 1 8e )
- 创建物理卷 : pvcreate /dev/sd{b1,c1}
- 显示pv信息: pvs:简要pv信息显示 pvdisplay
- 为卷组分配物理卷: vgcreate -s 16M vg0 /dev/sd{b1,c1}
- 显示卷组: vgs 或 vgdisplay
- 从卷组创建逻辑卷: lvcreate -L 256M –n lv0 vg0
- 显示逻辑卷: lvs 或 Lvdisplay
- 创建文件系统:ext4 /dev/vg0/lv0
make2fs -j /dev/vg0/data
- 挂载:写入文件:UUID=xxx /mnt/lv0 ext4 defaults 0 0
mount /dev/vg0/data /mnt/data (临时有效)
扩展逻辑卷示例:
- 新加硬盘, echo ‘ – – – ‘ > /sys/class/scsi_host/host2/scan //使硬盘识别
- pvcreate /dev/sdd
- vgextend vg0 /dev/sdd
- lvextend -L +5G /dev/vg0/lv0 //新增加5G
- resize2fs /dev/vg0/lv0 //同步逻辑卷(ext系列)
缩减逻辑卷示例:
- 先备份
- umount /mnt/lv0 先取消挂载
- 检查文件系统完整性 fsck -f /dev/vg0/lv0
- resize2fs /dev/vg0/lv0 10G //
- lvreduce -L 10G /dev/vg0/lv0 //缩减逻辑卷
- 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