In short Hot Standby Routing Protocol and Gateway Load Balancing Protocol do first hop redundancy, the former is open standard, and the latter is Cisco proprietary. HSRP works in an active standby fashion, whereas in GLBP all routers are forwarding packets.
In HSRP the active router answers the ARP requests with the MAC address assigned to the standby group, thus only the active router forward packets. The standby router only will take over the forwarding process if it does not hear from the active router (3 hello messages by default) or by changing the priority/preemption. Thus a router could be taken out of service or taken into service by simply altering the priorities.
In GLBP the Active Virtual Gateway (AVG) is responsible for the ARP requests. It will reply with ARP replies with mac address of Active Virtual Forwarders (AVF) by default in a round robin fashion. Thus all routers will forward packets equally. Naturally all routers generate hello packets with the virtual MAC as source, so that the switches can learn the virtual mac address, which is the same with HSRP.
In GLBP as all routers are forwarding traffic, we have to alter the Weight value to make a router not to forward traffic. For this a tracking object must be defined. If the tracked object is UP, the router will be in service. Below is the example of such tracking. The loopback interface is tracked for its status. If the loopback 100 is shutdown, then the weight will be decremented by 100. When the weight value is below the lower threshold, the router will not send hello packets with Virtual MAC address as source, causing the L2 switches to remove the MAC from their forwarding table.
track 100 interface Loopback100 line-protocol
glbp 1 ip 10.0.0.201
glbp 1 weighting track 100 decrement 100
glbp 1 weighting 100 lower 1 upper 100
if we want to take a GLBP router out of service, it must also not be the GLBP AVG.