HP Microserver Gen8 Smart Array B120i阵列卡的一些试验和操作

2024-02-17 04:30

本文主要是介绍HP Microserver Gen8 Smart Array B120i阵列卡的一些试验和操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

声明:本实验只测试HP Microserver Gen8 Smart Array B120i板载阵列卡,不同阵列卡结果可能会不同,请谨慎操作,本人不对您操作后导致的任何数据丢失或者损失承担任何责任,文章仅供参考,操作前请做好备份。

合肥向阳互联文化传媒有限公司,原创测试,谢绝转载。

写这篇文章, 一为记录,以后再遇到一些问题的时候,能快速翻阅资料,二是方便其他有需要的朋友遇到问题的时候,能少走些弯路。

本文主要测试内容:

Gen8阵列卡官方宣称只能上不超过3T硬盘,实测8T没有问题,估计16T也没毛病,某度贴吧有网友称18T能用,放心买吧。

Gen8阵列卡的阵列信息是存在硬盘上的,还是存在CMOS里或者是阵列卡里还是某个闪存芯片里?实测阵列信息存储在硬盘中,阵列卡中大概率没有存储,试验步骤后面说。

Gen8如果丢失阵列信息(比如CMOS掉电),是否会导致已经创建的阵列信息丢失?

除非你两块盘都坏了,或者你重建了阵列,否则是不会丢的。

Gen8能否只用某两个盘位组阵列,另外两个盘位SATA直通?

实测不能,有替代方案但不推荐。

为什么突然会折腾Microserver Gen8(以下简称Gen8)自带的这个Smart Array B120i阵列卡呢?

原因我打个浅一点的颜色, 不关心你可以直接略过

2023年6月底,我的笔记本电脑异常卡顿,出现了一下莫名其妙的问题。用了有快6年了,因为赶时间,愤怒之下拍了一下笔记本,当时是没有任何情况发生的。后来他越来越慢,键盘也出现了一些问题,甚至有无法开机的情况,怀疑120G固态硬盘和机械硬盘都坏了(平时视频剪辑和敲代码比较多)。

拿到华硕售后去,那个SB直接在开机状态下把笔记本翻过来看信息,然后在开机状态下拆开了笔记本的后壳。当时似乎也没有什么意外发生。

几天以后,告诉我买不到键盘备件,我自己从淘宝上买到了备件,而且价格只有原厂的三分之一,原厂的要600多,他跟我说那个和原厂的不能比(其实我至今都没发现到底和原厂的区别在哪里了),我说原厂的你不是订不到货了吗?然后他说他们不允许安装客户带来的备件,然后向上级申请。最终,给装了,自己买的致态512GB固态以及键盘,总共收200元服务费。可是,烦人的事情来了,当时我有一些比较重要紧急的数据需要拿出来,因为平时没有自动备份,所以手动的备份会有盲区,谁也没有想到机械硬盘会出问题,结果,我的机械硬盘坏了。希捷的1T硬盘,7mm厚度,叠瓦盘。这里,估计和我拍电脑拿一下,以及售后开机拆机肯定都有关联,事情已经发生,我也不说什么了。拆了机械硬盘,去数据恢复公司恢复数据。

经过接近10天的努力,数据半数以上恢复出来了,不过仍然损失惨重,有些文件已经损坏,只能看到文件名了,里面的实际内容是有问题的。叠瓦盘,数据恢复公司是熟人,恢复效果不好,磁头有损坏,盘面有坏道,所以数据不能完全恢复也在意料之中。

然后,下定决心要把备份搞好。

之前是一致用的两块西数1T蓝盘在Gen8里面用Centos 6的mdadm组的软raid1,2017年那会儿HPE官网还没有提供centos7的阵列卡驱动,并且centos6的阵列卡驱动在你执行了yum -y update之后,新内核直接导致阵列卡无法识别。就用了操作系统自带的软阵列。

1T空间早就满了,西数蓝盘工作已经7年半之久,也该换了,2023年,是一个硬盘界值得写入历史的一年,消防队长江存储让我这个穷人也能有机会用上性价比很高的SSD,然后7月希捷银河硬盘价格不高,本想弄两块16T银河组RAID1,无奈钱包、银行卡、媳妇都不答应。弄了两块8T,一直没时间折腾,又赶上centos要被红帽stream版掉,多次比较试了debian12,可是hpe官网找不到debian的阵列卡驱动,无奈,再次换回centos7,想用自带阵列卡组raid1,因为听说如果用ahci模式,ilo无法读取硬盘温度,风扇会转得很快。至于怎么在安装操作系统的时候加载阵列驱动,我会另写文章说,百度的话网上也能找到相关文章,仔细找找。

