Hi Dongsheng
On 12/09/2014 12:20 PM, Dongsheng Yang wrote:
> When function btrfs_statfs() calculate the tatol size of fs, it is calculating
> the total size of disks and then dividing it by a factor. But in some usecase,
> the result is not good to user.
>
> Example:
> # mkfs.btrfs -f /dev/vdf1 /dev/vdf2 -d raid1
> # mount /dev/vdf1 /mnt
> # dd if=/dev/zero of=/mnt/zero bs=1M count=1000
> # df -h /mnt
> Filesystem Size Used Avail Use% Mounted on
> /dev/vdf1 3.0G 1018M 1.3G 45% /mnt
>
> # btrfs fi show /dev/vdf1
> Label: none uuid: f85d93dc-81f4-445d-91e5-6a5cd9563294
> Total devices 2 FS bytes used 1001.53MiB
> devid 1 size 2.00GiB used 1.85GiB path /dev/vdf1
> devid 2 size 4.00GiB used 1.83GiB path /dev/vdf2
>
> a. df -h should report Size as 2GiB rather than as 3GiB.
> Because this is 2 device raid1, the limiting factor is devid 1 @2GiB.
I agree
> b. df -h should report Avail as 0.15GiB or less, rather than as 1.3GiB.
> 2 - 1.85 = 0.15
I cannot agree; the avail should be:
1.85 (the capacity of the allocated chunk)
-1.018 (the file stored)
+(2-1.85=0.15) (the residual capacity of the disks
considering a raid1 fs)
---------------
= 0.97
>
> This patch drops the factor at all and calculate the size observable to
> user without considering which raid level the data is in and what's the
> size exactly in disk.
>
> After this patch applied:
> # mkfs.btrfs -f /dev/vdf1 /dev/vdf2 -d raid1
> # mount /dev/vdf1 /mnt
> # dd if=/dev/zero of=/mnt/zero bs=1M count=1000
> # df -h /mnt
> Filesystem Size Used Avail Use% Mounted on
> /dev/vdf1 2.0G 1018M 713M 59% /mnt
I am confused: in this example you reported as Avail 713MB, when previous
you stated that the right value should be 150MB...
What happens when the filesystem is RAID5/RAID6 or Linear ?
[...]
--
gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it>
Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html