[Gluster-devel] Bad file descriptor

yaomin @ gmail yangyaomin at gmail.com
Fri Jan 2 03:17:30 UTC 2009


Hey, Guys

    When I use IOZone to test my gluster configuration, an error happens if the file's size is smaller or equal to 1KB.


Thanks,
Alfred Yang.




  Below is the message:

/opt/iozone/bin/iozone -f /mnt/new/test1 -s 1k -i 0 -i 1    
        Iozone: Performance Test of File I/O
                Version $Revision: 3.315 $
                Compiled for 32 bit mode.
                Build: linux 

        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root.

        Run began: Fri Jan  2 11:00:14 2009

        File size set to 1 KB
        Command line used: /opt/iozone/bin/iozone -f /mnt/new/test1 -s 1k -i 0 -i 1
        Output is in Kbytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 Kbytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                            random  random    bkwd   record   stride                                   
              KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
               1       4       0       0
Error reading block 0 f6e00000
read: Bad file descriptor

   


 Here is the gluster configurations.(on client)

volume client-ns
  type protocol/client
  option transport-type tcp/client       # for TCP/IP transport
  option remote-host 192.168.13.2        # IP address of the remote brick
# option remote-port 6996                # default server port is 6996
# option transport-timeout 30            # seconds to wait for a response
                                         # from server for each request
  option remote-subvolume name_space          # name of the remote volume
end-volume

volume client11
  type protocol/client
  option transport-type tcp/client       # for TCP/IP transport
  option remote-host 192.168.13.2        # IP address of the remote brick
# option remote-port 6996                # default server port is 6996
# option transport-timeout 30            # seconds to wait for a response
                                         # from server for each request
  option remote-subvolume brick1          # name of the remote volume
end-volume

volume client12
  type protocol/client
  option transport-type tcp/client       # for TCP/IP transport
  option remote-host 192.168.13.2        # IP address of the remote brick
# option remote-port 6996                # default server port is 6996
# option transport-timeout 30            # seconds to wait for a response
                                         # from server for each request
  option remote-subvolume brick2          # name of the remote volume
end-volume


volume client21
  type protocol/client
  option transport-type tcp/client       # for TCP/IP transport
  option remote-host 192.168.13.4        # IP address of the remote brick
# option remote-port 6996                # default server port is 6996
# option transport-timeout 30            # seconds to wait for a response
                                         # from server for each request
  option remote-subvolume brick1          # name of the remote volume
end-volume

volume client22
  type protocol/client
  option transport-type tcp/client       # for TCP/IP transport
  option remote-host 192.168.13.4        # IP address of the remote brick
# option remote-port 6996                # default server port is 6996
# option transport-timeout 30            # seconds to wait for a response
                                         # from server for each request
  option remote-subvolume brick2          # name of the remote volume
end-volume

volume client31
  type protocol/client
  option transport-type tcp/client       # for TCP/IP transport
  option remote-host 192.168.13.5        # IP address of the remote brick
# option remote-port 6996                # default server port is 6996
# option transport-timeout 30            # seconds to wait for a response
                                         # from server for each request
  option remote-subvolume brick1          # name of the remote volume
end-volume

volume client32
  type protocol/client
  option transport-type tcp/client       # for TCP/IP transport
  option remote-host 192.168.13.5        # IP address of the remote brick
# option remote-port 6996                # default server port is 6996
# option transport-timeout 30            # seconds to wait for a response
                                         # from server for each request
  option remote-subvolume brick2          # name of the remote volume
end-volume

volume client41
  type protocol/client
  option transport-type tcp/client       # for TCP/IP transport
  option remote-host 192.168.13.7        # IP address of the remote brick
# option remote-port 6996                # default server port is 6996
# option transport-timeout 30            # seconds to wait for a response
                                         # from server for each request
  option remote-subvolume brick1          # name of the remote volume
end-volume

volume client42
  type protocol/client
  option transport-type tcp/client       # for TCP/IP transport
  option remote-host 192.168.13.7        # IP address of the remote brick
