저는 FreeBSD에서 ZFS를 사용하여 몇 TB의 데이터를 저장하고 있습니다.
중복 제거되지 않은 상태로 저장된 경우 원시 데이터의 약 25%는 압축이 도움이 될 만큼 고유하지만 중복 제거는 낭비됩니다.
나머지 75%에는 중복 제거 가능한 데이터가 많이 포함되어 있으며 과거에 이 데이터 세트의 비율은 2x - 8x였습니다. 그래서 내 NAS는 처음부터 필요한 경우 압축된 중복 제거를 처리할 수 있도록 사양이 지정되었습니다. 96GB 2400 ECC(통계에 중복 제거 테이블 압력이 표시되면 더 추가할 수 있음), 3.5GHz 쿼드 코어 Xeon, 미러 디스크, NVMe L2ARC 및 Intel P3700 NVMe ZIL.
원시 풀 용량은 포맷 전 현재 22GB이며(3 x 6TB vdev + 1 x 4TB vdev) 직관적으로 지금은 물리적으로 약 7~14TB를 사용하고 있는 것 같습니다. 여기에는 Samba 파일 공유 데이터 세트와 고정 크기 ESXi iSCSI zvol(대부분 비어 있음, 하나 이상의 스파스)이 모두 포함되어 있습니다. 하지만 이러한 출력 간의 차이점을 이해하지 못하기 때문에 혼란스럽습니다. 실제로 사용 가능한 공간이 얼마나 되는지 확신할 수 없으므로 디스크를 더 추가하여 목표인 65% 미만으로 유지해야 할지 여부도 알 수 없습니다. 용법:
# zpool 목록 -v
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
tank 19.9T 14.0T 5.93T - 53% 70% 2.30x ONLINE /mnt
mirror 5.44T 4.18T 1.26T - 59% 76%
gptid/6c62bc1a-0b7b-11e7-86ae-000743144400 - - - - - -
gptid/94cad523-0b45-11e7-86ae-000743144400 - - - - - -
mirror 5.41T 4.38T 1.03T - 62% 80%
ada0p2 - - - - - -
gptid/e619dab7-03f1-11e7-8f93-000743144400 - - - - - -
mirror 5.44T 4.12T 1.32T - 56% 75%
gptid/c68f80ae-01da-11e7-b762-000743144400 - - - - - -
da0 - - - - - -
da1 - - - - - -
mirror 3.62T 1.31T 2.32T - 29% 36%
da3 - - - - - -
da4 - - - - - -
# zdb -bDDD 탱크
DDT-sha256-zap-duplicate: 39468847 entries, size 588 on disk, 190 in core
[duplicate bucket data cut as it isn't relevant and repeats in the totals below]
DDT-sha256-zap-unique: 60941882 entries, size 526 on disk, 170 in core
bucket allocated referenced
______ ______________________________ ______________________________
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
1 58.1M 1.21T 964G 1005G 58.1M 1.21T 964G 1005G
2 25.0M 1.10T 784G 807G 58.5M 2.69T 1.87T 1.92T
4 10.4M 393G 274G 282G 48.4M 1.85T 1.29T 1.34T
8 1.70M 51.1G 37.7G 39.7G 16.5M 487G 353G 372G
16 456K 9.85G 5.73G 6.44G 10.1M 212G 121G 138G
32 67.0K 1.73G 998M 1.07G 2.77M 77.1G 44.6G 48.6G
64 23.7K 455M 327M 350M 1.98M 36.1G 25.8G 27.7G
128 3.47K 75.7M 48.0M 54.5M 557K 12.1G 7.68G 8.70G
256 610 46.9M 12.3M 13.6M 216K 16.9G 4.14G 4.61G
512 211 14.8M 2.46M 3.01M 145K 10.2G 1.72G 2.10G
1K 57 1.10M 38K 228K 77.7K 1.45G 49.3M 311M
2K 42 456K 22K 168K 118K 1.17G 61.3M 474M
4K 18 108K 9K 72K 104K 574M 52.1M 417M
8K 11 128K 5.50K 44K 117K 1.29G 58.3M 467M
16K 7 152K 4K 28K 155K 2.60G 85.6M 619M
128K 1 16K 512 4K 137K 2.14G 68.4M 548M
256K 1 4K 512 4K 302K 1.18G 151M 1.18G
Total 95.8M 2.76T 2.02T 2.09T 198M 6.59T 4.65T 4.83T
dedup = 2.31, compress = 1.42, copies = 1.04, dedup * compress / copies = 3.15
첫 번째 출력포맷된 풀 용량이 19.9TB(거의 맞는 것 같습니다)라고 말하는 것 같습니다.사용중인 공간은 약 14TB입니다5.93TB는 여유 공간입니다. 그렇다면 디스크를 더 추가하겠습니다.
두 번째 출력실제라고 말하는 것 같다.할당된 물리적 공간은 약 2.02TB입니다.(또는 압축+중복으로 인해 3.15배 절약된 6.59TB).
두 숫자는 매우 다르며 이를 조정하는 방법을 이해하지 못합니다.
힌트를 주시면 감사하겠습니다!
답변1
두 숫자는 매우 다르며 이를 조정하는 방법을 이해하지 못합니다.
힌트를 주시면 감사하겠습니다!
출력 zpool
이 정확합니다.
관심을 가질 만한 다른 명령은 입니다 zfs list
.
답변2
수영장이 얼마나 찼는지 확인하는 가장 확실한 방법은 다음과 같이 물어보는 것입니다.
$ zpool get capacity tank
NAME PROPERTY VALUE SOURCE
tank capacity 60% -
원하는 경우 직접 계산을 수행할 수도 있습니다.
$ zpool get -p allocated,size tank
NAME PROPERTY VALUE SOURCE
tank allocated 596675149824 -
tank size 987842478080 -
$ bc
scale=4
59667514982400/987842478080
60.4018