Yes, when you link servers all channels and other global settings (like glines) are shared. The users can be spread among the servers and they can all see and contact each other.
Performance-wise, with UnrealIRCd (or any IRCd) you have the option to scale horizontally or vertically.
- Vertically: you make your machine stronger (eg: faster processor, more RAM)
- Horizontally: you spread the load over multiple machines (add more machines)
On a server with enough resources a properly configured UnrealIRCd can take 10K users. A user count many users won't reach.
So performance is rarely the reason to scale horizontally.
But there's another important factor: resilience against downtime, think of software upgrades, network outages or attacks. This is the most common reason to link multiple UnrealIRCd servers. Well, that and politics (when you are a server admin you often have a bigger say on the future of the network)
Of course, if you have two servers, you may also have twice the chance of one of them being down. But when that happens.. at least one will be up (usually
). It's up to you to decide what you prefer.
If you wonder what others are doing, I quote the UnrealIRCd survey (about 340 respondents):
As for the amount of servers (excluding services), the figures are: 28% has 1 server, 42% has 2 or 3 servers, and 30% has 4 or more servers.
PS: Since you mention "nickname database", if you were talking about services
(eg: anope), then: simply put, there can only be one services on the network. but yes, that single services will be seen by all servers.