다시 시작하면 Linux RAID가 사라집니다.

다시 시작하면 Linux RAID가 사라집니다.

아시다시피 제 Linux 문제 해결 기술은 그다지 인상적이지 않습니다. 반면에 나는 지시를 꽤 잘 따를 수 있다. Linux raid를 사용하는 Linux 서버가 있습니다. 잘 작동했고 약 반년 동안 아무런 문제가 없었지만 전원이 끊겼고 그 이후로 같은 문제가 발생했습니다. 레이드를 재구축한 후에도 모든 파일이 그대로 남아 있어서 다행입니다. 서버를 다시 시작했더니 레이드 장치 md0이 사라졌습니다.

pi@pinas:~ $ cat /proc/mdstat 
Personalities : 
unused devices: <none>

pi@pinas:~ $ ls /dev/md*
pi@pinas:~ $ 

내가 하나 찾았어문제는 여기에 있다이것은 다른 사람들에게 도움이 되는 것 같지만, 시도해 보았지만 도움이 되지 않았습니다. 다른 사이트도 몇 군데 확인해 봤는데 다들 비슷한 말을 하더라구요. 나는 webmin을 사용하여 raid를 생성하고 mdadm.conf가 "looks" OK입니다. 내가 인터넷에서 올바른 것을 검색하고 있는지, 아니면 올바른 로그 파일을 찾고 있는지조차 알 수 없습니다. 누구든지 어떤 아이디어가 있습니까?

미리 감사드립니다.

***편집 1

root@pinas:/home/pi# service mdadm start
Failed to start mdadm.service: Unit mdadm.service is masked.

mdadm 서비스가 실행되고 있는지 알고 싶습니다. 프로세스가 현재 시스템에서 활성화되어 있지 않으며 부팅 시 시작되도록 구성되었는지 확인하는 방법, 시작하는 방법 또는 부팅 시 시작되도록 구성하는 방법을 모르겠습니다.

***편집 2

systemctl list-unit-files
[email protected]           static  
[email protected]             static  
mdadm-waitidle.service                 masked  
mdadm.service                          masked  
[email protected]                         static  
mdmonitor.service                      static  

나는 이것을 찾았다. 이것이 나쁜 것인지는 모르겠지만 비린내가 나는 것 같습니다. 이렇게 되어야 할까요? 그들 중 누구도 활성화하라고 말하지 않았는데, 나는 그렇게 해야 한다고 생각합니다. 어떤 아이디어가 있나요?

***편집 3

systemctl list-unit-files
[email protected]           static  
[email protected]             static  
mdadm-waitidle.service                 masked  
mdadm.service                          masked  
[email protected]                         static  
mdmonitor.service                      static  

dpkg-reconfigure mdadm
update-initramfs: deferring update (trigger activated)
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Processing triggers for initramfs-tools (0.120+deb8u3) ...

@telcoM이 제안한 명령을 실행했는데 이것이 출력되었습니다. 또한 이 명령을 다시 설치해 보았지만 출력은 여전히 ​​동일합니다.

비슷한 이름의 다른 페달을 온라인에서 찾아보았지만 지금까지 도움이 될 만한 것을 찾지 못했습니다. 문제는 부팅 시 서비스가 시작되지 않는 것과 관련된 것 같은데, 문제를 해결하는 방법을 알기에는 Linux 서비스에 대한 경험이 부족합니다. @roaima는 initramfs에 문제가 있다고 생각하지만 확인하거나 수정하는 방법을 모르겠습니다. 누구든지 어떤 아이디어가 있습니까?

***편집 4

CREATE owner=root group=disk mode=0660 auto=yes
HOMEHOST <system>
MAILADDR root
ARRAY /dev/md/0  metadata=1.2 UUID=d3434dfc:2fb4792e:0b64f806:67e35ee3 name=raspberrypi:0
ARRAY /dev/md/0  metadata=1.2 UUID=40fb937f:870c7c13:46774666:87445bc5 name=pinas:0

이것은 내 mdadm.conf 파일의 출력입니다. 나열된 첫 번째 배열의 이름이 정확하지 않기 때문에 이것은 재미있습니다.

답변1

