Note! Please do not store data on config_drive.
It is a tool used to perform initial setup on cloud nodes, including networking, SSH keys, timezone, user data injection, and more. It is a service that runs on the guest machine and supports Linux and Windows.
It is the source of configuration data for Cloud-init that typically come from the user (user_data) or come from the stack that creates the metadata ( configuration data). Typical userdata would include files, yaml, and shell scripts while typical metadata would include server name, instance id, display name and other cloud specific details.
It is another kind of configuration provider for Cloud-Init used by OpenStack. It transfers some information to guest machine when guest machine is booting.
Practically speaking, config-drive and Metadata source offer the same information.
Config-drive doesn't rely on network and directly gets information from a device, which causes better performance and low running cost.
Metadata source is compatible with AWS (Amazon Cloud Service), but has less performance and higher running cost compared to config-drive.
Example 1: When DHCP is unavailable, guest machine can get network configuration from config_drive.
All the specific information can be retrieved from config_drive.
Note! Config-drive can only be specified when creating guest machine. Afterward, even though the configuration of guest machine is changed, the content of config-drive won't change.