4k 디스크로 zfs raidz2 만들기

4k 디스크로 zfs raidz2 만들기

4개의 디스크로 zfs raidz2를 만들고 싶습니다. 나는 이것이 공간의 최소 50%를 "낭비"한다는 것을 알고 있지만 디스크 오류에 대한 높은 내성을 목표로 합니다. raidz2에 5개의 디스크를 사용하는 것은 권장되지 않으며 6개의 디스크는 비용이 많이 들고 불필요합니다. 512바이트 에뮬레이션이 포함된 4k 섹터가 있는 3TB(또는 4TB) 디스크를 갖게 됩니다.

zfs 및 raidz2에 대한 많은 내용을 읽었으며 혼란스러워지기 시작했습니다.

디스크를 파티션해야 합니까? OS가 디스크가 비어 있지 않다는 것을 인식할 수 있도록 파티션을 생성하는 것이 좋은 생각이라는 것을 읽었습니다. 파티셔닝은 4k 섹터를 정렬하는 데에도 도움이 될 수 있습니다.

GPT 또는 MBR?내가 이해한 한 GPT는 3TB 디스크(및 그 이상)의 필수 요소입니다.

파티션을 어떻게 생성해야 합니까?이렇게 하면 올바르게 정렬된 파티션이 제공됩니까? sudo parted --align optimal /dev/sdX mklabel gpt mkpart primary 1 0% 3TB

보너스 질문: 생성된 파티션의 크기는 얼마나 됩니까 mkpart primary 1 0% 3TB? 그럴까요 3*10^12 - 4096 byte?

내 의도는 디스크의 전체 크기를 사용하지 않고 고장난 드라이브를 다른 모델로 교체할 수 있도록 3TB로 제한하는 것입니다.

ashift=12파티션을 정렬한 경우에도 필요합니까 ?쓸모가 없나요? 그것이 나에게 어떤 해를 끼치나요?

스트립 사이즈는 어떻습니까?수정해야 하나요? 4개의 디스크 대신 5개의 디스크를 사용하면 어떻게 되나요?

제가 고려해야 할 다른 사항이 있나요?

답변1

디스크가 잘못된 값을 보고하는 경우 수동으로 ashift를 설정해야 합니다. 이는 전환 기간(내부적으로 4K, 논리적으로 512) 내의 모든 디스크에 해당됩니다. 이전 디스크는 올바른 512를 보고하고 이후 디스크는 올바른 4k를 보고합니다. 물론 언제든지 지정할 수 있으며, 디스크 자체가 시스템에 보고/제안하는 내용을 덮어쓸 뿐입니다.

확실하지 않은 경우 풀을 만들고 사용 가능한 크기를 기록한 다음 제거하고 모든 디스크의 ashift를 12로 설정한 다음 다시 만들고 크기를 비교할 수도 있습니다. 동일하다면 디스크의 내용이 정직한 것입니다.

디스크 파티셔닝은 디스크가 올바르게 인식되지 않거나 가능한 크기보다 작은 디스크를 원하는 경우에만 필요합니다.

답변2

Linux의 ZFS는 자동으로 디스크를 분할합니다. 이전에는 이렇게 하지 않았습니다. 다음과 같이 보일 것입니다:

Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 2E55AB8A-8B22-494E-A971-B6D639BA14B1

Device          Start        End    Sectors   Size Type
/dev/sdb1        2048 1953507327 1953505280 931.5G Solaris /usr & Apple ZFS
/dev/sdb9  1953507328 1953523711      16384     8M Solaris reserved 1

또한 아마도 자동으로 올바른 ashift값을 사용할 것입니다. 예상대로 내 SSD에는 13개가 있고 위의 HDD에는 12개가 있습니다.

다음을 수행하세요.

zpool create tank raidz2 sda sdb sdc sdd

그런 다음 올바른 zdb것으로 ashift나타나는지 확인하십시오.

관련 정보