If you are still in the design stage (i.e. you're not already committed to mdadm and/or lvm) then I recommened that you seriously consider using a modern filesystem like Btrfs or ZFS.
btrfs is built-in to the mainline linux kernel, and zfs is available from the zfsonlinux web site as easily installable kernel modules or dkms packages for most linux distributions. There is also an Ubuntu PPA for zfsonlinux.
Both ZFS and btrfs have excellent, easy-to-use tools for managing disks and groups of disks. They also implement error-detection and correction (pretty much essential with large modern drives as errors are statistically almost guaranteed), sub-volumes, snapshotting (incl. access to and/or rollback of previous versions), and they both have a very useful snapshot-based method of sending a full or incremental backup to another machine (zfs send/receive and btrfs send/receive). Both have many other features and benefits, too long to list here.
One other big advantage that ZFS and btrfs have over lvm is that lvm logical volumes are of fixed size (kind of like a virtual disk partition) and you have to take special steps if you need to grow or shrink the size of an lv (e.g. if you make a mistake and allocate far too much space to /usr and not enough to /var, you'll have a lot of work ahead of you to fix that). With ZFS & btrfs, a sub-volume is more like a soft-quota allocation (with optional reservation) from the total space and changing the allocation is a trivial process that does not require any file-system 'juggling' (backup/restore/moving files around). In fact, you don't even need to set a quota per sub-volume if you don't want to - all sub-volumes will happily share the total pool of available space.
ZFS has the concept of pools, which are made up of virtual devices (vdevs) which are, in turn, made up of physical devices (i.e. disks). Using ZFS, your drives could be configured as a single pool containing two vdevs, one with a RAID-5 array made up of 3x2TB drives, and one made up of a RAID-5 array of 3x1TB drives. The vdevs are striped to make up the pool. (BTW, ZFS's raid5 and raid6 is not actually raid5 or raid6, it just works very similarly. it's called raid-z)
One of the nice things about ZFS is that you can easily replace drives in a vdev and when you replace all of the drives in a vdev with larger drives, then the extra space is automatically made available for storage. e.g. if you replace one or two of the 3x1TB drives with 2TB drives you would get no extra space, but as soon as you replaced the third drive you would instantly get the extra space.
You can also add another vdev (i.e. made up of one or more drives) at any time. e.g. you could add a pair of 3TB or 4TB drives. You can replace the drives in a vdev but you can not remove a vdev from a pool - if you need to do that, the only way is to backup, destroy the pool and create a new pool from scratch.
Btrfs recently got experimental raid-5/6 support, and has supported raid-0/1/10 for several years. It is conceptually quite different to zfs, and there are some things it does better than zfs (e.g. "rebalancing" data across drives when you add or change the drives in the btrfs filesystem) but overall it has less features than zfs. The big advantage is that it is in the mainline kernel and thus standard - guaranteed to be available on any modern linux system.
btrfs has specific support for using drives of different sizes, enabled by using the
-d single option of
mkfs.btrfs. See Using Btrfs with Multiple Devices for details.