On Mon, Jan 07, 2013 at 07:20:16PM +0100, Goffredo Baroncelli wrote: > Hi David, > > On 01/07/2013 05:33 PM, David Sterba wrote: > > On Sun, Jan 06, 2013 at 07:28:55PM +0100, Goffredo Baroncelli wrote: > >> Currently wipefs doesn't clear all the superblock of btrfs. Only the first > >> one is cleared. > >> > >> Btrfs has three superblocks. The first one is placed at 64KB, the second > >> one at 64MB, the third one at 256GB. > > > > It can have as much as 4 superblock backup copies: > > > > Superblock offset 0 is 65536 (0x10000, block=16/0x10) > > Superblock offset 1 is 67108864 (0x4000000, block=16384/0x4000) > > Superblock offset 2 is 274877906944 (0x4000000000, block=67108864/0x4000000) > > Superblock offset 3 is 1125899906842624 (0x4000000000000, block=274877906944/0x4000000000) > > Superblock offset 4 is 4611686018427387904 (0x4000000000000000, block=1125899906842624/0x4000000000000) > > Are you sure ? > > Regarding the btrfs-progs suite, I looked at the btrfs_read_dev_super(): > [..] > for (i = 0; i < BTRFS_SUPER_MIRROR_MAX; i++) { > bytenr = btrfs_sb_offset(i); > ret = pread64(fd, &buf, sizeof(buf), bytenr); > > Where BTRFS_SUPER_MIRROR_MAX is 3. > > Regarding the kernel code, I looked at several function which call > btrfs_sb_offset(); everywhere there is an upper limit of the superblock > numbero which is BTRFS_SUPER_MIRROR_MAX, which is still 3. > > Moreover I performed the following test: > > $ ls -lh 7tb-filesystem.img > -rw-r--r-- 1 ghigo ghigo 7.1E Jan 7 18:49 7eb-filesystem.img > $ /sbin/mkfs.btrfs 7eb-filesystem.img > > $ cat extract-sign.py > import os > > BTRFS_SUPER_MIRROR_SHIFT = 12 > BTRFS_SUPER_INFO_OFFSET = (64*1024) > > def btrfs_sb_offset(mirror): > start = 16*1024 > if(mirror): > return start << (BTRFS_SUPER_MIRROR_SHIFT * mirror) > return BTRFS_SUPER_INFO_OFFSET > > f = open("7eb-filesystem.img","r") > for i in range(5): > pos = btrfs_sb_offset(i)+64 > f.seek(pos) > sign = f.read(8) > > print "Superblock #%d - %20d - '%s'"%(i,pos,sign) > > $ python extract-sign.py > Superblock #0 - 65600 - '_BHRfS_M' 64 KiB > Superblock #1 - 67108928 - '_BHRfS_M' 256 MiB > Superblock #2 - 274877907008 - '_BHRfS_M' 1 TiB > Superblock #3 - 1125899906842688 - '' 4 PiB > Superblock #4 - 4611686018427387968 - '' 16 EiB > To me it seems that in a 7TB filesystem there is only 3 superblocks. That would be as expected. How many on a 5 PiB filesystem, though? Or a 20 EiB one? Hugo. -- === Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk === PGP key: 515C238D from wwwkeys.eu.pgp.net or http://www.carfax.org.uk --- "He's a nutcase, you know. There's no getting away from it -- --- he'll end up with a knighthood"
Attachment:
signature.asc
Description: Digital signature