High-level guidelines for building a Virtual Appliance:
Available tools, frameworks and services:
I recently listened to a podcast that mentioned my “Cisco WAAS performance benchmarks” and “PSTs on network file shares…” posts. Have a listen the mention happens about 31 minutes into the podcast. I also posted a comment to provide some rudimentary clarification on a few items discussed in the podcast. Guys thanks for the mention!
It’s that time of year again… EMC World 2007 kicked off yesterday with a keynote by Joe Tucci. How the industry has changed over the past 6 years. Discussions which 6 years ago centered around back-end infrastructure, performance, SLAs, etc… all supporting B2B applications and corporate infrastructure have been replaced by discussions primarily focused on consumer applications such as YouTube, MySpace, Facebook, etc… I am looking forward to Mark Lewis’ keynote tomorrow which he entitles “living in a 2.0 world”. The need has always been created bu the consumer space but never in history has the consumer had the level of visibility into the back-end infrastructure that they do today. Users today immediately know when site like YouTube and Facebook are offline, when their cell phones gps is down, when IM is offline, when they can’t download music from iTunes and the list goes on and on. Social networking sites have proven that they will become if not already a primary communication medium, they are the new brick and mortar businesses. Welcome to the 2.0 world.
A final thought, last night I had dinner at Charley’s Steak House, my good friend at recoverymonkey.org exercised his poetic culinary license last night. I suggest checking it out.
Recent performance benchmarks gathered from an actual WAAS PoC deployment. Feel free to Email me rjb@mti.com for more details. Unfortunately I can not publish everything due to the need to protect the innocent. All of the details below (IP addresses, locations, etc…) have been changed but the performance benchmark data is actual data collected from and actual deployment.
Deployment details:
Topology:

Initial observations:
Some larger problematic .xls files to the WAAS accelerated file share and asked the Austin user to test the performance. The initial impression and observations were the following:
Benchmarks:
Two benchmarks were completed. The Cisco MS office benchmark and a file copy and create benchmark.
Office benchmarks:



File copy and creation benchmarks:






Quick little script to automate an FTP test:
#!/usr/local/bin/perl
###
#waastest.pl
#ftp test procedure automation for waas
#v.099b – 2007.05.05 – Rich Bocchinfuso
#@COPYLEFT 2007 – MTI CTA Team – ALL WRONGS RESERVED
#requires: creatfil.exe ncftpget.exe ncftpput.exe
###
if ($ARGV[0] eq “-help”) {
&usage;
}
if ($ARGV[0] eq “-o”) {
&cmdparms;
}
else{
&menu;
}
sub menu {
©left;
print “Enter target ftp host/ip (e.g. – 192.168.1.10): “
$target = <>
chomp $target;
print “Enter output filename: “
$output = <>
chomp $output;
print “Enter test description: “
$desc = <>
chomp $desc;
print “Enter starting file size in megabytes: “
$startmb = <>
chomp $startmb;
print “Enter ending file size in megabytes: “
$endmb = <>
chomp $endmb;
print “Enter incraments in megabytes: “
$incmb = <>
chomp $incmb;
print “Enter test type [p]ut, [g]et, [a]ll: “
$test = <>
chomp $test;
print “Enter username [e.g. - foo\@bar.com]: “
$user = <>
chomp $user;
print “Enter password: “
$password = <>
chomp $password;
©left;
&beginstamp;
&convert;
if ($test eq “p” || $test eq “put”) {
&put;
}
if ($test eq “g” || $test eq “get”) {
&get;
}
if ($test eq “a” || $test eq “all”) {
&put;
&get
}
else{
&error;
}
&endstamp;
}
sub cmdparms {
$target=$ARGV[2];
$user=$ARGV[3];
$password=$ARGV[4];
$startmb=$ARGV[5];
$endmb=$ARGV[6];
$incmb=$ARGV[7];
$output=$ARGV[8];
$desc=$ARGV[9];
©left;
&beginstamp;
&convert;
if ($ARGV[1] eq “-p”) {
&put;
}
if ($ARGV[1] eq “-g”) {
&get;
}
if ($ARGV[1] eq “-a”) {
&put;
&get;
}
&endstamp;
}
sub put {
open(LOG,”>>$output”) || die(“Can’t open output file: $!”);
print LOG “\n…initiating ftp PUT test…\n”
close (LOG);
for ($count = $start; $count <= $end; $count+=$inc) {
print “…creating $count byte file named file_$count.dat…\n”
system “creatfil file_$count.dat $count >> $output”
print “…putting $count byte file named file_$count.dat to $target…\n”
system “ncftpput -v -u $user -p $password $target . file_$count.dat 2>> $output”
print “…removing $count byte seed file named file_$count.dat…\n”
system “del file_$count.dat >> $output”
}
open(LOG,”>>$output”) || die(“Can’t open output file: $!”);
print LOG “…ftp PUT test complete…\n”
close (LOG);
}
sub get {
open(LOG,”>>$output”) || die(“Can’t open output file: $!”);
print LOG “\n…initiating ftp GET test…\n”
close (LOG);
for ($count = $start; $count <= $end; $count+=$inc) {
print “…getting $count byte file file_$count.dat from $target…\n”
system “ncftpget -v -u $user -p $password $target . file_$count.dat 2>> $output”
print “…removing $count byte file named file_$count.dat…\n”
system “del file_$count.dat >> $output”
}
open(LOG,”>>$output”) || die(“Can’t open output file: $!”);
print LOG “…ftp GET test complete…\n”
close (LOG);
}
sub convert {
# Convert MB to bytes
$start = $startmb*1024;
$end = $endmb *1024;
$inc = $incmb*1024;
}
sub beginstamp {
open(LOG,”>>$output”) || die(“Can’t open output file: $!”);
$datetime = localtime();
printf “WASS benchmark initiatied $datetime\n\n”
printf LOG “WASS benchmark initiatied $datetime\n”
print LOG “\nDescription: $desc\n\n”
close (LOG);
print “…testing and logging latency and packet loss…may take a minute…\n\n”
system “ping -n 10 -l 1024 $target >> $output”
}
sub endstamp {
open(LOG,”>>$output”) || die(“Can’t open output file: $!”);
$datetime = localtime();
printf “\nWASS benchmark completed $datetime\n\n”
printf LOG “\nWASS benchmark completed $datetime\n\n”
close (LOG);
}
sub copyleft {
system “cls”
print “\nWAAS FTP benchmark and test utility\n”
print “v.099 – 2007.05.05\n”
print “\@COPYLEFT 2007 – MTI CTA Team – ALL WRONGS RESERVED\n\n”
}
sub usage {
©left;
print “\nUsage: waastest -help {…displays this help message}\n”
print “Usage: waastest {prompt based interface}\n\n”
print “Usage: waastest -o [command line parameters]\n”
print “waastest -o [-p | -g | -a] [target hostname/ip] [username] [password] [starting file size in MB] [ending file size in MB] [inrement by MB] [output log filename] [\"test description\"]\n”
print “-p … run put tests only\n”
print “-g … run get tests only\n”
print “-a … runs put and get tests\n”
exit;
}
sub error {
print “!error! !error!\n”
print “\”waastest -help\” – for usage instructions\n\n”
exit;
}
This site is protected with Urban Giraffe's plugin 'HTML Purified' and Edward Z. Yang's
. 182 items have been purified.