2f + 1 относится к требуемому уровню надежности / доступности, в общем случае это не связано с производительностью.
Ансамбли ZooKeeper (обслуживающие кластеры) состоят из одного или нескольких серверов, которые «голосуют» за каждое изменение. Большинство исходных серверов должны «одобрить» любое изменение, прежде чем оно будет принято. Клиенты (в данном случае hbase) подключаются к ансамблю и используют его для координации. Если ансамбль работает, клиенты могут сделать это, если ансамбль не работает, hbase не может использовать сервис.
Скажем, у вас есть 3 сервера (f = 1) в ансамбле, если один из них не работает, служба все еще работает (2 - большинство). Однако в случае сбоя второго сервера служба будет недоступна.
Скажем, у вас есть 5 серверов (f = 2) в ансамбле. В этом случае два сервера могут выйти из строя (3 - большинство), а служба все еще работает.
Обычно 3 сервера более чем достаточно. Однако для сред обслуживания в онлайн-производстве я бы предложил 5. Почему? Допустим, вы отключили 1 сервер для планового обслуживания. Если у вас есть 5 серверов, вы можете не спать, даже если один из оставшихся активных серверов неожиданно выходит из строя.
Почему бы тогда не иметь 101 сервер? - TANSTAAFL. Смотрите график здесь. ZK - это служба, основанная на кворуме. По мере увеличения количества серверов производительность записи фактически падает. Для участия в процессе quroum (голосование) требуется больше серверов. В результате число операций записи в секунду уменьшается. (хотя чтение не затрагивается).