[Gluster-users] Data is Copying when a new brick is added.
Andrew Hallman
andrewBhallman at gmail.com
Sat May 14 04:29:42 UTC 2011
== Data Copying when a new brick is added. ==
Hi. I'm a first time glusterfs user, and I'm trying to simulate what will
happen when I need to add more bricks for storage capacity. My config files
are below but I'll try and explain what is going on. I have 2 machines with
2 hard drives in each. I created a replicated storage system where machine
a replicates to machine b. Everything worked fine when only 1 harddrive
was set up on each machine. I filled up the harddrives to the point where
there is only 1.5 gigs free on each one. They match because it was all
replicated.
After this, I added in the configuration for the second harddrive in each
machine. The machines are still replicating, so the harddrives should be
distributed, which is what I tried. All is well with the new configuration
if I add new files to the system. It correctly sees that the old harddrives
are full and puts all the new files onto the second empty drive.
However, if I go into the mount point on the client machine and do a
directory listing (or the shell autocomplete attempts to read it) something
strange happens. Machine 1 is fine, but machine 2 starts to copy over files
from the full harddrive to the empty one. It's still copying this time
after I retried the configuration, but the first time it copied about half
the data over to the second harddrive. The first harddrive remained full
though.
Has anyone experienced this, or can see something wrong with my
configuration files? The server files are exactly the same on both machines
and the machines have the same hardware components and OS (Ubuntu) as well.
Any help would be appreciated.
===========================================================
Server Configuration
===========================================================
volume posix1
type storage/posix
option directory /data/export
end-volume
volume posix2
type storage/posix
option directory /media/disk2
end-volume
volume locks
type features/locks
subvolumes posix1
end-volume
volume locks2
type features/locks
subvolumes posix2
end-volume
volume brick
type performance/io-threads
option thread-count 8
subvolumes locks
end-volume
volume brick2
type performance/io-threads
option thread-count 8
subvolumes locks2
end-volume
volume server
type protocol/server
option transport-type tcp
option auth.addr.brick.allow 192.168.0.191,192.168.0.192
option auth.addr.brick2.allow 192.168.0.191,192.168.0.192
subvolumes brick brick2
end-volume
===========================================================
Client Configuration
===========================================================
volume remote1a
type protocol/client
option transport-type tcp
option remote-host 192.168.0.151
option remote-subvolume brick
end-volume
volume remote1b
type protocol/client
option transport-type tcp
option remote-host 192.168.0.151
option remote-subvolume brick2
end-volume
volume remote2a
type protocol/client
option transport-type tcp
option remote-host 192.168.0.152
option remote-subvolume brick
end-volume
volume remote2b
type protocol/client
option transport-type tcp
option remote-host 192.168.0.152
option remote-subvolume brick2
end-volume
volume unify1
type cluster/distribute
subvolumes remote1a remote1b
option scheduler alu # use the ALU scheduler
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
option alu.order
disk-usage:read-usage:write-usage:open-files-usage:disk-speed-usage
option alu.disk-usage.entry-threshold 3GB # Kick in if the discrepancy
in disk-usage between volumes is more than 3GB
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.stat-refresh.interval 60sec # Refresh the statistics used
for decision-making every 60 seconds
end-volume
volume unify2
type cluster/distribute
subvolumes remote2a remote2b
option scheduler alu # use the ALU scheduler
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
option alu.order
disk-usage:read-usage:write-usage:open-files-usage:disk-speed-usage
option alu.disk-usage.entry-threshold 3GB # Kick in if the discrepancy
in disk-usage between volumes is more than 3GB
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.stat-refresh.interval 60sec # Refresh the statistics used
for decision-making every 60 seconds
end-volume
volume replicate
type cluster/afr
subvolumes unify1 unify2
end-volume
volume writebehind
type performance/write-behind
option window-size 1MB
subvolumes replicate
end-volume
volume cache
type performance/io-cache
option cache-size 512MB
subvolumes writebehind
end-volume
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-users/attachments/20110514/3d4f1b75/attachment.html>
More information about the Gluster-users
mailing list