Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
Ok, this is my first post to this list, so please be easy on me. I
have setup two openfiler nodes each with a 4 drive software sata RAID0
array that mirrors from one node to the other. There are only the 4
drives in each host, so we partitioned off a RAID10 slice for the
boot, then we created a RAID0 slice for the DRBD data. We then use
that volume to create iSCSI and NFS shares to serve up to other hosts.
I have been trying to track down why my performance seems to be so
bad. I then ran across the following test, and it leaves me
scratching my head.
On the primary server, I run a dd against the drbd1 device to just
read it in.
dd if=/dev/drbd1 of=/dev/null bs=1M&
I then run iostat -k 2 to check the performance. i see long periods
2-10 secons on NO activity, then brief periods of 25-30 MB/s. I tried
disabling the remote node, and this does not improve performance.
If I run the same command for the underlying md2 raid disk, I get a
consistent 200-240 MB/s. I expected there to be a write penalty, but
I am scratching my head on the read penalty. By the time that we get
the iSCSI out to the clients, I am getting maybe 30MB/s, and averaging
about 15MB/s.
Here is my drbd.conf
global {
# minor-count 64;
# dialog-refresh 5; # 5 seconds
# disable-ip-verification;
usage-count ask;
}
common {
syncer { rate 100M;
al-extents 257;
}
net {
unplug-watermark 128;
}
}
resource meta {
protocol C;
handlers {
pri-on-incon-degr "echo O > /proc/sysrq-trigger ; halt -f";
pri-lost-after-sb "echo O > /proc/sysrq-trigger ; halt -f";
local-io-error "echo O > /proc/sysrq-trigger ; halt -f";
outdate-peer "/usr/lib64/heartbeat/drbd-peer-outdater";
}
startup {
# wfc-timeout 0;
degr-wfc-timeout 120; # 2 minutes.
}
disk {
on-io-error detach;
fencing resource-only;
}
net {
after-sb-0pri disconnect;
after-sb-1pri disconnect;
after-sb-2pri disconnect;
rr-conflict disconnect;
}
syncer {
# rate 10M;
# after "r2";
al-extents 257;
}
device /dev/drbd0;
disk /dev/rootvg/meta;
meta-disk internal;
on stg1 {
address 1.2.5.80:7788;
}
on stg2 {
address 1.2.5.81:7788;
}
}
resource NAS {
protocol C;
handlers {
pri-on-incon-degr "echo O > /proc/sysrq-trigger ; halt -f";
pri-lost-after-sb "echo O > /proc/sysrq-trigger ; halt -f";
local-io-error "echo O > /proc/sysrq-trigger ; halt -f";
outdate-peer "/usr/lib64/heartbeat/drbd-peer-outdater";
}
startup {
wfc-timeout 0; ## Infinite!
degr-wfc-timeout 120; ## 2 minutes.
}
disk {
on-io-error detach;
fencing resource-only;
}
net {
# timeout 60;
# connect-int 10;
# ping-int 10;
# max-buffers 2048;
# max-epoch-size 2048;
}
syncer {
after "meta";
}
device /dev/drbd1;
disk /dev/md2;
meta-disk internal;
on stg1 {
address 1.2.5.80:7789;
}
on stg2 {
address 1.2.5.81:7789;
}
}
Any direction would be appreciated.
Gary