That's a big question and there are several possible solutions, depending on just how far you want to take this and just what you believe site mirroring actually is. There is some confusion out there about what it all means.
For a start, imagine you own the following domains: yoursite.co.uk yoursite.com and yoursite.net
You could simply have a full and identical copy of the contents of yoursite.co.uk on the other two sites which would give you mirrors of the first. However, in this case they would be nothing more than carbon copies of the original site and unless you employ some jiggery pokery they just sit there, identical but on different domains. This kind of defeats the object since most people want a solution to allow their site to load from a mirrored location in the event that their main site host is down.
A primitive, clumsy and not often very successful method to do this that some people try to use is to have two hosted accounts and have the second name server on each point to the other. A lot of people think that they are being terribly clever when they do this, only to find that in the majority of cases it DOES NOT work properly, if at all.
The way they do it is have one host set up with the following named servers:
The second host would be set up with:
As you can see, each server is set up to use the other as its second named server in the event of a domain resolution problem. As I said though, it is clumsy and often fails, and to work at all you need a third party host to point to the other two (which in turn point to each other) and the primary job of this host is to monitor the reaction of the other two in the order you want to use them. This means that Host X will look to get a reply when someone requests your site URL in their browser. Host X will look to ns1.host1.com then ns2.host1.com, and if neither one replies it will then look to ns1.host2.com and finally ns2.host2.com. All that happens is that Host X hosts your zone records with pointers to your servers IP addresses, listed by priority and in the order in which you want to use them.
Some people have attempted to run various host accounts in different countries, all under one parent account that refers to the others based on the geographical area from which a page was requested. I have no idea if that could ever speed things up at all. I very much doubt that it could, since a simple traceroute will demonstrate to anybody that when you request a page from any site in the world, the chances of it coming to you via the same route and in the same number of hops is slim at best. TCP/IP just doesn't work like that.
Confused yet ?
Take a look here click here for a product that appeals to the geek in me. It offers you various options for mirroring content over different domains, but it only adds to the above confusion rather than solves any of it.
To be honest, for almost all domestic and business sites, mirroring is not really necessary. It can get very, very messy and I can't really think of an easy answer for you off the top of my head that doesn't involve multiple host accounts and/or multiple servers available to you.
Finally, you do understand that the two name servers that your web host assigns to your domain actually have this redundancy built in to some extent ? The whole point to two name servers is to offer a second alternative in the event of a problem with the first, so for your site to be completely offline your hosts entire network would very probably be affected, which, although possible, is very, very unlikely.
Sorry I can't offer you a quick A, B, C but I don't think that there is one. I'm happy to learn otherwise though.