Зачем нужна репликация в принципе?
Во-первых, отказоустойчивость. Если у вас несколько реплик и один сервер сдох, приложение не обвалится с грохотом, а будет работать с оставшимися.
Во-вторых, производительность. Или один сервак будет обрабатывать 1000 запросов в секунду или 3 по 330 - есть разница.
Какие проекты требуют такого понятия как репликация?
Как следует из вышенаписанного, такие, для которых важна стабильность и в у которых нагрузка достаточно высокая, чтобы начал задыхаться один сервер.
Что называется master, а что slave?
В режиме master-slave репликации есть один master-сервер, обрабатывающий запросы на изменения данных, и несколько slave-серверов, обрабатывающих запросы на чтение. В случае выхода мастера из строя, один из слейвов становится мастером.
отличия между master-slave и master-master?
В режиме master-master все сервера равноценны и могут обрабатывать любые запросы. Но она сложнее и если один из серверов дохнет, вы можете получить повреждение данных.