"zfs create -V" 명령에 사용 가능한 모든 공간을 쉽게 제공하는 방법은 무엇입니까?

"zfs create -V" 명령에 사용 가능한 모든 공간을 쉽게 제공하는 방법은 무엇입니까?

zpool을 통해 ext4 fs를 생성해야 합니다. 아래와 같이 사용 가능한 공간을 모두(또는 거의 모두) 사용하고 싶었습니다.

# zpool list
NAME      SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
nat2012  1,81T   124K  1,81T        -         -     0%     0%  1.00x    ONLINE  -
# zfs list
NAME      USED  AVAIL     REFER  MOUNTPOINT
nat2012   105K  1,76T       24K  none
# zfs create -V 1.75T nat2012/backup
bad volume size '1.75T': invalid numeric suffix '.75T'
# zfs get avail nat2012
NAME     PROPERTY   VALUE  SOURCE
nat2012  available  1,76T  -
# zfs get -H avail nat2012
nat2012 available   1,76T   -

내 문제는 "1.75T"가 볼륨 크기로 허용되지 않는다는 것입니다. (단, 사이즈로 표시됩니다.) 0.01T 즉 10G로 반올림한 값입니다. 다음으로 시도한 것은 사용 가능한 크기를 바이트, Mbytes, GBytes 또는 블록 단위로 가져오거나 "zfs create -V"와 함께 사용할 수 있는 정확한 크기를 알려주는 거의 모든 항목을 가져오는 것입니다. 나는 이에 대한 "zfs get" 옵션이 없다는 것을 보고 놀랐습니다. 문서에 따르면 "-H" 옵션은 "스크립트에 의해 더 쉽게 구문 분석되는 형식으로 출력을 표시"해야 합니다. 헤더를 생략하고 탭을 사용하여 필드를 구분했지만 형식이 잘못되었습니다. 크기는 여전히 TBytes로 표시되며 +/- 10G 정밀도로 반올림됩니다. 더 작은 문제이지만 현재 로케일을 사용하여 형식이 지정되었습니다(제 경우에는 소수점 "."이 ","로 대체되었습니다). 이는 KBytes 단위의 정수입니다.

이 특별한 경우에는 아무것도 마운트되지 않았기 때문에 "df" 명령을 사용할 수 없습니다. 사용 가능한 블록을 Kbyte 단위로 표시하려면 다음과 같이 할 수 있습니다.

# mkdir -p /nat2012
# zfs set mountpoint=/nat2012 nat2012
# df -k | grep nat2012
nat2012        1885339520        128 1885339392   1% /nat2012

그러나 이렇게 하면 잘못된 결과가 나옵니다. 보시다시피 이제 zfs 파일 시스템으로 마운트되었으며 데이터 세트는 이미 사용 가능한 공간의 1%를 사용하고 있습니다. 이는 새 ext4 볼륨을 생성하는 데 사용할 수 있는 정확한 크기를 알려주지 않습니다. (-V 옵션은 필수입니다. 지정하지 않으면 ext4.mkfs에서 포맷할 수 없습니다.)

물론, 언제든지 다음과 같은 시험을 할 수 있습니다.

# zfs create -V 1760G nat2012/backup
cannot create 'nat2012/backup': out of space
# zfs create -V 1755G nat2012/backup
cannot create 'nat2012/backup': out of space
# zfs create -V 1750G nat2012/backup
cannot create 'nat2012/backup': out of space
# zfs create -V 1740G nat2012/backup
# zfs destroy nat2012/backup
# zfs create -V 1745G nat2012/backup
cannot create 'nat2012/backup': out of space
# zfs create -V 1744G nat2012/backup
cannot create 'nat2012/backup': out of space
# zfs create -V 1743G nat2012/backup

이 시점에서 사용되지 않은 공간은 최대 1G 정도라고 확신할 수 있습니다. 이것은매우 서투른. 나는 이것으로 살아갈 수 있지만 앞으로 여러 드라이브에 대해 동일한 작업을 수행해야 합니다.

생성을 위해 "사용 가능한 모든 공간을 사용"하는 더 좋은 방법이 있습니까?고정된 크기용량?

관련 정보