Writes random data to the beginning of each 4MB block on a block device
        this is useful when performance testing the backup process

        (Without any optional arguments will randomize the first 32k of each
        4MB block on 100 percent of the device)

def randomize(self, device=None, percent=100, silent=False):
        """
        Writes random data to the beginning of each 4MB block on a block device
        this is useful when performance testing the backup process

        (Without any optional arguments will randomize the first 32k of each
        4MB block on 100 percent of the device)
        """
        volume = self.get_volume(device)
        # The number of blocks in the volume
        blocks = int(volume['size'] / BLOCK_SIZE)
        # How many writes should be to the device
        # (based on the percentage requested)
        num_writes = int(blocks * percent * 0.01)
        # Build a list of offsets we write to
        offsets = sorted(random.sample(range(blocks), num_writes))
        total = 0

        if not silent:
            print('Writing urandom to %s bytes in %s' % (volume['size'],
                                                         volume['path']))

        with open(volume['path'], 'w') as file:
            for offset in offsets:
                if not silent:
                    self.dot()
                file.seek(offset * BLOCK_SIZE)
                # Create a random string 32k long then duplicate
                # the randomized string 128 times (32768 * 128 = 4MB)
                data = os.urandom(32768) * 128
                total += len(data)
                # write out the 4MB block of randomized data
                file.write(data)
        print("\nWrote: %s" % total)