先来说一下文章开头的几个疑问:

Gen8阵列卡的阵列信息是存在硬盘上的,还是存在CMOS里或者是阵列卡里还是某个闪存芯片里?实测阵列信息存储在硬盘中,阵列卡中大概率没有存储。试验如下:

试验1:盘A、B使用b120i组raid1,AHCI模式下进入PE系统,使用disk genius能看到两块盘都有同样的分区信息。此时,关掉机器,去掉盘B,机器报阵列故障,Gen8机器底部蓝色常亮的底部灯带这个时候开始变成橙色闪烁状态。此时,在A上直接重建raid0,不再报故障,但重新进入PE,发现A上原有的分区全部丢失。

 可怕的颜色,机器底部蓝色灯带变黄闪烁,预示RAID出现问题。

试验2:接上述,删除盘A上的raid0,重启系统,提示故障,可以按F1恢复阵列,于是按了F1,raid1正在后台重建中。

注意:重建是可以重建,但是不要移动盘序或者换到其他电脑上,因为硬盘上会存储上一次的盘序位置,如果改了位置,是无法自动重建阵列的。即使还是在gen8上,也不要移动到其他盘位,笔者在实验中因为有紧急情况需要临时开机,正好也想试试改硬盘位置会不会对重建raid1有没有影响,是动过盘位的,比如那个raid0其实就是挪到3、4盘位的时候做的,后来后改会1、2盘位恢复。是无法重建的。只能原封不动挪回3、4盘位,原来哪个盘位是哪个硬盘,重建的时候就得是什么位置,不可以更改,否则无法重建,或者很可能会因为硬盘中原来存储的阵列信息,重建的时候导致数据被损坏。

但是,重建的速度不知道为什么是非常慢的。我两块8T的盘做raid1,盘都是新的,其实盘里任何数据都没有,只有最原始的做好centos 系统的分区,结果二十分钟过去了,才重建不到3%

最后一个试验:如果我组raid1,并且阵列卡最终失效损坏,那么我还能拿出硬盘里的数据吗?比如真的换了服务器,因为毕竟b120i是这台gen8内建的。

试验3:重建后,直接在BIOS中把阵列卡功能关闭,用AHCI模式看系统能否引导成功,如果不能引导成功,那么使用我原来mdadm形式的centos6引导,看能否成功挂载硬盘读取里面的数据。

实验结果:可以直接启动到centos 操作系统,所有数据均未受到影响。

试验结论:

能启动centos,但无法进入桌面。卡在登录界面,看不到用户,一直转圈,硬盘指示灯没有任何读写闪烁指示。估计多少还是有些影响的,比如他可能还在加载阵列卡驱动,这是盘B,其中的镜像很可能指向的是盘A,所以有可能卡在这里进不了系统。

然后用centos6启动,看能否挂载这款盘并看到其中的数据,用ROOT用户登录到CENTOS6,挂载磁盘,可全盘读出,数据都在。

行了,可以放心玩了。

最后,数据无价,请备份好数据,谨慎操作。阵列操作可能一不小心,所有的盘就都清空了。

因为本身就是以NAS为主,偶尔在Linux上跑跑项目。比较建议的操作方法是:把Linux单独安装在一个SSD中,但可能需要用优盘或者SD卡引导SATA5上的固态进入操作系统。剩下的所有数据盘全部用b120i两两做raid1,挂载到操作系统上就行了。

最后,重建过程如果死机、重启、断电,那就什么都别要了,你会得到一个闪烁的红色灯带。当然,也不排除是我在重建时重启了系统,并单独挂载了盘B,导致盘B某些分区数据被操作系统破坏,以致整个阵列失效,两块盘全盘数据全部丢失。所以raid1也不是绝对的安全。数据多备份才是王道。为了降低这种风险,后备电源也可以酌情考虑。

好在这次仅仅只是在正式上线之前的一次空盘测试而已。如果真的有数据,这可是整整8个T的两块硬盘。

最后验证了一下,确实是实验中终止RAID重建并用AHCI模式单盘B进入操作系统导致相互之间的镜像损坏。到这里,不要绝望,不要直接删除逻辑驱动器,不要以为你的数据就真没了。

