근거리 및 원거리 레이아웃 옵션을 사용하여 mdadm RAID10을 생성할 수 있습니까?

근거리 및 원거리 레이아웃 옵션을 사용하여 mdadm RAID10을 생성할 수 있습니까?

근거리 및 원거리 레이아웃 옵션을 사용하여 mdadm RAID10을 만드는 방법은 무엇입니까?

Wikipedia는 이것이 가능하다는 것을 보여줍니다.

"Near" 및 "Far" 옵션을 함께 사용할 수 있습니다...

mdadm의 매뉴얼 페이지에는 이에 대한 언급이 없습니다.

나만 찾을 수 있어요이 게시물누군가의 mdadm --detail은 근거리 및 원거리 레이아웃 옵션을 사용하는 RAID10을 보여줍니다. 그리고다른 게시물누군가 "near=2, Far=1"이라고 말해야 하는지 물었습니다. 불행하게도 둘 다 배열이 어떻게 생성되는지 보여주지 않습니다.

배열을 만들 때 구문을 사용하려고 합니다. 하지만 이 오류는 매번 나타납니다.

mdadm: layout for raid10 must be 'nNN', 'oNN', or 'fNN' where NN is a number, not n2f2(or whatever syntax I tried)

아무런 문제 없이 Near 또는 Far를 사용하여 배열을 만들 수 있습니다.

sudo mdadm --verbose --create /dev/md127 --level=10 --layout="What should go here to create an array using near=2 & far=2 layouts?" --chunks=512 --raid-devices=5 /dev/sd[b-f]1

내가 무엇을 놓치고 있나요? 위키피디아는 쓸모가 없나요? 더 이상 가능하지 않습니까?

Linux Mint 17.3 Cinnamon 64비트, 3.0TB Seagate NAS HDD(RAID 전용) 5개,

답변1

mdadm-3.4 소스 코드로 판단하면 다른 입력은 허용되지 않습니다. 출력 의 경우 near=2,far=1이것이 기본값이며 아무것도 변경되지 않았지만 =1값은 더 이상 인쇄되지 않습니다. 이는 기본적으로 "추가 복사본 없음"을 의미합니다(계산은 1부터 시작함). 둘 다 near같으면 far인쇄 1합니다 NO REDUNDANCY. 그러나 실제로 그러한 객체를 생성할 수는 없으며 커널은 단순히 오류 메시지와 함께 객체를 거부합니다.

제가 이 작업을 수행할 수 있었던 유일한 방법은 hexedit메타데이터를 직접 가져오는 것입니다. 이는 복제본이 있는 4x 128MiB 루프 장치를 갖춘 RAID-10입니다 near=2, far=2.

# mdadm --detail /dev/md42
/dev/md42:
        Version : 1.2
  Creation Time : Sun May  1 01:47:59 2016
     Raid Level : raid10
     Array Size : 129024 (126.00 MiB 132.12 MB)
  Used Dev Size : 129024 (126.00 MiB 132.12 MB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sun May  1 01:48:00 2016
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2, far=2
     Chunk Size : 512K

           Name : EIS:42  (local to host EIS)
           UUID : 7fa3ba1e:dd0f2db9:aaf3977f:0e6dc2cb
         Events : 17

    Number   Major   Minor   RaidDevice State
       0       7        0        0      active sync   /dev/loop0
       1       7        1        1      active sync   /dev/loop1
       2       7        2        2      active sync   /dev/loop2
       3       7        3        3      active sync   /dev/loop3

실제로도 효과가 있는 것 같습니다. (경고, 파괴적인 테스트 방법)

# yes > /dev/md42
# echo Hello World. > /dev/md42
# grep 'Hello World' -a -b --only-matching /dev/loop[0-3]
/dev/loop0:1048576:Hello World
/dev/loop1:1048576:Hello World
/dev/loop2:67108864:Hello World
/dev/loop3:67108864:Hello World

나는 이 문자열을 RAID의 시작 부분에 씁니다. 두 장치에서는 가까운 복사본으로 간주되는 1MiB 위치(정확히 메타데이터 오프셋)에 있고 다른 하나는 64MiB 위치(디스크 용량의 절반)에 있습니다. 원격 복사인 것 같은데...

그럼에도 불구하고 RAID 메타데이터를 편집하지 않는 것이 좋습니다. 이렇게 하면 아무도 테스트하지 않을 것입니다. 아니면 우리 모두가 뭔가 분명한 것을 놓치고 있는 것일 수도 있습니다.

이러한 유형의 RAID에서는 디스크를 교체하는 것이 가능해 보입니다. 그러나 성장은 그렇지 않습니다.

# mdadm --grow /dev/md42 --raid-devices=8 --add /dev/loop[4567]
mdadm: Cannot reshape RAID10 in far-mode

단점이 너무 많은 것 같아요. 특별한 이유가 없는 한 표준 RAID 레이아웃을 고수하십시오.

관련 정보