# option remote-port 6996                # default server port is 6996
# option transport-timeout 30            # seconds to wait for a response
                                         # from server for each request
  option remote-subvolume brick2          # name of the remote volume
end-volume

volume afr1
  type cluster/afr
  subvolumes client11 client21
  option debug off         # turns on detailed debug messages 
                              # in log by default is debugging off
  option self-heal on    # turn off self healing default is on
end-volume

volume afr2
  type cluster/afr
  subvolumes client31 client41
  option debug off         # turns on detailed debug messages 
                              # in log by default is debugging off
  option self-heal on    # turn off self healing default is on
end-volume


volume afr3
  type cluster/afr
  subvolumes client12 client22
  option debug off         # turns on detailed debug messages 
                              # in log by default is debugging off
  option self-heal on    # turn off self healing default is on
end-volume

volume afr4
  type cluster/afr
  subvolumes client32 client42
  option debug off         # turns on detailed debug messages 
                              # in log by default is debugging off
  option self-heal on    # turn off self healing default is on
end-volume

volume stripe1
   type cluster/stripe
   option block-size 1MB                 #default size is 128KB
   subvolumes afr1 afr2
end-volume

volume stripe2
   type cluster/stripe
   option block-size 1MB                 #default size is 128KB
   subvolumes afr3 afr4
end-volume


volume bricks
  type cluster/unify
  subvolumes stripe1 stripe2
  option namespace client-ns
  option scheduler alu
#  option alu.limits.min-free-disk  5%    # Don't create files one a volume with less than 5% free diskspace
#  option alu.limits.max-open-files 10000  # Don't create files on a volume with more than 10000 files open

  # When deciding where to place a file, first look at the disk-usage, then at read-usage, write-usage, open files, and finally the 
disk-speed-usage.
  option alu.order disk-usage:read-usage:write-usage:open-files-usage:disk-speed-usage
  option alu.disk-usage.entry-threshold 2GB   # Kick in if the discrepancy in disk-usage between volumes is more than 2GB
  option alu.disk-usage.exit-threshold  60MB   # Don't stop writing to the least-used volume until the discrepancy is 1988MB 
  option alu.open-files-usage.entry-threshold 1024   # Kick in if the discrepancy in open files is 1024
  option alu.open-files-usage.exit-threshold 32   # Don't stop until 992 files have been written the least-used volume
  option alu.read-usage.entry-threshold 20%   # Kick in when the read-usage discrepancy is 20%
  option alu.read-usage.exit-threshold 4%   # Don't stop until the discrepancy has been reduced to 16% (20% - 4%)
  option alu.write-usage.entry-threshold 20%   # Kick in when the write-usage discrepancy is 20%
  option alu.write-usage.exit-threshold 4%   # Don't stop until the discrepancy has been reduced to 16%
#  option alu.disk-speed-usage.entry-threshold # NEVER SET IT. SPEED IS CONSTANT!!!
#  option alu.disk-speed-usage.exit-threshold  # NEVER SET IT. SPEED IS CONSTANT!!!
  option alu.stat-refresh.interval 10sec   # Refresh the statistics used for decision-making every 10 seconds
  option alu.stat-refresh.num-file-create 10   # Refresh the statistics used for decision-making after creating 10 files
end-volume

### Add io-threads feature
volume iot
  type performance/io-threads
  subvolumes bricks #stripe #afr #bricks
end-volume

### Add readahead feature
volume readahead
  type performance/read-ahead
 option page-size 1MB      # unit in bytes
  option page-count 2       # cache per file  = (page-count x page-size)
  subvolumes iot
end-volume

### Add IO-Cache feature
volume iocache
  type performance/io-cache
  option page-size 256KB
  option page-count 2
  subvolumes readahead
end-volume

### Add writeback feature
volume writeback
  type performance/write-behind
  option aggregate-size 1MB  #option flush-behind off
  subvolumes iocache
end-volume


### Add io-threads feature
volume iot_stripe1
  type performance/io-threads
  subvolumes stripe1
end-volume

