LVM에서 XFS 소프트 raid10 스트라이프 정렬

LVM에서 XFS 소프트 raid10 스트라이프 정렬

3TB 디스크 묶음으로 백업 서버를 설정하고 있습니다. 나는 이것에 대해 많이 생각해 왔으며 다음 설정을 사용하고 싶습니다.

나는 raid10 오프셋으로 설정될 단일 파티션으로 디스크를 파티셔닝할 것입니다. 두 디스크를 모두 부팅하면 됩니다.

파티션이 꽤 많을 수 있으므로 LVM을 사용합니다.

각 논리 파티션에는 하나의 LUKS 장치가 있습니다.

각 LUKS 장치 내부에는 xfs 파일 시스템이 있습니다.

많이 검색했지만 raid10 및 xfs에 내재된 스트라이핑 문제를 가장 잘 해결하는 방법에 대한 좋은 설명을 찾을 수 없습니다. mdraid 장치에 직접 놓으면 mkfs.xfs가 줄무늬를 감지하고 자체적으로 정렬된다는 것을 알고 있습니다. 내가 이해한 바로는 LVM을 추가하면 이 문제가 사라집니다. 내가 읽은 한 기사에서는 RAID 장치에 상당히 큰(~1M) 스트라이프를 설정한 다음 LVM에서 일관된 블록을 설정하는 것을 제안했습니다. 그러나 그렇게 하면 추가 오프셋을 생성하는 LUKS 헤더와 같은 항목을 고려할 가능성이 무시되는 것 같습니다.

xfs 및 raid10 장치가 정렬되었는지 확인하는 효과적인 방법이 있습니까?

이 모든 것을 쌓아서 발생하는 복잡성으로 인해 raid10의 성능 향상이 감소합니까? 그러면 raid1에서 lvm을 사용하고 스트라이핑에 대해 걱정하도록 해야 합니까?

저도 미리 사과드립니다. 이번 포스팅 내내 블록과 스트라이프에 대한 생각이 간헐적으로 헷갈렸을 수도 있을 것 같습니다.

답변1

출장 중이었는데 이제서야 답변을 드릴 시간이 생겼습니다. 나중에 다른 사람들에게 도움이 될 수 있도록 내 질문에 답변하기로 결정했습니다.

우선 리눅스 md-raid의 raid10이 두 기기 모두에서 불가능하다는 댓글은 잘못된 내용입니다. Linux md-raid의 raid10은 표준 raid1+0이 아니라는 점은 분명합니다. Md-raid의 raid10은 기본적으로 raid1, 스트라이핑과 동일합니다. 몇 분 동안 raid1의 장점과 raid0의 장점에 대해 생각해 보면 이 두 가지가 상호 배타적이지 않고 쉽게 결합될 수 있다는 것이 분명합니다. 실제로 Wikipedia에서는 이러한 상황을 구체적으로 설명합니다.https://en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10

정말 레이드10인가요? 아니요. 여전히 미러링되고 스트라이프되어 있습니까? 예. 각 블록의 복사본이 여러 장치에 나타나 속도 이점이 있는 진정한 미러를 제공합니까? 아마도. 두 개의 드라이브에서 raid10을 사용한 검색 시간이 실제로 우세하여 성능 이점을 없앨 수 있다는 의견이 있습니다. 자세한 내용은 여기에서 확인할 수 있습니다.https://blog.a2o.si/2014/09/07/linux-software-raid-why-you-should-always-use-raid-10-instead-of-raid-1/드라이브를 추가하여 어레이를 확장할 수 있습니까? 예. 두 개의 디스크를 md-raid 10 어레이로 사용하는 데 문제가 있습니까? 모든 면에서 절대 그렇지는 않지만 예상했던 속도 증가를 보지 못할 수도 있습니다.

둘째, ZFS입니다. 오늘날 Linux의 ZFS는 암호화를 도입하는 풀을 수용합니다. 훌륭한! 그러나 ZFS는 모든 fs 수준 문제와 우려 사항에 대한 솔루션으로 간주되는 경우가 많습니다. 내 필요에 따라 피하고 싶은 수준의 설치 복잡성이 발생합니다. 또한 많은 메모리를 사용하는 경향이 있으며 특정 작업 부하에서는 속도가 매우 느려질 수 있습니다. 출처(이러한 테스트 중 일부는 방법론적인 문제가 있지만 더 광범위하고 일반적인 인상을 줍니다.): [여기에 링크를 게시하려고 했지만 아직 게시물이 10개가 없어서 게시할 수 없습니다. Google 검색을 통해 검색해 보세요. 기사가 생산됩니다]

실제 질문으로 넘어가겠습니다. xfs 스트립을 md-raid 스트립과 정렬할 수 있습니까? 대답은 '아니요'인 것 같습니다. 많은 인터넷 검색, 탐색 등을 거친 후에 파티션에 fs를 직접 빌드하면 xfs가 지능적으로 자체 정렬되는 것 같습니다. 실제로 ext4도 이 작업을 수행합니다. 그러나 lvm 및 luks가 계층화되면 xfs(및 ext4)는 더 이상 파티션 스트라이핑을 감지할 수 없습니다. xfs 파티션을 생성할 때 스트라이프 크기를 정의하면 스트라이프 너비를 지정할 수 있지만 스트라이프 정렬을 강제할 수는 없습니다. 어떤 사람들은 lvm, raid 및 기타 헤더를 ​​파티션 끝으로 이동한 다음 1MB(또는 스트라이프 크기로 나눌 수 있는 양)만큼 오프셋을 제안하지만 lvm이 볼륨에 더 많은 공간을 할당할 때 실제로 그렇게 한다는 보장은 없습니다. 그래서 레이드 줄무늬와 일직선이 됩니다.

명확히 말하면 이는 스트라이프 파일 시스템을 사용하는 md-raid 스트라이프 토폴로지에 영향을 미칩니다. 질문에 두 개의 드라이브를 지정했고 그 주위에 댓글이 달렸기 때문에 드라이브는 4개, 8개 또는 800개가 될 것입니다. 또한 raid0, raid5, raid6 또는 raid10 등 스트라이핑을 사용하는 모든 공격대 설정에도 나타납니다. 이는 궁극적으로 통합 파티셔닝, 장치 관리/풀링 등을 갖춘 zfs 또는 btrfs와 같은 시스템을 사용하는 것의 매력입니다.

그래서 내가 무엇을해야하니? md-raid, lvm 및 xfs의 안정성과 입증된 신뢰성은 매우 매력적입니다. md-raid raid10과 관련된 검색 시간은 매력적이지 않습니다. 나는 아마도 lvm에서 raid1 설정을 사용할 것입니다. 내가 선택한 OS centos는 이를 잘 지원합니다. 그런 다음 lvm 볼륨을 만들고 그 안에 luks 볼륨을 만듭니다. 여기서는 xfs 파일 시스템을 통해 빌드하겠습니다. 마지막 두 개는 약간 공중에 떠 있습니다. ext4의 새로운 암호화 기능은 매력적이며 luks+xfs 비트를 암호화된 ext4로 대체할 수도 있습니다.

관련 정보