xfs
[Top] [All Lists]

Questions about testing the Filestream feature

To: linux-xfs@xxxxxxxxxxx
Subject: Questions about testing the Filestream feature
From: Hxsrmeng <hxsrmeng@xxxxxxxxx>
Date: Thu, 20 Sep 2007 20:10:31 -0700 (PDT)
Sender: xfs-bounce@xxxxxxxxxxx
Hi all,

I need to use the "Filestreams" feature. I wrote a script to write files to
two directories concurrently.  When I check the file bitmap, I found
sometimes the files written in the different directories still interleave
extents on disk. I don't know whether there is something wrong with my
script, or, I misunderstand something.

I am using Opensuse10.2, the kernel is linux-2.6.23-rc4 (source code was
check out from cvs of oss.sgi.com). The filestreams feature is enabled with
a "-o filestreams" mount option.
Here is my script: 
"
  1 #try filestreams
  2 a=$1
  3 filenumber=`expr $a - 1`
  4 filesize=$2
  5
  6 umount /xfs_disk
  7 /sbin/mkfs -t xfs -f /dev/hda5 #>> logfile
  8 mount -t xfs -o filestreams /dev/hda5 /xfs_disk
  9 #enable filestreams
 10
 11 cd /xfs_disk
 12 for dirname in dira dirb
 13     do
 14     mkdir $dirname
 15     for filename in `seq 0 $filenumber`
 16         do
 17         dd if=/dev/zero of=$dirname/$filename bs=$filesize count=1 >
/dev/null 2>&1 &
 18     done
 19 done
 20
 21 wait
 22 for dirname in dira dirb
 23     do
 24     for filename in `seq 0 $filenumber`
 25         do
 26         /usr/sbin/xfs_bmap -v $dirname/$filename > bmapresult
 27         cat bmapresult >> bitmap
 28         a="expr `wc -l bmapresult | awk '{print $1}'` - 2"
 29         b=`$a`
 30         c=`tail -$b bmapresult | awk '{ print $4 }'`
 31         echo $dirname/$filename is in AG $c:>>agmap
 32     done
 33 done
"

Then I got the information of my xfs device first :  
meta-data=/dev/hda5              isize=256      agcount=8, agsize=159895
blks
              =                             sectsz=512   attr=0
data        =                             bsize=4096   blocks=1279160,
imaxpct=25
              =                             sunit=0         swidth=0 blks,
unwritten=1
naming    =                             version 2      bsize=4096
log          =                             internal log    bsize=4096  
blocks=2560, version=1
              =                             sectsz=512   sunit=0 blks
realtime   =                             none            extsz=65536 
blocks=0, rtextents=0


First run, I wrote 3 "big" files, which are 768M, to each directories. The
files in directory dira share AG 0,2,5,7 and files in directory dirb share
AG 1, 3, 4, 6,  which I assume should be correct. But the files extents
doesn't use contiguous blocks, and all files in the same directory put some
of their extents in AG 0. I am not sure whether this is correct.  Here is
part of file bitmap:
"
dira/0:
 EXT: FILE-OFFSET         BLOCK-RANGE      AG AG-OFFSET          TOTAL
   0: [0..7615]:          96..7711          0 (96..7711)          7616
   1: [7616..7679]:       33312..33375      0 (33312..33375)        64
   2: [7680..24063]:      33448..49831      0 (33448..49831)     16384
   3: [24064..52999]:     60608..89543      0 (60608..89543)     28936
   4: [53000..61191]:     95496..103687     0 (95496..103687)     8192
   5: [61192..90791]:     119088..148687    0 (119088..148687)   29600
   6: [90792..131751]:    170264..211223    0 (170264..211223)   40960
   7: [131752..144223]:   219480..231951    0 (219480..231951)   12472
   8: [144224..168799]:   240144..264719    0 (240144..264719)   24576
   ...
dira/1:
 EXT: FILE-OFFSET         BLOCK-RANGE      AG AG-OFFSET           TOTAL
   0: [0..12791]:         7712..20503       0 (7712..20503)       12792
   1: [12792..12863]:     33376..33447      0 (33376..33447)         72
   2: [12864..13391]:     49832..50359      0 (49832..50359)        528
   3: [13392..19575]:     112904..119087    0 (112904..119087)     6184
   4: [19576..27767]:     148688..156879    0 (148688..156879)     8192
   5: [27768..35959]:     211224..219415    0 (211224..219415)     8192
   6: [35960..44151]:     231952..240143    0 (231952..240143)     8192
   7: [44152..68727]:     264784..289359    0 (264784..289359)    24576
   8: [68728..79047]:     309400..319719    0 (309400..319719)    10320
"

Second run, I wrote 1024 "small" files, which are 1M, to each directories. 
Files in directory dira use AG 0,1,3 and files in directory b use AG
2,1,5,6,7,4. So files written in directory dirb use the allocation group 1,
which should be reserved for directory dira . And, sometimes even one file
is written to two AGs. The following is part of file bitmap:
"
 ...
dira/498:
 EXT: FILE-OFFSET      BLOCK-RANGE      AG AG-OFFSET        TOTAL
   0: [0..63]:         570848..570911    0 (570848..570911)    64
   1: [64..2047]:      1666600..1668583  1 (387440..389423)  1984
dira/499:
 EXT: FILE-OFFSET      BLOCK-RANGE      AG AG-OFFSET        TOTAL
   0: [0..23]:         571672..571695    0 (571672..571695)    24
   1: [24..79]:        571776..571831    0 (571776..571831)    56
   2: [80..1839]:      1650616..1652375  1 (371456..373215)  1760
   3: [1840..1903]:    1662240..1662303  1 (383080..383143)    64
   4: [1904..2047]:    1676984..1677127  1 (397824..397967)   144
 ...
dirb/4:
 EXT: FILE-OFFSET      BLOCK-RANGE      AG AG-OFFSET        TOTAL
   0: [0..2047]:       1279264..1281311  1 (104..2151)       2048
dirb/5:
 EXT: FILE-OFFSET      BLOCK-RANGE      AG AG-OFFSET        TOTAL
   0: [0..63]:         1352136..1352199  1 (72976..73039)      64
   1: [64..415]:       1451896..1452247  1 (172736..173087)   352
   2: [416..1279]:     1633616..1634479  1 (354456..355319)   864
   3: [1280..1343]:    1647288..1647351  1 (368128..368191)    64
   4: [1344..2047]:    1677128..1677831  1 (397968..398671)   704
dirb/6:
 EXT: FILE-OFFSET      BLOCK-RANGE      AG AG-OFFSET        TOTAL
   0: [0..2047]:       1285408..1287455  1 (6248..8295)      2048
....
"
I don't know whether the filestreams feature may works this way, or I made
some mistakes?

Thank you so much!
-- 
View this message in context: 
http://www.nabble.com/Questions-about-testing-the-Filestream-feature-tf4491605.html#a12809900
Sent from the linux-xfs mailing list archive at Nabble.com.


<Prev in Thread] Current Thread [Next in Thread>