Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >嵌套RAID (RAID0 in RAID1)在启动时失败

嵌套RAID (RAID0 in RAID1)在启动时失败
EN

Server Fault用户
提问于 2013-12-13 23:10:03
回答 2查看 650关注 0票数 2

我用三个驱动器构建了一个RAID设置,两个1.5TB (sdb和sdd)和一个3TB (sdc)。我的方法是将两个1.5TB驱动器组合到一个RAID0驱动器(md3)中,并与3TB驱动器(sdc)和RAID0数组(md3)一起创建一个RAID1镜像(md2)。这一切都有效。

问题:每当我重新启动计算机时,RAID1数组(md2)只看到一个活动驱动器(sdc),即使RAID0数组(md2)正确启动。每次我必须手动重新添加md2数组。到底怎么回事?在系统组装md3之前,有什么办法让系统组装md2吗?

我已经有了md2驱动器与sdc。一般来说,我已经运行了这些命令(大约):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mdadm --create --verbose /dev/md3 --level=stripe --raid-devices=2 /dev/sdb /dev/sdd
mdadm /dev/md2 --add /dev/md3
mdadm --detail --scan >> /etc/mdadm/mdadm.conf

我还在mdadm.conf文件中添加了“设备分区容器/dev/md3”。这一切都发生在Debian 6.0.8上。

更多信息:重新启动后,/proc/mdstat读取(编辑掉md0和md1信息):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Personalities : [raid0] [raid1]

md3 : active raid0 sdb[0] sdd[1]
      2930274304 blocks super 1.2 512k chunks

md2 : active raid1 sdc[4]
      1415577600 blocks super 1.2 [2/1] [U_]

unused devices: <none>

md3 ( RAID1数组)似乎已经忘记了md2。

在创业过程中也有一些可疑之处。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dmesg | grep -i 'md2\|md3\|raid'
[    2.537001] md: raid0 personality registered for level 0
[    2.539298] md: raid1 personality registered for level 1
[    2.620402] md: md2 stopped.
[    2.623636] raid1: raid set md2 active with 1 out of 2 mirrors
[    2.623655] md2: detected capacity change from 0 to 1449551462400
[    2.625028]  md2: unknown partition table
[    2.914801] md: md3 stopped.
[    2.919365] raid0: looking at sdb
[    2.919368] raid0:   comparing sdb(2930274304)
[    2.919370] raid0:   END
[    2.919371] raid0:   ==> UNIQUE
[    2.919372] raid0: 1 zones
[    2.919373] raid0: looking at sdd
[    2.919374] raid0:   comparing sdd(2930274304)
[    2.919376] raid0:   EQUAL
[    2.919377] raid0: FINAL 1 zones
[    2.919380] raid0: done.
[    2.919381] raid0 : md_size is 5860548608 sectors.
[    2.919382] ******* md3 configuration *********
[    2.919397] md3: detected capacity change from 0 to 3000600887296
[    2.921296]  md3: unknown partition table
[    3.244104] raid1: raid set md1 active with 2 out of 2 mirrors
[    3.468709] raid1: raid set md0 active with 2 out of 2 mirrors
EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-12-15 18:13:32

事实证明,解决方案非常简单:确保在md3之前组装md2。本说明专门针对Debian 6。

  1. 在/etc/mdadm/mdadm.conf中,按您希望它们组装的顺序放置驱动器。在本例中,数组/dev/md3 metadata=1.2数组/dev/md2 metadata=1.2
  2. 运行‘更新-initramfs -u’。这是我以前错过的!

现在,当计算机启动时,它首先组装md3,然后组装md2。以前,它首先组装了md2,由于找不到md3,所以失败了。

票数 1
EN

Server Fault用户

发布于 2013-12-14 01:47:00

我的方法是将两个1.5TB驱动器组合到一个RAID0驱动器(md3)中,并与3TB驱动器(sdc)和RAID0数组(md3)一起创建一个RAID1镜像(md2)。这一切都有效。

与使用RAID-10相比,您的方法提供了更多的松散数据的机会。你们中的任何一个都没了,另一个也没用了。这就是为什么人们通常倾向于使用镜子的条纹,而不是条纹的镜子。

