Reliability could be a lot of things from stability of the application on the web with multiple users, to massive amounts of data input and processing of said data or even as simple as the users perception of reliability and their expections of it.
Functional testing is the testing of the actual I/O and UAT of the application per specs and requirements.
The more difficult of the two, in my opinion, is the reliability testing since the definition of what is reliable is not easily defineable.
Reliability can be considered as a broader concept than Functional testing. Functional testing is one of the ways to create realiability on the Application. Load testing creates relibility if the application takes the expected load. Stress testing proves reliability as how long the applications sustains the stress.The ultimate aim to create confidence to the end user that the system is reliable for his business.