On 12/10/2014 05:21 AM, Duncan wrote:
Robert White posted on Wed, 10 Dec 2014 02:53:40 -0800 as excerpted:

On 12/09/2014 05:08 PM, Dongsheng Yang wrote:
On 12/10/2014 02:47 AM, Goffredo Baroncelli wrote:
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

NOPE.

The model you propose is too simple.

While the data portion of the file system is set to RAID1 the metadata
portion of the filesystem is still set to the default of DUP.

Well my bad... /D'oh...

Though I'd say the documentation needs to be updated. The only mention of changes from the default is this bit.

From man mkfs.btrfs as distributed in the source tree:

[QUOTE]
       -m|--metadata <profile>
Specify how metadata must be spanned across the devices specified. Valid values are raid0, raid1, raid5, raid6, raid10, single or dup.

Single device will have dup set by default except in the case of SSDs which will default to single. This is because SSDs can remap blocks internally so duplicate blocks could end up in the same erase block which negates the benefits of doing metadata duplication.
[/QUOTE]

No mention is made of RAID1 for a multi-device FS, the two defaults are listed as DUP and Single.

ASIDE: The wiki page mentions RAID1 but doesn't mention the SSD fallback to single; and it's annotated as potentially out of date. But I never looked there because I had the manual page locally.

I tested it and sure enough, it's RAID1...

I also noticed that the default for data goes from single to RAID0 in a two slice build.

I generally don't expect defaults to change in undocumented ways. Particularly since that makes make-plus-add orthogonal to make-as-multi.

Without other guidance I'd been assuming that

mkfs.btrfs d1 d2 d3 ...
--vs--
mkfs.btrfs d1
btrfs dev add d2
btrfs dev add d3
...

would net the same resultant system. I have only ever done the latter until today.

Does/Will the defaults change when three, four, or more slices are used to build the system?

I'll take a stab at updating the manual page.

-- Rob.


--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to