### Add readahead feature
volume readahead_stripe1
  type performance/read-ahead
 option page-size 1MB      # unit in bytes
  option page-count 2       # cache per file  = (page-count x page-size)
  subvolumes iot_stripe1
end-volume

### Add IO-Cache feature
volume iocache_stripe1
  type performance/io-cache
  option page-size 256KB
  option page-count 2
  subvolumes readahead_stripe1
end-volume

### Add writeback feature
volume writeback_stripe1
  type performance/write-behind
  option aggregate-size 1MB  #option flush-behind off
  subvolumes iocache_stripe1
end-volume


### Add io-threads feature
volume iot_stripe2
  type performance/io-threads
  subvolumes stripe2
end-volume

### Add readahead feature
volume readahead_stripe2
  type performance/read-ahead
 option page-size 1MB      # unit in bytes
  option page-count 2       # cache per file  = (page-count x page-size)
  subvolumes iot_stripe2
end-volume

### Add IO-Cache feature
volume iocache_stripe2
  type performance/io-cache
  option page-size 256KB
  option page-count 2
  subvolumes readahead_stripe2
end-volume

### Add writeback feature
volume writeback_stripe2
  type performance/write-behind
  option aggregate-size 1MB  #option flush-behind off
  subvolumes iocache_stripe2
end-volume


### Add io-threads feature
volume iot_afr1
  type performance/io-threads
  subvolumes afr1
end-volume

### Add readahead feature
volume readahead_afr1
  type performance/read-ahead
 option page-size 1MB      # unit in bytes
  option page-count 2       # cache per file  = (page-count x page-size)
  subvolumes iot_afr1
end-volume

### Add IO-Cache feature
volume iocache_afr1
  type performance/io-cache
  option page-size 256KB
  option page-count 2
  subvolumes readahead_afr1
end-volume

### Add writeback feature
volume writeback_afr1
  type performance/write-behind
  option aggregate-size 1MB  #option flush-behind off
  subvolumes iocache_afr1
end-volume



### Add io-threads feature
volume iot_afr2
  type performance/io-threads
  subvolumes afr2
end-volume

### Add readahead feature
volume readahead_afr2
  type performance/read-ahead
 option page-size 1MB      # unit in bytes
  option page-count 2       # cache per file  = (page-count x page-size)
  subvolumes iot_afr2
end-volume

### Add IO-Cache feature
volume iocache_afr2
  type performance/io-cache
  option page-size 256KB
  option page-count 2
  subvolumes readahead_afr2
end-volume

### Add writeback feature
volume writeback_afr2
  type performance/write-behind
  option aggregate-size 1MB  #option flush-behind off
  subvolumes iocache_afr2
end-volume



### Add io-threads feature
volume iot_afr3
  type performance/io-threads
  subvolumes afr3
end-volume

### Add readahead feature
volume readahead_afr3
  type performance/read-ahead
 option page-size 1MB      # unit in bytes
  option page-count 2       # cache per file  = (page-count x page-size)
  subvolumes iot_afr3
end-volume

### Add IO-Cache feature
volume iocache_afr3
  type performance/io-cache
  option page-size 256KB
  option page-count 2
  subvolumes readahead_afr3
end-volume

### Add writeback feature
volume writeback_afr3
  type performance/write-behind
  option aggregate-size 1MB  #option flush-behind off
  subvolumes iocache_afr3
end-volume



### Add io-threads feature
volume iot_afr4
  type performance/io-threads
  subvolumes afr4
end-volume

### Add readahead feature
volume readahead_afr4
  type performance/read-ahead
 option page-size 1MB      # unit in bytes
  option page-count 2       # cache per file  = (page-count x page-size)
  subvolumes iot_afr4
end-volume

### Add IO-Cache feature
volume iocache_afr4
  type performance/io-cache
  option page-size 256KB
  option page-count 2
  subvolumes readahead_afr4
end-volume

### Add writeback feature
volume writeback_afr4
  type performance/write-behind
  option aggregate-size 1MB  #option flush-behind off
  subvolumes iocache_afr4
end-volume
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20090102/8a8303fc/attachment-0003.html>


More information about the Gluster-devel mailing list