이 레시피는 같은 문제에 직면한 후에도 저에게 효과적이었습니다. 답변을 찾으려고 웹 전체를 검색한 결과 마침내 이것을 찾았지만 여전히 도움이 되지 않습니다.

제 생각에는 문제는 다면적입니다.

  1. mdadm은 다음 재부팅 시 /dev/md0장치 파일을 재할당 합니다. /dev/md127따라서 fstab의 장치 파일을 사용할 수는 없습니다. 결국 생성된 파일 시스템의 UUID를 사용하게 되었습니다.

  2. 웹에 있는 거의 모든 RAID 드라이브 설정 튜토리얼에서는 아래와 같이 드라이버 장치 파일을 사용하여 RAID 장치를 생성하는 방법을 보여줍니다.

    mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
    

    대신 다음과 같은 파티션 장치 파일을 사용했습니다.

    mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
    

    gdisk두 번째 형식에서는 각 디스크에 파티션을 사용하거나 적절하게 생성해야 합니다 fdisk. 나는 gdisk그것을 type fd00, raid 파티션으로 사용하고 지정합니다.

  3. 업데이트의 필요성에 대해 많은 논의가 있었습니다 /etc/mdadm/mdadm.conf. 이것은 잘못된 것입니다. 일부러 해당 파일을 삭제했습니다. 불필요한. (아래 참조)

그게 전부입니다. 전체 레시피는 아래에...


fd00Linux RAID 유형의 파티션 하나를 사용하여 각 드라이브를 분할합니다.

root@teamelchan:~# gdisk /dev/sda
Command (? for help): n
Partition number (1-128, default 1):
First sector (2048-3907029134, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): fd00
Changed type of partition to 'Linux RAID'

Command (? for help): p
Disk /dev/sda: 3907029168 sectors, 1.8 TiB
Model: ST2000DM001-1ER1
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): F81E265F-2D02-864D-AF62-CEA1471CFF39
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 2048, last usable sector is 3907029134
Partitions will be aligned on 2048-sector boundaries
Total free space is 0 sectors (0 bytes)

Number Start (sector) End (sector) Size Code Name
1
2048 3907029134 1.8 TiB FD00 Linux RAID

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.

이제 /dev에 디스크 장치와 파티션 장치가 표시됩니다.

root@teamelchan:~# ls /dev/sd[a-d]*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1 /dev/sdd /dev/sdd1

이제 디스크 장치 대신 파티션 장치 파일을 사용하여 mdadm을 통해 원하는 RAID를 생성하세요.

root@teamelchan:~# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: chunk size defaults to 512K
mdadm: /dev/sda1 appears to contain an ext2fs file system
size=471724032K mtime=Sun Nov 18 19:42:02 2018
mdadm: /dev/sda1 appears to be part of a raid array:
level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
mdadm: /dev/sdd1 appears to contain an ext2fs file system
size=2930265540K mtime=Sun Nov 18 23:58:02 2018
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

이제 /dev/disk새 RAID와 /dev/md0연결된 UUID 가 있는지 확인하세요. 안 된다.

root@teamelchan:~# ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 Nov 22 04:24 4777-FB10 -> ../../sdf1
lrwxrwxrwx 1 root root 10 Nov 22 04:24 D616BDCE16BDAFBB -> ../../sde1
lrwxrwxrwx 1 root root 10 Nov 22 04:24 e79571b6-eb75-11e8-acb0-e0d55e117fa5 -> ../../sdf2

새 파일 시스템을 생성한 후 UUID를 얻어야 합니다./dev/md0

root@teamelchan:~# mkfs.ext4 -F /dev/md0
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 2685945088 4k blocks and 335745024 inodes
Filesystem UUID: 7bd945b4-ded9-4ef0-a075-be4c7ea246fb
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, 1934917632,
2560000000

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

보세요, 거기 있어요.

root@teamelchan:~# ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 Nov 22 04:24 4777-FB10 -> ../../sdf1
lrwxrwxrwx 1 root root 9 Nov 22 04:43 7bd945b4-ded9-4ef0-a075-be4c7ea246fb -> ../../md0
lrwxrwxrwx 1 root root 10 Nov 22 04:24 D616BDCE16BDAFBB -> ../../sde1
lrwxrwxrwx 1 root root 10 Nov 22 04:24 e79571b6-eb75-11e8-acb0-e0d55e117fa5 -> ../../sdf2

