To remove hart water stains, anything acidic will work. They've already said the best method is vinegar & elbow grease. Just be careful not to scrub too hard & scratch the glass.
My favorite is The Works toilet bowl cleaner. I absolutely love that stuff for removing hard water stains. But you have to be extremely careful! That stuff is hydrogen chloride AKA hydrochloric acid. Wear rubber gloves when scrubbing & wash whatever comes in contact with your skin. And don't use hot water! Warm at best- any steam that comes off the water will burn your lungs. Best to do this outside.
Last summer I had a nasty tank I cleaned out like this. I layed it down so the worst side was down, squirted some The Works in there & sprayed in water with the garden hose. Let sit half hour, then rotate the tank to another side being down. This took almost no scrubbing at all, and thus there were no scratches from it. But, I did it outside. Then I let it sit in the sun the rest of the day and outside overnight. The next day there were no fumes whatsoever.
Baking soda will neutralize any bad stuff in The Works, as well. It's basic enough that it'll help neutralize the HCL.
Also, if your hard water stains are REALLY bad, sometimes they just don't go away. By the time you scrub them off, you've scratched the heck out of your glass. I have a tank (A 20 gallon hex) that I got at an estate sale- when the owner died, the tank was left running and eventually evaporated dry. With fish and all kinds of stuff in it. The tank was pretty disgusting, but I filled it up with toilet bowl cleaner & water and it came really clean. Except for a 2" ring around the top that is perpetually cloudy. I tried EVERYTHING on these, and scrubbed my rear off, and they just won't come off. I did get some of them off scrubbing, but i reached the point where I was scratching the glass, so I gave up. I'll deal with 2" around the top looking icky- you can hardly even tell once there's water in it, anyway.