Are you booting from these drives, and using swap on them as well? Either way you are passing partition 2 for the first, then the whole block device for the rest…
When dealing with mdraid or hardware RAID you often pass the whole block device. But in this case, though that technically would work, you should pass the partition to BTRFS (not the whole device).
So is /dev/nvme0n1p1 your EFI partition? And /dev/nvme0n1p3 swap?
UEFI has to run on a vFAT filesystem. (It’s how the BIOS boots your PC.). One of the caveats of using only BTRFS for RAID is that tiny partition is left out. I’ll come back to that.
And when given multiple swap partitions it interleaves them kind of like RAID 0, so you can make them smaller when spread over multiple devices. (That is if swap is on /dev/nvme0n1p3.)
So if you recreate the same partition table on all 4 devices, it is better and cleaner. (That space is unused anyway.)
To copy the GPT partition table over to the other 3 devices you can back it up by:
sgdisk -b=<PATH>/nvme0n1.gpt /dev/nvme0n1
And you can copy it to the other 3 disks:
sgdisk -l=<PATH>/nvme0n1.gpt /dev/nvme[1-3]n1
The kernel handles multiple swap partitions efficiently, so you can just put them in all in fstab or swapon.
But that leaves out your EFI partition. You could use mdraid (doing a 4 disk mirror) on that partition alone. Especially when using RAID for redundancy it seems preferred, but does complicate things; especially if you’re not familiar with this.
I’ve tried many apps and others’ scripts for my backup purposes, but just ended up just writing my own simple scripts for my needs. It primarily backs up BTRFS snapshots. But included in that, I backup my EFI partition with dd. It’s a 300M partition which compresses down to about 100kB (at least for me).
So all I do in the script is:
dd if=/dev/nvme0n1p1 | xz -c | dd of=nvme0n1p1.blk.xz
This copies it to a file, but you could copy it to the other nvme[1-3]p1 drives. This partition doesn’t even change all that much through updates. It just contains enough logic to boot the kernel from your BTRFS volume.
So with the GPT table, and the EFI partition. All I need is my BTRFS volumes: root/@ and @home to restore my whole system. I’ve restored this way multiple times.
Just throwing that out there as an alternative, since it seems like you are just doing RAID 0 anyway and backup by other means?