/etc/fstab을 수정하고 새 RAID 마운트를 추가할 때 장치 파일 대신 UUID를 사용해야 합니다.

root@teamelchan:~# cat /etc/fstab
UUID=e79571b6-eb75-11e8-acb0-e0d55e117fa5 / ext4 defaults 0 0
UUID=4777-FB10 /boot/efi vfat defaults 0 0
/swap.img none
swap sw 0 0
UUID=7bd945b4-ded9-4ef0-a075-be4c7ea246fb /md0/tweets ext4 auto 0 0

여기에서는 /etc/mdadm/mdadm.conf 필요하지 않습니다.

root@teamelchan:~# ls -l /etc/mdadm
total 0

재시작

root@teamelchan:~# reboot
Connection to 192.168.0.131 closed by remote host.
Connection to 192.168.0.131 closed.

RAID가 마운트되었지만 mdadm이 장치 파일 이름을 md0다음에서 변경했습니다.md127

다행히 실제 장치 파일 대신 UUID를 사용했습니다.

root@teamelchan:~# df /md0/tweets
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/md127 10658016696 73660 10120737636 1% /md0/tweets

/dev에서 md0이 사라졌는지 확인하세요.

root@teamelchan:~# ls /dev/md*
/dev/md127

/dev/md:

그게 다야. 이제 600MB/초 이상으로 실행되는 10TB RAID0을 즐기고 있습니다.

root@teamelchan:~# hdparm -tT /dev/md127

/dev/md127:
Timing cached reads: 26176 MB in 1.99 seconds = 13137.47 MB/sec
Timing buffered disk reads: 1878 MB in 3.00 seconds = 625.13 MB/sec

답변2

/proc/mdstat아직 RAID 기능(예: RAID1, RAID5 등)이 로드되지 않았으므로 RAID 세트를 활성화하려고 시도하지 않는다고 표시합니다 .

Failed to start mdadm.service: Unit mdadm.service is masked.

이 메시지는 mdadm.service가능한 가장 강력한 방법으로 서비스가 비활성화되었음을 나타냅니다. 즉, 서비스를 시작하려는 명시적인 시도가 이루어지지 않으며 다른 콘텐츠가 서비스에 의존하더라도 서비스가 시작되지 않습니다.

에서와 같이로아이마 관련 질문, 루트로 다음 명령을 실행해 보세요.

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

첫 번째는 mdadm패키지를 재구성하고 모든 RAID 세트를 감지하고 부팅 시 자동으로 활성화되는 RAID 세트를 선택할 수 있도록 합니다. 일반적으로 "모두"가 좋은 대답입니다. mdadm.service내가 올바르게 이해했다면 차단되는 것도 고려해야 합니다.

완료되면 두 번째 명령이 initramfs를 업데이트하여 업데이트된 구성 파일이 initramfs에서도 업데이트되고, 부팅 초기 단계에서 실행되는 스크립트는 RAID 세트가 존재하고 이를 활성화해야 한다는 정보를 얻게 됩니다.

답변3

적어도 문제의 일부는 /dev/md/0귀하의 문제 입니다 mdadm conf. 먼저 문제를 해결해야 합니다.

그런 다음 배열을 실행하고 마지막으로 다음 URL의 지침을 따를 수 있습니다.새로운 RAID 어레이가 자동으로 조립되지 않아 부팅 문제가 발생함-

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

답변4

서비스가 차단되어 시작되지 않습니다.여기이것이 제가 그것을 밝히는 방법을 알아낸 방법입니다. 다음 문제는 mdadm-raid 서비스가 raid를 시작하지 않는다는 것입니다.이것이것이 부팅 시 공격대를 시작하는 방법입니다. 관련 게시물을 찾으려면 '2017년 7월 31일 월요일 오후 7시 49분'까지 아래로 스크롤하세요. 이것이 최선의 해결책은 아닐 수도 있지만 10번 재부팅한 후에도 매번 RAID가 계속 시작됩니다. 나는 이 질문에 대답하려는 사람들의 노력에 감사드립니다. 이제 제공되는 다른 서비스를 정리하면 됩니다. 그러나 그것은 또 다른 질문입니다.

관련 정보