Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3759399
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(880)

文章存档

2022年(5)

2021年(60)

2020年(175)

2019年(207)

2018年(210)

2017年(142)

2016年(81)

分类: LINUX

2018-06-28 14:31:16

RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。

RAID的分类
RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。
RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
RAID 0+1: 也被称为RAID 10标准,实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。
RAID 2:将数据条块化地分布于不同的硬盘上,条块单位为位或字节,并使用称为“加重平均纠错码(海明码)”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,因此在商业环境中很少使用。
RAID 3:它同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。
RAID 4:RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。
RAID 5:RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。
RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
RAID 6:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实施方式使得RAID 6很少得到实际应用。
RAID 7:这是一种新的RAID标准,其自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7可以看作是一种存储计算机(Storage Computer),它与其他RAID标准有明显区别。除了以上的各种标准,我们可以如RAID 0+1那样结合多种RAID规范来构筑所需的RAID阵列,例如RAID 5+3(RAID 53)就是一种应用较为广泛的阵列形式。用户一般可以通过灵活配置磁盘阵列来获得更加符合其要求的磁盘存储系统。


####磁盘阵列的建立####

raid 1(读加速)  0(写加速)  5(都加速) ##raid类型
1.fdisk /dev/vdb ##建立3个大小相同的分区并修改为raid类型
Command (m FOR help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): fd ##修改为raid类型
2.mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}##建立磁盘阵列
-C ##建立一个磁盘阵列
-a ##如果不存在/dev/md0则创建
-l ##raid类型
-n ##利用几块硬盘
-x ##闲置几块(备份)
3.mkfs.xfs /dev/md0 ##格式化
4.mdadm -D /dev/md0 ##查看磁盘阵列的状态
5.mount /dev/md0 /mnt ##挂在


##磁盘阵列的坏盘更换##
1.mdadm -f /dev/md0 /dev/vdb1 ##让vdb1坏掉
2.mdadm -r /dev/md0 /dev/vdb1 ##拔出vdb1
3.mdadm -a /dev/md0 /dev/vdb1 ##修好后插入vdb1
4.mdadm -D /dev/md0 ##查看md0状态


##磁盘阵列的删除##
1.umount /mnt/ ##解除挂在
2.mdadm -S /dev/md0 ##停止磁盘阵列
3.rm -fr /dev/md0 ##删除磁盘阵列
4.fdisk /dev/vdb ##释放分区 
5.cat/proc/mdstat ##查看系统中磁盘阵列及状态


###磁盘的用户配额###
1.mount -o usrquota,grpquota /dev/vdb1 /mnt/ ##挂在时添加用户配额和组配额选项
2.chmod 777 /mnt/ ##修改使得其他用户可写
3.quotaon -ugv /dev/vdb1 ##(默认开启)开启用户的组的配额管理(-v显示信息)
  quotaoff /mnt/ ##关闭配额功能
4.edquota -u student ##编辑student的配额
  所用实际大小  警告   最大的容量   文件个数 ..  ..
Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/vdb1                  102400          0     102400          1        0        0
5.repquota -a ##报告所有的配额信息
student中:
quota ##查看自己的配额属性(要先写满才能查看)


#####/etc/fstab出错#####
开机会导致无法开启,等议会后输入root密码,注释掉fstab中的命令即可


lvm磁盘管理

######分区的扩展########

定义:pv(物理卷) vg(物理卷组) lvm(逻辑卷管理) pe(物理块) 
1.fdisk /dev/vdb ##分出所需要的分区
2.pvcreate /dev/vdb1 ##创建一个pv
3.vgcreate -s 2m vg0 /dev/vdb{1,2} ##利用pv创建一个vg0,并设置pe大小为2m
4.vgextend vg0 /dev/vdb5 ##扩展vg0
5.lvcreate -L 100M -n lv0 vg0 ##从vg0中划出一个lv0
6.mkfs.xfs /dev/vg0/lv0 ##格式化lv0
7.mount /dev/vg0/lv0 /mnt/ ##挂在
8.lvextend -L 200M /dev/vg0/lv0 ##扩展lv0
9.xfs_growfs /dev/vg0/lv0 ##扩展格式化lv0
查看命令
pvs ##查看系统中的pv
vgs ##查看系统中的vg
lvs ##查看系统中的lv
pvdisplay ##详细查看pv
vgdisplay ##详细查看vg

lvdisplay ##详细查看lv

watch -n 1 'pvs;echo =;vgs;echo =;lvs;echo =;df -h |tail -1' ##动态查看


分区的缩减
1.umount /dev/vg0/lv0 ##首先卸载设备
2.mkfs.ext4 /dev/vg0/lv0 ##更改为ext4的系统(xfs不可缩减)
3.e2fsck -f /dev/vg0/lv0 ##刷新设备里的数据
4.resize2fs /dev/vg0/lv0 200M ##先缩减文件系统(原300M)
5.lvreduce -L 200M /dev/vg0/lv0 ##再缩减设备
resize2fs /dev/vg0/lv0 ##重新检索定义(可用于修复文件系统比硬盘大)


从vg中删除分区
1.pvmove /dev/vdb1 /dev/vdb2 ##将要删的vdb1中的数据移至vdb2
2.vgreduce vg0 /dev/vdb1 ##将vdb1从vg0中删除
3.pvremove /dev/vdb1 ##将vdb1从pv中删除
vgreduce --removemissing vg0 ##修复被误删而崩溃的vg0


lvm快照
1.umount /dev/vg0/lv0 ##卸载掉
2.lvcreate -L 40M -n lv1 -s /dev/vg0/lv0 ##建立一个最大修改量为40M,母盘为lv0的快照lv1
3.mount /dev/vg0/lv1 /mnt/ ##挂在lv1
lvremove /dev/vg0/lv1 ##删除一个lv1(也可以删除其他的lv)
阅读(1033) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~