mdadm RAID 5 및 인식할 수 없는 별도의 디스크 레이블

mdadm RAID 5 및 인식할 수 없는 별도의 디스크 레이블

3개의 3TB 드라이브가 있고 mdadm을 사용하여 이를 RAID 5 설정으로 결합하려고 하는데 몇 가지 문제가 있습니다. (실제로는 3TB 드라이브 4개를 사용할 예정인데 그 중 하나에 현재 데이터가 들어있어서 먼저 해당 데이터를 백업해야 합니다. 그래서 드라이브 중 3개를 사용하여 어떻게 해야 할지 알아보았습니다. 모든 것이 제대로 작동하도록 한 다음 데이터를 백업하고 4개 드라이브를 모두 사용하여 재구축하겠습니다)

먼저 여기에 설명된 지침에 따라 초기 구성을 수행했습니다.https://raid.wiki.kernel.org/index.php/RAID_setup

나는 결국 :

root@VMHost:/home/lex# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Mon Nov 10 22:41:00 2014
     Raid Level : raid5
     Array Size : 5860270080 (5588.79 GiB 6000.92 GB)
  Used Dev Size : 2930135040 (2794.39 GiB 3000.46 GB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Tue Nov 11 05:14:13 2014
          State : clean
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : VMHost:0  (local to host VMHost)
           UUID : d058bef5:ae3c96bd:a3a7d216:cb6aca06
         Events : 81

    Number   Major   Minor   RaidDevice State
       0       8        0        0      active sync   /dev/sda
       1       8       16        1      active sync   /dev/sdb
       3       8       64        2      active sync   /dev/sde

그런 다음 다음 명령을 사용하여 파일 시스템을 만들려고했습니다.

root@VMHost:/home/lex# mkfs.ext3 -v -m .1 -b 4096 -E stride=128,stripe-width=256 /dev/md0
mke2fs 1.42.9 (4-Feb-2014)
fs_types for mke2fs.conf resolution: 'ext3', 'big'
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
183136256 inodes, 1465067520 blocks
1465067 blocks (0.10%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
44711 block groups
32768 blocks per group, 32768 fragments per group
4096 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

그러나 설치하려고 하면 다음과 같은 메시지가 나타납니다.

root@VMHost:/home/lex# mount /dev/md0 /mnt/md0/
NTFS signature is missing.
Failed to mount '/dev/md0': Invalid argument
The device '/dev/md0' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

또한 유형을 ext3으로 지정합니다.

root@VMHost:/home/lex# mount -t ext3 /dev/md0 /mnt/md0
mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

그래서 미리 드라이브에 파티션을 생성한 다음 해당 파티션을 (전체 드라이브 대신) RAID 설정으로 사용해야 한다고 생각하여 RAID를 분해하고 드라이브에 파티션을 생성하기 시작했지만 그렇지 않았습니다. 경우. gpt 드라이브를 생성했는데 인식되지 않는 것 같습니다

root@VMHost:/home/lex# parted /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Error: /dev/sda: unrecognised disk label
(parted) mklabel gpt
(parted) print
Error: /dev/sda: unrecognised disk label
(parted) quit
Information: You may need to update /etc/fstab.

gpt 설정을 위해 내가 찾은 다른 지침을 따르려고 했습니다.https://plone.lucidsolutions.co.nz/linux/io/using-parted-to-create-a-raid-primary-partition디스크 레이블로 msdos를 사용하지만 3TB 디스크이기 때문에 더 큰 디스크를 지원하는 msdos 이외의 다른 것을 사용해야 한다고 생각하여 gpt를 시도했습니다.

gpt 자체로 설정한 후에도 parted가 디스크 레이블을 인식하지 못하는 이유를 알고 계십니까? 지금 하고 있는 것보다 RAID 장치를 생성하는 더 좋은 방법이 있습니까?

편집: mount -t 명령을 실행한 후 dmesg를 확인합니다(이 결과는 실제로 ext3 이전에 시도한 ext4로 포맷하려고 할 때의 결과입니다).

root@VMHost:/home/lex# dmesg | tail
[611756.731067] EXT4-fs (md0): VFS: Can't find ext4 filesystem
[611756.731488] EXT4-fs (md0): VFS: Can't find ext4 filesystem
[611756.731790] EXT4-fs (md0): VFS: Can't find ext4 filesystem
[611756.732391] FAT-fs (md0): bogus logical sector size 65535
[611756.732421] FAT-fs (md0): Can't find a valid FAT filesystem
[611756.733932] XFS (md0): bad magic number
[611756.733974] XFS (md0): SB validate failed with error 22.
[611756.735611] FAT-fs (md0): bogus logical sector size 65535
[611756.735621] FAT-fs (md0): Can't find a valid FAT filesystem
[611773.636148] EXT4-fs (md0): VFS: Can't find ext4 filesystem

편집: 한 드라이브에 이미 GPT가 설치되어 있으므로 시스템이 GPT를 지원한다고 확신합니다.

root@VMHost:/u01# parted --list
Error: /dev/sda: unrecognised disk label

Error: /dev/sdb: unrecognised disk label

Model: ATA ST1000DM003-1CH1 (scsi)
Disk /dev/sdc: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  256MB   255MB   primary   ext2         boot
 2      257MB   1000GB  1000GB  extended
 5      257MB   1000GB  1000GB  logical                lvm


Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sdd: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  3001GB  3001GB  ntfs         Basic data partition  msftdata


Model: ATA ST3000DM001-1CH1 (scsi)
Disk /dev/sde: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  3001GB  3001GB               primary

답변1

parted가 디스크의 이전 정보와 혼동될 수 있으므로 먼저 각 드라이브의 처음 몇 섹터를 지울 수 있습니다.

dd if=/dev/zero of=/dev/sda bs=1k count=1

그 후에는 다음이 작동합니다.

parted /dev/sda
unit TB
mklabel gpt
mkpart primary 0 4
print
quit

나중에 네 번째 드라이브를 추가할 계획이라면 성능 저하 모드에서 raid-5를 생성하는 것을 고려해야 합니다.

mdadm --create --name=DATA00 --level=5 --auto=part --verbose /dev/md0 \
--raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 missing

그러면 나중에 드라이브를 추가해도 추가 작업이 많이 필요하지 않습니다.

mdadm --add /dev/sdd1

저하 모드에서 생성하지 않는 경우 RAID를 늘려야 합니다.

mdadm --grow --raid-devices=4 --backup-file=/root/grow_md0.bak /dev/md0

(이전 생성이 다운그레이드되지 않았다고 가정합니다 --raid-devices=3.)

내 RAID에 LVM이 있고 디스크 없이도 가능하지만 4개의 ​​디스크에서 5개의 디스크로 이동할 때 쉽게 확장할 수 있습니다.

저는 10년 넘게 mdadm을 사용해 왔으며 항상 파티션을 사용했습니다. 내 어레이는 실제로 3개의 3TB 드라이브와 2개의 4TB 드라이브로 구성됩니다(3TB 드라이브가 죽으면 교체하겠습니다). 3TB 드라이브는 정확히 하나의 파티션이고 4TB 드라이브는 3TB 호환 파티션이 있고 나머지는 현재 사용하지 않지만 4TB 드라이브는 부팅용으로 사용할 수 있도록 파티션이 나누어져 있습니다(시스템에 여분의 작은 드라이브가 있습니다). 부팅하려면 SATA 슬롯을 열어 RAID 수를 늘리기 위해 제거하고 싶을 수도 있습니다.

관련 정보