bonnie | bonnie-plot | bonnie-steroids | lab/fsbench
Here we are comparing GFS2/DLM (lala/) vs THINLVM/DRBD (lili/) virtual disks
flags="-u root -x 5 -r 1024" mkdir -p /data/guests/slack1/lala/ mkdir -p /data/guests/slack1/lili/ rm -f /var/tmp/bonnie-results
drbdadm status res-data # dual primary cd /data/guests/slack1/ dd if=/dev/zero of=slack1.ext4 bs=1G count=0 seek=5 mkfs.ext4 slack1.ext4 mount slack1.ext4 lala/ bonnie++ $flags -m gfs2-ext4 -d lala/ | tee -a /var/tmp/bonnie-results umount lala/ rmdir lala/ rm -f slack1.ext4
lvcreate --thin -V 5G vdisks/thinpool -n slack1 ls -lF /dev/vdisks/slack* vi /etc/drbd.conf drbdadm adjust res-slack1 drbdadm create-md res-slack1 drbdadm up res-slack1 drbdadm status
WAIT UNTIL IT GETS IN SYNC, and only then
drbdadm primary res-slack1 drbdadm status res-slack1 #single primary mkfs.ext4 /dev/drbd1 mount /dev/drbd1 lili/ bonnie++ $flags -m thindrbd-ext4 -d lili/ | tee -a /var/tmp/bonnie-results bonnie++ $flags -m thindrbd-protoB-ext4 -d lili/ | tee -a /var/tmp/bonnie-results bonnie++ $flags -m thindrbd-protoA-ext4 -d lili/ | tee -a /var/tmp/bonnie-results ls -alF lili/ rm -f lili/Bonnie.* umount lili/ rmdir lili/
drbdadm status res-data # dual primary
cd /data/guests/
for n in `seq 1 9`; do
mkdir -p /data/guests/slack$n/lala/
mkdir -p /data/guests/slack$n/lili/
cd slack$n/
dd if=/dev/zero of=slack$n.ext4 bs=1G count=0 seek=5
mkfs.ext4 slack$n.ext4
mount /data/guests/slack$n/slack$n.ext4 /data/guests/slack$n/lala/
cd ../
done; unset n
for n in `seq 2 9`; do
lvcreate --thin -V 5G vdisks/thinpool -n slack$n
done; unset n
for n in `seq 2 9`; do
cat <<EOF >> /etc/drbd.conf
resource res-slack$n {
protocol A;
device /dev/drbd$n;
meta-disk internal;
on pro5s1 {
disk /dev/vdisks/slack$n;
address x.x.x.x:770$n;
}
on pro5s2 {
disk /dev/vdisks/slack$n;
address x.x.x.x:770$n;
}
}
EOF
done; unset n
change the IP accordingly and replicate the configuration across your cluster
scp /etc/drbd.conf ...
both nodes
drbdadm adjust all
for n in `seq 2 9`; do
drbdadm create-md res-slack$n
drbdadm attach res-slack$n
drbdadm connect res-slack$n
done; unset n
for n in `seq 5 9`; do
drbdadm primary --force res-slack$n
done; unset n
for n in `seq 5 9`; do
mkfs.ext4 /dev/drbd$n
mount /dev/drbd$n /data/guests/slack$n/lili/
done; unset n
for n in `seq 5 9`; do
echo starting job for mount-$n and waiting 3 seconds
bonnie++ -u root -x 5 -r 1024 -m mount-$n-gfs2-ext4 -d /data/guests/slack$n/lala/ \
> /var/tmp/bonnie-mount-$n 2> /var/tmp/bonnie-mount-$n.error &
echo starting job for thindrbd-$n and waiting 3 seconds
bonnie++ -u root -x 5 -r 1024 -m thindrbd-$n-ext4 -d /data/guests/slack$n/lili/ \
> /var/tmp/bonnie-thindrbd-$n 2> /var/tmp/bonnie-thindrbd-$n.error &
sleep 3
done; unset n
for n in `seq 1 4`; do
drbdadm primary --force res-slack$n
done; unset n
for n in `seq 1 4`; do
mkfs.ext4 /dev/drbd$n
mount /dev/drbd$n /data/guests/slack$n/lili/
done; unset n
for n in `seq 1 4`; do
echo starting job for mount-$n and waiting 3 seconds
bonnie++ -u root -x 5 -r 1024 -m mount-$n-gfs2-ext4 -d /data/guests/slack$n/lala/ \
> /var/tmp/bonnie-mount-$n 2> /var/tmp/bonnie-mount-$n.error &
echo starting job for thindrbd-$n and waiting 3 seconds
bonnie++ -u root -x 5 -r 1024 -m thindrbd-$n-ext4 -d /data/guests/slack$n/lili/ \
> /var/tmp/bonnie-thindrbd-$n 2> /var/tmp/bonnie-thindrbd-$n.error &
sleep 3
done; unset n
#rm -f lala/Bonnie.* umount lala/ rmdir lala/ rm -f slack1.ext4 #rm -f /var/tmp/bonnie-mount-*