当前位置: 首页 > news >正文

【服务器数据恢复】HP EVA虚拟化磁盘阵列数据恢复原理方案

EVA存储结构&原理:
EVA是虚拟化存储,在工作过程中,EVA存储中的数据会不断地迁移,再加上运行在EVA上的应用都比较繁重,磁盘负载高,很容易出现故障。EVA是通过大量磁盘的冗余空间和故障后rss冗余磁盘动态迁移保护数据。但是如果磁盘掉线数量到达一个临界点,EVA存储就会崩溃。

EVA存储内部的结构组成不同于普通的基于RAID的存储,内部称之为VRAID。
EVA对每个物理磁盘(PV)进行签名(写在每个磁盘的0扇区),签名后将物理磁盘分配到不同的DISK GROUP。在DISK GROUP中,每个PV会按一定大小划分为若干存储单元(PP),PP的大小为2的整数次幂,大小在2-16M之间。
每个PV中有一定数量的PP,这些PP一起形成整个DISK GROUP的可用空间。
所有的PV按照5-15的数量组成若干组RSS,每组RSS就是一个冗余组,但RSS不等同于常规RAID。常规RAID是基于磁盘的RAID算法,而RSS是基于PP的RAID算法。
为提高性能,EVA存储会有倾向地轮流分配不同的RSS组,这些RSS之间的数据存储是基于JBOD的,每个RSS组成的stripe的成员是不同PV中不同位置的PP。
无论RSS中成员数量有多少个,对于VRAID5,一个stripe中的PV数总是5个;对于VRAID6,一个stripe中的PV数总是6个。
当一个RSS中某个PV离线,控制器会从同一个RSS组中其他磁盘中寻找可用的PP,在逻辑上实现每个stripe的rebuild,从而保证整个存储的安全性。
当一个RSS中损坏的磁盘数量少于等于6个的时候,EVA会合并此RSS到另一个RSS中,这样可用的冗余空间就是共享的了,空间就可以从另一个较安全的RSS中迁移过来。
为了保证有足够的空间提供冗余保护,在创建DISK GROUP时,EVA会提供一个Protection Level的保护级别:single表示用2个磁盘的空间做冗余,double表示用4个磁盘的空间做冗余,但这个冗余不同于hotspare,这个冗余空间仅会预留到每个PV的尾部。

EVA存储常见故障:
1、RSS中多个磁盘掉线,超过冗余保护级别。
2、加入新磁盘迁移数据时,新磁盘存在物理故障。
3、删除VDISK或EVA初始化。
4、主机与存储无法连接。

EVA存储数据恢复原理:
EVA存储核心结构部分来自于所有vdisk的运算pp map表,这个pp map表会因为磁盘的不断迁移而迁移,所有故障均可通过此map表恢复。
如果pp map表不存在,根据不同的条带之间的冗余关系,可通过优化算法对所有PP进行条带性集合,形成若干组正确的条带数据,然后基于文件系统结构、数据结构等特征重组若干条带。

EVA存储数据恢复方案:
1、将EVA主机一端的连线拔出,直接接到主机hba卡上,认出所有物理硬盘。将磁盘以只读方式做完整镜像(eva主机与扩展柜之间多是铜线连接,可能需要在扩展柜上增加光纤收发模块,再通过光链路接到hba卡上。也可以将所有硬盘拆下来放入其他光纤通道柜中进行镜像)。
使用EVA扩展柜进行镜像:

2、通过北亚企安自主研发的frombyte recovery for hp eva程序重组vdisk,直接写入成镜像文件或目标物理磁盘。
3、解释镜像文件或目标磁盘,然后迁移镜像或导出内部文件。

http://www.lryc.cn/news/297694.html

相关文章:

  • 08-OpenFeign-结合Sentinel,实现熔断降级
  • 15.实现数组的扁平化
  • 对话模型Demo解读(使用代码解读原理)
  • Android 自定义BaseFragment
  • [C#] 如何对列表,字典等进行排序?
  • Mac 下载安装Java、maven并配置环境变量
  • 【多模态】27、Vary | 通过扩充图像词汇来提升多模态模型在细粒度感知任务(OCR等)上的效果
  • |Python新手小白低级教程|第二十章:函数(2)【包括石头剪刀布判断程序(模拟版)】
  • vue3 之 商城项目—home
  • git flow与分支管理
  • 【Linux】学习-进程信号
  • webgis后端安卓系统部署攻略
  • 【数据分享】1929-2023年全球站点的逐日平均风速数据(Shp\Excel\免费获取)
  • 【多模态大模型】视觉大模型SAM:如何使模型能够处理任意图像的分割任务?
  • Shell之sed
  • AJAX——认识URL
  • 《Docker极简教程》--Docker环境的搭建--在Linux上搭建Docker环境
  • 开源微服务平台框架的特点是什么?
  • C#系列-C#操作UDP发送接收数据(10)
  • 突破编程_C++_面试(基础知识(10))
  • 初步探索Pyglet库:打造轻量级多媒体与游戏开发利器
  • 【npm】安装全局包,使用时提示:不是内部或外部命令,也不是可运行的程序或批处理文件
  • Go 语言 for 的用法
  • 熵权法Python代码实现
  • 浏览器提示ERR_SSL_KEY_USAGE_INCOMPATIBLE解决
  • 使用深度学习进行“序列到序列”分类
  • Python和Java的区别(不断更新)
  • Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(三)
  • vue electron 应用在windows系统上以管理员权限打开应用
  • c实现链表