새로운 RAID 어레이가 자동으로 조립되지 않아 부팅 문제가 발생함

새로운 RAID 어레이가 자동으로 조립되지 않아 부팅 문제가 발생함

방금 이거 물어봤는데질문새 RAID1 어레이를 설치한 후 부팅할 수 없습니다. 터미널에 접속할 수 있었지만 문제를 해결하고 나니 내 문제가 fstab 부팅 문제가 아니라 mdadm 자동 어셈블리 문제라는 것을 깨달았습니다.

내 시스템에는 3개의 RAID1 어레이가 에 /dev/md1설치되어 있고 /으로 /dev/md0설치되어 있으며 swap이러한 어레이는 현재 문제 없이 실행되고 있습니다. 나는 이 배열을 만들지 않았습니다. 새로운 RAID1 어레이를 생성 /dev/md2하고 다음을 사용하여 ext4로 포맷했습니다.이 가이드, 그 과정에서 나는 새로운 파티션(유일한 파티션)을 만들었습니다 md2p1(fdisk가 명시적으로 이름을 요청한 적은 없지만 가이드에서는 비슷한 이름의 파티션도 만들었습니다).

이 새 어레이를 생성한 후 다음을 사용하여 수동으로 설치할 수 있습니다.

mount -t ext4 /dev/md2p1 /srv/Waveforms

이것은 훌륭하게 작동합니다. 디렉터리에 액세스하여 약 700GB의 데이터를 디렉터리에 추가할 수 있었습니다. 이 일을 하고 나면, 나는 얻는다.

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdc1[0] sdd1[1]
      1953423552 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      961136576 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      15624128 blocks [2/2] [UU]

unused devices: <none>

, 컴퓨터가 배열을 명확하게 인식합니다. 그런 다음 나는

sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf 

이제 파일에 다음이 포함됩니다.

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=afa7ccee:df4dfa79:a84dbc05:35401226
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=a0c526cc:6de93504:c8b94301:85474c49
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=1ac720e1:192b2c38:f6e0357b:f3e0074f

# This file was auto-generated on Thu, 10 Mar 2011 00:57:55 -0700
# by mkconf $Id$
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=0.90 UUID=afa7ccee:df4dfa79:a84dbc05:35401226
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=0.90 UUID=a0c526cc:6de93504:c8b94301:85474c49
ARRAY /dev/md2 level=raid1 num-devices=2 metadata=0.90 UUID=1ac720e1:192b2c38:f6e0357b:f3e0074f

여기서 주목해야 할 두 가지 사항이 있습니다. 원본 파일에는 이 파일이 있지만 메타데이터가 인식되지 않는 작은 문제를 해결하기 metadata=00.90위해 이를 수정했습니다 metadata=0.90(빠른 Google 검색을 통해 이에 대해 설명할 수 있음).

두 번째로 주목해야 할 점은 auto가 yes로 설정되어 있다는 것입니다. 이는 시스템이 시작 시 자동으로 모든 어레이를 어셈블해야 함을 의미합니다. 부팅할 수 있다는 사실은 /dev/md1이 어셈블되었음을 의미하기 때문에 이러한 경우가 발생합니다.

어쨌든 이제 문제가 발생했습니다. 재부팅 후 컴퓨터가 멈추고 다음과 같은 메시지가 표시됩니다.

fsck from util-linux-ng 2.17.2
/dev/md1: clean, 3680768/60071936 files, 208210802/240284144 blocks

내 fstab은 현재 읽고 있습니다

# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/md1 during installation
UUID=1d3cb392-f522-485b-8516-a7791fc23c4d /               ext4    errors=remount-ro 0       1
# swap was on /dev/md0 during installation
UUID=6eb8e6f2-3166-4f77-883c-26268d636b0b none            swap    sw              0       0
/dev/md2p1 /srv/Waveforms            ext4    defaults,noauto              0       0

그리고

blkid
/dev/sda1: UUID="afa7ccee-df4d-fa79-a84d-bc0535401226" TYPE="linux_raid_member" 
/dev/sda2: UUID="a0c526cc-6de9-3504-c8b9-430185474c49" TYPE="linux_raid_member" 
/dev/sdb1: UUID="afa7ccee-df4d-fa79-a84d-bc0535401226" TYPE="linux_raid_member" 
/dev/sdb2: UUID="a0c526cc-6de9-3504-c8b9-430185474c49" TYPE="linux_raid_member" 
/dev/sdc1: UUID="1ac720e1-192b-2c38-f6e0-357bf3e0074f" TYPE="linux_raid_member" 
/dev/sdd1: UUID="1ac720e1-192b-2c38-f6e0-357bf3e0074f" TYPE="linux_raid_member" 
/dev/md0: UUID="6eb8e6f2-3166-4f77-883c-26268d636b0b" TYPE="swap" 
/dev/md1: UUID="1d3cb392-f522-485b-8516-a7791fc23c4d" TYPE="ext4" 
/dev/md2p1: UUID="867ee91e-527e-435b-b6bc-2f6d89d2d8c6" TYPE="ext4" 

