RAID管理与恢复误删除文件

RAID管理与恢复误删除文件

一、RAID磁盘阵列概述;

概述:
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。
RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。

二、RAID工作模式;

RAID0,RAID1,RAID5,RAID10(比较典型的几种RAID模式)
RAID0(分条):可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁盘的性能和吞吐量。RAID 0没有冗余或错误修复能力,成本低,要求至少两个磁盘,一般只是在那些对数据安全性要求不高的情况下才被使用。


容错性: 无 冗余类型: 无
热备盘: 无 读性能: 高
随机写性能: 高 连续写性能: 高
需要的磁盘数: 1+N 可用容量: N*
典型应用: 对数据安全性要求不高,但对读写性能要求极高,如图形工作站等

RAID1(镜像):把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,具有很高的数据冗余能力,但磁盘利用率为50%,故成本最高,多用在保存关键性的重要数据的场合。RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。

容错性: 有 冗余类型: 镜像
热备盘: 有 读性能: 低(与单块磁盘一样)
随机写性能: 低 连续写性能: 低
需要的磁盘数: 2*N(N代表磁盘数量) 可用容量: N/2
典型应用: 对数据安全性要求高,但是读写效率低,用于服务器或数据库存储等;

RAID5(奇偶校验):RAID 5可以理解为是RAID 0和RAID 1的折中方案。RAID 5可以为系统提供数据安全保障,但保障程度要比RAID5低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。

容错性: 有 冗余类型: 奇偶校验信息存储
热备盘: 有 读性能: 高(与RAID0相近)
随机写性能: 较低 连续写性能: 较低
需要的磁盘数: 大于等于3 可用容量: n - 1
典型应用: 随机数据传输要求安全性高,如金融、数据库、存储等。

RAID1+0(分条+镜像):Raid 10是一个Raid 0与Raid1的组合体,所以它继承了Raid0的快速和Raid1的安全。RAID 1在这里就是一个冗余的备份阵列,而RAID 0则负责数据的读写阵列。情况是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像。

容错性: 有 冗余类型: 镜像
热备盘: 有 读性能: 高(与RAID0相近)
随机写性能: 低 连续写性能: 低
需要的磁盘数: N*2(N需要大于等于2) 可用容量: N / 2
典型应用: 集成了RAID0和RAID1的优点;

总结:

三、制作RAID;

1.配置硬RAID:
戴尔R410服务器配置硬RAID1: http://m.ouyaoxiazai.com/article/20/702.html
IBM X3650服务器配置硬RAID: http://blog.itpub.net/27771627/viewspace-1246405/

2.配置软RAID 0:
a. 添加三块硬盘sdb和sdc并进行分区,分为sdb1、sdc1,各5G,将其文件系统类型ID改为fd;
b. 重读分区表;
c. 安装软件包parted和mdadm工具;
d. mdadm命令创建Raid 0;
mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
选项:-C 指定Raid卷位置 -l 执行Raid等级 -n 指定分区数量
e. 查看Raid卷初始化进度,完成后/dev/md0卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md0
f. 格式化/dev/md0卷;
g. 重启服务器,使其重新加载RAID关系;
h. 挂载使用:
vi /etc/fstab
/dev/md/lwh.linuxfan.cn:0 /a/ ext4 defaults 0 0
i. df -hT验证磁盘使用情况;

3.配置软RAID 1;
a. 分区为sdb2、sdc2,各5G,将其文件系统类型ID改为fd;
b. 重读分区表;
c. mdadm命令创建Raid 1;
mdadm -C /dev/md1 -l 1 -n 2 /dev/sdb2 /dev/sdc2
d. 查看/dev/md1卷的详细信息;
mdadm --detail /dev/md1
e. 格式化/dev/md1卷;
f. 重启服务器,使其重新加载RAID关系;
g. 挂载使用:
vi /etc/fstab
/dev/md/lwh.linuxfan.cn:1 /b/ ext4 defaults 0 0
h. df -hT验证磁盘使用情况;

