mdadm 사용 - RAID1 어레이는 다른 디스크를 미러링하지 않습니다.

mdadm 사용 - RAID1 어레이는 다른 디스크를 미러링하지 않습니다.

현재 Ubuntu 20.04에 nextcloud 서버를 구축 중입니다. 320GB 하드 디스크에서 OS를 실행하기 위한 디스크 하나가 있습니다. 그리고 데이터 디렉터리를 raid1 어레이에 두기를 원합니다. 왜냐하면 한 드라이브에 장애가 발생하더라도 데이터가 있는 다른 드라이브에 여전히 남아 있기 때문입니다. 그래서 /dev/md0의 raid1 어레이에 500GB의 하드 디스크 2개가 있습니다.

내가 실행할 때 :cat /proc/mdstat

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[0] sdc[1]
      488254464 blocks super 1.2 [2/2] [UU]
      bitmap: 0/4 pages [0KB], 65536KB chunk

unused devices: <none>

내가 실행하면 활성 상태라고 표시됩니다. sudo mdadm --detail /dev/md0

/dev/md0:
           Version : 1.2
     Creation Time : Fri Aug 14 16:50:18 2020
        Raid Level : raid1
        Array Size : 488254464 (465.64 GiB 499.97 GB)
     Used Dev Size : 488254464 (465.64 GiB 499.97 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sat Aug 15 14:50:13 2020
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : nextcloudserver:0  (local to host nextcloudserver)
              UUID : e525d3e8:2d738f44:59d495fa:2fdcce41
            Events : 9032

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc

상태가 깨끗하다고 ​​하네요. 재동기화하면 안되나요?

Sudo mdadm --detail /dev/md0

mdadm: No md superblock detected on /dev/md0.

내가 뭔가를 놓쳤나요?

따라서 /dev/md0은 /mnt/raid1에 마운트됩니다. /mnt/raid1에 텍스트 파일을 만들었습니다. PC를 종료하고 raid1 어레이에 있는 하나의 hdd를 연결하고 PC를 부팅할 때. /mnt/raid1에 만든 텍스트 파일을 찾을 수 없습니다.

그리고 cat /proc/mdstat를 실행하면 상태가 비활성이라고 표시됩니다.

그래서 누구든지 디스크를 미러링하는 데 도움을 줄 수 있습니까? 따라서 하나가 실패하더라도 nextcloud는 여전히 다른 디스크에 날짜를 유지합니다.

어떤 도움이라도 미리 감사드립니다.

이것은 내가 따랐던 튜토리얼입니다: (https://www.linuxbabe.com/linux-server/linux-software-raid-1-setup)

5단계까지는 저에게 효과적입니다. 하드 드라이브 중 하나를 플러그인한 후에는 더 이상 따라갈 수 없습니다.

답변1

강제로 할 수 있습니다. 명령은 다음과 같습니다.

mdadm --assemble --force /dev/md0 /dev/sdb /dev/sdc

그러나 사람들은 파티션을 생성한 다음 그 위에 md0 배열을 생성하므로 명령은 다음과 같습니다.

mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1

(이해는 못했지만 원시 디스크에 생성했을 수도 있습니다 ...)

그러면 파일이 제공됩니다.

요점은 강제로 디스크를 비활성 상태로 표시하면 분해된 것으로 표시된다는 것입니다. 일반적으로 어레이가 비활성화되면 mdadm --scan --detail무슨 일이 일어나고 있는지 파악하는 데 사용해야 합니다 . 드라이브에 오류가 발생한 경우 --fail오류를 렌더링하는 데 사용해야 합니다. 그런 다음 sgdisk작업 디스크의 gpt 테이블을 새 디스크로 복사하고 새 디스크 uuid를 변경하고 어레이를 다시 빌드합니다.

그러나 언제든지 단일 디스크가 어레이를 생성하도록 강제할 수 있습니다.

여기서 가장 큰 문제는 적절한 일일 백업 대신 raid1을 사용하는 것입니다. Raid는 중단 없는 작업을 위한 것이며 디스크에 장애가 발생하면 이를 표시하고 디스크 /proc/mdstat까지 작업을 계속하고 다시 동기화할 수 있으며 작업을 중지하지 않고도 자동으로 재구축됩니다.--fail

이것 좀 봐:

https://www.thomas-krenn.com/en/wiki/Mdadm_recovery_and_resync

답변2

출력에는 cat /proc/mdstat제대로 작동하는 RAID 1 어레이가 표시됩니다.

md0 : active raid1 sdb[0] sdc[1]
      488254464 blocks super 1.2 [2/2] [UU]
      bitmap: 0/4 pages [0KB], 65536KB chunk

여기서는 active두 개의 디스크가 있다는 의미입니다. md0에 쓰는 모든 내용은 두 디스크에 모두 미러링됩니다.

mdadm --detail출력 에서 cleanMD는 두 디스크가 모두 동기화되어 있다고 믿습니다. 와 /proc/mdstat는 명령줄에서 를 사용하지 않는 한 어레이를 생성한 후에 mdadm --detail표시되지만 resync두 드라이브를 동기화했습니다 .--assume-cleanmdadm create

이어지는 문제는 모두 부팅 시 RAID 어레이가 시작되지 않고 생성한 파일 시스템이 부팅 시 마운트되지 않기 때문에 발생한다고 생각합니다. 예를 들어 아래 출력에서는 어레이가 확실히 실행되고 있지 않습니다.

sudo mdadm --detail /dev/md0
mdadm: No md superblock detected on /dev/md0.

시작 후 어레이가 실행되지 않는 경우 다음과 같이 수동으로 어셈블할 수 있습니다.

mdadm --assemble /dev/md0 /dev/sdb /dev/sdc

그런 다음 파일 시스템을 마운트하십시오.

mount /dev/md0 /mnt/raid1

부팅 시 어레이가 자동으로 시작되도록 하려면 에서 구성해야 합니다 /etc/mdadm.conf. 가장 쉬운 방법은 mdadm --detail --scan어레이가 실행 중일 때 출력을 보내는 것입니다 .

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

부팅 시 파일 시스템을 마운트하려면 에 추가하세요 /etc/fstab. 거기에 있는 지침을 따르거나 다른 항목 중 하나처럼 보이게 만드세요.

다른 답변자가 말했듯이 RAID는 백업 솔루션이 아닙니다. RAID는 일부 하드웨어에 오류가 발생해도 계속 실행됩니다. 그러나 모든 하드웨어에 오류가 발생하거나 하드웨어나 소프트웨어가 데이터를 손상시키는 경우에는 도움이 되지 않습니다. 따라서 데이터가 중요한 경우 백업 기술을 조사하십시오.

답변3

다음과 같이 시도해 보세요:

  1. 우분투 실행
  2. 터미널을 실행하고 쓰기
  • Sudo 비밀번호 루트
  • mdadm –create /dev/md0 -- level=1 --raid-devices=2 /dev/sda1 누락
  • mdadm –create /dev/md1 -- level=1 --raid-devices=2 /dev/sdb1 누락
  1. 리눅스를 설치하세요. 초하우스 1레이드. 프로세스 도중에 오류가 발생하면 터미널에 다음을 작성하십시오.

Ls -l /dev/sd*

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

중요: DEV는 USB 키입니다.

df -h

마운트 --bind /dev /target/dev 마운트 --bind /sys /target/sys 마운트 --bind /proc /target/proc cp /etc/resolv.conf /target/etc/resolv.conf chroot /target/ apt mdadm grub-install /dev/sda를 종료하고 Linux를 재부팅하세요.

동일한 그룹(md0)에 디스크를 추가하려면 다음 명령을 사용하십시오.

sudo mdadm --add /dev/md0 /dev/sdc2

답변4

[해결됨]

그래서 드라이브 하나를 뽑았을 때. 다른 드라이브의 데이터를 볼 수 있기를 원했습니다. 하드 드라이브 하나를 연결하고 활성 상태라고 표시된 cat /proc/mdstat를 실행했습니다.

그럼 난 노력했어

sudo mdadm -S /dev/md0 그것을 멈추기 위해

그 다음에

sudo mdadm -A /dev/md0 활성화하려면

파일 시스템을 다시 마운트 sudo mount /dev/md0 /mnt/raid1

관련 정보