def initialize(self): self.cleanup() super(RbdFio, self).initialize() common.setup_cluster() common.setup_ceph() common.dump_config(self.run_dir) # Setup the pools common.pdsh(settings.getnodes('head'), 'sudo ceph osd pool create rbdfio %d %d' % (self.pgs, self.pgs)).communicate() common.pdsh(settings.getnodes('head'), 'sudo ceph osd pool set rbdfio size 1').communicate() print 'Checking Healh after pool creation.' common.check_health() common.pdsh(settings.getnodes('clients'), 'sudo modprobe rbd').communicate() for i in xrange(self.concurrent_procs): common.pdsh(settings.getnodes('clients'), 'sudo rbd create rbdfio/rbdfio-`hostname -s`-%d --size %d' % (i, self.vol_size)).communicate() # common.pdsh(settings.cluster.get('clients'), 'sudo rbd map rbdfio-`hostname -s`-%d --pool rbdfio --id admin' % i).communicate() common.pdsh(settings.getnodes('clients'), 'sudo echo "%s %s rbdfio rbdfio-`hostname -s`-%d" | sudo tee /sys/bus/rbd/add && sudo /sbin/udevadm settle' % (self.rbdadd_mons, self.rbdadd_options, i)).communicate() common.pdsh(settings.getnodes('clients'), 'sudo mkfs.xfs /dev/rbd/rbdfio/rbdfio-`hostname -s`-%d' % i).communicate() common.pdsh(settings.getnodes('clients'), 'sudo mkdir /srv/rbdfio-`hostname -s`-%d' % i).communicate() common.pdsh(settings.getnodes('clients'), 'sudo mount -t xfs -o noatime,inode64 /dev/rbd/rbdfio/rbdfio-`hostname -s`-%d /srv/rbdfio-`hostname -s`-%d' %(i, i)).communicate() common.check_scrub() # Create the run directory common.make_remote_dir(self.run_dir)
def _run(self, mode, run_dir, out_dir): # We'll always drop caches for rados bench self.dropcaches() if self.concurrent_ops: concurrent_ops_str = '--concurrent-ios %s' % self.concurrent_ops op_size_str = '-b %s' % self.op_size common.make_remote_dir(run_dir) # dump the cluster config common.dump_config(run_dir) monitoring.start(run_dir) # Run rados bench print 'Running radosbench read test.' ps = [] for i in xrange(self.concurrent_procs): out_file = '%s/output.%s' % (run_dir, i) objecter_log = '%s/objecter.%s.log' % (run_dir, i) p = common.pdsh(settings.getnodes('clients'), '/usr/bin/rados -p rados-bench-`hostname -s`-%s %s bench %s %s %s --no-cleanup 2> %s > %s' % (i, op_size_str, self.time, mode, concurrent_ops_str, objecter_log, out_file)) ps.append(p) for p in ps: p.wait() monitoring.stop(run_dir) # Get the historic ops common.dump_historic_ops(run_dir) common.sync_files('%s/*' % run_dir, out_dir)
def initialize(self): self.cleanup() super(RbdFio, self).initialize() common.setup_cluster() common.setup_ceph() common.dump_config(self.run_dir) # Setup the pools common.pdsh( settings.getnodes('head'), 'sudo ceph osd pool create rbdfio %d %d' % (self.pgs, self.pgs)).communicate() common.pdsh(settings.getnodes('head'), 'sudo ceph osd pool set rbdfio size 1').communicate() print 'Checking Healh after pool creation.' common.check_health() common.pdsh(settings.getnodes('clients'), 'sudo modprobe rbd').communicate() for i in xrange(self.concurrent_procs): common.pdsh( settings.getnodes('clients'), 'sudo rbd create rbdfio/rbdfio-`hostname -s`-%d --size %d' % (i, self.vol_size)).communicate() # common.pdsh(settings.cluster.get('clients'), 'sudo rbd map rbdfio-`hostname -s`-%d --pool rbdfio --id admin' % i).communicate() common.pdsh( settings.getnodes('clients'), 'sudo echo "%s %s rbdfio rbdfio-`hostname -s`-%d" | sudo tee /sys/bus/rbd/add && sudo /sbin/udevadm settle' % (self.rbdadd_mons, self.rbdadd_options, i)).communicate() common.pdsh( settings.getnodes('clients'), 'sudo mkfs.xfs /dev/rbd/rbdfio/rbdfio-`hostname -s`-%d' % i).communicate() common.pdsh(settings.getnodes('clients'), 'sudo mkdir /srv/rbdfio-`hostname -s`-%d' % i).communicate() common.pdsh( settings.getnodes('clients'), 'sudo mount -t xfs -o noatime,inode64 /dev/rbd/rbdfio/rbdfio-`hostname -s`-%d /srv/rbdfio-`hostname -s`-%d' % (i, i)).communicate() common.check_scrub() # Create the run directory common.make_remote_dir(self.run_dir)