4.配置软RAID 5;
a. 分区为sdb3、sdc3、sdd1,各5G,将其文件系统类型ID改为fd;
b. 重读分区表;
c. mdadm命令创建Raid 5;
mdadm -C /dev/md2 -l 5 -n 3 /dev/sdb3 /dev/sdc3 /dev/sdd1
d. 查看/dev/md1卷的详细信息;
mdadm --detail /dev/md2
e. 格式化/dev/md2卷;
f. 重启服务器,使其重新加载RAID关系;
g. 挂载使用:
vi /etc/fstab
/dev/md/lwh.linuxfan.cn:2 /c/ ext4 defaults 0 0
h. df -hT验证磁盘使用情况;

5.为RAID 1添加热备盘;
注意:
新增加的硬盘需要与原硬盘大小一致;
如果原有阵列缺少工作磁盘(如raid1只有一块在工作,raid5只有2块在工作),这时新增加的磁盘直接变为工作磁盘,如果原有阵列工作正常,则新增加的磁盘为热备磁盘;
步骤:
a. 分区为sdd2,大小为5G,并将文件系统类型改为fd,并且重读分区表;
b. 将/dev/sdd2添加到RAID1,作为热备盘;
mdadm /dev/md/lwh.linuxfan.cn:1 --add /dev/sdd2
c. 查看RAID1卷的详细信息;
mdadm -D /dev/md/lwh.linuxfan.cn:1
d. 将RAID1卷中的活跃卷/dev/sdb2模拟故障;
mdadm /dev/md/lwh.linuxfan.cn:1 --fail /dev/sdb2
e. 查看RAID1卷的详细信息;
mdadm -D /dev/md/lwh.linuxfan.cn:1
f. 将故障卷在RAID1中进行移除;
mdadm /dev/md/lwh.linuxfan.cn:1 -r /dev/sdb2
g. 查看RAID1卷的详细信息;
mdadm -D /dev/md/lwh.linuxfan.cn:1

四、恢复误删除文件;

1.恢复的工具:extundelete
2.恢复的原理:
在数据被误删除后,第一时间要做的就是卸载被删除数据所在的分区;
如果是根分区的数据遭到误删,就需要将系统进入单用户模式,并且将根分区以只读模式挂载。这样做的原因很简单,因为将文件删除后,仅仅是将文件的inode节点中的扇区link指针-1,实际文件还储存在磁盘上,如果磁盘继续以读写模式挂载,这些已删除的文件的数据块就可能被操作系统在创建新文件时重新分配出去,在这些数据库被新的数据覆盖后,这些数据就真的丢失了,恢复工具也无力回天。所以!以只读模式挂载磁盘可以尽量降低数据库中数据被覆盖的风险,以提高恢复数据成功的比例。

3.案例:
[root@lwh ~]# fdisk /dev/sdb                ##分区为sdb1
[root@lwh ~]# partx -a /dev/sdb
[root@lwh ~]# mkfs -t ext4 /dev/sdb1
[root@lwh ~]# mkdir /benet
[root@lwh ~]# mount /dev/sdb1 /benet
[root@lwh ~]# df -hT
[root@lwh ~]# touch /benet/1.file
[root@lwh ~]# cp /etc/fstab /benet
[root@lwh ~]# cp /etc/inittab /benet
[root@lwh ~]# echo "haha" >>/benet/haha.txt
[root@lwh ~]# ls /benet
1.file   fstab   inittab   haha.txt
[root@lwh ~]# rm -rf /benet/*
[root@lwh ~]# ls /benet
[root@lwh ~]# umount /benet
[root@lwh ~]# yum -y install *2fs*  
[root@lwh ~]# tar jxvf extundelete-0.2.4.tar.bz2
[root@lwh ~]# cd extundelete-0.2.4
[root@lwh extundelete-0.2.4]#./configure
[root@lwh extundelete-0.2.4]# make
[root@lwh extundelete-0.2.4]# make install
[root@lwh extundelete-0.2.4]# cd
[root@lwh ~]# extundelete /dev/sdb3 --inode 2               ##查看可以恢复的文件
[root@lwh ~]# extundelete /dev/sdb1 --resotre-all           ##恢复所有文件
[root@lwh ~]# ls RECOVERED_FILES/                       ##验证恢复的文件
1.file  fstab  haha  inittab

4.extundelete命令其他语法:
extundelete /dev/sdb1 --restore-file 文件名 ##恢复单个文件,只指定文件名,不指定文件的任何路径
extundelete /dev/sdb1 --restore-directory 目录名 ##恢复目录

你可能感兴趣的:(运维,数据库,操作系统)