You can do it with ZFS at least. I have a ZFS setup which idles drives. If I don't access the datasets on the drives, they don't spin up. You do have to be careful with things like auto snapshotting tools though - that will typically wake drives up. I had to script mine to only run on relevant datasets when drives are spun up and also had to edit the tool (sanoid) to prevent it from enumerating the list of snapshots on the idle datasets not being snapshotted.
I'm running a ZFS NAS with mirrored 2 HDD vdevs. I've set the HDDs to spindown after 20mins using hdparm -S and this works fine under zfs. The drives (Toshiba N300s) take ~15s to spin up when something accesses them, and ime zfs has always handled this gracefully.
This vdev only contains data; it's not running the OS / root.
Which ones?