You can partition the drives individually, put a copy of the ESP on every one (so you can boot from either), and then build a RAID5 from the second partition on each disk.
Synchronizing the ESP is a bit tricky, I'd probably set up this partition as a RAID1 with superblock at the end (the 1.0
format).
So, give every disk two partitions, similar to
/dev/sda1 2048 194559 192512 94M EFI System
/dev/sda2 194560 1953523711 1953329152 931.4G Linux RAID
You might want to use more space for the ESP though than I have -- 500 MB is usually good if you plan to load kernels from there.
Then, initialize the raid with
mdadm --create /dev/md0 -e 1.0 -n4 -l1 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm --create /dev/md1 -e 1.2 -n4 -l5 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2
and create a DOS file system on /dev/md0 for the ESP:
mkdosfs /dev/md0
This will then be mounted under /boot/efi during/after installation. For the main area, use whatever partitioning scheme you feel comfortable with -- I'd use LVM.
Booting will ignore the RAID for the ESP, but since the superblock is at the end, it is still a valid DOS file system from the point of view of the firmware, so loading the OS from there works.
Note that the usual rant about RAID levels applies: if a drive in a RAID5 fails, you are left with no redundancy until the rebuild is complete, which can take a while and puts a extra stress on the remaining disks. If it's important data, go with RAID6, even if it means losing the capacity of two drives, and regularly run checks, most Linux distributions come with a handy script
/usr/share/mdadm/checkarray /dev/md0
In your case, you should check both, obviously. Every two weeks to a month would be a good interval, this catches errors where a disk has developed a few bad sectors and restores the data from the other disks, allowing the broken drive to remap the sector.