我一直看到文章将 RAID 1(和 RAID 10)的 RAID IOPS 写入损失描述为 2。当然,RAID 0 的损失为 1,因为每次写入都只是写入磁盘。RAID 1 被描述为“需要两次写入”,因此惩罚为 2。
但它不应该是 1,因为数据是同时写入的吗?
从使用磁盘的应用程序或服务器的角度来看,RAID 1 阵列应显示为同时写入两个磁盘的单个单元。一个磁盘可能落后于另一个磁盘,但实际的硬件 RAID 控制器应该能够同时开始写入,并在较慢的磁盘完成时报告写入操作已完成,这应该仅略高于 RAID -0,如果有的话。因此,RAID 1 的 IOPS 损失应为 1 或最大为 1.2。
我知道有两个写操作,所以有 2 个“IOPS”,但它们在 RAID 控制器内部。
我在这里错过了什么吗?
我们希望为新服务器购买带有两个至强处理器的英特尔 S2600GZ。我们希望运行 12 个磁盘的设置,因为我们正在研究的准系统最多支持 12 个。
这个想法是在一对 RAID 1 磁盘上运行 Windows 2012 Hyper-V 主机,然后在其他 5 对 (RAID 1) 中的每一个上运行 Hyper-V VM。
我们试图弄清楚主板上的 RAID 是如何工作的,因为它列出了需要 C600 XXXXX 密钥才能启用某些功能。
我们需要什么钥匙(如果有的话)?
我们应该考虑使用另一个附加的 RAID 控制器吗?
我知道 RAID 不应该用于备份,但如何使用它来创建物理级别的备份?我设置了从所有网络到一台服务器的常规 rsync 备份。每周一次,将所有备份复制到外部硬盘(直接使用 dd)并将硬盘小心带回家,以防止在服务器机房发生问题时丢失数据。
现在,拥有两个或更多磁盘的 RAID1 阵列而不是复制数据 - 只需将磁盘与另一个磁盘切换并重建阵列是否是个好主意?之后从提取的磁盘中恢复数据会出现问题吗?
给定一个由 6 个驱动器创建的 RAID 6,/dev/md0它应该完全用于数据(不从它启动,root 和交换位于不同的驱动器上),我应该在该设备上创建一个分区,然后在该分区中创建一个文件系统,还是我应该在设备上创建一个文件系统吗?
parted /dev/md0
<create a partion>
mkfs -t ext3 /dev/md0p1
Run Code Online (Sandbox Code Playgroud)
要不就
mkfs -t ext3 /dev/md0
Run Code Online (Sandbox Code Playgroud)
为什么?
(这是 Ubuntu 服务器,以防万一。)
当我将数据库表分布在不同的硬盘上时,性能是否有所提高?
我需要同时访问许多不同的模式,我想知道当我将表分布到不同的硬盘驱动器时,添加更多的硬盘驱动器是否会显着提高性能。
因此,假设我有100 个表和 1 个硬盘驱动器与100 个表和 10 个硬盘驱动器。这会有所作为吗?或者我最好在 RAID 配置中连接硬盘驱动器?
我看到有这种配置的服务器。这是什么意思?
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0] sdc1[2] sdb1[1]
48827264 blocks super 1.0 [3/3] [UUU]
Run Code Online (Sandbox Code Playgroud)
这是否意味着,跨 3 个驱动器镜像数据,因此有 3 个磁盘具有相同的数据?有什么好处?更高的读取性能是好处之一吗?
如果我在 Raid10 中有 24 个小驱动器与 4 个较大驱动器,它会影响性能吗?
问题的根源在于,如果我用大量较小的驱动器填充所有 24 个托架,或者只使用 4 个驱动器或 8 个驱动器但使用更大的磁盘,它是否有任何性能或冗余优势?
以下是我们当前的服务器配置。几周后,我将通过安装 5 个新磁盘(1 个热备用)并从备份中恢复所有 VM 来模拟灾难恢复。
通过将 RAID 条带大小更改为 64KB 以外的大小,我会得到什么吗?RAID 控制器有 8KB、16KB、32KB、64KB、128KB、256KB、512KB、1MB 的选项。
任何基于以下规范的建议将不胜感激 - 谢谢。
Hardware:
Dell PowerEdge 2900 III
Dell PERC 6/i
Intel Xeon 2.5GHz (x2)
32GB RAM
Seagate ST32000645SS ES.2 2TB Near-Line SAS 7.2K (x4)
Software:
Citrix XenServer 6.2 SP1
VM - Windows SBS 2008 x64 - Exchange & multiple SQL express instances
VM - Windows Server 2003 R2 x86 - single SQL express instance
VM - CentOS 6.6 x64 (x2) - cPanel & video transcoding …Run Code Online (Sandbox Code Playgroud) 我最近在我的 RAID 阵列中丢失了一个驱动器(并且收到了一封来自系统的电子邮件警告我这件事,这非常好),经过一些驱动器洗牌并换入新驱动器后,我一切都安然无恙。但是一路上,我发现了这个线程,这让我开始思考如何在不实际发生的情况下实际测试磁盘错误和其他坏事。当我运行建议的 tar 命令时:
tar c /my/raid/device/mount/point > /dev/null
Run Code Online (Sandbox Code Playgroud)
它在几秒钟内完成,这显然不足以让系统实际读取所有文件(远远超过 TiB) - 所以我想我的第一个问题是为什么这可能不起作用。如果我做这样的事情:
find . -type f | xargs md5sum
Run Code Online (Sandbox Code Playgroud)
该命令运行得很好,需要很长时间才能完成……但它也会加载 CPU 来完成所有求和。这可能会也可能不会比“tar”更快或更容易 - 我更好奇为什么 tar 命令没有按我预期的那样工作。
无论如何 - 第二个问题,更普遍的是:有没有办法按照这些方式做一些事情来进行故障注入测试:
这似乎是可行的,但我对 linux 工具没有足够详细的知识,这些知识可以让我在设备级别将块标记为坏块,而实际上它不是坏块...
对此有何想法?或者,如果有更优雅的方法来解决这个问题,我也很高兴听到......
我们正在淘汰少数富士通 Primergy 服务器。当然,在此之前,我们要确保硬盘被完全擦除。但是好像没有办法一一格式化硬盘,因为DBAN等实用程序没有检测到RAID阵列控制器。我已经删除并重新创建了 RAID。我的问题是,这就够了吗?
需要注意的几点:
这些是租用的服务器,因此不能选择物理销毁硬盘。
我试图为控制器配置 JBOD,但似乎它不支持它。
最新的 Ubuntu、Debian、Gparted 或 DBAN 无法识别控制器或磁盘。