RAID is a pseudo standard that describes how data can be stored on an array of disks. The standard describes four different ways to store data (technically more, but mostly nobody cares about the others):
Raid-0: Striping. Each block of data is split across each member of the RAID device. No redundancy, so it is more of just an Array of Inexpensive Disks, not Redundant array of inexpensive disk.
Raid-1: Mirroring. Each block of data is stored on every disk in the array. This only really makes since with two disks. RAID 1/0 or just RAID 10 is a combination of mirroring and striping and can be used to take advantage of more than two disks.
Raid-5: Parity. Each block of data is split across each member of the RAID device + one disk is dedicated to parity.
Raid-6: Double Parity: Same as Raid-5, but with two parity disks.
That's it. Raid doesn't describe what to do about size mis-matches or anything, but striping only really works with equally sized disks. Typically the way to get around this is that you could use the left over space as a separate disk drive.
Stepping away from RAID as a way of creating a large disk array, you can use things like ZFS and just add disks to a storage pool. ZFS would always try to use both disks as efficiently as possible, and you could tell ZFS what level of redundancy you are happy with.
Prior technologies are things like volume mapping (i.e. LVM, or it's windows equivalent), which abstract the idea of mapping blocks to disk to a higher level. With LVM you can span across disks, expand partitions, have non-contiguous partitions and so on. Volume mapping is not RAID, and rather than increasing performance as you increase disks it just will randomly pick to write to one disk or the other depending on where you are in the file system. This is referred to as spanning and is typically better than RAID if you are going for IOPS rather then raw performance.