RAID 레벨 1의 청크, ext4 보폭 및 스트립 너비 크기?

RAID 레벨 1의 청크, ext4 보폭 및 스트립 너비 크기?

매뉴얼 페이지에는 mdadm"[청크]는 RAID0, RAID4, RAID5, RAID6 및 RAID10에만 의미가 있습니다."라고 나와 있습니다. 즉, raid1에는 적용되지 않습니다. 값을 전달하더라도 ignoring chunk sizeRAID 1이 생성된 후에는 다음과 같은 결과가 표시됩니다.

md1 : active raid1 ...
      4883639488 blocks super 1.2 ...
      bitmap: 0/37 pages [0KB], 65536KB chunk

어떤 이유로 5.6Tb 디스크 크기에 65Mb를 사용했습니다. 왜?

그런 다음 매뉴얼 페이지는 다음과 같이 mkfs.ext4말합니다.

stride=stride-size = 스트라이드 크기 파일 시스템 블록을 사용하여 RAID 배열용 파일 시스템을 구성합니다. 이는 다음 디스크로 이동하기 전에 디스크에서 읽거나 쓴 블록 수로, 청크 크기라고도 합니다. 이는 mke2fs 시간에 비트맵과 같은 파일 시스템 메타데이터를 단일 디스크에 배치하지 않도록 배치하는 데 주로 영향을 미치므로 성능이 저하될 수 있습니다. 블록 할당자에서도 사용할 수 있습니다.

Stripe_width=stripe-width = 스트라이프당 스트라이프 너비 파일 시스템 블록을 사용하여 RAID 배열용 파일 시스템을 구성합니다. 이는 일반적으로 stride-size * N입니다. 여기서 N은 RAID에 있는 데이터를 포함하는 디스크 수입니다(예: RAID 5의 경우 하나의 패리티 디스크가 있으므로 N은 어레이에 있는 디스크 수에서 1을 뺀 값입니다). 이를 통해 블록 할당자는 데이터가 기록될 때 가능한 경우 RAID 스트라이프에서 패리티의 읽기-수정-쓰기를 방지할 수 있습니다.

RAID1의 의미는 무엇입니까? 위의 청크에 대해 얻은 것과 동일한 값을 반복해야 합니까? RAID1이 "가능한 경우" 메모에서 벗어나므로 Stripe_width를 무시하시겠습니까? 아니면 그렇지 않습니까?

RAID1에 대해 무엇을 해야 할지 명확하지 않습니다. RAID0 및 RAID5에 대한 다른 튜토리얼에서 찾은 공식을 사용하여 RAID1 어레이에 대한 숫자를 얻었는데 이는 정확하지 않은 것 같습니다.mkfs.ext4 -b 4096 -E stride=16384,stripe-width=16384

답변1

나는 당신이 아무것도 스트라이핑하지 않기 때문에 이것이 괜찮을 것이라고 생각합니다. 다음 디스크가 얼마나 많은 데이터를 사용해야 하는지 알려면 해당 숫자만 필요합니다. 그러나 실제로는 데이터 디스크(및 미러)가 하나만 있으므로 컨트롤러가 디스크를 변경할 필요가 없으므로 문제가 없습니다. 컨트롤러는 어떤 디스크를 사용할지 큰 청크 후에만 스스로에게 묻기 때문에 높은 숫자는 제 생각에도 의미가 있습니다. 따라서 이는 오버헤드를 제한해야 합니다.

답변2

RAID1은 사실상 단일 디스크와 동일하므로 RAID 최적화가 없지만 애플리케이션의 I/O 프로필 및 기본 디스크의 기능(예: SSD 삭제 블록)을 기반으로 파일 시스템 메타데이터 위치를 최적화하는 방법은 여전히 ​​있습니다. 크기). 나는 얼마 전에 이 정확한 주제에 관한 기사를 썼는데, 그 이유를 설명했습니다.파일 시스템 정렬당신이 유용하다고 생각할 수 있는 문제입니다.

관련 정보