A service address is an address which is managed by the HA system, and is moved around to whereever the corresponding services are running. These service addresses are the addresses by which customers and users of the HA services access these HA services. They are typically stored in DNS with well-known names like "www.ibm.com" or similar.
It is important that a service address not be managed by your operating system, and that it is managed only by your HA software. If you try and give an administrative address to the HA system to manage, it will cause problems, because you may confuse the HA system, and the operating system and the HA system will fight over control of this address.
At the current time, with the standard IPaddr resource script, that means that it must be an alias on an interface, not the main (or first) IP address on that interface. Each interface must have one administrative address on it, but it can have as many service addresses on it as you need. So, for n HA interfaces, you will typically wind up having at least 2n IP addresses.
The newer (Linux-only) IPaddr2 resource agent is capable of bringing up an interface completely - even if no base address has already been established. This changes the equation above so that for n HA interfaces, you will typically wind up having at least n+1 IP addresses - because nearly every server will require at least one administrative address so that system administrators can log in even when the server isn't the active one.
Note that there is a limit of around 100 IP addresses on each interface managed by IPaddr, but no such limit on those managed by IPaddr2.
Administrative Address, IPaddr resource agent, IPaddr2 resource agent