此外,你最好不要使用嵌套的袭击,它带来的开销是相当不必要的。Linux软件RAID支持奇数磁盘上的RAID-10。因此,您可以在2个或全部3个磁盘上设置一些RAID-1用于引导分区,然后将3个磁盘组合成RAID-10。是的,除了RAID-10,你还有一些空间,但至少你会有相当好的一次RAID-10。左空间可用于不重要的数据。

UPD:实现类似设置的最简单方法是使用LVM-2's的能力,既可以剥离逻辑卷,也可以镜像物理磁盘上的逻辑卷。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/561322

复制
相关文章
用C#实现模拟双色球中奖控制台应用程序
简单地运用CSharp语言和.net平台,如变量、方法、类、数组、字典、系统函数、规范的注释、控制台输出、文件的读写、程序怎样设计等。
摘繁华
2022/08/31
1.2K0
用C#实现模拟双色球中奖控制台应用程序
用C#实现模拟双色球中奖控制台应用程序
简单地运用CSharp语言和.net平台,如变量、方法、类、数组、字典、系统函数、规范的注释、控制台输出、文件的读写、程序怎样设计等。
摘繁华
2022/05/03
1.4K0
用C#实现模拟双色球中奖控制台应用程序
C# 控制台应用程序输出颜色字体[更正版]
首先感谢院子里的“yanxinchen”,之前的方法是通过c#调用系统api实现的,相比之下我的有点画蛇添足了,哈哈。 最佳解决方案的代码: static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Hello, color text!"); Console.ForegroundColor = ConsoleColor.Red; Cons
磊哥
2018/05/09
2K0
C# 控制台应用程序输出颜色字体[更正版]
使用C#创建SQLite控制台应用程序
本文介绍了如何使用C#和SQLite数据库来创建一个简单的登录系统,并给出了具体的代码示例。主要实现了用户登录、注册、修改个人信息和查询个人信息等功能。使用了SQLiteStudio工具来创建数据库,并使用了System.Data.SQLite.dll库进行数据库操作。
CNXY
2017/12/25
2.5K0
使用C#创建SQLite控制台应用程序
使用C#创建WCF服务控制台应用程序
本文介绍如何使用C#创建WCF服务控制台应用程序。首先,作者演示了如何将WCF服务添加到现有的Visual Studio 2019项目。然后,他演示了如何编写服务合同,并添加数据契约。最后,他演示了如何将控制台应用程序与WCF服务连接,并调用服务的方法。
CNXY
2017/12/25
2.1K0
使用C#创建WCF服务控制台应用程序
CSharp实现模拟双色球控制台应用程序
这是我在大一第一学期C#的课程设计,要求编写一个模拟双色球彩票的控制台应用程序,用以实现简单的模拟选购彩票。
摘繁华
2021/12/27
1.6K0
CSharp实现模拟双色球控制台应用程序
「业务架构」如何在BPMN中正确使用泳道
池是设置业务流程边界的基本BPMN元素。池最多包含一个业务流程。这意味着两个流程程必须在两个不同的池中建模。池可以以将要执行的流程的形式具有可见的内部详细信息(称为“白盒池”),或者池可能没有可见的内部详细信息(称为“黑盒池”)。应该使用的池类型取决于所需的详细程度和特定的上下文。
架构师研究会
2020/07/20
2.2K0
「业务架构」如何在BPMN中正确使用泳道
[C#]实现任何数据库类型的DbHelper帮助类 使用C#创建SQLite控制台应用程序
我们可以看到,在此类中,有很多用于创建数据库相关对象的类型,如DbConnection,DbCommand,DbDataAdapter等。
CNXY
2019/05/24
4.2K0
聊聊如何在spring事务中正确进行远程调用
最近和朋友聊天,他说他承接的外包项目遇到了分布式事务问题,问我有没啥解决方案,我本可以直接跟他说,分布式事务方案网上一大堆,什么tcc、可靠消息一致性、最大努力通知之类的,直接网上找个试下,比如直接用阿里的seata。但我并没有这么做,因为分布式事务,本来就是一个很复杂的课题,真正落地的时候,会发现有时候是多种分布式方案一起混用,而非一种方案走到黑。
lyb-geek
2022/01/07
7110
如何在Laravel 5中正确设置文件权限
为任何Web应用程序设置适当的文件权限是Web托管的重要部分。 在本教程中,您将学习如何在Linux Web服务器上托管的Laravel应用程序上正确配置文件权限。
星哥玩云
2022/07/27
5.7K0
如何在Pytorch中正确设计并加载数据集
但在实际的训练过程中,如何正确编写、使用加载数据集的代码同样是不可缺少的一环,在不同的任务中不同数据格式的任务中,加载数据的代码难免会有差别。为了避免重复编写并且避免一些与算法无关的错误,我们有必要讨论一下如何正确加载数据集。
老潘
2023/10/19
3990
如何在Pytorch中正确设计并加载数据集
聊聊如何在spring事务中正确进行远程调用
最近和朋友聊天,他说他承接的外包项目遇到了分布式事务问题,问我有没啥解决方案,我本可以直接跟他说,分布式事务方案网上一大堆,什么tcc、可靠消息一致性、最大努力通知之类的,直接网上找个试下,比如直接用阿里的seata。但我并没有这么做,因为分布式事务,本来就是一个很复杂的课题,真正落地的时候,会发现有时候是多种分布式方案一起混用,而非一种方案走到黑。
lyb-geek
2021/04/29
1K0
聊聊如何在spring事务中正确进行远程调用
[C#] 控制台应用程序退出事件
在 .NET 中,是否有一种方法(例如事件)来检测控制台应用程序何时退出?你可能需要清理一些线程和 COM 对象.,记录一下信息等等。。。。。。。 比如我的数据采集软件,每次启动和退出时向钉钉推送相关
科控物联
2022/04/19
2.9K0
[C#] 控制台应用程序退出事件
如何在 Node.js 中正确的使用日志对象
日志,是开发者排查问题的非常重要的手段,有时候甚至是唯一的,所以如何合理并正确的打印日志,成了开发时的重中之重。
程序狗
2022/01/04
1.1K0
如何在 JS 循环中正确使用 async 与 await
你想从fruitBasket获得每个水果的数量。 要获取水果的数量,可以使用getNumFruit函数。
前端小智@大迁世界
2019/06/15
5K0
如何在网页设计中正确应用色彩?
以下内容由摹客团队翻译整理,仅供学习交流,摹客iDoc是支持智能标注和切图的产品协作设计神器。
奔跑的小鹿
2019/06/24
1.2K0
如何在 JS 循环中正确使用 async 与 await
async 与 await 的使用方式相对简单。 当你尝试在循环中使用await时,事情就会变得复杂一些。
桃翁
2019/06/18
4.6K0
如何在 JS 循环中正确使用 async 与 await
如何在 Node.js 中正确的使用日志对象
地址:https://mp.weixin.qq.com/s/Pb51aYdrxAALM_wR4asDgg
coder_koala
2021/08/26
9840
C# 控制台使用 UAC 权限
本文告诉大家如何在 C# 控制台项目使用 UAC 权限。这个方法在 WPF 和 控制台都是可以使用。
林德熙
2018/09/19
1.5K0
C# 控制台使用 UAC 权限
如何在 Linux 上锁定虚拟控制台会话 如何在 Linux 上锁定虚拟控制台会话
当你在共享的系统上工作时,你可能不希望其他用户偷窥你的控制台中看你在做什么。如果是这样,我知道有个简单的技巧来锁定自己的会话,同时仍然允许其他用户在其他虚拟控制台上使用该系统。要感谢 Vlock(Virtual Console lock),这是一个命令行程序,用于锁定 Linux 控制台上的一个或多个会话。如有必要,你可以锁定整个控制台并完全禁用虚拟控制台切换功能。Vlock 对于有多个用户访问控制台的共享 Linux 系统特别有用。
用户8639654
2021/10/26
2.2K0

相似问题

如何在libgdx中正确地实现声音切换?

14

我如何实现声音通知,如whatsapp?

13

如何在C#中正确退出/停止/处置控制台应用程序

31

如何在c#控制台应用程序中正确处理异常

11

如何在C#控制台应用程序中正确写出下载状态?

42
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文