Exemplo n.º 1
0
    def exit_raid(self):
        cmds = ['rmmod raid456 md_mod',
                'modprobe -r async_raid6_recov async_pq',
                #'rmmod raid6_pq',
                #'dmesg -C > /dev/null'
                ]

        run_command_list(cmds)
Exemplo n.º 2
0
def init_asd(cleanup=0):
    cmds = [
        'modprobe dm-mod', 'modprobe asd_deadline', 'modprobe asd_driver',
        'modprobe asd_map_module'
    ]
    if cleanup:
        cmds.append('apremove -a -f')
    run_command_list(cmds)
Exemplo n.º 3
0
    def change_raid_stripe_cache_size(self):
        if not self.get_sys_name():
            return

        cmd_change = ''.join(['echo ', str(self.get_stripe_cache_size()),
                              ' > /sys/block/', self.get_sys_name(),
                              '/md/stripe_cache_size'])
        cmds =  [cmd_change]
        run_command_list(cmds)
Exemplo n.º 4
0
    def show_raid_info(self):
        if not self.get_sys_name():
            return

        cmds = ['cat /proc/mdstat',
                ''.join(['cat /sys/block/', self.get_sys_name(),
                         '/md/stripe_cache_size']),
                'cat /proc/modules | grep raid456'
                ]
        run_command_list(cmds)
Exemplo n.º 5
0
    def zero_raid_sub_dev(self, tgt = None):
        raid_cmd = self.get_cmd()
        if self.get_sub_dev_cnt() == 0:
            return

        if tgt:
            devs = tgt
        else:
            devs = ' '.join(self.get_sub_dev_list())

        cmds = [' '.join([raid_cmd, '--zero-superblock',
                          '--force', devs])]
        run_command_list(cmds)
Exemplo n.º 6
0
    def init_raid(self):
        if self.get_raid_txn():
            src_dir = self.get_src_dir()
            cmds = ['insmod ' + src_dir + '/raid6_pq.ko',
                        'modprobe async_raid6_recov',
                        'insmod ' + src_dir + '/md-mod.ko',
                        'insmod ' + src_dir + '/raid456.ko']

        else:
            cmds = ['modprobe md_mod',
                        'modprobe raid456']

        run_command_list(cmds)
Exemplo n.º 7
0
    def add_one(self, index = 0):
        if not self.get_sys_name():
            return
        tgt = self.get_sub_dev_list()[index]
        self.zero_raid_sub_dev(tgt)
        cmd = ' '.join([self.get_cmd(),
                        self.get_raid_path(),
                        '--add', tgt
                        ])
        cmds = [cmd]
        run_command_list(cmds)

        (err, _) = run_command_list(cmds)
        if not err:
            self.add_sub_dev(tgt)
Exemplo n.º 8
0
def remove_asdpool(plname):
    cmds = [
        ' '.join(['asdpoolchange -a n', plname]),
        ' '.join(['asdpoolremove -f', plname])
    ]
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 9
0
def create_asd(pool, asd_name, size_kb):
    cmd = ' '.join(['asdcreate -n', asd_name, '-L', str(size_kb) + 'K', pool])
    cmds = [cmd]
    (err, _) = run_command_list(cmds)
    if not err:
        return asd_name
    return None
Exemplo n.º 10
0
    def check_recovery_speed(self, speed_obj):
        if not self.get_sys_name():
            return 0

        cmd = ' '.join(['cat /proc/mdstat  | grep -A3', self.get_sys_name(),
                        '| grep speed'
                        ])
        cmds = [cmd]
        (status, speed) = run_command_list(cmds)
        if status:
            return 0

        speed_start = speed.find('speed=')
        if speed_start < 0:
            return 0

        speed_start += len('speed=')

        speed_end = -1
        speed_units = ['K', 'M', 'G', 'B']
        for unit in speed_units:
            speed_end = speed[speed_start:].find(unit)
            if speed_end >= 0:
                break

        if speed_end < 0:
            print speed
            return 0

        speed_end += speed_start
        speed_value = speed[speed_start: speed_end]
        speed_obj.record_value(speed_value)

        return 1
Exemplo n.º 11
0
    def remove_raid(self):
        path = self.get_raid_path()
        if not path:
            return
        cmds = [' '.join([self.get_cmd(), '-S', path])]

        (status, _) = run_command_list(cmds)
        if not status:
            self.__sys_name = None
Exemplo n.º 12
0
def create_cbd(plname, cbd_name, dev_path):
    cmd = ' '.join([
        'cbddevcreate -n', cbd_name, '-p', plname, '-d', dev_path,
        '-c vlru -a buddy'
    ])
    cmds = [cmd]
    (status, output) = run_command_list(cmds)
    if status:
        print output
    return status
Exemplo n.º 13
0
def create_cbdpool(plname, size_kb):
    block_cnt = size_kb / 4
    cmd = ' '.join(
        ['cbdpoolcreate -n', plname, '-p scap', '-s',
         str(block_cnt)])
    cmds = [cmd]
    (status, output) = run_command_list(cmds)
    if status:
        print output
    return status