UUID=867ee91e-527e-435b-b6bc-2f6d89d2d8c6이전에 바꾸기를 사용한 적이 있지만 /dev/md2p1아무런 결과도 얻지 못했습니다. 또한 이 md2p1을 기본 옵션인 defaults+noatime,errors=remount-ro로 사용해 보았지만 아무것도 작동하지 않습니다.

새로운 md2p1 라인을 제외하도록 fstab을 수정하여 부팅할 수 있었습니다. 이 구성으로 시작한 후에는 다음과 같은 결과를 얻습니다.

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sda1[0] sdb1[1]
      15624128 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      961136576 blocks [2/2] [UU]

따라서 시스템은 아직 md2를 조립하지 않았습니다. 그럼 난 달릴 수 있어

sudo mdadm --assemble --scan
[sudo] password for zach: 
mdadm: /dev/md2 has been started with 2 drives.

어디

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdc1[0] sdd1[1]
      1953423552 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      15624128 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      961136576 blocks [2/2] [UU]

이제 위와 같이 수동으로 설치할 수 있습니다. 그래서 문제는 RAID1 어레이가 부팅 시 조립되지 않아서 fstab에서 인식되지 않아서 복구 모드 외에는 전혀 부팅이 안되는 것 같습니다.

찾았어요이것하지만 대답은 auto를 yes로 설정한 다음 시작 시 자동으로 배열을 어셈블하는 것 같기 때문에 나에게 적합하지 않다고 생각합니다. 내 구성은 이미 이 작업을 수행하도록 설정되어 있으므로 당황스럽습니다.

해당 게시물에 적용 가능한 답변이 있지만 그의 솔루션이 무엇인지 이해하지 못합니다. 다음은 Deplicator의 게시물입니다.

재부팅 후에는 더 이상 /dev/md0을 볼 수 없습니다. mdadm --detail --scan을 다시 실행합니다(결과를 파일에 저장하지 않고).

ARRAY /dev/md/ubuntu:0 metadata=1.2 name=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e

/dev/md/ubuntu:0을 수동으로 설치하세요. 마지막으로 fstab 파일에 넣은 내용입니다.

fstab에는 무엇이 들어있나요? 문제는 부팅 시 md2를 조립하지 않는다는 점인 것 같아서 fstab이 md2p1 파티션을 마운트하려고 할 때마다 중단됩니다. 실제로 이것은 md2가 분할되고 다른 파티션은 분할되지 않는 것과 관련이 있을 수 있지만 왜 이런 일이 발생하는지 이해할 수 없습니다.

편집 : 혹시라도

uname -a
Linux ccldas2 2.6.32-74-server #142-Ubuntu SMP Tue Apr 28 10:12:19 UTC 2015 x86_64 GNU/Linux

답변1

나는 두 가지 질문을 생각한다

  1. 에 중복된 배열 정의가 있습니다 mdadm.conf. 각 배열이 가장 최근 스캔에서만 선언되도록 ARRAY다음 세 줄의 코드 블록을 바꾸거나 주석 처리하세요 .# definitions of existing MD arrays

  2. 부팅 시 RAID 어레이가 구축되지 않는 일반적인 경우는 부팅 시 업데이트되지 않았기 때문입니다. initramfs또는 시작 시 실행되도록 설정되어 있지 않습니다. 매우 빠르게 탐색당신이 인용한 가이드이 단계에 대한 언급은 없는 것 같지만 제가 틀렸을 수도 있습니다. Debian 시스템에서 명령은 다음과 같습니다.

     dpkg-reconfigure mdadm    # Choose "all" disks to start at boot
     update-initramfs -u       # Updates the existing initramfs
    

답변2

mdadm.conf다음과 같이 UUID만 있으면 됩니다 .

ARRAY /dev/md0 UUID=d8b8b4e5:e47b2e45:2093cd36:f654020d

다른 모든 조건에서는 RAID 조립이 방해될 수 있습니다.

(더 이상 사용되지 않는) 자동 조립의 경우 다음이 필요합니다.

  • 파티션 유형fd
  • 메타데이터0.90
  • initramfs가 전혀 없거나 initramfs가 있는지 확인하십시오.raidautorun /dev/disk

자동 조립이 실패하는 경우 dmesg무엇이 잘못되었는지에 대한 일부 표시가 유지되어야 합니다.

일반적으로 가능하다면(그리고 어쨌든 initramfs가 관련되어 있는 경우) 최신 기본 메타데이터 형식을 고수하고 1.2.mdadmmdadm.conf

관련 정보