Even I have very limited knowledge in this area but would like to write something what I learned till now. I request to viewer to correct me if my concept/understanding is wrong.
NFV is a technology which emphasizes to virtualize the network functions such as router, switches, firewall etc.
In today's market products are tightly coupled with hardware and software. Using NFV concept, general purpose hardware would be used and all the different kinds of functions would be run in virtual machine.
Openstack is software solution which provides the same platform. By using various components of OpenStack, a number of operations can be performed which is required to enable a service. For example: To run a service, compute, networking and storage these are minimal requirements.
OpenStack is a bundle of various open source projects like nova, neutron, cinder, glance, heat etc are used. Each component performs very specific operations. Nova is used to spawn virtual machine on compute machines while neutron is used to enable networking component. Glance is used to provide the image to install the OS into VM.