私はほぼ10年間同じアレイを使用してきましたが、価格が下がるにつれてディスクを大きなディスクに交換してきました。
最近6TBディスク4台をRAID 5にアップグレードした後、奇妙な問題が発生しました。再起動するたびに、アレイは4.4TBアレイとして検出されます。これが私の配列の元のサイズです。システムが起動したら、システムmdadm --grow /dev/md0 --size=max
が正常に戻る前に完全な再同期を実行して待つ必要があります。
何が間違っているのかわかりません。
ディスクをアップグレードするたびに、次の手順に従います。
mdadm --manage /dev/md0 --fail /dev/old_disk
mdadm --manage /dev/md0 --remove /dev/old_disk
mdadm --manage /dev/md0 --add /dev/new_disk
アレイ内の各ディスクに対してこれを行い、次のディスクに移動する前にアレイが正常に動作するのを待ちました。すべて大きなディスクに交換した後、ファイルmdadm --grow /dev/md0 --size=max
システムを実行してサイズ変更しました。最後のアップグレードでは、16TB以上を確保するためにext4で64ビットを有効にする必要がありました。これが唯一の違いです。
以下は、最初の起動時のfdisk -lおよび/proc/mdstat出力です。
$ fdisk -l
Disk /dev/md0: 4.4 TiB, 4809380659200 bytes, 9393321600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 65536 bytes / 196608 bytes
$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid5 sdc1[3] sdb1[1] sdd1[0] sda1[2]
4696660800 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
走った後mdadm --grow /dev/md0 --size=max
$ fdisk -l
Disk /dev/md0: 16.4 TiB, 18003520192512 bytes, 35163125376 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 65536 bytes / 196608 bytes
$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid5 sdc1[3] sdb1[1] sdd1[0] sda1[2]
17581562688 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
[=====>...............] resync = 29.9% (1757854304/5860520896) finish=333.2min speed=205205K/sec
unused devices: <none>
$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Fri Dec 24 19:32:21 2010
Raid Level : raid5
Array Size : 17581562688 (16767.08 GiB 18003.52 GB)
Used Dev Size : 18446744073709551615
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Apr 16 23:26:41 2020
State : clean, resyncing
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
Consistency Policy : resync
Resync Status : 33% complete
UUID : 5cae35da:cd710f9e:e368bf24:bd0fce41 (local to host ubuntu)
Events : 0.255992
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 17 1 active sync /dev/sdb1
2 8 1 2 active sync /dev/sda1
3 8 33 3 active sync /dev/sdc1
/etc/mdadm/mdadm.conf:
# mdadm.conf
#
# !NB! Run update-initramfs -u after updating this file.
# !NB! This will ensure that initramfs has an uptodate copy.
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR jrebeiro
# definitions of existing MD arrays
ARRAY /dev/md0 metadata=0.90 UUID=5cae35da:cd710f9e:e368bf24:bd0fce41
# This configuration was auto-generated on Mon, 20 May 2019 04:28:45 +0000 by mkconf
Ubuntu 18.04.4 64ビットでmdadm - v4.1-rc1 - 2018-03-22を実行しています。私はこれに完全に迷子になりました。
アップデート1:
推奨されているようにメタデータを1.0に更新し、アレイは5TBに戻り、そのポイントを超えて増加しません。
$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid5 sdc1[3] sdb1[1] sdd1[0] sda1[2]
17581562688 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
$ sudo umount /mnt/array
$ sudo mdadm --stop /dev/md0
mdadm: stopped /dev/md0
$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
unused devices: <none>
$ sudo mdadm --assemble /dev/md0 --update=metadata /dev/sd[abcd]1
mdadm: /dev/md0 has been started with 4 drives.
$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid5 sdd1[0] sdc1[3] sda1[2] sdb1[1]
4696660800 blocks super 1.0 level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Fri Dec 24 19:32:22 2010
Raid Level : raid5
Array Size : 4696660800 (4479.08 GiB 4809.38 GB)
Used Dev Size : 1565553600 (1493.03 GiB 1603.13 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Fri Apr 17 12:41:29 2020
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
Consistency Policy : resync
Name : 0
UUID : 5cae35da:cd710f9e:e368bf24:bd0fce41
Events : 0
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 17 1 active sync /dev/sdb1
2 8 1 2 active sync /dev/sda1
3 8 33 3 active sync /dev/sdc1
$ sudo mdadm --grow /dev/md0 --size=max
mdadm: component size of /dev/md0 unchanged at 1565553600K
答え1
古いバージョンの0.90メタデータを使用しています。
mdadm
マンページから:
0, 0.90
Use the original 0.90 format superblock. This format
limits arrays to 28 component devices and limits
component devices of levels 1 and greater to 2 terabytes.
It is also possible for there to be confusion about
whether the superblock applies to a whole device or just
the last partition, if that partition starts on a 64K
boundary.
ドライブごとに2TBの制限が必要ではありません。
--update=metadata
組み立て時の使用を検討してください。
The metadata option only works on v0.90 metadata arrays and will
convert them to v1.0 metadata. The array must not be dirty
(i.e. it must not need a sync) and it must not have a write-
intent bitmap.
1.2メタデータ(ドライブの終わりから約64Kではなく最初から4Kに位置)に移行する方が良いですが、すべてのデータを再配置する必要があるため、これはより複雑です。