def _validate_raid_1(logical_disk, unassigned_pd, no_of_pds):
    """Checks if RAID 1 logical drive creation with requested size is possible

    This method finds a list of suitable unassigned physical drives which can
    be used to create a logical volume of requested size

    :param logical_disk: The logical disk dictionary from raid config
    :param unassigned_pd: The sorted list of unassigned physical drives
    :param no_of_pds: The 'number_of_physical_disks' if user has specified
        in target raid configuration, else default value is False
    :returns: A list of suitable physical drives for logical volume creation
    """
    # Check if raid 1 with 2 disks can be created
    if not no_of_pds or no_of_pds == 2:
        count = 0
        for pd in unassigned_pd[:-1]:
            if float(pd[1]) < logical_disk['size_gb']:
                count += 1
            else:
                return [unassigned_pd[count], unassigned_pd[count + 1]]

    # Check if raid 1 with 4 disks can be created
    if not no_of_pds or no_of_pds == 4:
        if len(unassigned_pd) == 4 and float(unassigned_pd[0][1]) + float(
                unassigned_pd[1][1]) >= logical_disk['size_gb']:
            return unassigned_pd

    # If raid 1 can not be created or ld['number_of_physical_disks']
    # is not 2 or 4, return empty list
    return []