Ejemplo n.º 1
0
def pds_online_vol_IO_sanity():
    #objects initialization & Authentication
    log = PvltLogger(inspect.stack()[0][3], 'INFO')
    logger = log.logger
    host = HostOps(HOST[0])
    fio = FioUtils()
    pvlLibHandle = pvlclient.New("2.0", CHASSIS_IP, logger=logger)
    result = pvlLibHandle.auth.login(user=CHASSIS_USER, password=CHASSIS_PASS)

    #calling base function to populate the objects
    media_group, vol_list = base_function(pvlLibHandle, logger)

    # assigning vol
    ports = get_volume_network_map(pvlLibHandle, ZONE)
    logger.info("Assigning vols ")
    for vol in vol_list:
        status = vol.assign_volume(ports, hostnqn=[])
        assert (status == True)

        # connet to the host
        status = host.connect_volume(vol)
        assert (status == 0)

    for i in range(1):
        snap_list = []
        #star fresh write on all the volumes
        logger.info("Starting fresh write on the vol-seq_write")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCD",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.seq_write(vol_list, host, kwargs)
        assert (status == 0)

        # start overwrite with same pattern
        logger.info("Starting over-write with same pattern -vol-seq_write")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCD",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.seq_write(vol_list, host, kwargs)
        assert (status == 0)

        # start overwrite with diff pattern (rw=rw,splitbs)
        logger.info("Starting over-write with diff pattern -rw=rw")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCDffff",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.seq_read_write(vol_list, host, kwargs)
        assert (status == 0)

        # start overwrite with diff pattern (rw=randrw,splitbs)
        logger.info("Starting over-write with diff pattern -rw=randrw")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCDabcd",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.rand_read_write(vol_list, host, kwargs)
        assert (status == 0)

        # randwrite on online vol
        logger.info("Starting over-write with diff pattern -rw=randwrite")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCDabcd",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.rand_write(vol_list, host, kwargs)
        assert (status == 0)
        '''
        for vol in vol_list:
               #Taking snaphost 
            snap_name = str(vol.name) + str("_%s"%SNAP_PREFIX)
            logger.info("Taking snapshot :%s"%snap_name)
            snapshot = SnapShotOps(snap_name,volobj=vol,create=True)
            assert(snapshot != None)
            snap_list.append(snapshot)
    
           #Write on remaning space of the volumes 
        logger.info("Starting write on other space of the vol ")
        kwargs = {'offset':"0",'size':'1%',"verify_pattern":"0xffff","verify_interval":4096,"do_verify":1}
        status,response=fio.rand_write(vol_list, host, kwargs)
        assert (status == 0)
        
        # delete snapshot 
        for snap in snap_list:
            status = snap.delete_snapshot()
            assert (status == True)
        time.sleep(600)
        '''
    #disconnect the vol
    for vol in vol_list:
        logger.info("disconnecting the vol from the host")
        status = host.disconnect_volume(vol)
        time.sleep(10)
Ejemplo n.º 2
0
def pds_critical_vol_IO_sanity():
    #objects initialization & Authentication
    log = PvltLogger(inspect.stack()[0][3], 'INFO')
    logger = log.logger
    host = HostOps(HOST[0])
    fio = FioUtils()
    pvlLibHandle = pvlclient.New("2.0", CHASSIS_IP, logger=logger)
    result = pvlLibHandle.auth.login(user=CHASSIS_USER, password=CHASSIS_PASS)

    #calling base function to populate the objects
    media_group, vol_list = base_function(pvlLibHandle, logger)

    # assigning vol
    ports = get_volume_network_map(pvlLibHandle, ZONE)
    logger.info("Assigning vols ")
    for vol in vol_list:
        status = vol.assign_volume(ports, hostnqn=[])
        assert (status == True)

        # connet to the host
        status = host.connect_volume(vol)
        assert (status == 0)

    # poweroff 2  drive
    mediaList = media_group.get_media_group_disk()
    media = [mediaList[0]] + [mediaList[1]]
    logger.info("Powering off drive : %s" % media)
    status = power_off_drive(media, pvlLibHandle)

    for i in range(1):
        snap_list = []
        #star fresh write on all the volumes
        logger.info("Starting fresh write on the vol-seq_write")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCD",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.seq_write(vol_list, host, kwargs)
        assert (status == 0)

        # start overwrite with same pattern
        logger.info("Starting over-write with same pattern -vol-seq_write")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCD",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.seq_write(vol_list, host, kwargs)
        assert (status == 0)

        # start overwrite with diff pattern (rw=rw,splitbs)
        logger.info("Starting over-write with diff pattern -rw=rw")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCDffff",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.seq_read_write(vol_list, host, kwargs)
        assert (status == 0)

        # start overwrite with diff pattern (rw=randrw,splitbs)
        logger.info("Starting over-write with diff pattern -rw=randrw")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCDabcd",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.rand_read_write(vol_list, host, kwargs)
        assert (status == 0)

        # randwrite on online vol
        logger.info("Starting over-write with diff pattern -rw=randwrite")
        kwargs = {
            'offset':
            "0",
            'size':
            '50%',
            "verify_pattern":
            "0xABCDabcd",
            "verify_interval":
            4096,
            "do_verify":
            1,
            "bssplit":
            "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
        }
        status, response = fio.rand_write(vol_list, host, kwargs)
        assert (status == 0)

    # Poweron one drive and start the rebuild
    media = [mediaList[0]]
    logger.info("Powering ON drive : %s" % media)
    status = power_on_drive(media, pvlLibHandle)
    time.sleep(60)

    # start rebuild with IO
    logger.info("Start rebuild 2>1")
    #status=media_group.synchronous_rebuild_media_group()
    status = media_group.asynchronous_rebuild_media_group()

    # starting IO load
    logger.info("Starting over-write with diff pattern -rw=randrw")
    kwargs = {
        'offset': "0",
        'size': '50%',
        "verify_pattern": "0xABCDabcd",
        "verify_interval": 4096,
        "do_verify": 1,
        "bssplit":
        "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
    }
    status, response = fio.rand_read_write(vol_list, host, kwargs)
    assert (status == 0)

    # Poweron second drive and start the rebuild
    media = [mediaList[1]]
    logger.info("Powering ON drive : %s" % media)
    status = power_on_drive(media, pvlLibHandle)
    time.sleep(60)
    # start async-rebuild
    logger.info("Start rebuild 1>0")
    #status=media_group.synchronous_rebuild_media_group()
    status = media_group.asynchronous_rebuild_media_group()

    # starting IO load
    logger.info("Starting over-write with diff pattern -rw=randrw")
    kwargs = {
        'offset': "0",
        'size': '50%',
        "verify_pattern": "0xABCDabcd",
        "verify_interval": 4096,
        "do_verify": 1,
        "bssplit":
        "4k/15:16k/15:32k/15:64k/15:128k/15:256k/10:512k/5:1m/5:2m/5"
    }
    status, response = fio.rand_read_write(vol_list, host, kwargs)
    assert (status == 0)