用其他盘安装Centos系统,引导启动,最好安装桌面版,操作起来方便一点,盘挂载上去,文件依然还是可以读出来的。只是这种极端的危险操作,尽量别做!猜测重建慢就是因为RAID1是互为镜像。重建终止并单独操作某个盘的写入导致镜像彻底损坏也是情理之中。

本次操作有一件很诡异的事情,b120i组raid1以后,安装操作系统的时候明明我所有分区选择的都是ext4,不知道为什么,拆掉阵列之后在Disk Genius里面看到的分区表都是ext3,不知道是不是Disk Genius的版本不支持Ext4分区导致的……

这篇关于HP Microserver Gen8 Smart Array B120i阵列卡的一些试验和操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/716669

相关文章

2024/9/8 c++ smart

1.通过自己编写的class来实现unique_ptr指针的功能 #include <iostream> using namespace std; template<class T> class unique_ptr { public:         //无参构造函数         unique_ptr();         //有参构造函数         unique_ptr(

动手学深度学习【数据操作+数据预处理】

import osos.makedirs(os.path.join('.', 'data'), exist_ok=True)data_file = os.path.join('.', 'data', 'house_tiny.csv')with open(data_file, 'w') as f:f.write('NumRooms,Alley,Price\n') # 列名f.write('NA

线程的四种操作

所属专栏:Java学习        1. 线程的开启 start和run的区别: run:描述了线程要执行的任务,也可以称为线程的入口 start:调用系统函数,真正的在系统内核中创建线程(创建PCB,加入到链表中),此处的start会根据不同的系统,分别调用不同的api,创建好之后的线程,再单独去执行run(所以说,start的本质是调用系统api,系统的api

Java IO 操作——个人理解

之前一直Java的IO操作一知半解。今天看到一个便文章觉得很有道理( 原文章),记录一下。 首先,理解Java的IO操作到底操作的什么内容,过程又是怎么样子。          数据来源的操作: 来源有文件,网络数据。使用File类和Sockets等。这里操作的是数据本身,1,0结构。    File file = new File("path");   字

MySQL——表操作

目录 一、创建表 二、查看表 2.1 查看表中某成员的数据 2.2 查看整个表中的表成员 2.3 查看创建表时的句柄 三、修改表 alter 3.1 重命名 rename 3.2 新增一列 add 3.3 更改列属性 modify 3.4 更改列名称 change 3.5 删除某列 上一篇博客介绍了库的操作,接下来来看一下表的相关操作。 一、创建表 create

封装MySQL操作时Where条件语句的组织

在对数据库进行封装的过程中,条件语句应该是相对难以处理的,毕竟条件语句太过于多样性。 条件语句大致分为以下几种: 1、单一条件,比如:where id = 1; 2、多个条件,相互间关系统一。比如:where id > 10 and age > 20 and score < 60; 3、多个条件,相互间关系不统一。比如:where (id > 10 OR age > 20) AND sco

PHP7扩展开发之流操作

前言 啥是流操作?简单来讲就是对一些文件,网络的IO操作。PHP已经把这些IO操作,封装成流操作。这节,我们将使用PHP扩展实现一个目录遍历的功能。PHP示例代码如下: <?phpfunction list_dir($dir) {if (is_dir($dir) === false) {return;} $dh = opendir($dir);if ($dh == false) {ret

浙大数据结构:树的定义与操作

四种遍历 #include<iostream>#include<queue>using namespace std;typedef struct treenode *BinTree;typedef BinTree position;typedef int ElementType;struct treenode{ElementType data;BinTree left;BinTre

浙大数据结构:04-树7 二叉搜索树的操作集

这道题答案都在PPT上,所以先学会再写的话并不难。 1、BinTree Insert( BinTree BST, ElementType X ) 递归实现,小就进左子树,大就进右子树。 为空就新建结点插入。 BinTree Insert( BinTree BST, ElementType X ){if(!BST){BST=(BinTree)malloc(sizeof(struct TNo

hibernate修改数据库已有的对象【简化操作】

陈科肇 直接上代码: /*** 更新新的数据并并未修改旧的数据* @param oldEntity 数据库存在的实体* @param newEntity 更改后的实体* @throws IllegalAccessException * @throws IllegalArgumentException */public void updateNew(T oldEntity,T newEntity