Were running BigIP 12.1.3 on a Viprion 2400 and noticed when we manually edited /config//bigip_base.conf file, changes did not take effect until we reloaded the configuration from disk. Moreover, if we wrote the configuration to disk before reloading it (save sys config), the changes we had made to the configuration file were lost.
This seems a bit counter intuitive, so could someone please shed the light on why its working this way?
The config exists in multiple places.
mcpd has a copy of the config in memory - this is what is used by tmm and other processes on the BigIP to process traffic. When you make a change to the config, it is made in the in-memory copy, and then written to the on-disk config files. This process does not work the other way way round - the on-disk config files are only loaded into mcpd to become the running config if you do a "tmsh load sys config" or run some other config-reloading command.
So we have two copies of the config - in-memory or the config files. The third copy is a binary config written to disk by mcpd. This is a direct dump of the in-memory data structure on to disk. This is much faster to load than parsing the config files, so when mcpd is starting, it uses this (if it exists). It's the difference between a few seconds to load the config, or minutes to parse and load the config files.
So if you change bigip.conf or bigip_base.conf, you will need to reload the config to see the change have effect. If you make a change in the WebUI, mcpd makes the change in running memory, and then writes the running config back into the config files on disk (both the binary and text config files) overwriting any pending changes that may have been in those files.
Thanks Simon and apologies if I am not following you. But, if I am making changes to the config file stored on the disk, not in memory, what am I overwriting it with when I do save sys config?