리눅스 소프트웨어 레이드를 raid5에서 raid6으로 변환


11

현재 RAID5 어레이에 3 개의 1.5TB 디스크가있는 파일 서버가 있습니다. 거의 꽉 차서 3 개의 추가 디스크 (각 1.5TB)가 추가되었습니다.

이제 6TB 공간이 충분하고 RAID6의 안전성이 향상되었으므로 RAID6으로 전환하고 싶습니다. 전체 백업이있는 동안 (즉, 단순히 새 어레이를 생성하고 백업을 복원 할 수 있음) 백업을 복원하지 않고도 전환하는 것이 좋습니다. 가능합니까? 그렇다면 어떻게합니까?

답변:


9

찾고있는 용어는 "RAID 수준 마이그레이션"입니다.

에 따르면 , 그것은 가능합니다. 나는 그것을하지 않았지만 절차는 새 드라이브를 기존 어레이에 핫 스페어로 추가 한 다음 mdadm을 사용하여 RAID 레벨과 RAID 장치 수를 업데이트 해야하는 것처럼 보입니다.

mdadm-2.6.9 (예 : centos 5.x)는이를 지원하지 않는 것으로 보이지만 mdadm-3.1.4 (예 : ubuntu 11.10)는 다음을 수행합니다.

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

EG, 새로운 핫 스페어 장치 인 / dev / sdg를 먼저 RAID5 어레이에 추가하십시오.

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

그런 다음 RAID6 어레이로 변환하여 깨끗한 상태로 재구성하십시오. --raid-devices 4는 새 어레이에 총 몇 개의 드라이브가 있는지 알려줍니다.

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

나는 이것이 얼마나 빠를 지 모른다. 하드웨어 RAID 컨트롤러에서 레이드 레벨 마이그레이션을 수행 한 경험에 따르면 처음부터 새 어레이를 생성하고 백업을 복구하는 것이 더 빠릅니다.


3
RAID 5를 RAID 6으로 마이그레이션하면 디스크에서 데이터를 다시 스트라이핑하고 추가 패리티 디스크의 두 번째 패리티 값을 계산하는 두 가지 느린 작업이 있습니다. 삭제 / 복원은 크기 조정과 동일한 시간이 소요될 수 있습니다.
Andrew

1
또한 특정 커널 버전이 필요합니다. 어려운 길을 찾았습니다.
Sirex

젠투에 있기 때문에 커널과 mdadm 모두 최신 버전이므로 문제가되지 않습니다.
ThiefMaster

1
당신이 말하는 링크는 저에 의해 작성되었습니다. 참고 : 실제로 실제로 수행하는 방법에 대한 문서는 읽지 않았으며 30 개의 드라이브 (그와 비슷한 것)가있는 가상 머신을 만들고 방금 시작했습니다. 따라서 소금 알 한 덩어리로 모든 게시물을 가져 가십시오. 단지 뇌 덤프 일뿐입니다.
Martin M.

1
@ServerHorror : 주목했습니다. mdadm 매뉴얼 페이지를 포함하여 더 넓은 인터넷은 레이드 레벨 마이그레이션이 가능하다고 주장합니다. :)
Daniel Lawson

7

필수 경고 : 실패 계획. 백업을 준비하고 다운 타임을 고려하십시오.

또한 VM 또는 비슷한 것으로 테스트하십시오. 이것은 내 노트에서 왔으며 오랫동안이 작업을 수행하지 않았습니다. 불완전한 것일 수 있습니다.

  1. add디스크를 어레이에 배치 해야합니다 .

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    세 개의 디스크 각각에 대해이 작업을 수행하고 그에 따라 장치 이름을 바꾸십시오.

  2. 배열을 성장시킵니다 :

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    

3

--backup-file옵션을 사용 하면 정전시에도 재부팅 후에도 장치를 계속 늘리고 데이터 손실을 방지 할 수 있습니다.

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

백업 파일은 확장하려는 어레이의 일부가 아닌 파일 시스템에 저장해야합니다.

--backup-file=--grow사용 가능한 예비 장치가없는 경우 RAID5 또는 RAID6에서 RAID 장치의 수를 늘리거나 RAID 레벨 또는 레이아웃을 축소, 변경하는 데 사용될 때 필요 합니다. RAID- 장치 변경 사항에 대해서는 아래의 GROW MODE 섹션을 참조하십시오. 파일은 재구성되는 RAID 어레이가 아닌 별도의 장치에 저장해야합니다.

--continue--freeze-reshape조립 옵션을 보완합니다 . --grow작동이 중단 될 때 필요 하며 --freeze-reshape어레이 조립 중 사용 으로 인해 자동으로 다시 시작되지 않습니다 . 이 옵션은 보류중인 모양 변경을 계속하기 위해 -G, ( --grow) 명령 및 장치 와 함께 사용됩니다 . 재구성 계속에 필요한 모든 매개 변수는 배열 메타 데이터에서 읽습니다. 초기 --grow명령에 --backup-file=옵션을 설정 해야 한다면 계속 옵션에는 정확히 동일한 백업 파일이 있어야합니다.

--continue옵션 과 함께 전달 된 다른 매개 변수는 무시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.