I'm an avid photographer and just got done spending a year traveling. I geotagged virtually every photo I took using a Qstarz Q1000XT:
https://www.amazon.com/Qstarz-BT-Q1000XT-Bluetooth-Vibration-waypoints/dp/B003U51XIU
It will do 40 hours on a single battery charge. Intervals are configurable, I think I had mine set to 2 minutes or something. Bonus: it uses a pretty common Nokia phone battery, so I found half a dozen on eBay for little money and basically had a couple weeks' worth of batteries without charging. When I hit a place with convenient power, I'd charge them. Bonus bonus: it's got a standard USB input and can run off a battery pack, so if your battery runs out but you've got a laptop, or a battery pack for your phone, you can just plug it in. Bonus bonus bonus: it's got a vibration sensor so that you can set the thing to go to sleep if it doesn't move for a little while. This meant I could leave it on all the time, but it went to sleep when I put my bag down for more than 15 minutes or so.
I've used a ton of different GPS options. I've used ones that have a Bluetooth connection that will imprint the GPS directly in the photo. I've used a direct-connect GPS that attached to my camera. In the end, just logging my tracks and synchronizing once when I downloaded my photos was the best way - everything else had some problem that frustrated me.
Pro tip: if you're going to be crossing timezones a lot with your camera, leave your camera set on UTC/GMT. That way you can correct your time later if you want a local timestamp, but you never run the risk of not knowing whether you've got the right local time embedded.
(p.s. I'm using a Nikon D7100 as well)