Although failover clustering provides hardware redundancy, only a single copy of the database exists on the shared drive array. If you only needed to plan for the failure of the server, then failover clustering would be sufficient to meet your availability needs. However, the most common hardware failure, disk drives, can only be mitigated by having a second copy of the database on another machine.
Database mirroring will maintain a second copy of a database on another machine so that you are protected from both server and storage failures. Unfortunately, you can only use database mirroring with databases that do not have a filegroup enabled for FILESTREAM.
Database Mirroring Roles
There are two mandatory database mirroring roles ...