전체 디스크 또는 파티션으로 ZFS zpool을 만들어야합니까?


14

FreeBSD 컴퓨터에서 zpool을 만들고 있습니다. zpool을 만드는 동안 다음 두 가지 경우를 관찰합니다.

  1. 내가 가져 와서 raw disks만들면 zpoolzpool을 형성 할 수 있으며 완벽하게 작동합니다.

  2. 내가 사용하는 디스크를 포맷하는 경우 gpartfreebsd-zfs포맷을하고 다음 또한 완벽하게 작업은 zpool합니다.

내가 혼란스러워하는 것은 zpool을 만드는 데 어떤 접근법이 더 낫습니까?

답변:


8

가능하면 ZFS와 함께 전체 디스크를 사용하는 것이 좋습니다.
유스 케이스에서 파티션을 나눌 필요가 없습니다.


당신은 무엇을 뜻합니까 your use case. 파티셔닝이 유용한 경우를 알려줄 수 있습니까?
shivams

난해한 구성이 있거나 특정 SSD 솔루션을 사용하거나 ZIL 및 L2ARC 장치와 이상한 작업을 수행하지 않는 한 ZFS에서 분할은 유용하지 않습니다 . 그럼에도 불구하고 전체 장치 / 디스크를 사용하는 것이 가장 좋습니다.
ewwhite

그러나 전체 디스크를 사용하는 것이 더 좋은 이유는 무엇입니까?
leetNightshade

1
@leetNightshade 파일 시스템에 자체 파티션이 필요없는 ZFS를 사용할 때는 포인트 파티셔닝 디스크가 많지 않기 때문입니다. 또한 ZFS가 디스크를 "소유"할 때 디스크 쓰기 캐시를 사용하여 성능을 향상시킬 수 있습니다. solarisinternals.com/wiki/index.php/…
jlliagre

1
@Grogi 그것을 뒷받침 할만한 좋은 증거가 있습니까?
leetNightshade

5

물리적 디스크 당 ZFS 전용 슬라이스 / 파티션 하나를 사용하고 파티션을 남겨 두십시오. 이렇게하면 드라이브를 교체해야하고 교체 섹터가 10 개 더 작은 경우에도 여전히 드라이브를 교체 할 수 있습니다 ( http://www.freebsddiary.org/zfs-with-gpart.php ).

이것이 Solaris가 자동으로하는 것, FreeNAS 가하는 것 ( https://forums.freenas.org/index.php?threads/zfs-on-partitioned-disks.37079/ )이며 ZoL은 전체 디스크를 제공 할 때 수행합니다. 그것을 분할합니다 ...

파티션의 위치를 ​​실제 장치의 위치로 변환하는 오버 헤드는 무시할 수 있습니다. 따라서 파티션이 물리적 섹터 경계에 올바르게 정렬되면 전체 블록 장치와 다르게 동작 할 이유가 없습니다.

ZoL을 사용하면 내가 아는 유일한 차이점은 ZoL이 noop전체 디스크가 vdev에 제공되었을 때 디스크 스케줄러를 전환한다는 것 입니다. 수동 설정을 방해하는 것은 없습니다.

그럼에도 불구하고 일부는 ... 디스크 당 ZFS에 대해 더 많은 파티션을 만들지 말고 위의 조언을 무시하기로 결정한 경우 동일한 zpool에서 vdev를 만들지 마십시오. ZFS가 vdev 사이의 데이터를 슬라이스하고 순차적 iops가 악몽으로 바뀌므로 기본적으로 성능이 저하됩니다.


디스크 슬라이스가 공유 / 사용되는 seek-nightmare에 대한 zfs 동작을 좀 더 밝힐 수 있습니까?
satch_boogie

가장 간단한 시나리오-두 개의 vdev (각각 동일한 하드 디스크의 파티션)에서 풀을 빌드합니다. 이제 두 vdev에 걸쳐있는 데이터 청크를 충분히 크게 작성하려고합니다. 순차적으로 데이터를 쓰더라도 드라이브는 별도의 두 위치를 찾아 저장해야합니다.
Grogi

이 동작 같은 경우 Pool_A 사용하는 (sda1과, sdb1로, sdc3) 및 Pool_B 사용하는 (sda2가, sdb2로, sdc3)
satch_boogie

당신은 그들에게 동시에 쓸 필요가 없습니다. 만약 당신이 하나의 풀에 vdev를 가지고 있다면, 당신이 할 수있는 일이 없습니다 ...
Grogi

0

내 머리 속에이 질문은 늦게 지정할 수 있다면 그 디스크에 무엇이 있는지 의심 스럽기 때문에 발생합니다. 따라서 전체 드라이브에 풀을 만들면 (예, 필요한 경우 -f 옵션을 사용하여) zpool은 실제로 gpt 파티션 테이블을 만들고 다음과 같은 Solaris 파티션 :

(fdisk -l ...)
...
Disklabel type: gpt
Disk identifier: 4CBE587E-23AF-8E4B-A7F0-B44AD6083171

Device          Start        End    Sectors  Size Type
/dev/sdd1        2048 3907010559 3907008512  1,8T Solaris /usr & Apple ZFS
/dev/sdd9  3907010560 3907026943      16384    8M Solaris reserved 1

따라서 실제로 수동으로 파티션을 만들 필요가 없습니다 ...


나는 freebsd에서 솔라리스가 모범 사례를 고려하지 않습니다. 예를 들어 미러의 경우 디스크를 더 큰 디스크로 교체하고 하나의 명령으로 풀 크기를 즉시 확장 할 수 있습니다.
cstamas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.