几年前,我使用管理使用 Debian 提供的 RAID 作为后备存储drbd 0.8。目前有两个 RAID6 卷,分别由 2 和 14 TB 磁盘组成。
同时,已向两个节点添加了磁盘以提供更多空间,已更换了有缺陷的磁盘,并且已应用了对较新的 Debian 版本的升级。
背景故事:我在活动节点上经历了异常高负载和大量 KO 超时01iostat -x 2
最近。观察01,我观察到一个磁盘上升平均队列大小短时间内,彼此之间的数量要多得多。为了隔离故障,我手动设置了辅助节点02并逐个卷断开 drbd 网络连接。这样,我终于发现故障出在前主节点上的两个 RAID 卷之一上01。
我曾经smartctl -t long
对磁盘进行过扩展检查,并用 检查了输出smartctl -a
。没有明显的值暗示即将发生故障。
为了排除该特定磁盘,我将卷重新创建为 RAID5,将可疑磁盘排除在新卷之外。在使用默认值(drbdadm create-md resname
)创建新的 drbd 元数据并强制活动节点02作为同步源,我收到以下消息02的日志:
The peer's disk size is too small! (39066455672 < 39066476152 sectors)
新的卷太小了 20,480 个扇区!
比较来自的值mdadm --detail
:
Host | Array Size (blocks) | Used Dev Size (blocks)
------+----------------------------------------------
01 | 19,533,834,240 | 1,953,382,400
02 | 19,533,824,000 | 1,953,383,424
接下来,我再次将阵列重新创建为 RAID6,就像之前一样。不过,大小还是有差异
检查两台机器上的阵列01(新数组)和02(旧阵列)并将mdadm --detail
它们推过 diff 显示:
--- 01 2023-01-19 13:37:48.552858896 +0100
+++ 02 2023-01-19 13:34:58.098143189 +0100
@@ -1,17 +1,17 @@
/dev/md4:
Version : 1.2
- Creation Time : Thu Jan 19 13:37:11 2023
+ Creation Time : Fri Nov 26 11:23:33 2021
Raid Level : raid6
- Array Size : 19533824000 (18628.91 GiB 20002.64 GB)
- Used Dev Size : 1953382400 (1862.89 GiB 2000.26 GB)
+ Array Size : 19533834240 (18628.92 GiB 20002.65 GB)
+ Used Dev Size : 1953383424 (1862.89 GiB 2000.26 GB)
Raid Devices : 12
Total Devices : 12
Persistence : Superblock is persistent
Intent Bitmap : Internal
- Update Time : Thu Jan 19 13:37:24 2023
- State : clean, resyncing
+ Update Time : Thu Jan 19 13:34:11 2023
+ State : active
Active Devices : 12
Working Devices : 12
Failed Devices : 0
@@ -22,22 +22,20 @@
Consistency Policy : bitmap
- Resync Status : 0% complete
-
Name : 4
- UUID : 4a730173:b97ac886:8194cbed:f30861d2
- Events : 3
+ UUID : d6e60c19:5b08166e:a6b78c2b:a2676f7d
+ Events : 4580
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb
- 2 8 64 2 active sync /dev/sde
+ 2 8 48 2 active sync /dev/sdd
3 8 32 3 active sync /dev/sdc
- 4 8 48 4 active sync /dev/sdd
- 5 8 80 5 active sync /dev/sdf
- 6 8 144 6 active sync /dev/sdj
- 7 8 240 7 active sync /dev/sdp
- 8 8 128 8 active sync /dev/sdi
- 9 65 0 9 active sync /dev/sdq
- 10 8 176 10 active sync /dev/sdl
+ 4 8 80 4 active sync /dev/sdf
+ 5 8 128 5 active sync /dev/sdi
+ 6 8 112 6 active sync /dev/sdh
+ 7 8 144 7 active sync /dev/sdj
+ 8 8 160 8 active sync /dev/sdk
+ 9 8 176 9 active sync /dev/sdl
+ 10 8 192 10 active sync /dev/sdm
11 8 208 11 active sync /dev/sdn
强迫使用的开发大小值来自02产量:
mdadm: /dev/sda is smaller than given size. 1953382400K < 1953383424K + metadata
对于多个磁盘驱动器,不仅仅是 /dev/sda。当管理现在声称每个设备空间不足?
问题:
- 为什么新阵列每个设备使用的空间比原先少 1024 个块?
- 我从来没有使用过管理在任何场合都可以使用。测试表明,
-z max
即使-z max
使用的开发大小保持在1953382400块。 - 有没有办法强制创建数组管理兼容性选项提供足够的空间来提供同样大小的后备存储驱动再次?