> (you don't have to strictly follow this form)

**Use case**

Sometimes, for really sophisticated scenarios it can be hard to control the amount of in-progress backups run externally. For the purpose of simpler control we can introduce server-level setting which disallows running concurrent backups of any type. 

Something like this in `config.xml` (enabled by default):
`<allow_concurrent_backups>true</allow_concurrent_backups>`

**Describe the solution you'd like**

It's important that backups can be executed in distributed way on multiple servers. Need to take it into account.

**Describe alternatives you've considered**
External check of `system.backups` table, but it can be complex.

if (on_cluster && restore_settings.coordination_zk_path.empty())
        {
            String root_zk_path = context->getConfigRef().getString("backups.zookeeper_path", "/clickhouse/backups");
            restore_settings.coordination_zk_path = root_zk_path + "/restore-" + toString(UUIDHelpers::generateV4());
        }
        if (!restore_coordination)
            restore_coordination = makeRestoreCoordination(restore_settings.coordination_zk_path, context, restore_settings.internal);
        
        if (on_cluster)
        {
            DDLQueryOnClusterParams params;
            params.cluster = cluster;
            params.only_shard_num = restore_settings.shard_num;
            params.only_replica_num = restore_settings.replica_num;
            restore_settings.copySettingsToQuery(*restore_query);
            
            context->setSetting("distributed_ddl_task_timeout", Field{0});
            context->setSetting("distributed_ddl_output_mode", Field{"none"});
            executeDDLQueryOnCluster(restore_query, context, params);
            
            auto all_hosts = BackupSettings::Util::filterHostIDs(
                restore_settings.cluster_host_ids, restore_settings.shard_num, restore_settings.replica_num);
            restore_coordination->waitForStage(all_hosts, Stage::COMPLETED);
        }
        else
        {
            restore_query->setCurrentDatabase(current_database);
            
            DataRestoreTasks data_restore_tasks;