Exemplo n.º 14
0
def find_min_dev_size_kb(dev_path_list):
    min_size_kb = -1
    for dev_path in dev_path_list:
        name = dev_path.split(os.sep)[-1]
        cmds = ['cat /proc/partitions | grep ' + name]
        (status, line) = run_command_list(cmds)
        if status:
            continue
        size_kb = int(line.split()[2])
        if (size_kb < min_size_kb) or (min_size_kb < 0):
            min_size_kb = size_kb

    return min_size_kb
Exemplo n.º 15
0
    def create_raid(self):
        if self.get_sub_dev_cnt() < self.get_lest_sub_dev_cnt():
            return

        raid_cmd = self.get_cmd()
        if self.get_raid_txn():
            txn = '-T'
        else:
            txn = ''

        devs = ' '.join(self.get_sub_dev_list())
        cmd_create = ' '.join(['echo "y" |', raid_cmd,
                               '-C', '/dev/md/' + self.raid_name,
                               self.cmd_args,
                               '-n', str(self.get_sub_dev_cnt()),
                               '-l', str(self.get_raid_level()),
                               '-z', str(self.get_raid_sub_dev_size_KB()),
                               txn, devs])
        cmds =  [cmd_create]
        (err, _) = run_command_list(cmds)
        if err:
            return

        cmd_map = ' '.join(['cat /dev/md/md-device-map', '|',
                            'grep', self.raid_name])
        (status, output) = getstatusoutput(cmd_map)
        if not status:
            dev_path = '/dev/' + output.split()[0]
        else:
            dev_path = self.search_raid_dev_path()

        if dev_path:
            cmd_link1 = ''.join(['ln -s ', dev_path,
                                 ' /dev/',self.raid_name])
            cmd_link2 = ''.join(['ln -s ', dev_path,
                                 ' /dev/md/', self.raid_name])
            cmds = [cmd_link1, cmd_link2]
            run_command_list(cmds)
            return
Exemplo n.º 16
0
    def fail_one(self, index = 0):
        if not self.get_sys_name():
            return
        tgt = self.get_sub_dev_list()[index]
        cmd_fail = ' '.join([self.get_cmd(),
                             self.get_raid_path(),
                             '--fail', tgt
                             ])
        cmd_remove = ' '.join([self.get_cmd(),
                             self.get_raid_path(),
                             '--remove', tgt
                             ])

        cmds = [cmd_fail, cmd_remove]
        (err, _) = run_command_list(cmds)
        if not err:
            self.del_sub_dev(tgt)
Exemplo n.º 17
0
def create_sd(sd_name, asd_name, sd_type='orig', sd_orig=None):
    asd_path = '/dev/' + asd_name

    if sd_type == 'orig':
        cmds = [' '.join(['sdcreate -n', sd_name, '-t orig', '-d', asd_path])]
    elif sd_type == 'sdro' and sd_orig:
        cmds = [
            ' '.join([
                'sdcreate -n', sd_name, '-t sdro', '-d', asd_path, '-o',
                sd_orig
            ])
        ]

    (err, _) = run_command_list(cmds)

    if not err:
        return sd_name

    return None
Exemplo n.º 18
0
 def __cleanup_dev(self, dev):
     print 'clean %s' % (dev)
     cmd = ''.join(['dd if=/dev/zero of=', dev, ' bs=1M count=100'])
     cmds = [cmd]
     run_command_list(cmds)
Exemplo n.º 19
0
def remove_asd(name):
    cmds = [
        ' '.join(['asdchange -a n', name]), ' '.join(['asdremove -f', name])
    ]
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 20
0
def create_asdpool(dev, plname):
    cmd = ' '.join(['asdpoolcreate -n', plname, '-g 16', '-d', dev])
    print cmd
    cmds = [cmd]
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 21
0
def exit_sd():
    cmds = ['sdunload']
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 22
0
def cleanup_sd():
    cmds = ['truncate /etc/sd/meta  --size 0']
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 23
0
def remove_cbd(plname, name):
    cmd1 = ' '.join(['cbddevdelete -n', name, '-p', plname])
    cmd2 = ' '.join(['rm -rf', '/dev/' + name])
    cmds = [cmd1, cmd2]
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 24
0
def remove_cbdpool(plname):
    cmd1 = ' '.join(['cbdpooldelete -n', plname])
    cmd2 = ' '.join(['rm -rf', plname])
    cmds = [cmd1, cmd2]
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 25
0
def exit_asd():
    cmds = [
        'modprobe -r asd_map_module', 'modprobe -r asd_driver',
        'modprobe -r asd_deadline', 'modprobe -r msios'
    ]
    run_command_list(cmds)
Exemplo n.º 26
0
def exit_cbd():
    cmds = ['modprobe -r buddy', 'modprobe -r vlru', 'modprobe -r cbd']
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 27
0
def init_cbd():
    cmds = ['modprobe cbd']
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 28
0
def assemble_all_sd():
    cmds = ['sdrebuild']
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 29
0
def assemble_all_asd():
    cmds = ['modprobe dm-mod', 'asd_load']
    (status, _) = run_command_list(cmds)
    return status
Exemplo n.º 30
0
def remove_sd(sd_name):
    cmds = [' '.join(['sdremove', sd_name])]
    (status, _) = run_command_list(cmds)
    return status